---
title: "Get an inbox preview job"
method: GET
path: "/v1/design_studio/emails/{id}/inbox_previews/{run_id}"
tags: ["Design Studio emails"]
---

# Get an inbox preview job

`GET /v1/design_studio/emails/{id}/inbox_previews/{run_id}`

Returns the status of a preview job submitted with [Send for inbox previews](/integrations/api/app/tag/design-studio-emails/submitInboxPreview/), including each preview's settings.

## Path parameters

- `id` string, uuid, required
- `run_id` integer, required

## Response `200`

Successful response

- InboxPreviewJob — The status and results of an Inbox Previews job.
  - `run_id` integer — ID of the preview job.
  - `name` string — The batch label provided when you sent an email for previews. Empty if none was given.
  - `client_ids` string[] — The device identifiers requested for this job.
  - `created_at` integer — When you submitted the preview job.
  - `updated_at` integer — When the job's status was last updated.
  - `is_processed` boolean — `true` once every device has settled, for the email in the path—a multi-language run reports each of its emails separately, so this doesn't reflect the whole run when it covers more than one. Poll this field, and see the endpoint description for how often, and for when to give up.
  - `total_previews_requested` integer — Previews requested in the job, for the email in the path. 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, excluding cached ones. A fully cached run reports `0` here even though every tile is `Complete`—compare `total_previews_ready` against `total_previews_requested` instead to track progress.
  - `total_previews_bounced` integer — Previews that produced no screenshot, whether the vendor bounced them or they failed on Customer.io's side. Their credits are refunded when the run settles.
  - `total_previews_ready` integer — How many previews show a screenshot you can fetch, counted from the tiles themselves. This is the progress count to compare against `total_previews_requested`—`total_previews_succeeded` alone reads `0` on a fully cached run. It isn't the completion signal; `is_processed` is. Because a tile can be served by an earlier screenshot of the same content while this run's own render is still in flight, this can reach `total_previews_requested` before the run finishes.
  - `previews` InboxPreviewTile[] — One object per requested preview.
    - `client_id` string — The preview identifier, matching a value from `client_ids` in the submit request.
    - `display_name` string — Human-readable name of the client and device used to render the preview.
    - `os` string — Operating system the client runs on.
    - `category` 'Mobile' | 'Application' | 'Web' — Client category. `Mobile` is a phone's native mail app, for example the Gmail App on Android devices. `Application` is a desktop native mail app, for example Apple Mail on macOS. `Web` is webmail viewed in a desktop browser, for example Gmail.com in Firefox, and includes a `browser` value.
    - `browser` string — Browser used to render the client, when applicable. Populates when `category` is `Web`.
    - `status` 'Pending' | 'Processing' | 'Complete' | 'Bounced' — The vendor's own status for this device's render. Only `Complete` and `Bounced` are terminal.
    - `screenshots` object — Capture URLs keyed by image name—the full-size screenshot under `default`, plus a key per extra image the device renders. This is the only place the full-size URL appears; `thumbnail` and `full_thumbnail` are reduced variants. Omitted unless the render completed.
    - `thumbnail` string — Capture URL for a reduced-size version of the default screenshot. Useful for grid/list views where you don't want to load full-size screenshots. Omitted unless the render completed.
    - `full_thumbnail` string — Capture URL for a reduced, full-length version of the default screenshot. Omitted unless the render completed.
    - `cached` boolean — Set when the item wasn't newly generated in this preview job because it had already been generated. Omitted when `false`.
    - `error` InboxPreviewError — Details for a tile whose rendering failed.
      - `type` 'bounced' | 'vendor_timeout' | 'client_rejected' | 'vendor_request' | 'abandoned' | 'expired' | 'other' — Why this device has no screenshot: - `bounced`: the vendor rendered the device and reported a bounce. - `vendor_timeout`: submitted to the vendor, but didn't finish in time. - `client_rejected`: the vendor refused the device id. - `vendor_request`: the submission to the vendor itself failed. - `abandoned`: submitted, but the outcome is unknown. - `expired`: the screenshot rendered successfully but has since aged out of its retention window and is no longer available. Unlike the other types, this isn't a render failure. - `other`: any other cause. A tile with any of these types (except `expired`) was refunded its credit.
      - `message` string — A human-readable explanation, safe to show to a user.

## Other responses

- `401` — Unauthorized - missing or invalid API key
- `404` — The job doesn't exist, or 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/emails/:id/inbox_previews/:run_id/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)
