Skip to main content
GET
Get an email design

Authorizations

Authorization
string
header
default:Bearer brew_your_api_key
required

Send your Brew API key as Authorization: Bearer brew_xxx.

Headers

X-Brand-Id
string

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.

Required string length: 1 - 64

Path Parameters

emailId
string
required

Design id returned by POST /v1/emails and listed by GET /v1/emails.

Required string length: 1 - 64
Example:

"2SmZOWV3ZQ7W5x6g3m4pA"

Query Parameters

include
string

Comma-separated expansions: html (rendered HTML of the selected version, once it is ready), versions (lean { version, emailVersionId } history), text (the visible body text a reader sees), links (each link destination once, with its visible text and count).

emailVersionId
string

Read this saved version instead of the current head. Mutually exclusive with runId.

Required string length: 1 - 64
runId
string

Read the version one generation run produced — the runId a create or edit returned. Mutually exclusive with emailVersionId.

Required string length: 1 - 128

Response

The design row.

emailId
string
required
Minimum string length: 1
title
string
required
Minimum string length: 1
status
enum<string>
required
Available options:
generating,
ready,
failed
updatedAt
string<date-time>
required

Last stable design update. While status is generating, collection reads hold this at createdAt so body chunks do not reorder or invalidate the whole list; the completion transition publishes the final source timestamp.

group
object | null
required
previewStatus
enum<string>
required

available when previewImage is set; unavailable when a ready design has no saved screenshot; not_ready while generating or after a failure.

Available options:
available,
unavailable,
not_ready
emailVersionId
string
Minimum string length: 1
previewImage
string<uri>
subjectLine
string

The design's default inbox subject, persisted on the latest version. Distinct from title (canvas name). Detail-only; absent on rows where it has never been set (via the write surfaces' subjectLine field, or in-app). POST /v1/sends still requires an explicit subject.

previewText
string

The design's inbox preview line, read directly from the latest version's JSX (its single source of truth) — what a send delivers when no explicit previewText override is passed to POST /v1/sends. Detail-only; absent when the design has no .

html
string
versions
object[]
createdBy
string

Creator as Brew shows it: a name or "Former member", "API" or "MCP", or both joined ("Name · MCP"); absent when the creator cannot be named.

createdByUserId
string

Creator user id; absent for an organization API key.

version

The version that was read: its number, or latest for the current head.

Required range: x >= 0
runId
string

Echoes the runId query parameter when one was passed.

content
object

MCP only: a signed, expiring download of the selected version’s HTML, in place of an html too large to inline.

text
string

include=text: visible body text, merge tags kept (max 20,000 chars).

textTruncated
boolean

include=links: each destination once (href, first visible text, count); max 200.

errorMessage
string

Why the generation failed. Present when status is failed.

errorCause
string

A stable failure category, when one was recorded.