Changelog
September 23, 2025
New
- New OAuth app publishing flow for all public and private OAuth apps built on Figma’s REST API. All apps need to complete this flow by November 17, 2025 in order to stay active. Read more about the changes here and check out the new Apps page.
- Documentation about the new Figma MCP Server, now in beta, is available here.
Updates
- Published and adjusted REST API rate limits will go into effect on November 17, 2025. Read more about rate limits here.
- Developer documentation is now consolidated into a single instance. The REST API docs are split across multiple pages instead of a single scrollable page. As a result, the “try it out” and personal access token (PAT) generation functionality in the docs is not available right now. You can instead use our Postman public workspace to test REST API functionality and use this reference to generate PATs
July 7, 2025
- The GET team components endpoint
page_sizeparameter has a new maximum value of 1000. Values exceeding the maximum will automatically be capped to 1000. - Added API methods to obtain information about nodes or children of nodes with layout mode
GRID. These updates include:gridRowCount&gridColumnCountgridRowGap&gridColumnGapgridRowsSizing&gridColumnsSizinggridRowAnchorIndex&gridColumnAnchorIndexgridRowSpan&gridColumnSpangridChildHorizontalAlign&gridChildVerticalAlign
June 27, 2025
Figma is introducing the Discovery API for Enterprise plans with Governance+.
The Discovery API is used to obtain text events that have occurred in Figma files throughout your organization.
The text events returned by the Discovery API include:
- In-file text: Text that's been added to layers (text layers and shapes with text) in Figma Design, as well as stickies and tables in FigJam.
- Cursor chat: Chat messages associated with the cursor.
- File comments and reactions: Comments and reactions that appear in files.
- Component documentation descriptions and links: Text and links that have been added to component documentation.
- Annotations and developer-related links in Dev Mode: Annotations and developer-related links (dev resources) that have been added in Dev Mode.
Requests to the Discovery API return links to JSON files that can be downloaded. The API provides one JSON file for each hour of data in the timeframe covered by the request, up to 24 hours.
For details about using the API, see the Discovery API documentation.
May 28, 2025
We've introduced some changes to how Webhooks V2 works that enable additional ways you can utilize webhooks.
The improvements include:
- In addition to teams, you can now attach webhooks to specific files and projects. When you create a webhook, you now specify a context (
team,file, orproject) and the id of the context you want to attach the webhook to. This allows you to receive events related to a specific file or project, in addition to team-level events. - We've introduced a new GET /v2/webhooks endpoint, along with the
plan_api_idproperty. The endpoint can be used to get all webhooks for a given context, or, usingplan_api_id, all existing webhooks that you have access to across all contexts. - We've added a new DEV_MODE_STATUS_UPDATE event type. The
DEV_MODE_STATUS_UPDATEevent is triggered when the Dev Mode status of a layer changes. This can be used to track when layers are marked Ready for Dev, Completed, or a Dev Status is cleared in Figma Design, and includes information like a change message if one was provided when the status changed.
Because we are introducing context-based webhooks, we're deprecating the old GET /v2/teams/:team_id/webhooks endpoint.
For now, the old endpoint will continue to work, but we recommend you migrate to the new GET /v2/webhooks endpoint and use the team context: GET v2/webhooks?context=team&context_id=:team_id
To learn more about the changes, see the Webhooks V2 documentation.
May 16, 2025
To align with the OAuth 2.0 specification, Figma is migrating the endpoint for refreshing OAuth tokens.
Previously, you used the https://api.figma.com/v1/oauth/refresh endpoint to refresh existing OAuth tokens.
Now, when you refresh your OAuth tokens, you should use the https://api.figma.com/v1/oauth/token endpoint.
The legacy endpoint will continue to be supported for now, but we recommend you migrate to using the new endpoint. For specific instructions about how to refresh your OAuth tokens, see Refreshing OAuth tokens.
May 7, 2025
Added the following new node types and properties in beta:
- TEXT_PATH node type supporting TextPathTypeStyle properties.
- TRANSFORM_GROUP node type.
TEXTUREandNOISEeffect property types.PROGRESSIVEblur effect.PATTERNpaint property type.
The node types and properties in beta can be used with Figma Design and Figma Draw.
April 29, 2025
Added a GET file metadata endpoint. This endpoint provides the same file metadata provided by the GET file endpoint but does not contain the file content. Requires the file_metadata:read scope.
April 28, 2025
- We have updated the policy for generating Personal Access Tokens (PATs). Users can now create PATs with a maximum expiry of 90 days. Non-expiring PATs can no longer be created. Please update your token management practices accordingly to accommodate this change.
- Approval is now required to use the Projects endpoints. If you're building a new app and would like to use these endpoints, you can request access.
April 17, 2025
Added new scopes for the REST API. The files:read scope is no longer recommended and will be deprecated in the future. Instead of files:read, use a more specific scope like file_content:read or file_comments:read. Using a more specific scope helps Figma customers understand what data your app is accessing.
April 15, 2025
The POST /v1/oauth/token endpoint now returns user IDs in string format via the user_id_string property. The numeric user_id property is deprecated.
March 19, 2025
Added containingComponentSet to FrameInfo, and deprecated containingStateGroup which retains the same data.
February 24, 2025
The sunset date of the OAuth security migration has been extended to February 26th, 2025.
February 13, 2025
Added support for targetAspectRatio in the GET files endpoint. targetAspectRatio allows for proper proportional resizing on the canvas, unlike the legacy preserveRatio field. preserveRatio is kept for backwards-compatibility, but will now be powered by targetAspectRatio under the hood.
February 11, 2025
The Library Analytics API is now available. Users on an Enterprise plan can leverage the API to fetch analytics data about how your organization's design system libraries are being used, including usage of components, styles, and variables.
For more information, see the Library Analytics API documentation.
January 23, 2025
TypeStyle objects, which describe text formatting properties, now contain a fontStyle property that indicates whether text is bold, italicized, etc.
December 5, 2024
In the GET files endpoint, we occasionally return the error message Request timeout, try a smaller request. Moving forwards, we will return the error message Request too large. If applicable, filter by query params. We recommend filtering by using the ids and depth query parameters to reduce the size of the request.
November 25, 2024
Beginning December 9th, 2024, requests to http://api.figma.com will no longer be supported. This change enforces HTTPS-only communication for improved security. HTTP requests will fail with a 403 Forbidden status code instead of automatically redirecting to HTTPS.
To prepare for this change, please ensure all API request URLs use https://api.figma.com instead of http://api.figma.com
October 29, 2024
- Introduced styles and variables to the beta Library Analytics API. Get action time series data and usage data for styles and variables.
- Added new endpoints for the Library Analytics API
- New component analytics endpoints cover the same data as the prior Library Analytics endpoints but have been updated for consistency with styles and variables. While the legacy beta endpoints will continue to work in the short-term, we recommend switching over to the new component endpoints. The new component endpoints have the following breaking changes:
num_instanceshas been renamed tousagesnum_teams_usinghas been renamed toteams_using- num_files_using has been renamed to files_using
num_files_usinghas been renamed tofiles_using- Breakdowns by component now include a
component_set_keyandcomponent_set_namefor components that belong to a component set. The component set name is no longer appended to the front of thecomponent_name. - We no longer support the order query parameter
- Analytics data is now updated daily rather than weekly
October 28, 2024
- Updated OAuth token exchange documentation to recommend sending client credentials in the
Authorizationheader rather than in the request body.
October 25, 2024
- The GET local variables endpoint has been updated to include variables that have been deleted in the editor, but may still be referenced by contents in the document. This can occur if you bind a property or variable alias to a variable, and then use the "Local variables" menu to delete the variable. Variables in this state will be annotated with a
deletedButReferencedfield set totrue.
October 22, 2024
The response from the GET file versions endpoint has changed.
Previously
Versions returned by the GET file versions endpoint were ordered by an internal identifier that was logically equivalent to when a version was created.
Now
Versions returned by the GET file versions endpoint are now ordered explicitly by when they were created. New calls to the GET API return updated next_page and prev_page URLs that use the new ordering. Old URLs that use the previous method of ordering will stop working on November 22, 2024.
October 8, 2024
Updated recommended endpoints for OAuth token exchange to https://api.figma.com.
September 24, 2024
Added the freeText property to the Measurement object. This is the displayed value of the measurement when it's manually overridden.
September 12, 2024
Added an interactions field to the TransitionSourceTrait attribute in the GET file endpoint. This field contains full data about prototyping interactions on the node, equivalent to the reactions field of the Plugin API.
August 15, 2024
Added several new properties to the TypeStyle object: isOverrideOverTextStyle, semanticWeight, and semanticItalic.
May 30, 2024
Added new VariableScope options for scoping variables to typography fields such as font family, font style and weight, font size, and other text fields.
April 29, 2024
Add new Enterprise beta endpoints for reading Library Analytics. Fetch action time series data and library usage grouped by different dimensions.
April 24, 2024
- Add variable support to
gradientStopsin ColorStop. This affects Paints. - Update ColorStop documentation to reflect the addition of the
boundedVariablesfield.
February 14, 2024
We are excited to announce the beta release of the OpenAPI specification and Typescript types for the Figma REST API in the open source figma/rest-api-spec repository.
OpenAPI is a specification for describing HTTP APIs in a language-agnostic manner. It has a large ecosystem of tools to let you generate API documentation, client SDKs, and more. We also provide custom Typescript types generated from the OpenAPI specification for those of you with Typescript codebases to make it easy to write type-safe code out of the box.
January 25, 2024
- New
annotationsfield containing an Annotation with notes and pinned properties of nodes in Dev Mode. Available in private beta; stay tuned for public release. - New
measurementsfield on CANVAS nodes containing an array of type Measurement, which display pinned distances between nodes in Dev Mode.
January 17, 2024
Fix bugs related to region_width and region_height in FrameOffsetRegion. This affects Comments endpoints.
January 10, 2024
The as_md parameter in the GET comments endpoint now correctly respects false as a value.
December 6, 2023
- Comment reactions are no longer limited to a subset of 7 emoji. Comment Reactions now support emoji up to version 14.0.
- Ability to get
boundVariableson LayoutGrid and Effect properties. - New VariableScope types for scoping variables to layer opacity, stroke weight, and effect fields.
November 29, 2023
API changes
- The
absoluteRenderBoundsnode property in the GET file and GET file nodes endpoints is now nullable, which fixes a bug where it previously gave aRectanglewith null values inside in some cases. A node has null render bounds if it is not visible.
Documentation changes
- Clarify the behavior of the
idsquery parameter in the GET file endpoint where we might include extra nodes if the desired node subtrees have dependencies - Add API call examples for file endpoints
- Remove
containing_pageproperty for published components and component sets, since this property doesn't exist - Add missing
Pathdata type for fill/stroke geometries - Add missing
strokeCapenum values - Fix properties for the team entity in activity log events
November 8, 2023
The GET image endpoint now supports a contents_only option, which can be set to false in order to render content that overlaps the requested nodes.
October 25, 2023
Add variableIds property to variable collections to expose the order of variables within a collection.
October 18, 2023
- Add
maskTypeproperty to all nodes that supportisMask, and deprecateisMaskOutline(which now corresponds tomaskType = 'VECTOR'). - Support variables in
LIBRARY_PUBLISHwebhook events, which are triggered when a library is published.
October 4, 2023
- Add
svg_outline_textquery parameter for the GET image endpoint to control whether text elements are rendered as outlines (vector paths) or as<text>elements in SVGs.
September 20, 2023
- Add
svg_include_node_idas a query parameter for the GET image endpoint. This adds node ids to svg elements asdata-node-id.
August 31, 2023
- Variable and collection objects returned by the GET published variables endpoint include an
updatedAttimestamp that indicates the last time a change to the variable or collection was published.
August 17, 2023
- Get and set
codeSyntaxfor local variables in the variables endpoints. - Support for deleting dev resources.
- Support filtering dev resources for specific
node_idswhen fetching dev resources.
August 9, 2023
- Support for reading
layoutSizingHorizontalandlayoutSizingVerticalon auto-layout frames and their children.
August 2, 2023
- Ability to get and set
scopes,description,hiddenFromPublishingfor local variables, andhiddenFromPublishingfor local variable collections for the variables endpoints.
July 26, 2023
- Support space-separated scopes in addition to comma-separated scopes for OAuth authentication.
July 10, 2023
Add cornerSmoothing property to all nodes that support cornerRadius.
June 21, 2023
This update adds brand new endpoints for variables and dev resources, and introduces important changes to personal access and OAuth tokens.
- New endpoints for querying, creating, updating, and deleting variables. Variables in Figma Design store reusable values that can be applied to all kinds of design properties and prototyping actions.
- New endpoints for querying, creating, and updating dev resources. Dev resources are developer-contributed urls that are attached to nodes in files and are shown in Figma Dev Mode.
Authentication changes
Personal access tokens and OAuth 2 tokens now support scopes that limit which endpoints the token has access to. For personal access tokens, there is a new flow for assigning scopes and expiration when generating a token. For OAuth 2, applications can ask for a new set of scopes when redirecting the user to allow access for the application.
Legacy tokens (personal access tokens with no scopes or OAuth tokens with the file_read scope) will continue to work as-is. However, the new endpoints above require additional scopes for your application to call them.
May 3, 2023
- Introduce the Payments REST API and GET payments endpoint.
April 26, 2023
- Add
strokeDashesproperty to FRAME nodes.
March 22, 2023
- Add
as_mdparameter to the GET comments endpoint to return rich-text comments as markdown.
March 14, 2023
- Add TABLE and TABLE_CELL node types.
February 6, 2023
- Update
componentPropertyReferencesto also show up on applicable instance sublayers.
December 16, 2022
Font metrics improvements
- Node and style values for
fontWeightwill now be more accurate and reflect variable font settings and custom font style weights. - Node and style values for
lineHeightwill now use the main node or text style font metadata for determining percent-based line height values. Previously, it used the maximumlineHeightof all fonts used in the node.
December 7, 2022
Add support for overrides
- Update INSTANCE nodes to include an
overridesfield. Theoverridesfield is an array of all of the fields directly overridden on an instance.
November 9, 2022
Add fill overrides
- Update VECTOR nodes to have
fillOverrideTablewhich shows overriden fills for different regions in the vector.
October 28, 2022
Update component set fields
- Update component set to include a
documentationLinksfield
September 28, 2022
Add component properties fields
- Update nodes to have component properties-related fields
July 20, 2022
Increase Comments Functionalities
- Update Comment type to support Region and FrameOffsetRegion types in
client_meta - Update Comment type to include Reactions
- Create Reaction, Region, and FrameOffsetRegion types
- Update POST comments endpoint to accept Region and FrameOffsetRegion types as
client_meta - Create GET comment reactions, POST comment reactions, and DELETE comment reactions endpoints
May 23, 2022
New properties
The following properties have been added/updated:
layoutPositioningitemReverseZIndexstrokesIncludedInLayoutindividualStrokeWeightscounterAxisAlignItemscan returnBASELINEtextAutoResizecan returnTRUNCATE
February 9, 2022
Bug Fixes
- Fix bug where the GET file endpoint did not include component sets from team libraries
December 8, 2021
Bug Fixes
- Fix bug where PNGs exported from the REST API were of lower quality (less anti-aliasing) than those exported from the Figma UI