Aprovan Registry
provider 47 operations 15 docs pages
@utdk/figma
Figma API

Generated UTDK provider client for Figma API. This is the OpenAPI specification for the Figma REST API.

Note: we are releasing the OpenAPI specification as a beta given the large surface area and complexity of the REST API. If you notice any inaccuracies with the specification, please file an issue.

Import sample

import figma from "@utdk/figma"

Factory sample

import { createFigmaClient } from "@utdk/figma"
Provider path
figma
Source API title
Figma API
Version
0.37.0
Generated
Apr 8, 2026, 3:35 PM
Homepage
Open site
API spec
View spec
Variables
Optional generated docs page for @utdk/figma.

Variables

Use these operations through the generated client (not direct HTTP calls).

Import path: @utdk/figma

Operations

figma.postVariables

  • HTTP: POST /v1/files/{file_key}/variables
  • What it does: Create/modify/delete variables
  • OpenAPI operationId: postVariables
  • Path params: file_key
  • Query params: None
  • Response codes: 200, 400, 401, 403, 404, 429, 500
  • Transport options: None
  • Source: OpenAPI reference
  • TypeScript: Client interface

Inputs

  • Client input type: { variableCollections?: ({ action: "CREATE"; id?: string; name: string; initialModeId?: string; hiddenFromPublishing?: boolean; parentVariableCollectionId?: string; initialModeIdToParentModeIdMapping?: { [key: string]: string | undefined } } | { action: "UPDATE"; id: string; name?: string; hiddenFromPublishing?: boolean } | { action: "DELETE"; id: string })[]; variableModes?: ({ action: "CREATE"; id?: string; name: string; variableCollectionId: string } | { action: "UPDATE"; id: string; name?: string; variableCollectionId: string } | { action: "DELETE"; id: string })[]; variables?: ({ action: "CREATE"; id?: string; name: string; variableCollectionId: string; resolvedType: "BOOLEAN" | "FLOAT" | "STRING" | "COLOR"; description?: string; hiddenFromPublishing?: boolean; scopes?: ("ALL_SCOPES" | "TEXT_CONTENT" | "CORNER_RADIUS" | "WIDTH_HEIGHT" | "GAP" | "ALL_FILLS" | "FRAME_FILL" | "SHAPE_FILL" | "TEXT_FILL" | "STROKE_COLOR" | "STROKE_FLOAT" | "EFFECT_FLOAT" | "EFFECT_COLOR" | "OPACITY" | "FONT_FAMILY" | "FONT_STYLE" | "FONT_WEIGHT" | "FONT_SIZE" | "LINE_HEIGHT" | "LETTER_SPACING" | "PARAGRAPH_SPACING" | "PARAGRAPH_INDENT" | "FONT_VARIATIONS")[]; codeSyntax?: { WEB?: string; ANDROID?: string; iOS?: string } } | { action: "UPDATE"; id: string; name?: string; description?: string; hiddenFromPublishing?: boolean; scopes?: ("ALL_SCOPES" | "TEXT_CONTENT" | "CORNER_RADIUS" | "WIDTH_HEIGHT" | "GAP" | "ALL_FILLS" | "FRAME_FILL" | "SHAPE_FILL" | "TEXT_FILL" | "STROKE_COLOR" | "STROKE_FLOAT" | "EFFECT_FLOAT" | "EFFECT_COLOR" | "OPACITY" | "FONT_FAMILY" | "FONT_STYLE" | "FONT_WEIGHT" | "FONT_SIZE" | "LINE_HEIGHT" | "LETTER_SPACING" | "PARAGRAPH_SPACING" | "PARAGRAPH_INDENT" | "FONT_VARIATIONS")[]; codeSyntax?: { WEB?: string; ANDROID?: string; iOS?: string } } | { action: "DELETE"; id: string })[]; variableModeValues?: ({ variableId: string; modeId: string; value: boolean | number | string | { r: number; g: number; b: number } | { r: number; g: number; b: number; a: number } | { type: "VARIABLE_ALIAS"; id: string } | null })[]; file_key: string }
  • Client transport options: None

Outputs

  • Client return type: { status: 200; error: false; meta: { tempIdToRealId: { [key: string]: string | undefined } } }
  • OpenAPI response codes: 200, 400, 401, 403, 404, 429, 500
import figma from "@utdk/figma";

type PostVariablesInput = Parameters<typeof figma.postVariables> extends [infer T, ...unknown[]] ? T : undefined;
type PostVariablesOutput = Awaited<ReturnType<typeof figma.postVariables>>;

