January 2026 · Available on all plans.
What Shipped
Brew now has a Public API. Everything you do in the app (generate an on-brand design, send it through your verified domain, read the analytics, wire up event-driven automations) is a documented HTTP endpoint underhttps://brew.new/api/v1, backed by an OpenAPI 3.1
spec. Bring your own backend; Brew stays the creation and delivery
engine.
The surface is built around one idea: emails are pure designs, and a
send is the unit of delivery and analytics. A design carries no send
state and no type, so you can send the same one as many times as you
like, and every send is a sendId you poll for status and stats.
Send Your First Email in ~5 Lines
Create a key at brew.new/settings/api (each key is bound to one brand at creation), then generate a design and send it. Assuming you already have a verified domain and a saved audience:POST /v1/sends endpoint with
{ "test": true }. It delivers synchronously from the Brew sender to a
single address, so it needs no verified domain or audience. Don’t have
the ids for the real send yet? GET /v1/domains and GET /v1/audiences
list them, and GET /v1/brand returns the brand your key is pinned to
(check ready before generating).
Watch It Land
Poll the send you just started for its lifecycle and aggregated stats, and addinclude=events for the per-recipient feed:
POST takes an Idempotency-Key header, so a retried send never
goes out twice.
What’s in v1
- Designs: generate (
POST /v1/emails), import existing HTML / MJML / JSX, AI-edit, version, and restore. - Sends: one polymorphic
POST /v1/sendsfor both the real send and the{ test: true }QA send, plus cancel-before-it-goes-out. - Analytics: read-only reporting over sends and their per-recipient events.
- Automations: wire a trigger to a graph of send / wait / filter / split nodes and fire it per-recipient from your backend.
- Contacts, audiences, domains, brand, templates: the supporting resources, all scoped to the one brand your key is bound to.
GET /v1/help (structured JSON),
GET /v1/llms.txt (prose for agents), and GET /v1/health.
Prefer Typed Wrappers?
Brew ships an official TypeScript SDK,@brew.new/sdk, with a
resource-oriented method for every endpoint (brew.emails.generate,
brew.emails.send, brew.analytics.sends.list, …). Or generate a
client in any language from the OpenAPI spec.