{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok Creator & Video Scraper",
    "description": "Scrape public TikTok profiles, profile videos, hashtag videos and sound videos. Real view, like, comment, share and save counts, plus the creator and follower count behind every video. For influencer research, trend research and competitive analysis.",
    "version": "1.2",
    "x-build-id": "Tdtk4Px5mTS2xxIFj"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/alizarin_refrigerator-owner~tiktok-creator-video-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-alizarin_refrigerator-owner-tiktok-creator-video-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/alizarin_refrigerator-owner~tiktok-creator-video-scraper/runs": {
      "post": {
        "operationId": "runs-sync-alizarin_refrigerator-owner-tiktok-creator-video-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/alizarin_refrigerator-owner~tiktok-creator-video-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-alizarin_refrigerator-owner-tiktok-creator-video-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",
        "properties": {
          "scrapeType": {
            "title": "Scrape Type",
            "enum": [
              "profiles",
              "hashtags",
              "sounds",
              "search"
            ],
            "type": "string",
            "description": "What to scrape. 'profiles' reads creator profiles and their recent videos. 'hashtags' returns the videos on each hashtag page. 'sounds' returns the videos that use each sound. 'search' runs TikTok video search, which TikTok only shows to signed-in visitors, so it needs your own TikTok cookies.",
            "default": "profiles"
          },
          "usernames": {
            "title": "Usernames",
            "type": "array",
            "description": "TikTok usernames to scrape (without @). Profile links also work.",
            "items": {
              "type": "string"
            }
          },
          "hashtags": {
            "title": "Hashtags",
            "type": "array",
            "description": "Hashtags to scrape videos from (without #). Each video row includes its real view, like, comment, share and save counts and the creator behind it, with follower count.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Search Queries",
            "type": "array",
            "description": "Search terms (with scrapeType 'search'). TikTok shows search results only to signed-in visitors, so add your own TikTok cookies (sessionCookies or cookieStorageKey). Without cookies each query returns a status row and nothing is charged.",
            "items": {
              "type": "string"
            }
          },
          "searchReturnsCreators": {
            "title": "Search Returns Creators",
            "type": "boolean",
            "description": "When scrapeType is 'search', return the creator profiles behind the matching videos (with real follower counts) instead of raw video rows. Turn off to get video rows.",
            "default": true
          },
          "sounds": {
            "title": "Sound IDs",
            "type": "array",
            "description": "TikTok sound IDs or sound links (for example 6715195986316101634 or https://www.tiktok.com/music/Back-In-Black-6715195986316101634).",
            "items": {
              "type": "string"
            }
          },
          "includeVideos": {
            "title": "Include Videos",
            "type": "boolean",
            "description": "Read each creator's recent videos (views, likes, comments, shares, saves, caption, sound) and add per-creator averages and engagement rate.",
            "default": true
          },
          "videosPerProfile": {
            "title": "Videos Per Profile",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Number of recent videos to read per profile.",
            "default": 12
          },
          "maxResults": {
            "title": "Maximum Results",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum profiles, hashtags, sounds or queries to process, and the maximum videos returned per hashtag, sound or query.",
            "default": 50
          },
          "minFollowers": {
            "title": "Minimum Followers",
            "type": "integer",
            "description": "Only return profiles with at least this many followers",
            "default": 0
          },
          "minViews": {
            "title": "Minimum Views",
            "type": "integer",
            "description": "Only return videos with at least this many views.",
            "default": 0
          },
          "sortBy": {
            "title": "Sort By",
            "enum": [
              "followers",
              "likes",
              "views",
              "engagement",
              "recent"
            ],
            "type": "string",
            "description": "Order of the video rows within each hashtag, sound or search: followers (creator follower count), likes, views, engagement or recent.",
            "default": "followers"
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Proxy for TikTok. Leave empty to use Apify Residential proxies (US), which TikTok needs. Datacenter proxies are usually walled."
          },
          "demoMode": {
            "title": "Demo Mode",
            "type": "boolean",
            "description": "Run with labeled sample data (free). Set to false for real scraping.",
            "default": true
          },
          "webhookUrl": {
            "title": "Webhook URL",
            "pattern": "^https?://.+",
            "type": "string",
            "description": "Optional webhook URL to receive results when scraping completes"
          },
          "sessionCookies": {
            "title": "Session Cookies",
            "type": "string",
            "description": "Optional. JSON array of cookies from your own TikTok session, exported with the Cookie-Editor browser extension. Only needed for search. Profiles, hashtags and sounds work without cookies."
          },
          "cookieStorageKey": {
            "title": "Cookie Manager Storage Key",
            "type": "string",
            "description": "Optional. Key to load your own TikTok cookies from the Cookie Manager's key-value store instead of pasting sessionCookies."
          },
          "cookieKvStoreName": {
            "title": "Cookie KV Store Name",
            "type": "string",
            "description": "Name of the key-value store where Cookie Manager saved the session. Defaults to 'cookie-sessions'.",
            "default": "cookie-sessions"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}