{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok Explore Scraper",
    "description": "Extract data from TikTok explore categories including post, author, video, and music data. Export scraped data, run the scraper via API, schedule and monitor runs or integrate with other tools.",
    "version": "0.0",
    "x-build-id": "Miu3dgzElMoVT1gYd"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/clockworks~tiktok-explore-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-clockworks-tiktok-explore-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/clockworks~tiktok-explore-scraper/runs": {
      "post": {
        "operationId": "runs-sync-clockworks-tiktok-explore-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/clockworks~tiktok-explore-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-clockworks-tiktok-explore-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": [
          "exploreCategoryTypes"
        ],
        "properties": {
          "exploreCategoryTypes": {
            "title": "Explore these categories",
            "minItems": 1,
            "uniqueItems": true,
            "type": "array",
            "description": "Just select TikTok Explore categories and the scraper will collect information.",
            "items": {
              "type": "string",
              "enum": [
                "pc_web_explorePage_all",
                "pc_web_explorePage_topics_singing_dancing",
                "pc_web_explorePage_topics_comedy",
                "pc_web_explorePage_topics_sports",
                "pc_web_explorePage_topics_anime_comics",
                "pc_web_explorePage_topics_relationship",
                "pc_web_explorePage_topics_shows",
                "pc_web_explorePage_topics_lipsync",
                "pc_web_explorePage_topics_daily_life",
                "pc_web_explorePage_topics_beauty_care",
                "pc_web_explorePage_topics_games",
                "pc_web_explorePage_topics_society",
                "pc_web_explorePage_topics_outfit",
                "pc_web_explorePage_topics_cars",
                "pc_web_explorePage_topics_food",
                "pc_web_explorePage_topics_animals",
                "pc_web_explorePage_topics_family",
                "pc_web_explorePage_topics_drama",
                "pc_web_explorePage_topics_fitness_health",
                "pc_web_explorePage_topics_education",
                "pc_web_explorePage_topics_technology"
              ],
              "enumTitles": [
                "All",
                "Singing & Dancing",
                "Comedy",
                "Sports",
                "Anime & Comics",
                "Relationship",
                "Shows",
                "Lipsync",
                "Daily Life",
                "Beauty Care",
                "Games",
                "Society",
                "Outfit",
                "Cars",
                "Food",
                "Animals",
                "Family",
                "Drama",
                "Fitness & Health",
                "Education",
                "Technology"
              ]
            }
          },
          "resultsPerPage": {
            "title": "Max posts per category (up to ~300 posts - hard limit by TikTok)",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of posts that will be scraped from every Explore category.",
            "default": 100
          },
          "shouldDownloadVideos": {
            "title": "Include videos",
            "type": "boolean",
            "description": "Tick to download TikTok videos. Note that this will increase time and costs needed to extract the data.",
            "default": false
          },
          "shouldDownloadCovers": {
            "title": "Include thumbnails",
            "type": "boolean",
            "description": "Tick to download TikTok video cover images (thumbnails). Note that this will increase time and costs needed to extract the data.",
            "default": false
          },
          "shouldDownloadSubtitles": {
            "title": "Include subtitles",
            "type": "boolean",
            "description": "Tick to download TikTok video subtitles (only when present on the video). Note that this will increase time and costs needed to extract the data.",
            "default": false
          },
          "shouldDownloadSlideshowImages": {
            "title": "Download slideshow images",
            "type": "boolean",
            "description": "Tick to download TikTok slideshow images. Note that this will increase costs and time required for scraping.",
            "default": false
          },
          "videoKvStoreIdOrName": {
            "title": "✍️ Name your storage for videos",
            "pattern": "^[a-zA-Z0-9-]+$",
            "type": "string",
            "description": "Name (or ID) of the Key Value Store where the videos and other media like thumbnails will be stored. Omit to store in the default one. Using this option will provide a named Key-Value store can help bypass data retention and store the content forever until the store is manually deleted.<br><br>The Key-Value store's name can consist of a versatile combination of uppercase letters, lowercase letters, digits, or hyphens, all without any spaces."
          },
          "proxyCountryCode": {
            "title": "Proxy country",
            "enum": [
              "None",
              "AF",
              "AL",
              "DZ",
              "AS",
              "AD",
              "AO",
              "AI",
              "AG",
              "AR",
              "AM",
              "AU",
              "AT",
              "AZ",
              "BS",
              "BH",
              "BD",
              "BB",
              "BY",
              "BE",
              "BZ",
              "BJ",
              "BM",
              "BT",
              "BO",
              "BA",
              "BW",
              "BR",
              "VG",
              "BN",
              "BG",
              "BF",
              "BI",
              "KH",
              "CM",
              "CA",
              "CV",
              "KY",
              "TD",
              "CL",
              "CO",
              "CK",
              "CR",
              "HR",
              "CY",
              "CZ",
              "CD",
              "DK",
              "DJ",
              "DO",
              "EC",
              "EG",
              "SV",
              "EE",
              "ET",
              "FK",
              "FJ",
              "FI",
              "FR",
              "PF",
              "GA",
              "GE",
              "DE",
              "GH",
              "GI",
              "GR",
              "GL",
              "GD",
              "GP",
              "GT",
              "GN",
              "GW",
              "GY",
              "HN",
              "HK",
              "HU",
              "IS",
              "IN",
              "ID",
              "IQ",
              "IE",
              "IM",
              "IL",
              "IT",
              "CI",
              "JM",
              "JP",
              "JE",
              "KZ",
              "KE",
              "XK",
              "KW",
              "LA",
              "LV",
              "LB",
              "LS",
              "LR",
              "LY",
              "LT",
              "LU",
              "MO",
              "MG",
              "MW",
              "MY",
              "MV",
              "ML",
              "MT",
              "MH",
              "MQ",
              "MR",
              "MU",
              "MX",
              "MD",
              "MC",
              "MN",
              "ME",
              "MA",
              "MZ",
              "MM",
              "NA",
              "NR",
              "NP",
              "NL",
              "NZ",
              "NI",
              "NG",
              "MK",
              "NO",
              "OM",
              "PK",
              "PS",
              "PA",
              "PG",
              "PY",
              "PE",
              "PH",
              "PL",
              "PT",
              "PR",
              "QA",
              "CG",
              "RO",
              "RU",
              "RW",
              "RE",
              "KN",
              "LC",
              "MF",
              "PM",
              "VC",
              "SM",
              "SA",
              "SN",
              "RS",
              "SL",
              "SG",
              "SX",
              "SK",
              "SB",
              "SO",
              "ZA",
              "KR",
              "ES",
              "LK",
              "SR",
              "SZ",
              "SE",
              "CH",
              "TW",
              "TJ",
              "TZ",
              "TH",
              "TG",
              "TO",
              "TT",
              "TN",
              "TR",
              "TM",
              "TC",
              "TV",
              "VI",
              "UG",
              "UA",
              "AE",
              "GB",
              "US",
              "UY",
              "VE",
              "VN",
              "WF",
              "YE",
              "ZM",
              "ZW",
              "AX"
            ],
            "type": "string",
            "description": "Country to use with proxy. Use it in case you want to scrape posts only available for some country. Proxies here use RESIDENTIAL group, which is slower and more expensive.",
            "default": "None"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}