Sketchfab Download API

Programmatic download of 3D models from Sketchfab's library in glTF, GLB, and USDZ formats. Requires end-user OAuth authentication. Source formats (FBX, OBJ, etc.) are not exposed through the public API; application-level download access without user authentication requires a contract with Sketchfab.

OpenAPI Specification

sketchfab-download-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Sketchfab Download API
  description: >
    Programmatic download of downloadable Sketchfab models in glTF, GLB, and
    USDZ formats. The endpoint returns short-lived signed URLs for each
    available format. The caller must be authenticated on behalf of an end
    user (OAuth Authorization Code or Implicit flow); application-level
    downloads without user authentication require a direct contract with
    Sketchfab. Source formats (FBX, OBJ) are not exposed.
  version: v3
  contact:
    name: Sketchfab Developer Support
    url: https://support.fab.com/s/?ProductOrigin=Sketchfab
  license:
    name: Sketchfab Developer Terms of Use
    url: https://sketchfab.com/developers/terms
servers:
  - url: https://api.sketchfab.com
    description: Production API
security:
  - OAuth2: []
tags:
  - name: Download
    description: Retrieve signed download URLs for a model.
paths:
  /v3/models/{uid}/download:
    get:
      summary: Retrieve Model Download URLs
      description: Returns short-lived signed URLs to the glTF, GLB, and USDZ archives for the requested model. The model must be marked downloadable and the caller must have permission to download it (license-compatible or owned).
      operationId: getModelDownload
      tags:
        - Download
      parameters:
        - name: uid
          in: path
          required: true
          description: The Sketchfab model UID.
          schema:
            type: string
      responses:
        '200':
          description: Download URLs by format.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DownloadEnvelope'
        '401':
          $ref: '#/components/responses/Error'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
components:
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://sketchfab.com/oauth2/authorize/
          tokenUrl: https://sketchfab.com/oauth2/token/
          refreshUrl: https://sketchfab.com/oauth2/token/
          scopes:
            read: Read access including model downloads.
  responses:
    Error:
      description: Error response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    DownloadEnvelope:
      type: object
      properties:
        gltf:
          $ref: '#/components/schemas/DownloadEntry'
        glb:
          $ref: '#/components/schemas/DownloadEntry'
        usdz:
          $ref: '#/components/schemas/DownloadEntry'
    DownloadEntry:
      type: object
      properties:
        url:
          type: string
          format: uri
          description: Short-lived signed download URL.
        size:
          type: integer
          description: Archive size in bytes.
        expires:
          type: integer
          description: Seconds until the signed URL expires.
    Error:
      type: object
      properties:
        detail:
          type: string
        code:
          type: string