{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok Scraper Pro",
    "description": "Scrape TikTok videos from profiles, video URLs, search, hashtags, and sounds with stronger diagnostics, simpler pricing, and cleaner output.",
    "version": "0.1",
    "x-build-id": "gcAmBhdIbGtcRBf07"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/netdesignr~tiktok-scraper-pro/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-netdesignr-tiktok-scraper-pro",
        "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/netdesignr~tiktok-scraper-pro/runs": {
      "post": {
        "operationId": "runs-sync-netdesignr-tiktok-scraper-pro",
        "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/netdesignr~tiktok-scraper-pro/run-sync": {
      "post": {
        "operationId": "run-sync-netdesignr-tiktok-scraper-pro",
        "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",
        "properties": {
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "TikTok usernames, profile URLs, direct video URLs, hashtag URLs, search URLs, or music URLs. Usernames such as nike also work here.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Search queries",
            "type": "array",
            "description": "Optional convenience field for keyword searches. Each query is converted into a TikTok search URL automatically.",
            "items": {
              "type": "string"
            }
          },
          "hashtags": {
            "title": "Hashtags",
            "type": "array",
            "description": "Optional convenience field for hashtag collection. Values can include or omit the leading #.",
            "items": {
              "type": "string"
            }
          },
          "musicUrls": {
            "title": "Music URLs",
            "type": "array",
            "description": "Optional convenience field for TikTok music or sound URLs.",
            "items": {
              "type": "string"
            }
          },
          "maxItemsPerTarget": {
            "title": "Max videos per target",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Maximum number of TikTok videos to emit for each target.",
            "default": 1
          },
          "dateFrom": {
            "title": "Date from",
            "type": "string",
            "description": "Only keep videos created on or after this value. Accepts ISO dates like 2026-03-01 or relative values like 7 days or 2 weeks."
          },
          "dateTo": {
            "title": "Date to",
            "type": "string",
            "description": "Only keep videos created on or before this value. Accepts ISO dates or relative values."
          },
          "minViews": {
            "title": "Minimum views",
            "minimum": 0,
            "type": "integer",
            "description": "Drop videos below this play count threshold."
          },
          "minLikes": {
            "title": "Minimum likes",
            "minimum": 0,
            "type": "integer",
            "description": "Drop videos below this like count threshold."
          },
          "minComments": {
            "title": "Minimum comments",
            "minimum": 0,
            "type": "integer",
            "description": "Drop videos below this comment count threshold."
          },
          "extractionMode": {
            "title": "Extraction mode",
            "enum": [
              "fast",
              "balanced",
              "full"
            ],
            "type": "string",
            "description": "Fast prefers lightweight detail scraping, balanced enables stronger browser API capture for harder surfaces, and full keeps scrolling longer for broader collection.",
            "default": "fast"
          },
          "includeProfileDetails": {
            "title": "Include profile snapshot",
            "type": "boolean",
            "description": "Attach a normalized profile snapshot when TikTok exposes it.",
            "default": false
          },
          "includeDownloadUrls": {
            "title": "Include download URLs",
            "type": "boolean",
            "description": "Keep download URLs when TikTok exposes them in the source payload.",
            "default": false
          },
          "sessionCookieHeader": {
            "title": "Session cookie header",
            "type": "string",
            "description": "Optional raw Cookie header copied from a logged-in browser session. Helps when TikTok degrades public surfaces."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional proxy configuration supplied by the user. No proxy is used by default, and the Actor never enables residential proxies automatically."
          },
          "residentialProxyFallbackMode": {
            "title": "Residential proxy fallback",
            "enum": [
              "off",
              "retry"
            ],
            "type": "string",
            "description": "Off (default) keeps the one fresh-session retry on your configured connection. Opt into Retry to retry empty profile targets once through Apify Residential proxy in the US. Residential proxy traffic costs more. Only the profile retry uses residential bandwidth; other surfaces retain retries on the configured connection. Missing residential access falls back gracefully.",
            "default": "off"
          },
          "emptyRunPolicy": {
            "title": "Empty run policy",
            "enum": [
              "retry_then_fail",
              "retry_then_warn"
            ],
            "type": "string",
            "description": "After the existing retry, fail on 0 items by default, or explicitly warn and succeed. Legacy saved success policies are normalized to warning in code.",
            "default": "retry_then_fail"
          },
          "debugMode": {
            "title": "Debug mode",
            "type": "boolean",
            "description": "Include extra runtime warnings for troubleshooting.",
            "default": false
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}