Figma Files & Comments
When a design is ready for review, read the Figma file or just the frames that matter, render them as PNG or SVG, check what changed between versions, and reply in the file's comment threads. Also browses team folders, components, styles and Dev Mode links.
Connect this API to an AI agent Browse all specs
What you can do with Figma Files & Comments via MCP
Every endpoint below becomes a governed tool your AI agent (Claude, ChatGPT, or a customer-facing VX agent) can call — with scoped permissions, sandbox testing, and audit logs.
| Method | Path | Operation | Description |
|---|---|---|---|
| GET | /v1/me |
getMe | Get the Figma user the token belongs to |
| GET | /v1/files/{file_key}/meta |
getFileMeta | Get a file's name, owner, last edit time and thumbnail |
| GET | /v1/files/{file_key} |
getFile | Read a file's pages and layers (limit with depth) |
| GET | /v1/files/{file_key}/nodes |
getFileNodes | Read only the frames or layers with the given ids |
| GET | /v1/images/{file_key} |
renderImages | Render frames or layers as PNG, JPG, SVG or PDF links |
| GET | /v1/files/{file_key}/versions |
listFileVersions | List the saved version history of a file |
| GET | /v1/files/{file_key}/comments |
listComments | List comments and replies in a file |
| POST | /v1/files/{file_key}/comments |
postComment | Post a comment or reply to a comment thread |
| POST | /v1/files/{file_key}/comments/{comment_id}/reactions |
addCommentReaction | React to a comment with an emoji |
| GET | /v2/teams/{team_id}/folders |
listTeamFolders | List a team's top-level folders |
| GET | /v2/folders/{folder_id}/files |
listFolderFiles | List the files in a folder |
| GET | /v1/files/{file_key}/components |
listFileComponents | List published components in a library file |
| GET | /v1/files/{file_key}/styles |
listFileStyles | List published color, text and effect styles in a file |
| GET | /v1/files/{file_key}/dev_resources |
listDevResources | List links attached to layers in Dev Mode |
Authentication
figmaToken
API key — sent as the X-Figma-Token header
How to get a credential
- Sign in to Figma and open Settings → Security → Personal access tokens.
- Click Generate new token, give it a name and an expiry.
- Select the scopes in the table below (read-only scopes are enough unless you want to post comments).
- Copy the token right away; Figma shows it only once.
Permissions used
| Scope | Operations |
|---|---|
| current_user:read | getMe |
| file_metadata:read | getFileMeta |
| file_content:read | getFile, getFileNodes, renderImages |
| file_versions:read | listFileVersions |
| file_comments:read | listComments |
| file_comments:write | postComment, addCommentReaction |
| folders:read | listTeamFolders, listFolderFiles |
| library_content:read | listFileComponents, listFileStyles |
| file_dev_resources:read | listDevResources |
Common errors
- 403 Forbidden: the token expired, lacks a scope above, or your account cannot open that file.
- 404 Not Found: wrong
file_key(copy it from the file URLfigma.com/design/<file_key>/...). - 400 Bad Request:
idsmissing or malformed on node and image calls (use1:2,1:3). - 429 Too Many Requests: rate limit for your plan and seat; wait for
Retry-After.
Store the token as a VX Agents API key credential; it is sent in the X-Figma-Token header.
Usage guide
Setup
- Credential: a Figma personal access token (sent as
X-Figma-Token) with the read scopes you need, plusfile_comments:writeto post comments. - Worth pinning:
file_keyfor the file you review most (fromfigma.com/design/<file_key>/...) andteam_id(fromfigma.com/files/team/<team_id>/...) for folder browsing.
Review a design
getFileMetafor the file name, last editor and last modified time.getFilewithdepth=1or2to list pages and top-level frames. Full files can be many MB, so avoid calling it withoutdepth.getFileNodeswithids=1:2,1:3to read only the frames being reviewed.renderImageswith the sameids,format=pngandscale=2to get image links for the frames (they expire after 30 days).listFileVersionsto see who saved what and when; pass a versionidasversionto compare old and new nodes.listComments(useas_md=true) to read open threads, thenpostCommentwithmessage. Addcomment_idto reply in a thread, orclient_meta({"node_id": "1:2", "node_offset": {"x": 0, "y": 0}}) to pin it to a frame.addCommentReactionfor a quick emoji.
Before postComment or addCommentReaction, show the text to the user and get a yes: everyone on the file sees it and gets notified.
Find files and library pieces
listTeamFolders→listFolderFilesto find a file's key.listFileComponentsandlistFileStyleson a library file list published components and styles;listDevResourceslists Dev Mode links (tickets, code) attached to layers.
Good to know
- Node ids look like
1:2. In URLs they appear asnode-id=1-2, so swap-for:. - Timestamps are ISO 8601 UTC.
- Rate limits depend on the plan and the seat type of the token owner. On 429, wait for
Retry-After. - A 403 on one file but not others means your account cannot open that file.
Source: Figma REST API reference (https://developers.figma.com/docs/rest-api/), checked 2026-10-19.
How to use this spec
- Create a free VX Agents account (sandbox tools included).
- Open the marketplace and connect “Figma Files & Comments” to an agent.
- Expose it as an MCP server for Claude/ChatGPT, or chat with it directly.