curl --request POST \
--url https://brew.new/api/v1/emails/{emailId}/client-previews \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'{
"previewId": "<string>",
"emailId": "<string>",
"status": "queued",
"previews": [
{
"id": "<string>",
"label": "<string>",
"category": "gmail",
"os": "<string>",
"dark": true,
"status": "running",
"imageUrl": "<string>",
"retryable": true,
"reason": "pending"
}
],
"pending": [
"<string>"
],
"createdAt": "2023-11-07T05:31:56Z",
"expiresAt": "2023-11-07T05:31:56Z",
"nextPollAfterMs": 1,
"credits": {
"cost": 123,
"status": "reserved"
},
"emailVersionId": "<string>"
}Preview across clients & devices
Starts a durable rendering job for the selected email version across real email clients, including Gmail, Outlook, Apple Mail, iOS, and dark-mode variants. Omit emailVersionId to pin the current version at admission.
Pass supported client IDs or send for the default spread. Returns previewId and per-client progress immediately. Read GET /v1/emails/client-previews/ to resume; polling never creates another provider test.
Reserves 10 credits at admission and settles once when useful output exists. If the job produces no usable image, the reservation is released. Failed clients include individual reasons and retryability; a partial result retains all successful full-size links.
curl --request POST \
--url https://brew.new/api/v1/emails/{emailId}/client-previews \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'{
"previewId": "<string>",
"emailId": "<string>",
"status": "queued",
"previews": [
{
"id": "<string>",
"label": "<string>",
"category": "gmail",
"os": "<string>",
"dark": true,
"status": "running",
"imageUrl": "<string>",
"retryable": true,
"reason": "pending"
}
],
"pending": [
"<string>"
],
"createdAt": "2023-11-07T05:31:56Z",
"expiresAt": "2023-11-07T05:31:56Z",
"nextPollAfterMs": 1,
"credits": {
"cost": 123,
"status": "reserved"
},
"emailVersionId": "<string>"
}Authorizations
Headers
The brand this request acts on. REQUIRED for organization-scoped credentials (otherwise 400 BRAND_ID_REQUIRED — there is no default brand); list ids with GET /v1/brands. Brand-scoped credentials may omit it, and sending a different brand returns 403 BRAND_SCOPE_MISMATCH. A brand outside your organization returns 404 BRAND_NOT_FOUND.
1 - 64Path Parameters
Body
Client ids to render. Omit for popular Gmail, Outlook, Apple Mail and iOS clients. Supported: gmailcom-lm_chrcurrent_win10 = Gmail (Web); gmailcom-dm_chrcurrent_win10 = Gmail (Web, Dark); android16_gmailapp_pixel10_lm = Gmail (Android); android16_gmailapp_pixel10_dm = Gmail (Android, Dark); outlook2021_win11_lm_dt = Outlook 2021 (Windows); outlook2021_win11_dm_dt = Outlook 2021 (Windows, Dark); o365_w10_lm_dt = Outlook 365 (Windows); outlookcom-lm_chrcurrent_win10 = Outlook.com (Web); applemail16 = Apple Mail (macOS); applemail16_dm = Apple Mail (macOS, Dark); iphone16_18 = Apple Mail (iOS); iphone16_18_dm = Apple Mail (iOS, Dark); yahoocom-lm_chrcurrent_win10 = Yahoo Mail (Web).
1 - 12 elements1 - 80Response
An existing matching rendering job, including terminal results when already complete.
Was this page helpful?