- Notifications
You must be signed in to change notification settings - Fork16
OpenAPI specification and types for the Figma REST API
License
figma/rest-api-spec
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This repository contains the OpenAPI specification and Typescript types for theFigma REST API.
Note: this specification is currently in beta. If you notice any inaccuracies with the specification, pleasefile an issue in this repository.
The OpenAPI (v3.1.0) specification is located in theopenapi/
directory. This specification can be used with awide variety of tools to generate API documentation, client SDKs, and more.
The Typescript types are generated from the OpenAPI specification and are located indist/
.
We use a custom code generator to convert the OpenAPI spec to TypeScript. While there are a number of existing OpenAPI-to-Typescript code generators, we adopted a custom solution that produces output that we believe is more optimal for the Figma REST API. In particular:
- All OpenAPI schemas, responses, and request parameters are exported as named types. This exposes named types inside complex node properties (e.g.
Paint
,VariableAlias
, etc...). - Types directly associated with API endpoints are prefixed with the OpenAPI operation ID (e.g.
getFile
->GetFilePathParams
,GetFileQueryParams
,GetFileResponse
). For API endpoints expecting a request body, the types are suffixed withRequestBody
(e.g.postComments
->PostCommentsRequestBody
).
To use these types in your Typescript code, install the package:
npm install --save-dev @figma/rest-api-spec
Then import the types that you need:
import{typeGetFileResponse}from'@figma/rest-api-spec'// Many popular HTTP clients let you annotate response typesconstresult=awaitaxios.get<GetFileResponse>(url);result.data// This has type GetFileResponse
About
OpenAPI specification and types for the Figma REST API