{
  "openapi": "3.0.1",
  "info": {
    "title": "Sketchfab 3D Model Scraper",
    "description": "Scrape Sketchfab.com - search or browse 3D models by keyword, category, license, price and more. Get titles, authors, licenses, pricing, view/like counts, polygon counts, thumbnails and download info, no login required.",
    "version": "1.0",
    "x-build-id": "mb309nU1IYBi8XX2C"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~sketchfab-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-sketchfab-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/crawlerbros~sketchfab-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-sketchfab-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/crawlerbros~sketchfab-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-sketchfab-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "byCategory",
              "byUser",
              "staffPicks",
              "byIds"
            ],
            "type": "string",
            "description": "search = keyword text search (default). byCategory = browse a taxonomy category. byUser = list all models by an author's username. staffPicks = Sketchfab editorial staff picks. byIds = look up exact models by their Sketchfab model ID (the 32-char hex code in the model URL).",
            "default": "search"
          },
          "searchQuery": {
            "title": "Search query (mode=search)",
            "type": "string",
            "description": "Keyword(s) to search for, e.g. 'dragon', 'low poly car', 'medieval castle'. Required when mode=search."
          },
          "category": {
            "title": "Category (mode=search, byCategory)",
            "enum": [
              "",
              "animals-pets",
              "architecture",
              "art-abstract",
              "cars-vehicles",
              "characters-creatures",
              "cultural-heritage-history",
              "electronics-gadgets",
              "fashion-style",
              "food-drink",
              "furniture-home",
              "music",
              "nature-plants",
              "news-politics",
              "people",
              "places-travel",
              "science-technology",
              "sports-fitness",
              "weapons-military"
            ],
            "type": "string",
            "description": "Restrict results to a Sketchfab taxonomy category. Combine with searchQuery in mode=search, or use alone in mode=byCategory.",
            "default": ""
          },
          "username": {
            "title": "Username (mode=byUser)",
            "type": "string",
            "description": "Exact Sketchfab username to list models for (from a profile URL like sketchfab.com/<username>). Required when mode=byUser."
          },
          "modelIds": {
            "title": "Model IDs (mode=byIds)",
            "type": "array",
            "description": "Exact Sketchfab model IDs to look up (the code at the end of a model's URL -- either the modern 32-character hex ID, e.g. 14ec4c0460c64065af1c6fd31f104344, or the legacy 27-character case-sensitive ID used by older models, e.g. hliAt7xc6YU2XjXh5G4lzmQwFmR). Required when mode=byIds.",
            "items": {
              "type": "string"
            }
          },
          "licenseType": {
            "title": "License type",
            "enum": [
              "",
              "by",
              "by-sa",
              "by-nd",
              "by-nc",
              "by-nc-sa",
              "by-nc-nd",
              "cc0",
              "free-st",
              "st",
              "ed"
            ],
            "type": "string",
            "description": "Only return models under this license. Only CC-licensed models are downloadable on Sketchfab.",
            "default": ""
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "likes",
              "views",
              "recent"
            ],
            "type": "string",
            "description": "Result order. Not applicable to mode=byIds.",
            "default": "relevance"
          },
          "downloadableOnly": {
            "title": "Downloadable models only",
            "type": "boolean",
            "description": "Only return models that can be downloaded (always free, CC-licensed).",
            "default": false
          },
          "animatedOnly": {
            "title": "Animated models only",
            "type": "boolean",
            "description": "Only return models that contain at least one animation.",
            "default": false
          },
          "staffPickedOnly": {
            "title": "Staff-picked only",
            "type": "boolean",
            "description": "Only return models that were featured as a Sketchfab staff pick. Always on for mode=staffPicks.",
            "default": false
          },
          "riggedOnly": {
            "title": "Rigged models only",
            "type": "boolean",
            "description": "Only return models with a rig (skeleton), ready for animation/posing. Not applicable to mode=byIds.",
            "default": false
          },
          "minFaceCount": {
            "title": "Min face count",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Only return models with at least this many polygon faces (see the output `faceCount` field). Useful for finding higher-detail models."
          },
          "maxFaceCount": {
            "title": "Max face count",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Only return models with at most this many polygon faces. Useful for finding lightweight/low-poly models suitable for real-time rendering or games."
          },
          "fetchPricing": {
            "title": "Fetch price & download details",
            "type": "boolean",
            "description": "Fetch each model's detail page to populate exact price (for paid Sketchfab Store models), download count, and protection status. Adds one extra request per model. Turn off for faster runs when pricing detail isn't needed.",
            "default": true
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum number of models to return.",
            "default": 30
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}