canonical: https://jentic.com/apis/figma.com/figma

# Figma REST API

The Figma REST API provides programmatic read and write access to Figma files, projects, comments, components, styles, variables, webhooks, dev resources, activity logs, and user information. It exposes 38 endpoints, including specialised operations like rendering images from a file and retrieving image fills. Authentication supports both Personal Access Tokens via the X-Figma-Token header and OAuth2 for delegated app integrations.

## For AI agents

Read Figma files and projects, post comments, manage components and variables, render images, and subscribe to webhooks across 38 endpoints, with PAT or OAuth2 auth.

## Scope

Does not handle real-time multiplayer cursors, plugin runtime, or local file editing - use for reading and writing Figma file metadata, comments, and rendered assets only.

## Capabilities

- Retrieve file structure and individual nodes from a Figma design
- Render PNG, JPG, SVG, and PDF images from selected nodes
- Post and delete comments on a file with reactions
- List components, component sets, and styles published in a team
- Read and update local variables and variable collections inside a file
- Subscribe to webhooks for file updates, comments, and library publications

## Use cases

### Design-to-Code Asset Export

Export design assets directly from Figma files into a build pipeline. The API exposes GET /v1/images/{key} to render selected nodes as PNG, JPG, SVG, or PDF in one call, plus GET /v1/files/{key}/images for image fills already embedded in the file. This replaces manual export-and-upload steps and scales to dozens of assets per build.

Example prompt: GET /v1/images/{key}?ids=node-id&format=png&scale=2 and return the rendered image URL

### Design Review Comment Automation

Post structured review comments on Figma frames from CI checks or accessibility scanners. POST /v1/files/{key}/comments accepts a node-anchored payload, and DELETE removes them when issues are resolved. Useful for design-system enforcement workflows where automated checks should leave actionable feedback in context.

Example prompt: POST /v1/files/{key}/comments with the message text and the target node_id from a failing accessibility check

### Component Library Sync

Mirror Figma component metadata into a developer documentation site or design tokens pipeline. The API surfaces /v1/files/{key}/components and team-level component endpoints so an agent can pull canonical names, descriptions, and keys for downstream syncing. Handles libraries with hundreds of components without manual listing.

Example prompt: GET the team components endpoint, filter by library_key, and write a JSON mapping of component name to key

### AI Agent Design Inspection via Jentic

Through Jentic, an agent can answer questions like which frames lack alt text or how many components a team published last week. Jentic exposes Figma's file, comment, and component operations as discoverable tools, letting a Claude or GPT agent inspect designs and post feedback without writing custom plugins.

Example prompt: Search Jentic for 'get figma file', call GET /v1/files/{key}, and return frames missing accessibility annotations

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /v1/files/{key} | Get a file |
| GET | /v1/files/{key}/nodes | Get specific nodes |
| GET | /v1/images/{key} | Render rendered images |
| POST | /v1/files/{key}/comments | Post a comment |
| GET | /v1/teams/{team_id}/projects | Get team projects |
| GET | /v1/projects/{project_id}/files | Get project files |

## Key resources

- **Files** — Read file structure, nodes, and image fills
- **Projects** — List team projects and the files within them
- **Comments** — Post, list, and delete comments and reactions
- **Components** — Access components and component sets
- **Styles** — List published styles for a team
- **Variables** — Read and update local variables
- **Webhooks** — Subscribe to file and library events
- **Dev Resources** — Manage developer resources attached to nodes
- **Activity Logs** — Audit organisation activity

## Why Jentic

- **Setup:** Wiring the Figma REST API by hand means choosing between a Personal Access Token and OAuth2, sending the X-Figma-Token header, and threading file keys, team ids, and project ids through the endpoints yourself. Through Jentic you install once, import the Figma REST API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Figma puts the file key, team id, and project id in the URL path (/v1/files/{key}, /v1/teams/{team_id}/projects), so a rule can pin your agent to the files and teams you allow. You choose the operations it may call, so a write like posting a comment is not included unless you add it to the read operations.
- **Credential handling:** Your Figma Personal Access Token or OAuth2 credentials are stored once, encrypted, by your own Jentic One instance and injected at execution time. The raw X-Figma-Token header value never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'render a figma node as png' or 'read a file's comments', and Jentic returns the matching Figma operation with its input schema, so the agent calls it without reading the Figma developer docs.

## Related APIs

- **Sketchfab API** — 3D model hosting and embedding alternative for design teams shipping 3D content
- **Miro API** — Whiteboard collaboration alongside Figma for ideation phases
- **Asana API** — Project management for design tasks tied to Figma files

## FAQ

### What authentication does the Figma REST API use?

Figma supports two methods: a Personal Access Token sent as X-Figma-Token, and OAuth2 for third-party app integrations. Through Jentic both are stored encrypted in your Jentic One instance and never enter agent context.

### Can I render a Figma node as an image through the API?

Yes. GET /v1/images/{key} accepts node IDs and a format parameter (png, jpg, svg, pdf) and returns rendered image URLs hosted by Figma's CDN.

### What are the rate limits for the Figma REST API?

Figma applies different limits per endpoint; image rendering and file fetching have lower per-minute caps than metadata reads. Check developers.figma.com for current values, which may change with plan tier.

### How do I post a comment on a file through Jentic?

Search Jentic for 'post figma comment', load the POST /v1/files/{key}/comments schema, and execute with the message and target node_id. Run pip install jentic to start.

### Does the Figma API support webhooks?

Yes. The Webhooks resource lets you subscribe to events such as FILE_UPDATE, FILE_COMMENT, and LIBRARY_PUBLISH so agents can react to design changes without polling.

### Can I read and update Figma variables through the API?

Yes. The Variables endpoints expose local variables and variable collections inside a file, supporting design-token sync workflows. Updating variables requires the variables:write OAuth scope.

### Can I limit what my agent is allowed to do with the Figma REST API?

Yes. Because you run Jentic One yourself, your own rules decide which Figma operations and credentials the agent can use. Since Figma puts the file key, team id, and project id in the URL path (GET /v1/files/{key}, GET /v1/teams/{team_id}/projects), you can pin the agent to only the files and teams you allow. You also choose the exact operations it may call, so a write such as POST /v1/files/{key}/comments stays unavailable unless you add it to the read-only set you have granted.
