Skip to content

Reference

Figma

Set up Figma OAuth for collaborative design and prototyping

Connect your users to Figma for accessing design files, variables, comments, and developer resources.

PropertyValue
Provider IDfigma
CategoryDesign
PKCESupported
Token refreshAutomatic
Redirect URIShown in Developer Portal

Go to the Figma My apps page

Navigate to figma.com/developers/apps (or click My Apps in the Figma top toolbar) and sign in.

Create a new app

Click Create a new app in the upper-right corner. Enter a name for the app, select the team or organization it belongs to, and click Create.

Get credentials

Copy the Client ID and Client Secret immediately and store them securely — this is the only time Figma shows the Client Secret.

Configure the redirect URL

In the configuration flow, open the OAuth credentials page, click Add a redirect URL, and add the Alter callback URL from the Developer Portal.

Select OAuth scopes

On the OAuth scopes page, select every scope the integration will request — only a subset of the scopes selected here can be requested at authorization time.

Publish the app

Publish the app: private apps (the default) publish immediately for the selected team or organization; public apps are reviewed by Figma before they can authorize users.

Open the Developer Portal

Go to portal.alterauth.com and navigate to the application.

Add Figma provider

Go to OAuth Providers > Add Provider > Figma.

Enter credentials

  • Client ID: Paste your Figma Client ID
  • Client Secret: Paste your Figma Client Secret

Select scopes

Choose the scopes the application needs.

Save

Click Save. The provider is now active.

ScopeDescription
current_user:readRead the authenticated user’s name, email, and profile image
file_content:readRead the contents of files (nodes, layers, editor type)
file_metadata:readRead metadata of files (name, last modified, project, team)
file_comments:readRead comments and comment reactions in files
file_comments:writePost and delete comments and reactions in files
file_versions:readRead the version history for accessible files
file_dev_resources:readRead developer resources linked to Figma files
file_dev_resources:writeCreate and modify developer resources in Figma files
file_variables:readRead variables in Figma files (Enterprise plan only)
file_variables:writeCreate and modify variables in Figma files (Enterprise plan only)
selections:readRead the most recent selection in accessible files
library_analytics:readRead design system analytics (Enterprise plan only)
library_assets:readRead data of individual published components and styles
library_content:readRead published components and styles of files
project_metadata:readRead metadata of projects
projects:readList projects and the files in them
team_library_content:readRead published components and styles of teams
webhooks:readRead metadata of webhooks
webhooks:writeCreate and manage Figma webhooks
  • Figma deprecated the legacy files:read / file_read scopes in favor of the granular scopes above. For most read-only integrations, file_content:read plus file_metadata:read is sufficient.
  • A newly created app starts in a draft state: only the creator and plan admins can test it. It must be published (privately or publicly) before other users can authorize it; only public apps go through Figma’s review.
  • See the Figma OAuth apps documentation for more details.

Alter policy rules can target these attested operations and families for operation-level and parameter-aware controls.

Operation IDFamiliesMethodProvider path
postCommentwritePOST/v1/files/{file_key}/comments
deleteCommentdeleteDELETE/v1/files/{file_key}/comments/{comment_id}
getCommentsreadGET/v1/files/{file_key}/comments
postVariableswritePOST/v1/files/{file_key}/variables
postWebhookadminPOST/v2/webhooks
putWebhookadminPUT/v2/webhooks/{webhook_id}
deleteWebhookadmin, deleteDELETE/v2/webhooks/{webhook_id}
getWebhookreadGET/v2/webhooks/{webhook_id}
getWebhooksreadGET/v2/webhooks
getTeamWebhooksreadGET/v2/teams/{team_id}/webhooks
getFilereadGET/v1/files/{file_key}
getFileNodesreadGET/v1/files/{file_key}/nodes
getFileMetareadGET/v1/files/{file_key}/meta
getFileVersionsreadGET/v1/files/{file_key}/versions
getFileComponentsreadGET/v1/files/{file_key}/components
getFileStylesreadGET/v1/files/{file_key}/styles
getDevResourcesreadGET/v1/files/{file_key}/dev_resources
getImagesreadGET/v1/images/{file_key}
getLocalVariablesreadGET/v1/files/{file_key}/variables/local
getPublishedVariablesreadGET/v1/files/{file_key}/variables/published
getComponentreadGET/v1/components/{key}
getStylereadGET/v1/styles/{key}
getMereadGET/v1/me
getProjectFilesreadGET/v1/projects/{project_id}/files
getTeamProjectsreadGET/v1/teams/{team_id}/projects
getTeamComponentsreadGET/v1/teams/{team_id}/components
getTeamStylesreadGET/v1/teams/{team_id}/styles

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.