openapi: 3.2.0 info: title: Sketchfab Data Search API description: 'The Sketchfab Data API v3 provides programmatic read and write access to Sketchfab content. Authenticated callers can upload new 3D models, edit model metadata and settings, manage collections, comments, likes, and bookmarks, search the public model catalog, and administer organizations and projects. Public endpoints (model search, model detail, user profile) are available without authentication. ' 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: [] - ApiTokenAuth: [] tags: - name: Search description: Search public Sketchfab content. paths: /v3/models: get: summary: Search 3D Models description: Search the public catalog of 3D models with full-text query, tags, categories, license, downloadable filter, and sort options. operationId: searchModels tags: - Search parameters: - name: q in: query description: Full-text search query. schema: type: string - name: tags in: query description: Comma-separated list of tag slugs. schema: type: string - name: categories in: query description: Comma-separated list of category slugs. schema: type: string - name: downloadable in: query description: Restrict to downloadable models. schema: type: boolean - name: license in: query description: License filter (e.g. by, by-sa, cc0, ed, st). schema: type: string - name: sort_by in: query description: Sort order (-publishedAt, -likeCount, -viewCount, -processedAt). schema: type: string - name: cursor in: query description: Pagination cursor returned by previous response. schema: type: string responses: '200': description: Paginated list of models. content: application/json: schema: $ref: '#/components/schemas/ModelList' /v3/search: get: summary: Search Sketchfab description: Unified search across models, collections, and users with a `type` selector. operationId: search tags: - Search parameters: - name: type in: query description: One of `models`, `collections`, or `users`. schema: type: string enum: - models - collections - users - name: q in: query schema: type: string responses: '200': description: Search results. content: application/json: schema: type: object properties: results: type: array items: type: object components: schemas: Model: type: object properties: uid: type: string uri: type: string format: uri name: type: string description: type: string viewerUrl: type: string format: uri embedUrl: type: string format: uri thumbnails: type: object tags: type: array items: type: object properties: slug: type: string name: type: string categories: type: array items: $ref: '#/components/schemas/Category' license: type: object properties: slug: type: string label: type: string uri: type: string user: $ref: '#/components/schemas/User' isDownloadable: type: boolean animationCount: type: integer vertexCount: type: integer faceCount: type: integer viewCount: type: integer likeCount: type: integer commentCount: type: integer publishedAt: type: string format: date-time createdAt: type: string format: date-time User: type: object properties: uid: type: string username: type: string displayName: type: string profileUrl: type: string format: uri account: type: string description: Plan slug (basic, plus, pro, premium, business, enterprise). avatar: type: object ModelList: type: object properties: cursors: type: object properties: next: type: string nullable: true previous: type: string nullable: true results: type: array items: $ref: '#/components/schemas/Model' Category: type: object properties: slug: type: string name: type: string uri: type: string format: uri securitySchemes: OAuth2: type: oauth2 description: Sketchfab OAuth 2.0. Access tokens are valid for one month. flows: authorizationCode: authorizationUrl: https://sketchfab.com/oauth2/authorize/ tokenUrl: https://sketchfab.com/oauth2/token/ refreshUrl: https://sketchfab.com/oauth2/token/ scopes: read: Read access to the caller's account, models, and collections. write: Create, update, and delete the caller's models and collections. ApiTokenAuth: type: apiKey in: header name: Authorization description: 'Personal API token sent as `Authorization: Token `.'