---
title: "Import a Figma frame"
method: POST
path: "/v1/emails/figma"
tags: ["Emails"]
---

# Import a Figma frame

`POST /v1/emails/figma`

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`.

## Headers

- `Idempotency-Key` string

## Request body

- FigmaToEmailRequest
  - `figmaUrl` string, uri, required — A figma.com design, file, or prototype URL for a specific frame. The URL must include a node-id query parameter.
  - `title` string — Optional design title; defaults to the Figma frame name.
  - `format` 'jsx' | 'html' — Source representation returned in `content`: React Email JSX by default, or rendered email-safe HTML.

## Response `201`

The converted design was persisted and the requested source representation is returned in `content`.

- FigmaToEmailResponse
  - `emailId` string, required
  - `emailVersionId` string, required
  - `title` string, required
  - `format` 'jsx' | 'html', required
  - `content` string, required
  - `warningCount` integer, required
  - `exportedNodeCount` integer, required
  - `previewImage` string, uri

## Other responses

- `400` — The JSON body is invalid, or the URL is not a Figma frame link containing `node-id`.
- `401` — The API key was missing, invalid, or revoked.
- `403` — The API key lacks the emails scope, or the connected Figma account cannot read the file.
- `404` — The Figma file or selected frame no longer exists.
- `409` — The same `Idempotency-Key` was reused with a different request body.
- `422` — Figma is not connected for the API-key brand, or the selected frame could not be converted.
- `429` — The request hit the rolling rate limit window.
- `500` — Unexpected internal error.
- `503` — Figma is temporarily unavailable.

---

[API](https://skmtc.net/brew/apis/brew-public-api-v1.md) · [All operations](https://skmtc.net/brew/apis/brew-public-api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/brew/brew-public-api-v1/revisions/db96cfedc6c5/schema)
