Docs
BlogHomeStart building

Figma

Build from your designs.


Connect Figma with a token, then paste a Figma link in a prompt ("build the pricing section from this design: https://www.figma.com/design/…?node-id=42-1337"); the agent reads that frame. In Figma, right-click a frame → Copy link to selection for a link to exactly that frame. Tokens are stored encrypted and never returned.

Create a token: Figma → Settings → Security → Personal access tokens → Generate new token, with the scopes current_user:read and file_content:read (it starts with figd_). An Organization or Enterprise plan access token works the same way and survives people leaving the team.

#Connect Figma

POST/api/v1/vcaas/projects/:projectId/figma/connectapi-keyFree

Link a Figma account to the project. The token is checked with Figma before anything is stored. Launch Project also takes figma.token.

Path parameters

ParameterTypeDescription
projectIdstringThe project id

Body parameters

FieldTypeRequiredDescription
tokenstringYesFigma personal or plan access token

Response fields

FieldTypeDescription
data.connectedbooleantrue
data.accountobject{ id, handle, email?, imgUrl? } of the Figma account

Example request

curl -X POST \
  -H "api-key: tlm_sk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"token":"figd_xxx"}' \
  https://builder-api.totalum.app/api/v1/vcaas/projects/barber-bookings/figma/connect
Success · 200 OK
json
{ "errors": null, "data": { "connected": true, "account": { "id": "123456", "handle": "Ada Lovelace", "email": "ada@example.com", "imgUrl": "https://s3-alpha.figma.com/profile/…" } } }

Error codes

CodeHTTPMeaning
MISSING_FIGMA_TOKEN400token is missing
FIGMA_TOKEN_MALFORMED400Not a Figma token (whitespace, a URL, too short)
FIGMA_TOKEN_INVALID400Figma rejected it: wrong, expired or revoked
FIGMA_TOKEN_FORBIDDEN400Missing the current_user:read / file_content:read scopes
FIGMA_RATE_LIMITED400Figma is rate-limiting; retry shortly
FIGMA_UNREACHABLE400Figma could not be reached
AGENT_RUNNING409A prompt is running

#Check a Figma Token

POST/api/v1/vcaas/figma/validateapi-keyFree

Check a token without connecting it — for a connect form. 10 checks a minute per account.

Body parameters

FieldTypeRequiredDescription
tokenstringYesThe token

Response fields

FieldTypeDescription
data.validbooleantrue
data.accountobject{ id, handle, email?, imgUrl? }

Example request

curl -X POST \
  -H "api-key: tlm_sk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"token":"figd_xxx"}' \
  https://builder-api.totalum.app/api/v1/vcaas/figma/validate
Success · 200 OK
json
{ "errors": null, "data": { "valid": true, "account": { "id": "123456", "handle": "Ada Lovelace", "email": "ada@example.com" } } }

Error codes

CodeHTTPMeaning
FIGMA_TOKEN_MISSING400No token
FIGMA_TOKEN_MALFORMED / FIGMA_TOKEN_INVALID / FIGMA_TOKEN_FORBIDDEN / FIGMA_RATE_LIMITED / FIGMA_UNREACHABLE400As in Connect Figma
RATE_LIMITED429More than 10 checks a minute
End of Check a Figma TokenNext endpointGETGet Figma Status

#Get Figma Status

GET/api/v1/vcaas/projects/:projectId/figma/statusapi-keyFree

Whether Figma is connected, and to which account. A failed re-check never disconnects it.

Path parameters

ParameterTypeDescription
projectIdstringThe project id

Query parameters

FieldTypeRequiredDescription
verifybooleanNotrue re-checks the token with Figma (a live call: on screen open, not in a poll)

Response fields

FieldTypeDescription
data.connectedbooleanConnected
data.accountobject | undefined{ id, handle, email?, imgUrl? }
data.connectedAtstring | undefinedWhen it was connected
data.tokenValidboolean | undefinedWith verify=true: Figma still accepts the token
data.tokenErrorstring | undefinedWith verify=true: why it failed
data.expiresAtstring | undefinedToken expiry, when known

Example request

curl -H "api-key: tlm_sk_your_key" \
  "https://builder-api.totalum.app/api/v1/vcaas/projects/barber-bookings/figma/status?verify=true"
Success · 200 OK
json
{ "errors": null, "data": { "connected": true, "account": { "id": "123456", "handle": "Ada Lovelace" }, "connectedAt": "2026-10-08T10:24:00.000Z", "tokenValid": true } }

#Disconnect Figma

DELETE/api/v1/vcaas/projects/:projectId/figma/connectapi-keyFree

Remove the Figma connection (nothing changes in your Figma account). Calling it on a project that is not connected also answers 200.

Path parameters

ParameterTypeDescription
projectIdstringThe project id

Response fields

FieldTypeDescription
data.disconnectedbooleantrue
data.messagestringConfirmation

Example request

curl -X DELETE -H "api-key: tlm_sk_your_key" \
  https://builder-api.totalum.app/api/v1/vcaas/projects/barber-bookings/figma/connect
Success · 200 OK
json
{ "errors": null, "data": { "disconnected": true, "message": "Figma disconnected successfully" } }
End of Disconnect Figma Back to top