{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok Trending Videos Scraper — Viral Videos by Country",
    "description": "Scrape trending and viral TikTok videos from TikTok Creative Center by country, or by hashtag. Get views, likes, shares, comments, author, music and video URLs, with optional MP4 download. Find trends before they peak.",
    "version": "0.0",
    "x-build-id": "6oNk4CeITu8F4CpIQ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/yasaslive~tiktok-trending-videos/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-yasaslive-tiktok-trending-videos",
        "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/yasaslive~tiktok-trending-videos/runs": {
      "post": {
        "operationId": "runs-sync-yasaslive-tiktok-trending-videos",
        "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/yasaslive~tiktok-trending-videos/run-sync": {
      "post": {
        "operationId": "run-sync-yasaslive-tiktok-trending-videos",
        "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": [
          "mode",
          "maxVideos"
        ],
        "properties": {
          "mode": {
            "title": "Scrape Mode",
            "enum": [
              "CreativeCenter",
              "Explore",
              "Hashtag"
            ],
            "type": "string",
            "description": "Creative Center = TikTok's official ranking (up to 12 public videos per region/period, topped up from Explore if enabled). Explore = the public trending feed (no period filter; region follows the proxy country). Hashtag = videos from one hashtag page.",
            "default": "CreativeCenter"
          },
          "country": {
            "title": "Target Country",
            "enum": [
              "AU",
              "BR",
              "CA",
              "EG",
              "FR",
              "DE",
              "ID",
              "IT",
              "JP",
              "MY",
              "MX",
              "PH",
              "PL",
              "RU",
              "SA",
              "SG",
              "KR",
              "ES",
              "SE",
              "TH",
              "TR",
              "AE",
              "GB",
              "US",
              "VN"
            ],
            "type": "string",
            "description": "Region. Since TikTok moved Creative Center into TikTok One (2026), public trending videos exist only for United States, Japan, Indonesia, Thailand and Vietnam; other regions return no videos.",
            "default": "US"
          },
          "hashtag": {
            "title": "Target Hashtag",
            "type": "string",
            "description": "Hashtag to scrape (without #). Only used if Mode is 'Hashtag'."
          },
          "maxVideos": {
            "title": "Max Videos",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of videos. Logged-out Creative Center shows the top 4 videos per ranking, so a run returns at most 12 distinct videos (top 4 by views, engagement and 6-second view rate).",
            "default": 20
          },
          "downloadVideos": {
            "title": "Download Videos",
            "type": "boolean",
            "description": "If true, downloads the actual video file to the Key-Value Store.",
            "default": false
          },
          "period": {
            "title": "Trend Period",
            "enum": [
              "7",
              "30"
            ],
            "type": "string",
            "description": "Time period for trends in days (7 or 30).",
            "default": "7"
          },
          "orderBy": {
            "title": "Order By",
            "enum": [
              "vv",
              "vl"
            ],
            "type": "string",
            "description": "Ranking to take first: 'vv' = highest video views, 'vl' = highest engagement. The other rankings are used to fill up to Max videos.",
            "default": "vv"
          },
          "topUpFromExplore": {
            "title": "Top up from public Explore",
            "type": "boolean",
            "description": "Creative Center shows at most 12 public videos per region and period. When on, the rest of Max videos comes from TikTok's public Explore feed (marked source: \"Explore\"). Explore has no period filter and its region follows the proxy country.",
            "default": true
          },
          "sessionCookies": {
            "title": "Session cookies (optional, your own TikTok One login)",
            "type": "string",
            "description": "Optional. Without it the actor returns the public top videos (up to 12 per region and period). To get the full rankings (up to 100 per ranking), log in to TikTok One / Creative Center in your own browser, export your cookies for tiktok.com (JSON from a cookie-export extension, or the raw Cookie header) and paste them here. They are stored encrypted, used only to load the ranking pages, and never written to the output or log. Sessions expire; if the run reports 'session not accepted', export fresh cookies. Use your own account and follow TikTok's terms."
          },
          "proxyMode": {
            "title": "Proxy",
            "enum": [
              "auto",
              "residential",
              "datacenter"
            ],
            "type": "string",
            "description": "Which Apify Proxy loads the TikTok pages. Auto tries the cheaper datacenter proxy first and retries a page through residential only when it returns nothing. Note: Explore's region follows the proxy country, which only the residential proxy sets.",
            "default": "auto"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}