{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok Trending Videos Scraper",
    "description": "Top TikTok videos by country from TikTok Creative Center: views in the period, organic views, engagement, 6-second view rate, plus current likes, comments, shares, hashtags and sound. About 80 per country, not just the top 4. New-video alerts.",
    "version": "0.1",
    "x-build-id": "pheD5AiKq8PX4fM0w"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/s_actors~tiktok-trending-videos-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-s_actors-tiktok-trending-videos-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/s_actors~tiktok-trending-videos-scraper/runs": {
      "post": {
        "operationId": "runs-sync-s_actors-tiktok-trending-videos-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/s_actors~tiktok-trending-videos-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-s_actors-tiktok-trending-videos-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": {
          "countries": {
            "title": "🌍 Countries",
            "type": "array",
            "description": "Countries whose top videos you want. TikTok Creative Center ranks top videos in these 5 countries.",
            "items": {
              "type": "string",
              "enum": [
                "US",
                "JP",
                "VN",
                "TH",
                "ID"
              ],
              "enumTitles": [
                "United States (US)",
                "Japan (JP)",
                "Vietnam (VN)",
                "Thailand (TH)",
                "Indonesia (ID)"
              ]
            },
            "default": [
              "US"
            ]
          },
          "period": {
            "title": "📅 Period",
            "enum": [
              "1",
              "7",
              "30"
            ],
            "type": "string",
            "description": "Ranking period: the latest daily, weekly or monthly ranking (TikTok publishes it a few days late; the periodEnd column shows its date).",
            "default": "7"
          },
          "sortBy": {
            "title": "📊 Rankings",
            "type": "array",
            "description": "Which Creative Center rankings to read. Empty = all three (about 80 videos per country).",
            "items": {
              "type": "string",
              "enum": [
                "views",
                "engagement",
                "sixSecondViews"
              ],
              "enumTitles": [
                "Highest video views",
                "Highest engagement rate",
                "Highest 6-second view rate"
              ]
            }
          },
          "contentTags": {
            "title": "🏷️ Content tags",
            "type": "array",
            "description": "Only videos of these content tags. Empty = all videos plus every tag.",
            "items": {
              "type": "string",
              "enum": [
                "Beauty & Care",
                "Fashion",
                "Food & Beverage",
                "Lifestyle & Leisure",
                "Technology & Finance"
              ]
            }
          },
          "organicOnly": {
            "title": "🌱 Organic rankings only",
            "type": "boolean",
            "description": "Read only the rankings by organic (unpaid) views. Off = both the overall and the organic rankings.",
            "default": false
          },
          "videoDetails": {
            "title": "❤️ Current likes, comments and sound",
            "type": "boolean",
            "description": "Open each video's page for its current plays, likes, comments, shares, saves, hashtags, sound, duration and whether it is an ad. Off = Creative Center's numbers only (faster).",
            "default": true
          },
          "onlyNew": {
            "title": "🔔 Only new videos",
            "type": "boolean",
            "description": "For scheduled runs (save the input as a task and add a schedule). The first run returns the whole top and remembers it; every later run returns only videos that were not in it before. Without it, every row still has isNew.",
            "default": false
          },
          "monitorName": {
            "title": "🏷️ Monitor name",
            "type": "string",
            "description": "Name of the memory used by isNew and Only new videos. Use a different name for each task.",
            "default": "default"
          },
          "findLeads": {
            "title": "📇 Creator contacts (leads)",
            "type": "boolean",
            "description": "Open the TikTok profile of each of the creators of the videos and the website or link-in-bio page (Linktree, Taplink, Beacons...) linked in it, and add to every row exact followers, bio, business category, email, website, Telegram, Instagram, YouTube, X, Facebook, LinkedIn, WhatsApp, Twitch. See the Leads tab of the results; one row per account: Output tab → Authors (CSV). Charged per account with contacts (more with an email, see Pricing); accounts without any contact are listed for free. Contacts are not repeated on every row.",
            "default": false
          },
          "maxLeads": {
            "title": "📇 Max accounts for contacts",
            "minimum": 0,
            "type": "integer",
            "description": "At most this many accounts get contacts, the most frequent creators first. 0 = all accounts of the run.",
            "default": 500
          },
          "maxConcurrency": {
            "title": "⚡ Parallel requests",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many requests to TikTok run at the same time.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "🛡️ Proxy",
            "type": "object",
            "description": "Requests go direct first and switch to Apify datacenter proxies when TikTok refuses them. The default works for most runs.",
            "default": {
              "useApifyProxy": true
            }
          },
          "debugLog": {
            "title": "🐞 Debug log",
            "type": "boolean",
            "description": "Log every retried request and every video page that gave no data (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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}