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:
  schemas:
    Error:
      type: object
      properties:
        detail:
          type: string
        code:
          type: string
    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.
    DownloadEnvelope:
      type: object
      properties:
        gltf:
          $ref: '#/components/schemas/DownloadEntry'
        glb:
          $ref: '#/components/schemas/DownloadEntry'
        usdz:
          $ref: '#/components/schemas/DownloadEntry'
  responses:
    Error:
      description: Error response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  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.