Import a Figma frame
Deterministically converts one selected Figma frame into a new editable Brew email design. No model runs and no credits are charged.
figmaUrl must be a Figma frame link containing node-id. The API-key brand must already have Figma connected in Brew Integrations, and that connected account must be able to read the file.
Set format to jsx (default) for React Email JSX or html for rendered email HTML. The requested representation is returned in content; the persisted design is identified by emailId and emailVersionId. Optional targetGroupId (grp_… or ungrouped) or targetGroupName (resolve-or-create) — not both; omit to land Ungrouped. Unknown targetGroupId → 404 EMAIL_GROUP_NOT_FOUND.
Authorizations
Send your Brew API key as Authorization: Bearer brew_xxx.
Headers
Optional idempotency key for safe retries. Reusing the same key with the same request body returns the original response for 24 hours.
1 - 100The 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 - 64Body
A figma.com design, file, or prototype URL for a specific frame. The URL must include a node-id query parameter.
1 - 2048Optional design title; defaults to the Figma frame name.
1 - 120Existing canvas group id (grp_…), or ungrouped. Mutually exclusive with targetGroupName.
1 - 64Resolve-or-create a group by this name. Mutually exclusive with targetGroupId.
1 - 60Inbox subject line to set on the design (subjectLine — distinct from title, the canvas name). Sends still take an explicit per-send subject; this is the design's default, seeded into the send dialog and returned by GET /v1/emails?emailId=.
1 - 250Source representation returned in content: React Email JSX by default, or rendered email-safe HTML.
jsx, html Response
The converted design was persisted and the requested source representation is returned in content.
111jsx, html 1x >= 0x >= 0