const input: PostVariablesInput = {} as { variableCollections?: ({ action: "CREATE"; id?: string; name: string; initialModeId?: string; hiddenFromPublishing?: boolean; parentVariableCollectionId?: string; initialModeIdToParentModeIdMapping?: { [key: string]: string | undefined } } | { action: "UPDATE"; id: string; name?: string; hiddenFromPublishing?: boolean } | { action: "DELETE"; id: string })[]; variableModes?: ({ action: "CREATE"; id?: string; name: string; variableCollectionId: string } | { action: "UPDATE"; id: string; name?: string; variableCollectionId: string } | { action: "DELETE"; id: string })[]; variables?: ({ action: "CREATE"; id?: string; name: string; variableCollectionId: string; resolvedType: "BOOLEAN" | "FLOAT" | "STRING" | "COLOR"; description?: string; hiddenFromPublishing?: boolean; scopes?: ("ALL_SCOPES" | "TEXT_CONTENT" | "CORNER_RADIUS" | "WIDTH_HEIGHT" | "GAP" | "ALL_FILLS" | "FRAME_FILL" | "SHAPE_FILL" | "TEXT_FILL" | "STROKE_COLOR" | "STROKE_FLOAT" | "EFFECT_FLOAT" | "EFFECT_COLOR" | "OPACITY" | "FONT_FAMILY" | "FONT_STYLE" | "FONT_WEIGHT" | "FONT_SIZE" | "LINE_HEIGHT" | "LETTER_SPACING" | "PARAGRAPH_SPACING" | "PARAGRAPH_INDENT" | "FONT_VARIATIONS")[]; codeSyntax?: { WEB?: string; ANDROID?: string; iOS?: string } } | { action: "UPDATE"; id: string; name?: string; description?: string; hiddenFromPublishing?: boolean; scopes?: ("ALL_SCOPES" | "TEXT_CONTENT" | "CORNER_RADIUS" | "WIDTH_HEIGHT" | "GAP" | "ALL_FILLS" | "FRAME_FILL" | "SHAPE_FILL" | "TEXT_FILL" | "STROKE_COLOR" | "STROKE_FLOAT" | "EFFECT_FLOAT" | "EFFECT_COLOR" | "OPACITY" | "FONT_FAMILY" | "FONT_STYLE" | "FONT_WEIGHT" | "FONT_SIZE" | "LINE_HEIGHT" | "LETTER_SPACING" | "PARAGRAPH_SPACING" | "PARAGRAPH_INDENT" | "FONT_VARIATIONS")[]; codeSyntax?: { WEB?: string; ANDROID?: string; iOS?: string } } | { action: "DELETE"; id: string })[]; variableModeValues?: ({ variableId: string; modeId: string; value: boolean | number | string | { r: number; g: number; b: number } | { r: number; g: number; b: number; a: number } | { type: "VARIABLE_ALIAS"; id: string } | null })[]; file_key: string };
const result: PostVariablesOutput = await figma.postVariables(input);

// Result shape (from schema): { status: 200; error: false; meta: { tempIdToRealId: { [key: string]: string | undefined } } }

figma.getLocalVariables

  • HTTP: GET /v1/files/{file_key}/variables/local
  • What it does: Get local variables
  • OpenAPI operationId: getLocalVariables
  • Path params: file_key
  • Query params: None
  • Response codes: 200, 401, 403, 404, 429, 500
  • Transport options: None
  • Source: OpenAPI reference
  • TypeScript: Client interface

Inputs

  • Client input type: { file_key: string }
  • Client transport options: None

Outputs

  • Client return type: { status: 200; error: false; meta: { variables: { [key: string]: { id: string; name: string; key: string; variableCollectionId: string; resolvedType: "BOOLEAN" | "FLOAT" | "STRING" | "COLOR"; valuesByMode: { [key: strin...
  • OpenAPI response codes: 200, 401, 403, 404, 429, 500
import figma from "@utdk/figma";

type GetLocalVariablesInput = Parameters<typeof figma.getLocalVariables> extends [infer T, ...unknown[]] ? T : undefined;
type GetLocalVariablesOutput = Awaited<ReturnType<typeof figma.getLocalVariables>>;

const input: GetLocalVariablesInput = {} as { file_key: string };
const result: GetLocalVariablesOutput = await figma.getLocalVariables(input);

// Result shape (from schema): { status: 200; error: false; meta: { variables: { [key: string]: { id: string; name: string; key: string; variableCollectionId: string; resolvedType: "BOOLEAN" | "FLOAT" | "STRING" | "COLOR"; valuesByMode: { [key: strin...

figma.getPublishedVariables

  • HTTP: GET /v1/files/{file_key}/variables/published
  • What it does: Get published variables
  • OpenAPI operationId: getPublishedVariables
  • Path params: file_key
  • Query params: None
  • Response codes: 200, 401, 403, 404, 429, 500
  • Transport options: None
  • Source: OpenAPI reference
  • TypeScript: Client interface

Inputs

  • Client input type: { file_key: string }
  • Client transport options: None

Outputs

  • Client return type: { status: 200; error: false; meta: { variables: { [key: string]: { id: string; subscribed_id: string; name: string; key: string; variableCollectionId: string; resolvedDataType: "BOOLEAN" | "FLOAT" | "STRING" | "COLOR"; ...
  • OpenAPI response codes: 200, 401, 403, 404, 429, 500
import figma from "@utdk/figma";

type GetPublishedVariablesInput = Parameters<typeof figma.getPublishedVariables> extends [infer T, ...unknown[]] ? T : undefined;
type GetPublishedVariablesOutput = Awaited<ReturnType<typeof figma.getPublishedVariables>>;

const input: GetPublishedVariablesInput = {} as { file_key: string };
const result: GetPublishedVariablesOutput = await figma.getPublishedVariables(input);

// Result shape (from schema): { status: 200; error: false; meta: { variables: { [key: string]: { id: string; subscribed_id: string; name: string; key: string; variableCollectionId: string; resolvedDataType: "BOOLEAN" | "FLOAT" | "STRING" | "COLOR"; ...