Figma
Design files. Read a file, its components and styles, export images, comment on a design, and watch a team's libraries.
| Property | Value |
|---|---|
| Slug | figma |
| Definition version | 0.1.0 |
| Base URL | https://api.figma.com |
| Auth schemes | oauth2, api_key |
| Action tools | 49 |
| By class | 38 read, 8 write, 3 destructive |
| Triggers | 0 |
| Provider rate limit | not declared, so outbound calls are unpaced |
Measured routing accuracy
57 golden cases replayed through the router over the whole index: measured over corpus ea4f12ad2948 (65 toolkits, 2283 tools indexed and 13 declared uncallable), 45 cases written by hand and 12 cases from the paraphrase pass. A case counts as top-1 when its gold tool ranked first and top-8 when it reached the slate at all.
| Measure | Cases | Share |
|---|---|---|
| top-1 | 38/57 | 66.7% |
| top-8 | 53/57 | 93.0% |
4 of the 49 action tools listed above are declared uncallable, so they are indexed nowhere and answer none of these cases. The counts here are scored over the other 45.
The sweep is offline: the reranker is a deterministic identity fake that returns candidates in the order retrieval produced them, so top-1 measures retrieval order rather than a reranked slate. just eval-live measures the same cases through the live reranker.
Authentication
Connect an entity with ConnectionsService.InitiateConnection, naming this toolkit's slug. Credentials stay in the connections vault; callers hold connected-account ids only.
oauth2
| Property | Value |
|---|---|
| Authorization URL | https://www.figma.com/oauth |
| Token URL | https://api.figma.com/v1/oauth/token |
| Default scopes | current_user:read, file_comments:read, file_comments:write, file_content:read, file_dev_resources:read, file_dev_resources:write, file_metadata:read, file_variables:read, file_variables:write, file_versions:read, files:read, library_analytics:read, library_assets:read, library_content:read, project_metadata:read, projects:read, team_library_content:read, webhooks:read, webhooks:write |
| Refresh tokens | yes, the refresh daemon renews ahead of expiry |
api_key
| Property | Value |
|---|---|
| Placement | header |
| Name | X-Figma-Token |
| Rendered as | {key} |
Submit the key with ConnectionsService rather than putting it in a request; it is sealed at rest and never returned.
Tools
49 action tools. The catalog-wide slug is figma.<tool>, which is what search_tools returns and call_tool takes.
figma.get_activity_logs
Get activity logs. Returns a list of activity log events. Calls GET /v1/activity_logs.
Class read (reads only). Scopes org:activity_log_read. Calls GET /v1/activity_logs.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
end_time | number | no | Unix timestamp of the most recent event to include. This param defaults to the current timestamp if unspecified. |
events | string | no | Event type(s) to include in the response. Can have multiple values separated by comma. All events are returned by default. |
limit | number | no | Maximum number of events to return. This param defaults to 1000 if unspecified. |
order | string, one of asc, desc | no | Event order by timestamp. This param can be either "asc" (default) or "desc". Defaults to asc. |
start_time | number | no | Unix timestamp of the least recent event to include. This param defaults to one year ago if unspecified. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
error | boolean, one of false | For successful requests, this value is always false. |
meta | object | |
meta.activity_logs | array | An array of activity logs sorted by timestamp in ascending order by default. |
meta.cursor | string | Encodes the last event (the most recent event) |
meta.next_page | boolean | Whether there is a next page of events |
status | number, one of 200 | The response status code. |
Also retrieved by: "who did what in our figma org", "audit trail of account events", "history of admin changes on the plan".
figma.get_ai_usage_daily
Get daily AI credit usage. Returns per-user, per-day AI credit usage for the plan associated with the calling token. Calls GET /v1/ai_usage/daily.
Class read (reads only). No scopes beyond the connection's defaults. Calls GET /v1/ai_usage/daily.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cursor | string | no | An opaque cursor returned from a previous request, used for pagination. |
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 day or earlier. |
limit | integer | no | Maximum number of rows to return. This param defaults to 1000 if unspecified, and may not exceed 1000. Defaults to 1000. |
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 366 days before the current UTC day. |
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 are returned. An email that matches no Figma user returns a 400. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
has_next_page | boolean | Whether there is a next page of results to fetch. |
next_cursor | string | An opaque cursor to pass as the cursor query parameter to fetch the next page. Empty when there are no more pages. |
rows | array of object | Per-user, per-day AI credit usage aggregates, ordered by day, then user, then editor_type. |
rows[].day | string | The calendar date (UTC) of the aggregated usage, in YYYY-MM-DD format. |
rows[].editor_type | string, one of design, figjam, slides, sites, buzz, make, not_applicable | The editor the AI action was associated with. not_applicable when the underlying AI action had no associated file. |
rows[].license_group_id | string | The id of the license group the usage was attributed to, or null when the usage had no associated license group. |
rows[].license_group_name | string | The name of the license group the usage was attributed to, or null when the usage had no associated license group. |
rows[].metering_period_end | string | The end of the plan-scoped metering period this usage belongs to, as an RFC 3339 UTC timestamp (e.g. 2026-06-01T00:00:00Z). |
rows[].metering_period_start | string | The start of the plan-scoped metering period this usage belongs to, as an RFC 3339 UTC timestamp (e.g. 2026-05-01T00:00:00Z). |
rows[].plan_credits_sum | integer | The sum of plan-level (shared pool) credits consumed for this day, user, and editor type. |
rows[].plan_id | string | The id of the plan the usage belongs to. |
rows[].seat_credits_sum | integer | The sum of seat-level (per-user-allocated) credits consumed for this day, user, and editor type. |
rows[].team_id | string | The id of the team the usage was attributed to, or null when the usage had no associated team. |
rows[].team_name | string | The name of the team the usage was attributed to, or null when the usage had no associated team. |
rows[].user_email | string | The email of the Figma user that consumed the credits, or null when the user's email could not be resolved (e.g. a deleted user). |
rows[].user_id | string | The id of the Figma user that consumed the credits. |
rows[].workspace_id | string | The id of the workspace the usage was attributed to, or null when the usage had no associated workspace. |
rows[].workspace_name | string | The name of the workspace the usage was attributed to, or null when the usage had no associated workspace. |
Also retrieved by: "how many ai credits did people burn", "per person ai spend by day", "daily consumption of the plan's ai allowance".
figma.get_library_analytics_component_actions
Figma library analytics for component actions: how often people inserted or detached the components a library publishes, broken down by team or week. Calls GET /v1/analytics/libraries/{file_key}/component/actions.
Class read (reads only). Scopes library_analytics:read. Calls GET /v1/analytics/libraries/{{params.file_key}}/component/actions.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cursor | string | no | Cursor indicating what page of data to fetch. Obtained from prior API call. |
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 latest computed week. |
file_key | string | yes | File key of the library to fetch analytics data for. |
group_by | string, one of component, team | 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 year prior. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
cursor | string | The cursor to use to fetch the next page of data. Not present if next_page is false. |
next_page | boolean | Whether there is a next page of data that can be fetched. |
rows | array of object | An array of analytics data. |
rows[].component_key | string | Unique, stable id of the component. |
rows[].component_name | string | Name of the component. |
rows[].component_set_key | string | Unique, stable id of the component set that this component belongs to. |
rows[].component_set_name | string | Name of the component set that this component belongs to. |
rows[].detachments | number | The number of detach events for this period. |
rows[].insertions | number | The number of insertion events for this period. |
rows[].week | string | The date in ISO 8601 format. e.g. 2023-12-13 |
Also retrieved by: "how often are our components inserted", "who is using the design system components", "component insert and detach counts by team".
figma.get_library_analytics_component_usages
Figma library analytics for component usage: which files use the components a library publishes, and how many places each one appears in. Calls GET /v1/analytics/libraries/{file_key}/component/usages.
Class read (reads only). Scopes library_analytics:read. Calls GET /v1/analytics/libraries/{{params.file_key}}/component/usages.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cursor | string | no | Cursor indicating what page of data to fetch. Obtained from prior API call. |
file_key | string | yes | File key of the library to fetch analytics data for. |
group_by | string, one of component, file | yes | A dimension to group returned analytics data by. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
cursor | string | The cursor to use to fetch the next page of data. Not present if next_page is false. |
next_page | boolean | Whether there is a next page of data that can be fetched. |
rows | array of object | An array of analytics data. |
rows[].component_key | string | Unique, stable id of the component. |
rows[].component_name | string | Name of the component. |
rows[].component_set_key | string | Unique, stable id of the component set that this component belongs to. |
rows[].component_set_name | string | Name of the component set that this component belongs to. |
rows[].files_using | number | The number of files using the component within the organization. |
rows[].teams_using | number | The number of teams using the component within the organization. |
rows[].usages | number | The number of instances of the component within the organization. |
Also retrieved by: "which files use our design system components", "where is this component actually used", "count the places a library symbol appears".
figma.get_library_analytics_style_actions
Figma library analytics for style actions: how often people applied or detached the colour and text styles a library publishes, broken down by team or week. Calls GET /v1/analytics/libraries/{file_key}/style/actions.
Class read (reads only). Scopes library_analytics:read. Calls GET /v1/analytics/libraries/{{params.file_key}}/style/actions.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cursor | string | no | Cursor indicating what page of data to fetch. Obtained from prior API call. |
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 latest computed week. |
file_key | string | yes | File key of the library to fetch analytics data for. |
group_by | string, one of style, team | 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 year prior. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
cursor | string | The cursor to use to fetch the next page of data. Not present if next_page is false. |
next_page | boolean | Whether there is a next page of data that can be fetched. |
rows | array of object | An array of analytics data. |
rows[].detachments | number | The number of detach events for this period. |
rows[].insertions | number | The number of insertion events for this period. |
rows[].style_key | string | Unique, stable id of the style. |
rows[].style_name | string | The name of the style. |
rows[].style_type | string | The type of the style. |
rows[].week | string | The date in ISO 8601 format. e.g. 2023-12-13 |
Also retrieved by: "how often are our shared styles applied", "colour and text style adoption over time", "is anyone detaching the library styles".
figma.get_library_analytics_style_usages
Figma library analytics for style usage: which files use the colour and text styles a library publishes, and how many places each one appears in. Calls GET /v1/analytics/libraries/{file_key}/style/usages.
Class read (reads only). Scopes library_analytics:read. Calls GET /v1/analytics/libraries/{{params.file_key}}/style/usages.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cursor | string | no | Cursor indicating what page of data to fetch. Obtained from prior API call. |
file_key | string | yes | File key of the library to fetch analytics data for. |
group_by | string, one of style, file | yes | A dimension to group returned analytics data by. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
cursor | string | The cursor to use to fetch the next page of data. Not present if next_page is false. |
next_page | boolean | Whether there is a next page of data that can be fetched. |
rows | array of object | An array of analytics data. |
rows[].files_using | number | The number of files using the style within the organization. |
rows[].style_key | string | Unique, stable id of the style. |
rows[].style_name | string | The name of the style. |
rows[].style_type | string | The type of the style. |
rows[].teams_using | number | The number of teams using the style within the organization. |
rows[].usages | number | The number of usages of the style within the organization. |
Also retrieved by: "which files use our shared colour styles", "where is a text style actually used", "count the places a library style appears".
figma.get_library_analytics_variable_actions
Figma library analytics for variable actions: how often people applied or detached the design tokens a library publishes, broken down by team or week. Calls GET /v1/analytics/libraries/{file_key}/variable/actions.
Class read (reads only). Scopes library_analytics:read. Calls GET /v1/analytics/libraries/{{params.file_key}}/variable/actions.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cursor | string | no | Cursor indicating what page of data to fetch. Obtained from prior API call. |
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 latest computed week. |
file_key | string | yes | File key of the library to fetch analytics data for. |
group_by | string, one of variable, team | 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 year prior. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
cursor | string | The cursor to use to fetch the next page of data. Not present if next_page is false. |
next_page | boolean | Whether there is a next page of data that can be fetched. |
rows | array of object | An array of analytics data. |
rows[].collection_key | string | Unique, stable id of the collection the variable belongs to. |
rows[].collection_name | string | The name of the collection the variable belongs to. |
rows[].detachments | number | The number of detach events for this period. |
rows[].insertions | number | The number of insertion events for this period. |
rows[].variable_key | string | Unique, stable id of the variable. |
rows[].variable_name | string | The name of the variable. |
rows[].variable_type | string | The type of the variable. |
rows[].week | string | The date in ISO 8601 format. e.g. 2023-12-13 |
Also retrieved by: "how often are our design tokens applied", "token adoption across the org over time", "is anyone detaching the shared variables".
figma.get_library_analytics_variable_usages
Figma library analytics for variable usage: which files use the design tokens a library publishes, and how many places each one appears in. Calls GET /v1/analytics/libraries/{file_key}/variable/usages.
Class read (reads only). Scopes library_analytics:read. Calls GET /v1/analytics/libraries/{{params.file_key}}/variable/usages.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cursor | string | no | Cursor indicating what page of data to fetch. Obtained from prior API call. |
file_key | string | yes | File key of the library to fetch analytics data for. |
group_by | string, one of variable, file | yes | A dimension to group returned analytics data by. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
cursor | string | The cursor to use to fetch the next page of data. Not present if next_page is false. |
next_page | boolean | Whether there is a next page of data that can be fetched. |
rows | array of object | An array of analytics data. |
rows[].collection_key | string | Unique, stable id of the collection the variable belongs to. |
rows[].collection_name | string | The name of the collection the variable belongs to. |
rows[].files_using | number | The number of files using the variable within the organization. |
rows[].teams_using | number | The number of teams using the variable within the organization. |
rows[].usages | number | The number of usages of the variable within the organization. |
rows[].variable_key | string | Unique, stable id of the variable. |
rows[].variable_name | string | The name of the variable. |
rows[].variable_type | string | The type of the variable. |
Also retrieved by: "which files use our design tokens", "where is a shared variable actually used", "count the places a token appears".
figma.get_component_set
Get one published Figma component set by its key: the variant group's metadata, which library it came from, and when it was published. Calls GET /v1/component_sets/{key}.
Class read (reads only). Scopes files:read, library_assets:read. Calls GET /v1/component_sets/{{params.key}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
key | string | yes | The unique identifier of the component set. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
error | boolean, one of false | For successful requests, this value is always false. |
meta | object | A node containing a set of variants of a component. |
meta.containing_frame | object | Data on the frame a component resides in. |
meta.created_at | string (date-time) | The UTC ISO 8601 time when the component set was created. |
meta.description | string | The description of the component set as entered by the publisher. |
meta.file_key | string | The unique identifier of the Figma file that contains the component set. |
meta.key | string | The unique identifier for the component set. |
meta.name | string | The name of the component set. |
meta.node_id | string | The unique identifier of the component set node within the Figma file. |
meta.thumbnail_url | string | A URL to a thumbnail image of the component set. |
meta.updated_at | string (date-time) | The UTC ISO 8601 time when the component set was last updated. |
meta.user | object | A description of a user. |
status | number, one of 200 | The status of the request. |
Also retrieved by: "look up a published variant group", "what library does this component set come from", "metadata for one set of component variants".
figma.get_component
Get one published Figma component by its key: the symbol's metadata, which library published it, and when. Calls GET /v1/components/{key}.
Class read (reads only). Scopes files:read, library_assets:read. Calls GET /v1/components/{{params.key}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
key | string | yes | The unique identifier of the component. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
error | boolean, one of false | For successful requests, this value is always false. |
meta | object | An arrangement of published UI elements that can be instantiated across figma files. |
meta.containing_frame | object | Data on the frame a component resides in. |
meta.created_at | string (date-time) | The UTC ISO 8601 time when the component was created. |
meta.description | string | The description of the component as entered by the publisher. |
meta.file_key | string | The unique identifier of the Figma file that contains the component. |
meta.key | string | The unique identifier for the component. |
meta.name | string | The name of the component. |
meta.node_id | string | The unique identifier of the component node within the Figma file. |
meta.thumbnail_url | string | A URL to a thumbnail image of the component. |
meta.updated_at | string (date-time) | The UTC ISO 8601 time when the component was last updated. |
meta.user | object | A description of a user. |
status | number, one of 200 | The status of the request. |
Also retrieved by: "look up a published symbol by its key", "which library published this component", "metadata for one reusable element".
figma.post_dev_resources
Attach dev resources to Figma nodes: link specs, tickets, or repository URLs onto layers in bulk so engineers find them on the design. Calls POST /v1/dev_resources.
Class write (writes, no confirmation needed). Scopes file_dev_resources:write. Calls POST /v1/dev_resources.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
dev_resources | array of object | yes | An array of dev resources. |
dev_resources[].file_key | string | yes | The file key where the dev resource belongs. |
dev_resources[].name | string | yes | The name of the dev resource. |
dev_resources[].node_id | string | yes | The target node to attach the dev resource to. |
dev_resources[].url | string | yes | The URL of the dev resource. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
errors | array of object | An array of errors. |
errors[].error | string | The error message. |
errors[].file_key | string | The file key. |
errors[].node_id | string | The node id. |
links_created | array of object | An array of links created. |
links_created[].file_key | string | The file key where the dev resource belongs. |
links_created[].id | string | Unique identifier of the dev resource |
links_created[].name | string | The name of the dev resource. |
links_created[].node_id | string | The target node to attach the dev resource to. |
links_created[].url | string | The URL of the dev resource. |
Also retrieved by: "link a ticket to a design layer", "attach github urls onto frames for engineers", "add developer links across several files".
figma.put_dev_resources
Update dev resources on Figma nodes: change the names or URLs of links already attached to layers, in bulk. Calls PUT /v1/dev_resources.
Class write (writes, no confirmation needed). Scopes file_dev_resources:write. Calls PUT /v1/dev_resources.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
dev_resources | array of object | yes | An array of dev resources. |
dev_resources[].id | string | yes | Unique identifier of the dev resource |
dev_resources[].name | string | no | The name of the dev resource. |
dev_resources[].url | string | no | The URL of the dev resource. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
errors | array of object | An array of errors. |
errors[].error | string | The error message. |
errors[].id | string | The id of the dev resource. |
links_updated | array of object | An array of links updated. |
links_updated[].file_key | string | The file key where the dev resource belongs. |
links_updated[].id | string | Unique identifier of the dev resource |
links_updated[].name | string | The name of the dev resource. |
links_updated[].node_id | string | The target node to attach the dev resource to. |
links_updated[].url | string | The URL of the dev resource. |
Also retrieved by: "fix a broken link attached to a layer", "rename the developer links on a design", "point an attached ticket at a new url".
figma.get_developer_logs
Get developer logs. Returns a list of developer log entries for REST API and MCP server requests made within the organization. Calls POST /v1/developer_logs.
Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /v1/developer_logs.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
cursor | string | no | A cursor returned from a previous request, used for pagination. |
date_range | string, one of last_24h, last_7d, last_30d | no | Filter by date range. Defaults to last_30d. |
event_source | string, one of rest_api, mcp_server | no | Filter by event source. |
ip_address | string | no | Filter by IP address prefix(es). Multiple values can be separated by commas. |
limit | integer | no | Maximum number of entries to return. Defaults to 25. |
token | string | no | Filter by token value(s). Multiple values can be separated by commas. |
token_name | string | no | Filter by token name prefix(es). Multiple values can be separated by commas. |
token_type | string, one of plan_access_token, developer_token, oauth_token | no | Filter by the type of token used for authentication. |
user_email | string | no | Filter by user email prefix(es). Multiple values can be separated by commas. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
error | boolean, one of false | For successful requests, this value is always false. |
meta | object | |
meta.cursor | string | A cursor for pagination. Pass this value as the cursor parameter in the next request to retrieve the next page of results. null when there are no more results. |
meta.has_more | boolean | Whether there are more results available after this page. |
meta.items | array | An array of developer log entries sorted by timestamp in descending order. |
status | number, one of 200 | The response status code. |
Also retrieved by: "recent api calls our integration made", "what requests hit the rest api", "troubleshoot our mcp server traffic".
figma.get_file
Read a Figma design document: its whole node tree, layers, frames, and pages. Use when someone asks for the contents or the structure of a file or mockup. Calls GET /v1/files/{file_key}.
Class read (reads only). Scopes file_content:read, files:read. Calls GET /v1/files/{{params.file_key}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
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 the file has branches, their metadata will be included in... Defaults to false. |
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 to 2 returns Pages and all top level objects on each page. Not... |
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 branch key. |
geometry | string | no | Set to "paths" to export vector data. |
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 corresponding to the nodes listed, their children, and everything... |
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 included in the result in the pluginData and sharedPluginData... |
version | string | no | A specific version ID to get. Omitting this will get the current version of the file. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
branches | array of object | A list of branches for this file. |
branches[].key | string | The key of the branch. |
branches[].last_modified | string (date-time) | The UTC ISO 8601 time at which the branch was last modified. |
branches[].name | string | The name of the branch. |
branches[].thumbnail_url | string | A URL to a thumbnail image of the branch. |
componentSets | object | A mapping from component set IDs to component set metadata. |
components | object | A mapping from component IDs to component metadata. |
document | object | |
document.boundVariables | object | A mapping of field to the variables applied to this field. Most fields will only map to a single VariableAlias. However, for properties like fills, strokes, size, componentProperties, and... |
document.children | array | |
document.componentPropertyReferences | object | A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding... |
document.explicitVariableModes | object | A mapping of variable collection ID to mode ID representing the explicitly set modes for this node. |
document.id | string | A string uniquely identifying this node within the document. |
document.isFixed | boolean | Whether the layer is fixed while the parent is scrolling. Defaults to false. |
document.locked | boolean | If true, layer is locked and cannot be edited. Defaults to false. |
document.name | string | The name given to the node by the user in the tool. |
document.pluginData | object | Data written by plugins that is visible only to the plugin that wrote it. Requires the pluginData to include the ID of the plugin. |
document.rotation | number | The rotation of the node, if not 0. Defaults to 0. |
document.scrollBehavior | string, one of SCROLLS, FIXED, STICKY_SCROLLS | How layer should be treated when the frame is resized. Defaults to SCROLLS. |
document.sharedPluginData | object | Data written by plugins that is visible to all plugins. Requires the pluginData parameter to include the string "shared". |
document.type | string, one of DOCUMENT | |
document.visible | boolean | Whether or not the node is visible on the canvas. Defaults to true. |
editorType | string, one of figma, figjam | The type of editor associated with this file. |
lastModified | string (date-time) | The UTC ISO 8601 time at which the file was last modified. |
linkAccess | string | The share permission level of the file link. |
mainFileKey | string | The key of the main file for this file. If present, this file is a component or component set. |
name | string | The name of the file as it appears in the editor. |
role | string, one of owner, editor, viewer | The role of the user making the API request in relation to the resource. |
schemaVersion | number | The version of the file schema that this file uses. Defaults to 0. |
styles | object | A mapping from style IDs to style metadata. |
thumbnailUrl | string | A URL to a thumbnail image of the file. |
version | string | The version number of the file. This number is incremented when a file is modified and can be used to check if the file has changed between requests. |
Also retrieved by: "pull the full contents of a design", "read the layers and frames of a mockup", "fetch the whole document tree".
figma.get_comments
List the comments left on a Figma file: the feedback, review notes, and replies people wrote on a design or mockup. Use when someone asks what was said about a document. Calls GET /v1/files/{file_key}/comments.
Class read (reads only). Scopes file_comments:read, files:read. Calls GET /v1/files/{{params.file_key}}/comments.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
as_md | boolean | no | If enabled, will return comments as their markdown equivalents when applicable. |
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 branch key. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
comments | array of object | An array of comments. |
comments[].client_meta | object | Positioning information of the comment. Includes information on the location of the comment pin, which is either the absolute coordinates on the canvas or a relative offset within a frame. If the... |
comments[].created_at | string (date-time) | The UTC ISO 8601 time at which the comment was left |
comments[].file_key | string | The file in which the comment lives |
comments[].id | string | Unique identifier for comment. |
comments[].message | string | The content of the comment |
comments[].order_id | string | Only set for top level comments. The number displayed with the comment in the UI |
comments[].parent_id | string | If present, the id of the comment to which this is the reply |
comments[].reactions | array | An array of reactions to the comment |
comments[].resolved_at | string (date-time) | If set, the UTC ISO 8601 time the comment was resolved |
comments[].user | object | A description of a user. |
Also retrieved by: "see the feedback left on a design", "read the notes people wrote on a mockup", "who said what on this document".
figma.post_comment
Leave a comment on a Figma file: feedback, a review note, or a reply for the designer on a mockup. Use when someone wants to write a note on a design. Calls POST /v1/files/{file_key}/comments.
Class write (writes, no confirmation needed). Scopes file_comments:write. Calls POST /v1/files/{{params.file_key}}/comments.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
client_meta | object | no | The position where to place the comment. |
client_meta.x | number | yes | X coordinate of the vector. |
client_meta.y | number | yes | Y coordinate of the vector. |
comment_id | string | no | The ID of the comment to reply to, if any. This must be a root comment. You cannot reply to other replies (a comment that has a parent_id). |
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 branch key. |
message | string | yes | The text contents of the comment to post. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
client_meta | object | Positioning information of the comment. Includes information on the location of the comment pin, which is either the absolute coordinates on the canvas or a relative offset within a frame. If the... |
client_meta.x | number | X coordinate of the vector. |
client_meta.y | number | Y coordinate of the vector. |
created_at | string (date-time) | The UTC ISO 8601 time at which the comment was left |
file_key | string | The file in which the comment lives |
id | string | Unique identifier for comment. |
message | string | The content of the comment |
order_id | string | Only set for top level comments. The number displayed with the comment in the UI |
parent_id | string | If present, the id of the comment to which this is the reply |
reactions | array of object | An array of reactions to the comment |
reactions[].created_at | string (date-time) | The UTC ISO 8601 time at which the reaction was left. |
reactions[].emoji | string | 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... |
reactions[].user | object | A description of a user. |
resolved_at | string (date-time) | If set, the UTC ISO 8601 time the comment was resolved |
user | object | A description of a user. |
user.handle | string | Name of the user. |
user.id | string | Unique stable id of the user. |
user.img_url | string | URL link to the user's profile image. |
Also retrieved by: "leave feedback on a mockup", "write a note for the designer", "reply on the design with a suggestion".
figma.delete_comment
Delete a comment on a Figma file: remove a piece of feedback or a review note someone left on a design. Calls DELETE /v1/files/{file_key}/comments/{comment_id}.
Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes file_comments:write. Calls DELETE /v1/files/{{params.file_key}}/comments/{{params.comment_id}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
comment_id | string | yes | Comment id of comment to delete |
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 branch key. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
error | boolean, one of false | For successful requests, this value is always false. |
status | number, one of 200 | The status of the request. |
Also retrieved by: "remove feedback left on a design", "take a review note off a mockup", "clear a resolved remark from a file".
figma.get_comment_reactions
List the reactions on a Figma comment: the emoji people left on one piece of feedback, and who left them. Calls GET /v1/files/{file_key}/comments/{comment_id}/reactions.
Class read (reads only). Scopes file_comments:read, files:read. Calls GET /v1/files/{{params.file_key}}/comments/{{params.comment_id}}/reactions.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
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. |
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 param to get the branch key. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
pagination | object | If pagination is needed due to the length of the response, identifies the next and previous pages. |
pagination.next_page | string | A URL that calls the next page of the response. |
pagination.prev_page | string | A URL that calls the previous page of the response. |
reactions | array of object | An array of reactions. |
reactions[].created_at | string (date-time) | The UTC ISO 8601 time at which the reaction was left. |
reactions[].emoji | string | 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... |
reactions[].user | object | A description of a user. |
Also retrieved by: "who reacted to this piece of feedback", "show the emoji left on a comment", "see the thumbs up on a review note".
figma.post_comment_reaction
React to a Figma comment: leave an emoji on someone's feedback to acknowledge or agree with it. Calls POST /v1/files/{file_key}/comments/{comment_id}/reactions.
Class write (writes, no confirmation needed). Scopes file_comments:write. Calls POST /v1/files/{{params.file_key}}/comments/{{params.comment_id}}/reactions.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
comment_id | string | yes | ID of comment to react to. |
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... |
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 get the branch key. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
error | boolean, one of false | For successful requests, this value is always false. |
status | number, one of 200 | The status of the request. |
Also retrieved by: "leave an emoji on someone's feedback", "thumbs up a review note", "acknowledge a comment with a reaction".
figma.delete_comment_reaction
Remove a reaction from a Figma comment: take back the emoji left on a piece of feedback. Calls DELETE /v1/files/{file_key}/comments/{comment_id}/reactions.
Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes file_comments:write. Calls DELETE /v1/files/{{params.file_key}}/comments/{{params.comment_id}}/reactions.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
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... |
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 get the branch key. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
error | boolean, one of false | For successful requests, this value is always false. |
status | number, one of 200 | The status of the request. |
Also retrieved by: "take back an emoji from a comment", "undo my reaction on some feedback", "remove a thumbs up from a review note".
figma.get_file_component_sets
List the component sets a Figma file publishes: the variant groups defined in that library, with their names and keys. Calls GET /v1/files/{file_key}/component_sets.
Class read (reads only). Scopes files:read, library_content:read. Calls GET /v1/files/{{params.file_key}}/component_sets.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
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. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
error | boolean, one of false | For successful requests, this value is always false. |
meta | object | |
meta.component_sets | array | |
status | number, one of 200 | The status of the request. |
Also retrieved by: "what variant groups does this library publish", "list the component sets defined in a file", "show the variants available from a design library".
figma.get_file_components
List the components a Figma file defines: the reusable symbols, building blocks, and elements published from that document. Calls GET /v1/files/{file_key}/components.
Class read (reads only). Scopes files:read, library_content:read. Calls GET /v1/files/{{params.file_key}}/components.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
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. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
error | boolean, one of false | For successful requests, this value is always false. |
meta | object | |
meta.components | array | |
status | number, one of 200 | The status of the request. |
Also retrieved by: "list the symbols inside a mockup", "browse the building blocks of a design", "which reusable pieces does this document have".
figma.get_dev_resources
List the dev resources attached to a Figma file: the specs, tickets, and repository links engineers put on its layers. Calls GET /v1/files/{file_key}/dev_resources.
Class read (reads only). Scopes file_dev_resources:read. Calls GET /v1/files/{{params.file_key}}/dev_resources.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
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 returned. If not specified, all dev resources in the file will be... |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
dev_resources | array of object | An array of dev resources. |
dev_resources[].file_key | string | The file key where the dev resource belongs. |
dev_resources[].id | string | Unique identifier of the dev resource |
dev_resources[].name | string | The name of the dev resource. |
dev_resources[].node_id | string | The target node to attach the dev resource to. |
dev_resources[].url | string | The URL of the dev resource. |
Also retrieved by: "what tickets are linked to this design", "show the engineering links on a file", "find the repo urls attached to layers".
figma.get_image_fills
Get download links for the images placed inside a Figma file: the photos and bitmaps used as fills on its layers. Calls GET /v1/files/{file_key}/images.
Class read (reads only). Scopes file_content:read, files:read. Calls GET /v1/files/{{params.file_key}}/images.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
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 branch key. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
error | boolean, one of false | For successful requests, this value is always false. |
meta | object | |
meta.images | object | A map of image references to URLs of the image fills. |
status | number, one of 200 | Status code |
Also retrieved by: "download the photos placed in a design", "links to the bitmaps used as fills", "get the raw images inside a file".
figma.get_file_meta
Get a Figma file's metadata: its name, owner, last edit time, and which project it sits in, without loading the document itself. Calls GET /v1/files/{file_key}/meta.
Class read (reads only). Scopes file_metadata:read, files:read. Calls GET /v1/files/{{params.file_key}}/meta.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
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 branch key. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
file | object | The file metadata. |
file.creator | object | A description of a user. |
file.editorType | string, one of figma, figjam, slides, buzz, sites, make | The type of editor associated with this file. |
file.folder_name | string | The name of the project containing the file. |
file.last_touched_at | string (date-time) | The UTC ISO 8601 time at which the file content was last modified. |
file.last_touched_by | object | A description of a user. |
file.link_access | string, one of view, edit, org_view, org_edit, inherit | Access policy for users who have the link to the resource. |
file.name | string | The name of the file. |
file.role | string, one of owner, editor, viewer | The role of the user making the API request in relation to the resource. |
file.thumbnail_url | string | A URL to a thumbnail image of the file. |
file.url | string | The URL of the file. |
file.version | string | The version number of the file. This number is incremented when a file is modified and can be used to check if the file has changed between requests. |
Also retrieved by: "who owns this design and when was it edited", "basic details about a file without opening it", "what project does a mockup live in".
figma.get_file_nodes
Get specific nodes of a Figma file as JSON: just the frames or layers named by id, instead of the whole document. Calls GET /v1/files/{file_key}/nodes.
Class read (reads only). Scopes file_content:read, files:read. Calls GET /v1/files/{{params.file_key}}/nodes.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
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 directly underneath the desired nodes. Not setting this parameter... |
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 branch key. |
geometry | string | no | Set to "paths" to export vector data. |
ids | string | yes | A comma separated list of node IDs to retrieve and convert. |
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 included in the result in the pluginData and sharedPluginData... |
version | string | no | A specific version ID to get. Omitting this will get the current version of the file. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
editorType | string, one of figma, figjam | The type of editor associated with this file. |
lastModified | string (date-time) | The UTC ISO 8601 time at which the file was last modified. |
name | string | The name of the file as it appears in the editor. |
nodes | object | A mapping from node IDs to node metadata. |
role | string, one of owner, editor, viewer | The role of the user making the API request in relation to the resource. |
thumbnailUrl | string | A URL to a thumbnail image of the file. |
version | string | The version number of the file. This number is incremented when a file is modified and can be used to check if the file has changed between requests. |
Also retrieved by: "read just one frame of a design", "fetch a couple of layers by id", "pull part of a document instead of all of it".
figma.get_file_styles
List the styles a Figma file publishes: the colour, text, and effect styles defined in that library. Calls GET /v1/files/{file_key}/styles.
Class read (reads only). Scopes files:read, library_content:read. Calls GET /v1/files/{{params.file_key}}/styles.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
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. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
error | boolean, one of false | For successful requests, this value is always false. |
meta | object | |
meta.styles | array | |
status | number, one of 200 | The status of the request. |
Also retrieved by: "what colour styles does this library publish", "list the text styles defined in a file", "show the shared effects a design exposes".
figma.post_variables
Create, change, or delete Figma variables in a file: bulk edit the design tokens and their collections in one call. Enterprise editors only. Calls POST /v1/files/{file_key}/variables.
Class write (writes, no confirmation needed). Scopes file_variables:write. Calls POST /v1/files/{{params.file_key}}/variables.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
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 branch key. |
variableCollections | array of object | no | For creating, updating, and deleting variable collections. |
variableCollections[].action | string, one of CREATE | yes | The action to perform for the variable collection. |
variableCollections[].hiddenFromPublishing | boolean | no | Whether this variable collection is hidden when publishing the current file as a library. Defaults to false. |
variableCollections[].id | string | no | A temporary id for this variable collection. |
variableCollections[].initialModeId | string | no | The initial mode refers to the mode that is created by default. You can set a temporary id here, in order to reference this mode later in this request. |
variableCollections[].initialModeIdToParentModeIdMapping | object | no | Maps inherited modes from the parent variable collection to the initial mode ids on the extended variable collection. |
variableCollections[].name | string | yes | The name of this variable collection. |
variableCollections[].parentVariableCollectionId | string | no | The id of the parent variable collection that this variable collection is extending from. |
variableModeValues | array of object | no | For setting a specific value, given a variable and a mode. |
variableModeValues[].modeId | string | yes | Must correspond to a mode in the variable collection that contains the target variable. |
variableModeValues[].value | boolean | yes | The value for the variable. The value must match the variable's type. If setting to a variable alias, the alias must resolve to this type. If overriding a value, the value type must match the... |
variableModeValues[].variableId | string | yes | The target variable. You can use the temporary id of a variable. |
variableModes | array of object | no | For creating, updating, and deleting modes within variable collections. |
variableModes[].action | string, one of CREATE | yes | The action to perform for the variable mode. |
variableModes[].id | string | no | A temporary id for this variable mode. |
variableModes[].name | string | yes | The name of this variable mode. |
variableModes[].variableCollectionId | string | yes | The variable collection that will contain the mode. You can use the temporary id of a variable collection. New modes cannot be created on extended collections. |
variables | array of object | no | For creating, updating, and deleting variables. |
variables[].action | string, one of CREATE | yes | The action to perform for the variable. |
variables[].codeSyntax | object | no | An object containing platform-specific code syntax definitions for a variable. All platforms are optional. |
variables[].description | string | no | The description of this variable. |
variables[].hiddenFromPublishing | boolean | no | Whether this variable is hidden when publishing the current file as a library. Defaults to false. |
variables[].id | string | no | A temporary id for this variable. |
variables[].name | string | yes | The name of this variable. |
variables[].resolvedType | string, one of BOOLEAN, FLOAT, STRING, COLOR | yes | Defines the types of data a VariableData object can eventually equal |
variables[].scopes | array | no | An array of scopes in the UI where this variable is shown. Setting this property will show/hide this variable in the variable picker UI for different fields. |
variables[].variableCollectionId | string | yes | The variable collection that will contain the variable. You can use the temporary id of a variable collection. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
error | boolean, one of false | For successful requests, this value is always false. |
meta | object | |
meta.tempIdToRealId | object | A map of temporary ids in the request to the real ids of the newly created objects |
status | number, one of 200 | The response status code. |
Also retrieved by: "bulk edit the design tokens in a file", "add a collection of variables at once", "change token values across a document".
figma.get_local_variables
List the variables defined inside a Figma file: the design tokens and their values for colour, spacing, and text. Calls GET /v1/files/{file_key}/variables/local.
Class read (reads only). Scopes file_variables:read. Calls GET /v1/files/{{params.file_key}}/variables/local.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
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 branch key. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
error | boolean, one of false | For successful requests, this value is always false. |
meta | object | |
meta.variableCollections | object | A map of variable collection ids to variable collections |
meta.variables | object | A map of variable ids to variables |
status | number, one of 200 | The response status code. |
Also retrieved by: "what tokens does a mockup define", "list the design tokens of a document", "browse the token values in this design".
figma.get_published_variables
List the variables a Figma file publishes: the design tokens other files can subscribe to from this library. Enterprise members only. Calls GET /v1/files/{file_key}/variables/published.
Class read (reads only). Scopes file_variables:read. Calls GET /v1/files/{{params.file_key}}/variables/published.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
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. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
error | boolean, one of false | For successful requests, this value is always false. |
meta | object | |
meta.variableCollections | object | A map of variable collection ids to variable collections |
meta.variables | object | A map of variable ids to variables |
status | number, one of 200 | The response status code. |
Also retrieved by: "what design tokens does this library expose", "which variables can other files subscribe to", "list the published token collections".
figma.get_file_versions
List a Figma file's version history: the past snapshots of a design, what changed and when, and who edited it. Calls GET /v1/files/{file_key}/versions.
Class read (reads only). Scopes file_versions:read, files:read. Calls GET /v1/files/{{params.file_key}}/versions.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
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, this property is not included. |
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, this link returns the same data in the current response. |
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 the branch key. |
page_size | number | no | The number of items returned in a page of the response. If not included, page_size is 30. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
pagination | object | If pagination is needed due to the length of the response, identifies the next and previous pages. |
pagination.next_page | string | A URL that calls the next page of the response. |
pagination.prev_page | string | A URL that calls the previous page of the response. |
versions | array of object | An array of versions. |
versions[].created_at | string (date-time) | The UTC ISO 8601 time at which the version was created |
versions[].description | string | The description of the version as entered in the editor |
versions[].id | string | Unique identifier for version |
versions[].label | string | The label given to the version in the editor |
versions[].thumbnail_url | string | A URL to a thumbnail image of the file version. |
versions[].user | object | A description of a user. |
Also retrieved by: "what changed and when on this document", "list past snapshots of a mockup", "who edited this design and when".
figma.get_images
Render frames or nodes of a Figma file as images: export a picture, png, svg, or pdf of a design. Use for thumbnails and screenshots of artboards. Calls GET /v1/images/{file_key}.
Class read (reads only). Scopes file_content:read, files:read. Calls GET /v1/images/{{params.file_key}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
contents_only | boolean | no | Whether content that overlaps the node should be excluded from rendering. Passing false (i.e., rendering overlaps) may increase processing time, since more of the document must be included in... Defaults to true. |
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 branch key. |
format | string, one of jpg, png, svg, pdf | no | A string enum for the image output format. Defaults to png. |
ids | string | yes | A comma separated list of node IDs to render. |
scale | number | no | A number between 0.01 and 4, the image scaling factor. |
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. Defaults to false. |
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. Defaults to false. |
svg_outline_text | boolean | no | Whether text elements are rendered as outlines (vector paths) or as <text> elements in SVGs. Rendering text elements as outlines guarantees that the text looks exactly the same in the SVG as it... Defaults to true. |
svg_simplify_stroke | boolean | no | Whether to simplify inside/outside strokes and use stroke attribute if possible instead of <mask>. Defaults to true. |
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 nodes without cropping. Defaults to false. |
version | string | no | A specific version ID to get. Omitting this will get the current version of the file. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
err | null | For successful requests, this value is always null. |
images | object | A map from node IDs to URLs of the rendered images. |
Also retrieved by: "export frames as png or svg", "render a picture of a node", "make thumbnails of the artboards".
figma.get_me
Show the signed-in Figma user: the account whose token is connected, with name, email, and profile image. Use for who-am-I questions and to check which account is in use. Calls GET /v1/me.
Class read (reads only). Scopes current_user:read, files:read. Calls GET /v1/me.
Takes no arguments.
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
email | string | Email associated with the user's account. This property is only present on the /v1/me endpoint. |
handle | string | Name of the user. |
id | string | Unique stable id of the user. |
img_url | string | URL link to the user's profile image. |
Also retrieved by: "which account is connected", "who am i on this workspace", "show my own profile details".
figma.get_o_embed
Get oEmbed data for a Figma link: the title, thumbnail, and embed HTML another site needs to render a preview card of a file. Calls GET /v1/oembed.
Class read (reads only). Scopes file_metadata:read. Calls GET /v1/oembed.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
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. Defaults to 450. |
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. Defaults to 800. |
url | string | yes | The URL of the Figma file or published Make site to retrieve oEmbed data for. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
cache_age | integer | Suggested cache lifetime for this response in seconds. Always 3600. |
folder_name | string | The name of the folder containing the file, if the file resides in a folder. |
height | integer | Height of the embed in pixels. |
html | string | The HTML for embedding the file. Contains an iframe pointing to the Figma embed URL. |
is_published_site | boolean | Only present and "true" when the resource is a published Make. |
key | string | The key of the Figma file. Not present for published Makes |
provider_name | string | The name of the content provider. Always "Figma" or "Make". |
provider_url | string | The URL of the content provider's website. Always "https://www.figma.com". |
thumbnail_height | integer | Height of the thumbnail image in pixels. |
thumbnail_url | string | URL of a thumbnail image for the file. |
thumbnail_width | integer | Width of the thumbnail image in pixels. |
title | string | The title of the Figma file or published Make site. |
type | string | The oEmbed response type. Always "rich". |
url | string | The canonical URL of the resource. |
version | string | The oEmbed specification version. Always "1.0". |
width | integer | Width of the embed in pixels. |
Also retrieved by: "preview card data for a figma link", "title and thumbnail for embedding a design", "what a site needs to render a figma url".
figma.get_payments
Get payments. There are two methods to query for a user's payment information on a plugin, widget, or Community file. Calls GET /v1/payments.
Class read (reads only). No scopes beyond the connection's defaults. Calls GET /v1/payments.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
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 (look for the number after "file/" in the URL). Provide exactly... |
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 Community page (look for the number after "plugin/" in the... |
plugin_payment_token | string | no | Short-lived token returned from "getPluginPaymentTokenAsync" in the plugin payments API and used to authenticate to this endpoint. Read more about generating this token through "Calling the Payments... |
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. |
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 Community page (look for the number after "widget/" in the... |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
error | boolean, one of false | For successful requests, this value is always false. |
meta | object | An object describing a user's payment information for a plugin, widget, or Community file. |
meta.date_of_purchase | string (date-time) | The UTC ISO 8601 timestamp indicating when the user purchased the resource. No value is given if the user has never purchased the resource. Note that a value will still be returned if the user had... |
meta.payment_status | object | An object describing the user's payment status. |
meta.resource_id | string | The ID of the plugin, widget, or Community file that was queried. Can be used to verify the validity of a response. |
meta.resource_type | string, one of PLUGIN, WIDGET, COMMUNITY_FILE | The type of the resource. |
meta.user_id | string | The ID of the user whose payment information was queried. Can be used to verify the validity of a response. |
status | number, one of 200 | The response status code. |
Also retrieved by: "look up payments", "check payments", "pull up payments".
figma.get_project_files
List the files in a Figma project: every document in that folder, with names and last-modified times. Calls GET /v1/projects/{project_id}/files.
Class read (reads only). Scopes files:read, projects:read. Calls GET /v1/projects/{{params.project_id}}/files.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
branch_data | boolean | no | Returns branch metadata in the response for each main file with a branch inside the project. Defaults to false. |
project_id | string | yes | ID of the project to list files from |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
files | array of object | An array of files. |
files[].key | string | The file's key. |
files[].last_modified | string (date-time) | The UTC ISO 8601 time at which the file was last modified. |
files[].name | string | The file's name. |
files[].thumbnail_url | string | The file's thumbnail URL. |
name | string | The project's name. |
Also retrieved by: "what designs live in this folder", "list every document in a project", "show the mockups a team keeps together".
figma.get_project_meta
Get a Figma project's metadata: the folder's name and the team it belongs to. Calls GET /v1/projects/{project_id}/meta.
Class read (reads only). Scopes project_metadata:read. Calls GET /v1/projects/{{params.project_id}}/meta.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
project_id | string | yes | ID of the project to get metadata for. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
created_at | string (date-time) | The UTC ISO 8601 time at which the project was created. |
file_count | integer | The number of files in the project. |
id | string | The unique identifier of the project. |
name | string | The name of the project. |
thumbnail_url | string | A URL to a thumbnail image of the project. May be null if the project has no files. |
updated_at | string (date-time) | The UTC ISO 8601 time at which the project was last updated. |
Also retrieved by: "which team owns this folder", "name and owner of a design project", "basic details about a figma folder".
figma.get_style
Get one published Figma style by its key: the colour, text, or effect definition and which library it came from. Calls GET /v1/styles/{key}.
Class read (reads only). Scopes files:read, library_assets:read. Calls GET /v1/styles/{{params.key}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
key | string | yes | The unique identifier of the style. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
error | boolean, one of false | For successful requests, this value is always false. |
meta | object | A set of published properties that can be applied to nodes. |
meta.created_at | string (date-time) | The UTC ISO 8601 time when the style was created. |
meta.description | string | The description of the style as entered by the publisher. |
meta.file_key | string | The unique identifier of the Figma file that contains the style. |
meta.key | string | The unique identifier for the style |
meta.name | string | The name of the style. |
meta.node_id | string | ID of the style node within the figma file |
meta.sort_position | string | A user specified order number by which the style can be sorted. |
meta.style_type | string, one of FILL, TEXT, EFFECT, GRID | The type of style |
meta.thumbnail_url | string | A URL to a thumbnail image of the style. |
meta.updated_at | string (date-time) | The UTC ISO 8601 time when the style was last updated. |
meta.user | object | A description of a user. |
status | number, one of 200 | The status of the request. |
Also retrieved by: "look up a published colour definition", "which library does this text style come from", "details of one shared effect".
figma.get_team_component_sets
List the component sets a Figma team publishes: the variant groups across every library the team owns. Calls GET /v1/teams/{team_id}/component_sets.
Class read (reads only). Scopes files:read, team_library_content:read. Calls GET /v1/teams/{{params.team_id}}/component_sets.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
after | number | no | Cursor indicating which id after which to start retrieving component sets for. Exclusive with before. The cursor value is an internally tracked integer that doesn't correspond to any Ids. |
before | number | no | Cursor indicating which id before which to start retrieving component sets for. Exclusive with after. The cursor value is an internally tracked integer that doesn't correspond to any Ids. |
page_size | number | no | Number of items to return in a paged list of results. Defaults to 30. Defaults to 30. |
team_id | string | yes | Id of the team to list component sets from. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
error | boolean, one of false | For successful requests, this value is always false. |
meta | object | |
meta.component_sets | array | |
meta.cursor | object | Pagination cursor |
status | number, one of 200 | The status of the request. |
Also retrieved by: "what variant groups does the team publish", "component sets across all our libraries", "variants available to everyone on a team".
figma.get_team_components
List the components a Figma team publishes: the reusable symbols across every library the team owns. Calls GET /v1/teams/{team_id}/components.
Class read (reads only). Scopes files:read, team_library_content:read. Calls GET /v1/teams/{{params.team_id}}/components.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
after | number | no | Cursor indicating which id after which to start retrieving components for. Exclusive with before. The cursor value is an internally tracked integer that doesn't correspond to any Ids. |
before | number | no | Cursor indicating which id before which to start retrieving components for. Exclusive with after. The cursor value is an internally tracked integer that doesn't correspond to any Ids. |
page_size | number | no | Number of items to return in a paged list of results. Defaults to 30. Maximum of 1000. Defaults to 30. |
team_id | string | yes | Id of the team to list components from. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
error | boolean, one of false | For successful requests, this value is always false. |
meta | object | |
meta.components | array | |
meta.cursor | object | Pagination cursor |
status | number, one of 200 | The status of the request. |
Also retrieved by: "what symbols does the whole team publish", "reusable elements across all our libraries", "components available to everyone on a team".
figma.get_team_projects
List the projects a Figma team owns: the work a group tracks in its workspace. Use when someone asks what a team or group is working on. Calls GET /v1/teams/{team_id}/projects.
Class read (reads only). Scopes files:read, projects:read. Calls GET /v1/teams/{{params.team_id}}/projects.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
team_id | string | yes | ID of the team to list projects from |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
name | string | The team's name. |
projects | array of object | An array of projects. |
projects[].id | string | The ID of the project. |
projects[].name | string | The name of the project. |
Also retrieved by: "what is my group working on", "browse the work a group owns", "list the boards my group keeps".
figma.get_team_styles
List a Figma team's published styles: the shared colour, text, and effect presets a group publishes for reuse. Calls GET /v1/teams/{team_id}/styles.
Class read (reads only). Scopes files:read, team_library_content:read. Calls GET /v1/teams/{{params.team_id}}/styles.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
after | number | no | Cursor indicating which id after which to start retrieving styles for. Exclusive with before. The cursor value is an internally tracked integer that doesn't correspond to any Ids. |
before | number | no | Cursor indicating which id before which to start retrieving styles for. Exclusive with after. The cursor value is an internally tracked integer that doesn't correspond to any Ids. |
page_size | number | no | Number of items to return in a paged list of results. Defaults to 30. Defaults to 30. |
team_id | string | yes | Id of the team to list styles from. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
error | boolean, one of false | For successful requests, this value is always false. |
meta | object | |
meta.cursor | object | Pagination cursor |
meta.styles | array | |
status | number, one of 200 | The status of the request. |
Also retrieved by: "which shared colour and text presets exist", "browse the presets my group publishes", "list reusable colour definitions".
figma.get_team_webhooks
List the webhooks registered on a Figma team, through the deprecated team-scoped endpoint: the event callbacks that team set up. Calls GET /v2/teams/{team_id}/webhooks.
Class read (reads only). Scopes files:read, webhooks:read. Calls GET /v2/teams/{{params.team_id}}/webhooks.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
team_id | string | yes | ID of team to get webhooks for |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
webhooks | array of object | An array of webhooks. |
webhooks[].client_id | string | The client ID of the OAuth application that registered this webhook, if any |
webhooks[].context | string | The type of context this webhook is attached to. The value will be "PROJECT", "TEAM", or "FILE" |
webhooks[].context_id | string | The ID of the context this webhook is attached to |
webhooks[].description | string | Optional user-provided description or name for the webhook. This is provided to help make maintaining a number of webhooks more convenient. Max length 140 characters. |
webhooks[].endpoint | string | The endpoint that will be hit when the webhook is triggered |
webhooks[].event_type | string, one of PING, FILE_UPDATE, FILE_VERSION_UPDATE, FILE_DELETE, LIBRARY_PUBLISH, FILE_COMMENT, DEV_MODE_STATUS_UPDATE | An enum representing the possible events that a webhook can subscribe to |
webhooks[].id | string | The ID of the webhook |
webhooks[].passcode | string | The passcode that will be passed back to the webhook endpoint. For security, when using the GET endpoints, the value is an empty string |
webhooks[].plan_api_id | string | The plan API ID of the team or organization where this webhook was created |
webhooks[].status | string, one of ACTIVE, PAUSED | An enum representing the possible statuses you can set a webhook to: - ACTIVE: The webhook is healthy and receive all events - PAUSED: The webhook is paused and will not receive any events |
webhooks[].team_id | string | The team id you are subscribed to for updates. This is deprecated, use context and context_id instead |
Also retrieved by: "what event callbacks does this team have", "webhooks registered under one team, old endpoint", "list a team's subscriptions the deprecated way".
figma.get_webhooks
List Figma webhooks by context: the event callbacks registered for a team, project, or file, and where each one posts. Calls GET /v2/webhooks.
Class read (reads only). Scopes webhooks:read. Calls GET /v2/webhooks.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
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. |
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. Provide the next_page or prev_page value from the previous... |
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 or context_id. When you use plan_api_id, the response is... |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
pagination | object | If pagination is needed due to the length of the response, identifies the next and previous pages. |
pagination.next_page | string | A URL that calls the next page of the response. |
pagination.prev_page | string | A URL that calls the previous page of the response. |
webhooks | array of object | An array of webhooks. |
webhooks[].client_id | string | The client ID of the OAuth application that registered this webhook, if any |
webhooks[].context | string | The type of context this webhook is attached to. The value will be "PROJECT", "TEAM", or "FILE" |
webhooks[].context_id | string | The ID of the context this webhook is attached to |
webhooks[].description | string | Optional user-provided description or name for the webhook. This is provided to help make maintaining a number of webhooks more convenient. Max length 140 characters. |
webhooks[].endpoint | string | The endpoint that will be hit when the webhook is triggered |
webhooks[].event_type | string, one of PING, FILE_UPDATE, FILE_VERSION_UPDATE, FILE_DELETE, LIBRARY_PUBLISH, FILE_COMMENT, DEV_MODE_STATUS_UPDATE | An enum representing the possible events that a webhook can subscribe to |
webhooks[].id | string | The ID of the webhook |
webhooks[].passcode | string | The passcode that will be passed back to the webhook endpoint. For security, when using the GET endpoints, the value is an empty string |
webhooks[].plan_api_id | string | The plan API ID of the team or organization where this webhook was created |
webhooks[].status | string, one of ACTIVE, PAUSED | An enum representing the possible statuses you can set a webhook to: - ACTIVE: The webhook is healthy and receive all events - PAUSED: The webhook is paused and will not receive any events |
webhooks[].team_id | string | The team id you are subscribed to for updates. This is deprecated, use context and context_id instead |
Also retrieved by: "what event callbacks are registered for us", "where do design updates get posted", "list every subscription in this context".
figma.post_webhook
Create a Figma webhook: notify a server or an endpoint when a design changes, subscribing it to file update events. Calls POST /v2/webhooks.
Class write (writes, no confirmation needed). Scopes webhooks:write. Calls POST /v2/webhooks.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
context | string | yes | Context to create the webhook for. Must be "team", "project", or "file". |
context_id | string | yes | The id of the context you want to receive updates about. |
description | string | no | User provided description or name for the webhook. Max length 150 characters. |
endpoint | string | yes | The HTTP endpoint that will receive a POST request when the event triggers. Max length 2048 characters. |
event_type | string, one of PING, FILE_UPDATE, FILE_VERSION_UPDATE, FILE_DELETE, LIBRARY_PUBLISH, FILE_COMMENT, DEV_MODE_STATUS_UPDATE | yes | An enum representing the possible events that a webhook can subscribe to |
passcode | string | yes | String that will be passed back to your webhook endpoint to verify that it is being called by Figma. Max length 100 characters. |
status | string, one of ACTIVE, PAUSED | no | An enum representing the possible statuses you can set a webhook to: - ACTIVE: The webhook is healthy and receive all events - PAUSED: The webhook is paused and will not receive any events |
team_id | string | no | Team id to receive updates about. This is deprecated, use 'context' and 'context_id' instead. |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
client_id | string | The client ID of the OAuth application that registered this webhook, if any |
context | string | The type of context this webhook is attached to. The value will be "PROJECT", "TEAM", or "FILE" |
context_id | string | The ID of the context this webhook is attached to |
description | string | Optional user-provided description or name for the webhook. This is provided to help make maintaining a number of webhooks more convenient. Max length 140 characters. |
endpoint | string | The endpoint that will be hit when the webhook is triggered |
event_type | string, one of PING, FILE_UPDATE, FILE_VERSION_UPDATE, FILE_DELETE, LIBRARY_PUBLISH, FILE_COMMENT, DEV_MODE_STATUS_UPDATE | An enum representing the possible events that a webhook can subscribe to |
id | string | The ID of the webhook |
passcode | string | The passcode that will be passed back to the webhook endpoint. For security, when using the GET endpoints, the value is an empty string |
plan_api_id | string | The plan API ID of the team or organization where this webhook was created |
status | string, one of ACTIVE, PAUSED | An enum representing the possible statuses you can set a webhook to: - ACTIVE: The webhook is healthy and receive all events - PAUSED: The webhook is paused and will not receive any events |
team_id | string | The team id you are subscribed to for updates. This is deprecated, use context and context_id instead |
Also retrieved by: "notify my server when a design changes", "subscribe an endpoint to design events", "set up a callback for document updates".
figma.get_webhook
Get one Figma webhook by id: what it subscribes to, where it posts, and whether it is active. Calls GET /v2/webhooks/{webhook_id}.
Class read (reads only). Scopes files:read, webhooks:read. Calls GET /v2/webhooks/{{params.webhook_id}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
webhook_id | string | yes | ID of webhook to get |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
client_id | string | The client ID of the OAuth application that registered this webhook, if any |
context | string | The type of context this webhook is attached to. The value will be "PROJECT", "TEAM", or "FILE" |
context_id | string | The ID of the context this webhook is attached to |
description | string | Optional user-provided description or name for the webhook. This is provided to help make maintaining a number of webhooks more convenient. Max length 140 characters. |
endpoint | string | The endpoint that will be hit when the webhook is triggered |
event_type | string, one of PING, FILE_UPDATE, FILE_VERSION_UPDATE, FILE_DELETE, LIBRARY_PUBLISH, FILE_COMMENT, DEV_MODE_STATUS_UPDATE | An enum representing the possible events that a webhook can subscribe to |
id | string | The ID of the webhook |
passcode | string | The passcode that will be passed back to the webhook endpoint. For security, when using the GET endpoints, the value is an empty string |
plan_api_id | string | The plan API ID of the team or organization where this webhook was created |
status | string, one of ACTIVE, PAUSED | An enum representing the possible statuses you can set a webhook to: - ACTIVE: The webhook is healthy and receive all events - PAUSED: The webhook is paused and will not receive any events |
team_id | string | The team id you are subscribed to for updates. This is deprecated, use context and context_id instead |
Also retrieved by: "what does this callback subscribe to", "is a single subscription still active", "where does one webhook post its events".
figma.put_webhook
Update a Figma webhook: change the endpoint it posts to, the events it listens for, or its active state. Calls PUT /v2/webhooks/{webhook_id}.
Class write (writes, no confirmation needed). Scopes webhooks:write. Calls PUT /v2/webhooks/{{params.webhook_id}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
description | string | no | User provided description or name for the webhook. Max length 150 characters. |
endpoint | string | yes | The HTTP endpoint that will receive a POST request when the event triggers. Max length 2048 characters. |
event_type | string, one of PING, FILE_UPDATE, FILE_VERSION_UPDATE, FILE_DELETE, LIBRARY_PUBLISH, FILE_COMMENT, DEV_MODE_STATUS_UPDATE | yes | An enum representing the possible events that a webhook can subscribe to |
passcode | string | yes | String that will be passed back to your webhook endpoint to verify that it is being called by Figma. Max length 100 characters. |
status | string, one of ACTIVE, PAUSED | no | An enum representing the possible statuses you can set a webhook to: - ACTIVE: The webhook is healthy and receive all events - PAUSED: The webhook is paused and will not receive any events |
webhook_id | string | yes | ID of webhook to update |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
client_id | string | The client ID of the OAuth application that registered this webhook, if any |
context | string | The type of context this webhook is attached to. The value will be "PROJECT", "TEAM", or "FILE" |
context_id | string | The ID of the context this webhook is attached to |
description | string | Optional user-provided description or name for the webhook. This is provided to help make maintaining a number of webhooks more convenient. Max length 140 characters. |
endpoint | string | The endpoint that will be hit when the webhook is triggered |
event_type | string, one of PING, FILE_UPDATE, FILE_VERSION_UPDATE, FILE_DELETE, LIBRARY_PUBLISH, FILE_COMMENT, DEV_MODE_STATUS_UPDATE | An enum representing the possible events that a webhook can subscribe to |
id | string | The ID of the webhook |
passcode | string | The passcode that will be passed back to the webhook endpoint. For security, when using the GET endpoints, the value is an empty string |
plan_api_id | string | The plan API ID of the team or organization where this webhook was created |
status | string, one of ACTIVE, PAUSED | An enum representing the possible statuses you can set a webhook to: - ACTIVE: The webhook is healthy and receive all events - PAUSED: The webhook is paused and will not receive any events |
team_id | string | The team id you are subscribed to for updates. This is deprecated, use context and context_id instead |
Also retrieved by: "point a callback at a new endpoint", "change which events a subscription listens for", "pause or reactivate a webhook".
figma.delete_webhook
Delete a Figma webhook: stop the event callbacks and notifications going to an endpoint, unsubscribing a server from design updates. Calls DELETE /v2/webhooks/{webhook_id}.
Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes webhooks:write. Calls DELETE /v2/webhooks/{{params.webhook_id}}.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
webhook_id | string | yes | ID of webhook to delete |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
client_id | string | The client ID of the OAuth application that registered this webhook, if any |
context | string | The type of context this webhook is attached to. The value will be "PROJECT", "TEAM", or "FILE" |
context_id | string | The ID of the context this webhook is attached to |
description | string | Optional user-provided description or name for the webhook. This is provided to help make maintaining a number of webhooks more convenient. Max length 140 characters. |
endpoint | string | The endpoint that will be hit when the webhook is triggered |
event_type | string, one of PING, FILE_UPDATE, FILE_VERSION_UPDATE, FILE_DELETE, LIBRARY_PUBLISH, FILE_COMMENT, DEV_MODE_STATUS_UPDATE | An enum representing the possible events that a webhook can subscribe to |
id | string | The ID of the webhook |
passcode | string | The passcode that will be passed back to the webhook endpoint. For security, when using the GET endpoints, the value is an empty string |
plan_api_id | string | The plan API ID of the team or organization where this webhook was created |
status | string, one of ACTIVE, PAUSED | An enum representing the possible statuses you can set a webhook to: - ACTIVE: The webhook is healthy and receive all events - PAUSED: The webhook is paused and will not receive any events |
team_id | string | The team id you are subscribed to for updates. This is deprecated, use context and context_id instead |
Also retrieved by: "stop event callbacks going to my endpoint", "turn off notifications for a design", "unsubscribe my server from updates".
figma.get_webhook_requests
List a Figma webhook's recent deliveries: the calls it made in the last week and how the receiving endpoint responded, for debugging. Calls GET /v2/webhooks/{webhook_id}/requests.
Class read (reads only). Scopes files:read, webhooks:read. Calls GET /v2/webhooks/{{params.webhook_id}}/requests.
Arguments:
| Argument | Type | Required | Notes |
|---|---|---|---|
webhook_id | string | yes | The id of the webhook subscription you want to see events from |
Result fields (the payload is trimmed to these before it reaches the model):
| Field | Type | Notes |
|---|---|---|
requests | array of object | An array of webhook requests. |
requests[].error_msg | string | Error message for this request. NULL if no error occurred |
requests[].request_info | object | Information regarding the request sent to a webhook endpoint |
requests[].response_info | object | Information regarding the reply sent back from a webhook endpoint |
requests[].webhook_id | string | The ID of the webhook the requests were sent to |
Also retrieved by: "did our endpoint receive the last events", "why is a callback failing to deliver", "recent delivery attempts and their responses".