Sapilon becomes publicly available on 1 December 2026: 42 days to go. The core goes open source the same day →

Figma integration

In short

Read files and frames, export images and work with comments. Connect it on the Integrations page; your app then calls Figma through Sapilon without ever holding a Figma credential.

Lets your app read the structure of Figma files, export frames and layers as images, list a team’s projects and files, and read or post comments.

Connecting

On the Integrations page choose Connect on Figma and fill in:

  • Personal access token — Figma → Settings → Security → Personal access tokens → Generate new token. Grant current_user:read, file_content:read, file_comments:write and projects:read.

Sapilon checks the key with the provider before it saves it, and stores it encrypted; it is never shown again.

What your app can do

Only these requests are available; anything else is refused.

  • GET /v1/me
  • GET /v1/files/*
  • GET /v1/files/*/nodes
  • GET|POST /v1/files/*/comments
  • GET /v1/images/*
  • GET /v1/teams/*/projects
  • GET /v1/projects/*/files

How the agent uses it

Use integrations.request('figma', …); paths are relative to https://api.figma.com. The file key is the part after /design/ in a Figma URL.

  • GET /v1/me — the token’s account.
  • GET /v1/files/{key} — the document tree; add query: { depth: '2' } for large files. GET /v1/files/{key}/nodes — Example: { method: 'GET', path: '/v1/files/AbC/nodes', query: { ids: '1:2' } }.
  • GET /v1/images/{key} — export as images; returns temporary URLs. Example: { method: 'GET', path: '/v1/images/AbC', query: { ids: '1:2', format: 'png', scale: '2' } }.
  • GET|POST /v1/files/{key}/comments — Example: { method: 'POST', path: '/v1/files/AbC/comments', body: { message: 'Approved' } }.
  • GET /v1/teams/{teamId}/projects, GET /v1/projects/{projectId}/files — browse; the team id is in the team page URL.

More from Figma: https://developers.figma.com/docs/rest-api/

Last updated .

Was this page helpful?