Skip to main content
POST

Authorizations

Authorization
string
header
default:Bearer brew_your_api_key
required

Send your Brew API key as Authorization: Bearer brew_xxx.

Headers

Idempotency-Key
string

Optional idempotency key for safe retries. Reusing the same key with the same request body returns the original response for 24 hours.

Required string length: 1 - 100
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

Body

application/json
test
enum<boolean>
required
Available options:
true
emailId
string
required
Minimum string length: 1
subject
string
required
Minimum string length: 1
to
string<email>
required
emailVersionId
string
Minimum string length: 1
previewText
string

Inbox preheader for this test send — overrides the design's JSX . Omit to deliver the design's own preview line.

Maximum string length: 200
replyTo
string<email>
domainId
string

OPTIONAL verified sending domain for this test. Omit for the Brew default sender (hello@email.brew.new). Must be a verified domain owned by this org/brand — an unverified or foreign domain is rejected (404/422), never silently downgraded to the Brew default.

Minimum string length: 1
senderName
string
Required string length: 1 - 128
fromEmail
string
Required string length: 1 - 64
variables
object

Example values for {{ var | fallback }} merge tags in the subject, previewText, and body. A supplied value wins over contact fields and the declared fallback; undefined variables render their fallback (or empty). Max 25 entries; keys must match the merge-tag grammar (letter/_/$ start, then word chars/dots/$, max 64 chars); values max 256 chars.

payload
object

Nested JSON template data for Liquid-mode designs, exposed as trigger.* / payload.*. Flat variables still resolve legacy {{ tag | fallback }} merge tags; send both if a design mixes syntaxes. Live-fire parity on non-Liquid workspaces: scalar keys resolve merge tags (below variables) and nested values are rejected with a 400.

Response

The TEST send (test: true) was delivered synchronously to the single recipient.

status
enum<string>
required
Available options:
sent
recipient
string<email>
required