Figma API

Figma allows designers to create and prototype their digital experiences - together in real-time and in one place - helping them turn their ideas and visions into products, faster. Figma's mission is to make design accessible to everyone. The Figma API is one of the ways we aim to do that.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

figma-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Figma API
  version: 0.21.0
  description: >-
    This is the OpenAPI specification for the [Figma REST
    API](https://www.figma.com/developers/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](https://github.com/figma/rest-api-spec/issues).
  termsOfService: https://www.figma.com/developer-terms/
  contact:
    email: [email protected]
servers:
- url: https://api.figma.com
  description: Figma Production API Server
tags:
- name: Users
  description: Operations related to user information and authentication
paths:
  /v1/me:
    get:
      tags:
      - Users
      summary: Figma Get Current User
      security:
      - PersonalAccessToken: []
      - OAuth2:
        - files:read
      description: Returns the user information for the currently authenticated user.
      operationId: getMe
      x-microcks-operation:
        dispatcher: FALLBACK
        dispatcherRules: |
          {
            "dispatcher": "FALLBACK",
            "fallback": "GetMeSuccessExample"
          }
      responses:
        '200':
          $ref: '#/components/responses/GetMeResponse'
        '403':
          $ref: '#/components/responses/ForbiddenErrorResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsErrorResponse'
        '500':
          $ref: '#/components/responses/InternalServerErrorResponse'
components:
  securitySchemes:
    PersonalAccessToken:
      type: http
      scheme: bearer
      bearerFormat: Figma Personal Access Token
      description: Personal Access Token for authentication
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://www.figma.com/oauth
          tokenUrl: https://api.figma.com/v1/oauth/token
          scopes:
            files:read: Read files
  responses:
    GetMeResponse:
      description: Response from the GET /v1/me endpoint.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetMeResponseBody'
          examples:
            GetMeSuccessExample:
              $ref: '#/components/examples/GetMeSuccessExample'
    ForbiddenErrorResponse:
      description: >-
        The request was valid, but the server is refusing action. The user might
        not have the necessary permissions for a resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponsePayload'
          examples:
            ForbiddenExample:
              $ref: '#/components/examples/ForbiddenExample'
    TooManyRequestsErrorResponse:
      description: >-
        API requests may be throttled or rate limited. Please wait a while
        before attempting the request again.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponsePayload'
          examples:
            TooManyRequestsExample:
              $ref: '#/components/examples/TooManyRequestsExample'
    InternalServerErrorResponse:
      description: An internal server error occurred.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponsePayload'
          examples:
            InternalServerErrorExample:
              $ref: '#/components/examples/InternalServerErrorExample'
  schemas:
    GetMeResponseBody:
      allOf:
      - $ref: '#/components/schemas/User'
      - type: object
        properties:
          email:
            type: string
            description: >-
              Email associated with the user's account. This property is
              only present on the /v1/me endpoint.
        required:
        - email
    User:
      type: object
      description: A description of a user.
      properties:
        id:
          type: string
          description: Unique stable id of the user.
          example: abc123
        handle:
          type: string
          description: Name of the user.
          example: example_value
        imgUrl:
          type: string
          description: URL link to the user's profile image.
          example: https://www.example.com
      required:
      - id
      - handle
      - imgUrl
    ErrorResponsePayload:
      type: object
      description: A response indicating an error occurred.
      properties:
        status:
          type: number
          description: Status code
          example: 42.5
        err:
          type: string
          description: A string describing the error
          example: example_value
      required:
      - status
      - err
  examples:
    GetMeSuccessExample:
      summary: Successful user profile response
      value:
        id: "1234567890"
        handle: "John Doe"
        imgUrl: "https://s3-alpha.figma.com/profile/1234567890"
        email: "[email protected]"
    ForbiddenExample:
      summary: Forbidden error
      value:
        status: 403
        err: "You do not have permission to access this resource"
    TooManyRequestsExample:
      summary: Rate limit error
      value:
        status: 429
        err: "Rate limit exceeded. Please wait before making another request"
    InternalServerErrorExample:
      summary: Internal server error
      value:
        status: 500
        err: "An internal server error occurred"