{
  "openapi": "3.0.1",
  "info": {
    "title": "Tiktok Search Scraper",
    "description": "TikTok Search Scraper extracts videos, creators, hashtags, sounds, captions, engagement metrics, and other data from TikTok search results. Automate content discovery, keyword research, trend analysis, competitor monitoring, influencer research, and TikTok marketing intelligence.",
    "version": "0.2",
    "x-build-id": "uKEJgb9tJgyNfAqdy"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scraperforge~tiktok-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scraperforge-tiktok-search-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/scraperforge~tiktok-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scraperforge-tiktok-search-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/scraperforge~tiktok-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scraperforge-tiktok-search-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": [
          "keywords"
        ],
        "properties": {
          "keywords": {
            "title": "🔍💡 Search Keywords",
            "type": "array",
            "description": "🧠 Enter one or more TikTok search terms to start finding trending videos.",
            "items": {
              "type": "string"
            }
          },
          "limit": {
            "title": "📦🎬 Video Limit",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "🔢 Choose how many videos to scrape (minimum 30). Ignored when ♾️ Unlimited Mode is enabled.",
            "default": 10
          },
          "isUnlimited": {
            "title": "♾️🔥 Unlimited Mode",
            "type": "boolean",
            "description": "🚀 When enabled, ignores limit and keeps scraping until TikTok has no more results.",
            "default": false
          },
          "region": {
            "title": "🌍📍 Region",
            "enum": [
              "US",
              "GB",
              "CA",
              "AU",
              "IN",
              "DE",
              "FR",
              "ES",
              "IT",
              "NL",
              "JP",
              "KR",
              "BR",
              "PT",
              "MX",
              "TR",
              "RU",
              "PL",
              "ID",
              "TH",
              "VN",
              "PH",
              "AR",
              "CN",
              "TW",
              "HK",
              "BD"
            ],
            "type": "string",
            "description": "🌐 Select target country (ISO alpha-2). Applied via cookies + Accept-Language headers for better local relevance.",
            "default": "US"
          },
          "sortType": {
            "title": "📊✨ Sort Type",
            "enum": [
              "0",
              "1",
              "2"
            ],
            "type": "string",
            "description": "🧭 Choose how results are sorted: relevance, most liked, or newest first.",
            "default": "0"
          },
          "publishTime": {
            "title": "🗓️⏳ Publish Time Filter",
            "enum": [
              "ALL_TIME",
              "YESTERDAY",
              "WEEK",
              "MONTH",
              "THREE_MONTH",
              "SIX_MONTH"
            ],
            "type": "string",
            "description": "⏱️ Narrow results by upload time window.",
            "default": "ALL_TIME"
          },
          "includeSearchTerms": {
            "title": "🏷️🔎 Include Search Term",
            "type": "boolean",
            "description": "🧩 Add `searchTerm` to each video so you can see which keyword found it.",
            "default": true
          },
          "enrichHashtags": {
            "title": "✨#️⃣ Enrich Hashtags",
            "type": "boolean",
            "description": "🛠️ Fill missing hashtag cover/description fields (adds ~0.5s per unique hashtag).",
            "default": true
          },
          "proxyConfiguration": {
            "title": "🛡️🌐 Proxy Configuration",
            "type": "object",
            "description": "🌍 Proxy policy: this actor always runs on Apify Residential proxies (3 retries) for reliability — any Apify group you pick here is overridden.\n🔁 If you supply Custom proxy URLs, they are tried first (3 retries) and Residential is used as automatic fallback."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}