{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok Scraper Pro",
    "description": "Scrape TikTok videos from hashtags, profiles, keyword search and video URLs, plus comments and followers. Returns views, likes, shares, saves, captions, authors, sounds and dates. Same input and output format as the most popular TikTok scraper. No login. $2.60 per 1,000 results.",
    "version": "0.1",
    "x-build-id": "YMQolQvVwLaYYZbub"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrape-lads~tiktok-scraper-pro/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrape-lads-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/scrape-lads~tiktok-scraper-pro/runs": {
      "post": {
        "operationId": "runs-sync-scrape-lads-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/scrape-lads~tiktok-scraper-pro/run-sync": {
      "post": {
        "operationId": "run-sync-scrape-lads-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": {
          "hashtags": {
            "title": "Hashtags",
            "type": "array",
            "description": "Hashtags to scrape videos from, with or without the #. Provide at least one of: hashtags, profiles, search queries or video URLs.",
            "items": {
              "type": "string"
            }
          },
          "profiles": {
            "title": "Profiles",
            "type": "array",
            "description": "TikTok usernames or profile URLs.",
            "items": {
              "type": "string"
            }
          },
          "profileScrapeSections": {
            "title": "Profile sections",
            "type": "array",
            "description": "Which parts of each profile to scrape.",
            "items": {
              "type": "string",
              "enum": [
                "videos",
                "reposts"
              ],
              "enumTitles": [
                "Videos",
                "Reposts"
              ]
            },
            "default": [
              "videos"
            ]
          },
          "profileSorting": {
            "title": "Profile video order",
            "enum": [
              "latest",
              "popular",
              "oldest"
            ],
            "type": "string",
            "description": "Order of profile videos.",
            "default": "latest"
          },
          "excludePinnedPosts": {
            "title": "Skip pinned videos",
            "type": "boolean",
            "description": "Leave out videos pinned to the top of a profile.",
            "default": false
          },
          "searchQueries": {
            "title": "Search queries",
            "type": "array",
            "description": "Keywords to search on TikTok.",
            "items": {
              "type": "string"
            }
          },
          "searchSection": {
            "title": "Search tab",
            "enum": [
              "",
              "/video",
              "/user"
            ],
            "type": "string",
            "description": "Which search results tab to scrape.",
            "default": ""
          },
          "maxProfilesPerQuery": {
            "title": "Profiles per search query",
            "minimum": 1,
            "type": "integer",
            "description": "Used with the Profiles search tab.",
            "default": 10
          },
          "videoSearchSorting": {
            "title": "Video search order",
            "enum": [
              "MOST_RELEVANT",
              "MOST_LIKED",
              "LATEST"
            ],
            "type": "string",
            "description": "Order of results in the Videos search tab. Applied to all results TikTok returns for the query (up to about 300). No extra charge.",
            "default": "MOST_RELEVANT"
          },
          "videoSearchDateFilter": {
            "title": "Video search date range",
            "enum": [
              "ALL_TIME",
              "PAST_24_HOURS",
              "PAST_WEEK",
              "PAST_MONTH",
              "LAST_3_MONTHS",
              "LAST_6_MONTHS"
            ],
            "type": "string",
            "description": "Only for the Videos search tab. Keeps results from this period out of all results TikTok returns for the query (up to about 300). No extra charge.",
            "default": "ALL_TIME"
          },
          "postURLs": {
            "title": "Video URLs",
            "type": "array",
            "description": "Specific TikTok video links, including vm.tiktok.com short links.",
            "items": {
              "type": "string"
            }
          },
          "resultsPerPage": {
            "title": "Videos per hashtag, profile or search",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum videos for each hashtag, profile and search query.",
            "default": 10
          },
          "oldestPostDateUnified": {
            "title": "Posted after",
            "type": "string",
            "description": "Only videos published on or after this date. Accepts a date or a relative value like \"30 days\"."
          },
          "newestPostDate": {
            "title": "Posted before",
            "type": "string",
            "description": "Only videos published on or before this date."
          },
          "leastDiggs": {
            "title": "Minimum likes",
            "minimum": 0,
            "type": "integer",
            "description": "Only videos with at least this many likes."
          },
          "mostDiggs": {
            "title": "Maximum likes",
            "minimum": 0,
            "type": "integer",
            "description": "Only videos with fewer than this many likes."
          },
          "commentsPerPost": {
            "title": "Comments per video",
            "minimum": 0,
            "type": "integer",
            "description": "Comments to collect for every scraped video (stored in a linked comments dataset).",
            "default": 0
          },
          "topLevelCommentsPerPost": {
            "title": "Top-level comments per video",
            "minimum": 0,
            "type": "integer",
            "description": "Cap on top-level comments; 0 means the comments limit applies.",
            "default": 0
          },
          "maxRepliesPerComment": {
            "title": "Replies per comment",
            "minimum": 0,
            "type": "integer",
            "description": "Replies to collect under each comment.",
            "default": 0
          },
          "maxFollowersPerProfile": {
            "title": "Followers per profile",
            "minimum": 0,
            "type": "integer",
            "description": "Follower profiles to collect for each input profile (stored in a linked dataset).",
            "default": 0
          },
          "maxFollowingPerProfile": {
            "title": "Following per profile",
            "minimum": 0,
            "type": "integer",
            "description": "Accounts each input profile follows (stored in a linked dataset).",
            "default": 0
          },
          "downloadSubtitlesOptions": {
            "title": "Subtitles",
            "enum": [
              "NEVER_DOWNLOAD_SUBTITLES",
              "DOWNLOAD_SUBTITLES"
            ],
            "type": "string",
            "description": "Add links to TikTok subtitle files (auto-generated and creator captions) to each video.",
            "default": "NEVER_DOWNLOAD_SUBTITLES"
          },
          "proxyCountryCode": {
            "title": "Country",
            "enum": [
              "None",
              "US",
              "GB",
              "DE",
              "FR",
              "ES",
              "IT",
              "BR",
              "MX",
              "CA",
              "AU",
              "IN",
              "ID",
              "PH",
              "AE",
              "SA",
              "TR",
              "JP",
              "KR"
            ],
            "type": "string",
            "description": "See TikTok as a visitor from this country (affects search and hashtag results). Default: United States.",
            "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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}