# Figma API API

> Figma API API on Apizie: 55 endpoints (Get file JSON, Get file JSON for specific nodes, Render images of file nodes, Get image fills, …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://apizie.tech/v1/business:figma/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `business:figma`
- Category: Business
- Status: byok
- Source: https://figma
- Page: https://apizie.tech/api/business/figma
- OpenAPI: https://apizie.tech/api/business/figma/openapi.json

This is the OpenAPI specification for the [Figma REST API](https://developers.figma.com/docs/rest-api/). Note: we are releasing the OpenAPI specification as a beta given the large surface area and complexity of the…

## Endpoints

### Get file JSON
`GET https://apizie.tech/v1/business:figma/get-file` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File to export JSON from. This can be a file key or branch key. Use `GET /v1/files/:key` with the `branch_data` query param to get the… |
| version | string | no | A specific version ID to get. Omitting this will get the current version of the file. |
| ids | string | no | Comma separated list of nodes that you care about in the document. If specified, only a subset of the document will be returned… |
| depth | number | no | Positive integer representing how deep into the document tree to traverse. For example, setting this to 1 returns only Pages, setting it… |
| geometry | string | no | Set to "paths" to export vector data. |
| plugin_data | string | no | A comma separated list of plugin IDs and/or the string "shared". Any data present in the document written by those plugins will be… |
| branch_data | boolean | no | Returns branch metadata for the requested file. If the file is a branch, the main file's key will be included in the returned response. If… |

### Get file JSON for specific nodes
`GET https://apizie.tech/v1/business:figma/get-file-nodes` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File to export JSON from. This can be a file key or branch key. Use `GET /v1/files/:key` with the `branch_data` query param to get the… |
| ids | string | yes | A comma separated list of node IDs to retrieve and convert. |
| version | string | no | A specific version ID to get. Omitting this will get the current version of the file. |
| depth | number | no | Positive integer representing how deep into the node tree to traverse. For example, setting this to 1 will return only the children… |
| geometry | string | no | Set to "paths" to export vector data. |
| plugin_data | string | no | A comma separated list of plugin IDs and/or the string "shared". Any data present in the document written by those plugins will be… |

### Render images of file nodes
`GET https://apizie.tech/v1/business:figma/get-images` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File to export images from. This can be a file key or branch key. Use `GET /v1/files/:key` with the `branch_data` query param to get the… |
| ids | string | yes | A comma separated list of node IDs to render. |
| version | string | no | A specific version ID to get. Omitting this will get the current version of the file. |
| scale | number | no | A number between 0.01 and 4, the image scaling factor. |
| format | string | no | A string enum for the image output format. |
| svg_outline_text | boolean | no | Whether text elements are rendered as outlines (vector paths) or as ` ` elements in SVGs. Rendering text elements as outlines guarantees… |
| svg_include_id | boolean | no | Whether to include id attributes for all SVG elements. Adds the layer name to the `id` attribute of an svg element. |
| svg_include_node_id | boolean | no | Whether to include node id attributes for all SVG elements. Adds the node id to a `data-node-id` attribute of an svg element. |
| svg_simplify_stroke | boolean | no | Whether to simplify inside/outside strokes and use stroke attribute if possible instead of ` `. |
| contents_only | boolean | no | Whether content that overlaps the node should be excluded from rendering. Passing false (i.e., rendering overlaps) may increase processing… |
| use_absolute_bounds | boolean | no | Use the full dimensions of the node regardless of whether or not it is cropped or the space around it is empty. Use this to export text… |

### Get image fills
`GET https://apizie.tech/v1/business:figma/get-image-fills` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File to get image URLs from. This can be a file key or branch key. Use `GET /v1/files/:key` with the `branch_data` query param to get the… |

### Get file metadata
`GET https://apizie.tech/v1/business:figma/get-file-meta` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File to get metadata for. This can be a file key or branch key. Use `GET /v1/files/:key` with the `branch_data` query param to get the… |

### Duplicate a file
`POST https://apizie.tech/v1/business:figma/post-file-duplicate` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | The key of the main file or branch to duplicate. |
| body | object | yes | JSON request body |

### Create a team
`POST https://apizie.tech/v1/business:figma/post-team` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Get a team
`GET https://apizie.tech/v1/business:figma/get-team` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| team_id | string | yes | The ID of the team. |

### Invite users to a team
`POST https://apizie.tech/v1/business:figma/post-team-invites` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| team_id | string | yes | The ID of the team to invite users to. |
| body | object | yes | JSON request body |

### Create a folder
`POST https://apizie.tech/v1/business:figma/post-team-folder` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| team_id | string | yes | The ID of the team in which to create the folder. |
| body | object | yes | JSON request body |

### Get top-level folders in a team
`GET https://apizie.tech/v1/business:figma/get-team-folders` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| team_id | string | yes | ID of the team to list folders from |

### Get subfolders in a folder
`GET https://apizie.tech/v1/business:figma/get-folder-folders` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| folder_id | string | yes | ID of the parent folder to list subfolders from |

### Get files in a folder
`GET https://apizie.tech/v1/business:figma/get-folder-files` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| folder_id | string | yes | ID of the folder to list files from |
| branch_data | boolean | no | Returns branch metadata in the response for each main file with a branch inside the folder. |

### Get folder metadata
`GET https://apizie.tech/v1/business:figma/get-folder-meta` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| folder_id | string | yes | ID of the folder to get metadata for |

### Get versions of a file
`GET https://apizie.tech/v1/business:figma/get-file-versions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File to get version history from. This can be a file key or branch key. Use `GET /v1/files/:key` with the `branch_data` query param to get… |
| page_size | number | no | The number of items returned in a page of the response. If not included, `page_size` is `30`. |
| before | number | no | A version ID for one of the versions in the history. Gets versions before this ID. Used for paginating. If the response is not paginated,… |
| after | number | no | A version ID for one of the versions in the history. Gets versions after this ID. Used for paginating. If the response is not paginated,… |

### Get comments in a file
`GET https://apizie.tech/v1/business:figma/get-comments` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File to get comments from. This can be a file key or branch key. Use `GET /v1/files/:key` with the `branch_data` query param to get the… |
| as_md | boolean | no | If enabled, will return comments as their markdown equivalents when applicable. |

### Add a comment to a file
`POST https://apizie.tech/v1/business:figma/post-comment` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File to add comments in. This can be a file key or branch key. Use `GET /v1/files/:key` with the `branch_data` query param to get the… |
| body | object | yes | JSON request body |

### Delete a comment
`POST https://apizie.tech/v1/business:figma/delete-comment` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File to delete comment from. This can be a file key or branch key. Use `GET /v1/files/:key` with the `branch_data` query param to get the… |
| comment_id | string | yes | Comment id of comment to delete |

### Get reactions for a comment
`GET https://apizie.tech/v1/business:figma/get-comment-reactions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File to get comment containing reactions from. This can be a file key or branch key. Use `GET /v1/files/:key` with the `branch_data` query… |
| comment_id | string | yes | ID of comment to get reactions from. |
| cursor | string | no | Cursor for pagination, retrieved from the response of the previous call. |

### Add a reaction to a comment
`POST https://apizie.tech/v1/business:figma/post-comment-reaction` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File to post comment reactions to. This can be a file key or branch key. Use `GET /v1/files/:key` with the `branch_data` query param to… |
| comment_id | string | yes | ID of comment to react to. |
| body | object | yes | JSON request body |

### Delete a reaction
`POST https://apizie.tech/v1/business:figma/delete-comment-reaction` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File to delete comment reaction from. This can be a file key or branch key. Use `GET /v1/files/:key` with the `branch_data` query param to… |
| comment_id | string | yes | ID of comment to delete reaction from. |
| emoji | string | yes | The emoji type of reaction as shortcode (e.g. `:heart:`, `:+1::skin-tone-2:`). The list of accepted emoji shortcodes can be found in [this… |

### Get current user
`GET https://apizie.tech/v1/business:figma/get-me` (byok)

### Get team components
`GET https://apizie.tech/v1/business:figma/get-team-components` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| team_id | string | yes | Id of the team to list components from. |
| page_size | number | no | Number of items to return in a paged list of results. Defaults to 30. Maximum of 1000. |
| after | number | no | Cursor indicating which id after which to start retrieving components for. Exclusive with before. The cursor value is an internally… |
| before | number | no | Cursor indicating which id before which to start retrieving components for. Exclusive with after. The cursor value is an internally… |

### Get file components
`GET https://apizie.tech/v1/business:figma/get-file-components` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File to list components from. This must be a main file key, not a branch key, as it is not possible to publish from branches. |

### Get component
`GET https://apizie.tech/v1/business:figma/get-component` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| key | string | yes | The unique identifier of the component. |

### Get team component sets
`GET https://apizie.tech/v1/business:figma/get-team-component-sets` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| team_id | string | yes | Id of the team to list component sets from. |
| page_size | number | no | Number of items to return in a paged list of results. Defaults to 30. |
| after | number | no | Cursor indicating which id after which to start retrieving component sets for. Exclusive with before. The cursor value is an internally… |
| before | number | no | Cursor indicating which id before which to start retrieving component sets for. Exclusive with after. The cursor value is an internally… |

### Get file component sets
`GET https://apizie.tech/v1/business:figma/get-file-component-sets` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File to list component sets from. This must be a main file key, not a branch key, as it is not possible to publish from branches. |

### Get component set
`GET https://apizie.tech/v1/business:figma/get-component-set` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| key | string | yes | The unique identifier of the component set. |

### Get team styles
`GET https://apizie.tech/v1/business:figma/get-team-styles` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| team_id | string | yes | Id of the team to list styles from. |
| page_size | number | no | Number of items to return in a paged list of results. Defaults to 30. |
| after | number | no | Cursor indicating which id after which to start retrieving styles for. Exclusive with before. The cursor value is an internally tracked… |
| before | number | no | Cursor indicating which id before which to start retrieving styles for. Exclusive with after. The cursor value is an internally tracked… |

### Get file styles
`GET https://apizie.tech/v1/business:figma/get-file-styles` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File to list styles from. This must be a main file key, not a branch key, as it is not possible to publish from branches. |

### Get style
`GET https://apizie.tech/v1/business:figma/get-style` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| key | string | yes | The unique identifier of the style. |

### Get webhooks by context or plan
`GET https://apizie.tech/v1/business:figma/get-webhooks` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| context | string | no | Context to create the resource on. Should be "team", "project", or "file". |
| context_id | string | no | The id of the context that you want to get attached webhooks for. If you're using context_id, you cannot use plan_api_id. |
| plan_api_id | string | no | The id of your plan. Use this to get all webhooks for all contexts you have access to. If you're using plan_api_id, you cannot use context… |
| cursor | string | no | If you're using plan_api_id, this is the cursor to use for pagination. If you're using context or context_id, this parameter is ignored.… |

### Create a webhook
`POST https://apizie.tech/v1/business:figma/post-webhook` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Get a webhook
`GET https://apizie.tech/v1/business:figma/get-webhook` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| webhook_id | string | yes | ID of webhook to get |

### Update a webhook
`POST https://apizie.tech/v1/business:figma/put-webhook` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| webhook_id | string | yes | ID of webhook to update |
| body | object | yes | JSON request body |

### Delete a webhook
`POST https://apizie.tech/v1/business:figma/delete-webhook` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| webhook_id | string | yes | ID of webhook to delete |

### Get webhook requests
`GET https://apizie.tech/v1/business:figma/get-webhook-requests` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| webhook_id | string | yes | The id of the webhook subscription you want to see events from |

### Get activity logs
`GET https://apizie.tech/v1/business:figma/get-activity-logs` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| events | string | no | Event type(s) to include in the response. Can have multiple values separated by comma. All events are returned by default. |
| start_time | number | no | Unix timestamp of the least recent event to include. This param defaults to one year ago if unspecified. |
| end_time | number | no | Unix timestamp of the most recent event to include. This param defaults to the current timestamp if unspecified. |
| limit | number | no | Maximum number of events to return. This param defaults to 1000 if unspecified. |
| order | string | no | Event order by timestamp. This param can be either "asc" (default) or "desc". |

### Get developer logs
`POST https://apizie.tech/v1/business:figma/get-developer-logs` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Get daily AI credit usage
`GET https://apizie.tech/v1/business:figma/get-ai-usage-daily` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| start_date | string | yes | The first day to include, inclusive, as a `YYYY-MM-DD` calendar date (UTC). Required. Must be on or after `2025-12-01` and no more than… |
| end_date | string | yes | The last day to include, inclusive, as a `YYYY-MM-DD` calendar date (UTC). Required. Must be on or after `start_date` and the current UTC… |
| user_email | string | no | Restrict the results to a single Figma user, identified by email. When omitted, rows for every user in the plan with usage in the range… |
| limit | integer | no | Maximum number of rows to return. This param defaults to 1000 if unspecified, and may not exceed 1000. |
| cursor | string | no | An opaque cursor returned from a previous request, used for pagination. |

### Get payments
`GET https://apizie.tech/v1/business:figma/get-payments` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| plugin_payment_token | string | no | Short-lived token returned from "getPluginPaymentTokenAsync" in the plugin payments API and used to authenticate to this endpoint. Read… |
| user_id | string | no | The ID of the user to query payment information about. You can get the user ID by having the user OAuth2 to the Figma REST API. |
| community_file_id | string | no | The ID of the Community file to query a user's payment information on. You can get the Community file ID from the file's Community page… |
| plugin_id | string | no | The ID of the plugin to query a user's payment information on. You can get the plugin ID from the plugin's manifest, or from the plugin's… |
| widget_id | string | no | The ID of the widget to query a user's payment information on. You can get the widget ID from the widget's manifest, or from the widget's… |

### Get local variables
`GET https://apizie.tech/v1/business:figma/get-local-variables` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File to get variables from. This can be a file key or branch key. Use `GET /v1/files/:key` with the `branch_data` query param to get the… |

### Get published variables
`GET https://apizie.tech/v1/business:figma/get-published-variables` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File to get variables from. This must be a main file key, not a branch key, as it is not possible to publish from branches. |

### Create/modify/delete variables
`POST https://apizie.tech/v1/business:figma/post-variables` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File to modify variables in. This can be a file key or branch key. Use `GET /v1/files/:key` with the `branch_data` query param to get the… |
| body | object | yes | JSON request body |

### Get dev resources
`GET https://apizie.tech/v1/business:figma/get-dev-resources` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | The file to get the dev resources from. This must be a main file key, not a branch key. |
| node_ids | string | no | Comma separated list of nodes that you care about in the document. If specified, only dev resources attached to these nodes will be… |

### Create dev resources
`POST https://apizie.tech/v1/business:figma/post-dev-resources` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Update dev resources
`POST https://apizie.tech/v1/business:figma/put-dev-resources` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Delete dev resource
`POST https://apizie.tech/v1/business:figma/delete-dev-resource` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | The file to delete the dev resource from. This must be a main file key, not a branch key. |
| dev_resource_id | string | yes | The id of the dev resource to delete. |

### Get library analytics component action data.
`GET https://apizie.tech/v1/business:figma/get-library-analytics-component-actions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File key of the library to fetch analytics data for. |
| cursor | string | no | Cursor indicating what page of data to fetch. Obtained from prior API call. |
| group_by | string | yes | A dimension to group returned analytics data by. |
| start_date | string | no | ISO 8601 date string (YYYY-MM-DD) of the earliest week to include. Dates are rounded back to the nearest start of a week. Defaults to one… |
| end_date | string | no | ISO 8601 date string (YYYY-MM-DD) of the latest week to include. Dates are rounded forward to the nearest end of a week. Defaults to the… |

### Get library analytics component usage data.
`GET https://apizie.tech/v1/business:figma/get-library-analytics-component-usages` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File key of the library to fetch analytics data for. |
| cursor | string | no | Cursor indicating what page of data to fetch. Obtained from prior API call. |
| group_by | string | yes | A dimension to group returned analytics data by. |

### Get library analytics style action data.
`GET https://apizie.tech/v1/business:figma/get-library-analytics-style-actions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File key of the library to fetch analytics data for. |
| cursor | string | no | Cursor indicating what page of data to fetch. Obtained from prior API call. |
| group_by | string | yes | A dimension to group returned analytics data by. |
| start_date | string | no | ISO 8601 date string (YYYY-MM-DD) of the earliest week to include. Dates are rounded back to the nearest start of a week. Defaults to one… |
| end_date | string | no | ISO 8601 date string (YYYY-MM-DD) of the latest week to include. Dates are rounded forward to the nearest end of a week. Defaults to the… |

### Get library analytics style usage data.
`GET https://apizie.tech/v1/business:figma/get-library-analytics-style-usages` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File key of the library to fetch analytics data for. |
| cursor | string | no | Cursor indicating what page of data to fetch. Obtained from prior API call. |
| group_by | string | yes | A dimension to group returned analytics data by. |

### Get library analytics variable action data.
`GET https://apizie.tech/v1/business:figma/get-library-analytics-variable-actions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File key of the library to fetch analytics data for. |
| cursor | string | no | Cursor indicating what page of data to fetch. Obtained from prior API call. |
| group_by | string | yes | A dimension to group returned analytics data by. |
| start_date | string | no | ISO 8601 date string (YYYY-MM-DD) of the earliest week to include. Dates are rounded back to the nearest start of a week. Defaults to one… |
| end_date | string | no | ISO 8601 date string (YYYY-MM-DD) of the latest week to include. Dates are rounded forward to the nearest end of a week. Defaults to the… |

### Get library analytics variable usage data.
`GET https://apizie.tech/v1/business:figma/get-library-analytics-variable-usages` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| file_key | string | yes | File key of the library to fetch analytics data for. |
| cursor | string | no | Cursor indicating what page of data to fetch. Obtained from prior API call. |
| group_by | string | yes | A dimension to group returned analytics data by. |

### Get oEmbed data
`GET https://apizie.tech/v1/business:figma/get-oembed` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | yes | The URL of the Figma file or published Make site to retrieve oEmbed data for. |
| maxwidth | integer | no | Maximum width of the embed in pixels. Defaults to 800. The response width will be adjusted to maintain a 16:9 aspect ratio with maxheight. |
| maxheight | integer | no | Maximum height of the embed in pixels. Defaults to 450. The response height will be adjusted to maintain a 16:9 aspect ratio with maxwidth. |

## Example
```
curl "https://apizie.tech/v1/business:figma/get-file" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the Figma API API?
Create a free Apizie key, then send GET https://apizie.tech/v1/business:figma/get-file with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the Figma API API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. Figma API itself also needs your own key from figma.

### Can AI agents use the Figma API API?
Yes. Add the Apizie MCP server (https://apizie.tech/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key business:figma.

### What is the status of the Figma API API?
Needs your own provider key (bring your own key)
