---
title: "List inbox preview history"
method: GET
path: "/v1/design_studio/inbox_previews/jobs"
tags: ["Design Studio emails"]
---

# List inbox preview history

`GET /v1/design_studio/inbox_previews/jobs`

Returns a paginated history of inbox preview jobs across your workspace, or for a single email when you pass `node_id`. Only lists runs recent enough for their screenshots to still be viewable—an older run won't appear here even though it still exists.

## Query parameters

- `node_id` string, uuid
- `limit` integer
- `cursor` string

## Response `200`

Successful response

- object
  - `preview_jobs` InboxPreviewJobSummary[]
    - `run_id` integer — ID of the preview job.
    - `node_id` string, uuid — The email node the run covers, or the first of them when it covers several. Under a `node_id` filter, this is the matched node.
    - `name` string — The batch label provided when the job was submitted.
    - `node_count` integer — How many email nodes the run covers—more than one for a multi-language run. Under a `node_id` filter, how many of them matched.
    - `is_processed` boolean — `true` once every device of every counted node has settled. Under a `node_id` filter, "counted" means the matched nodes only.
    - `total_previews_requested` integer — Previews requested across the counted nodes. On a settled run, this is normally `total_previews_cached` + `total_previews_succeeded` + `total_previews_bounced`.
    - `total_previews_cached` integer — Previews served from an earlier run's screenshot. Not charged, and not counted in `total_previews_succeeded`.
    - `total_previews_succeeded` integer — Previews this run generated itself, as stored when each node settled. Excludes cached ones, and counts only nodes that have settled—so a run still generating reads `0` here even once some devices are done.
    - `total_previews_bounced` integer — Previews that produced no screenshot, whether the vendor bounced them or they failed on Customer.io's side, as stored when each node settled. Their credits are refunded.
    - `total_previews_ready` integer — `total_previews_cached` + `total_previews_succeeded`, from the counters stored on the run. The cached half is final as soon as the run exists; the succeeded half counts only nodes that have settled, so a run still generating reads low until `is_processed` is `true`. This list can't see a tile served by an earlier screenshot of the same content, so it can read lower than [Get an inbox preview job](/integrations/api/app/tag/design-studio-emails/getInboxPreviewJob/) reports for the same run—poll the run for the authoritative count.
    - `created_at` integer — When the job was submitted.
    - `updated_at` integer — When the job's status was last updated.
  - `meta` InboxPreviewJobsMeta
    - `pagination` object
      - `limit` integer — The `limit` used for this page.
      - `next_cursor` string — Pass this as `cursor` to fetch the next page. Omitted when there are no more results.

## Other responses

- `400` — Bad request
- `401` — Unauthorized - missing or invalid API key
- `404` — Inbox previews aren't enabled for your workspace.
- `429` — Over the App API's shared limit of 10 requests per second per workspace—the same bucket every call in your workspace that isn't separately rate limited draws from, writes included. The response carries a `Retry-After` header.

## Changes

- **2026-09-17** `b2a806105969` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference/changes/v1/design_studio/inbox_previews/jobs/get.md)

---

[API](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference.md) · [All operations](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference/llms.txt) · [OpenAPI document](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference/revisions/d9edec5f938c?raw)
