{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok Trend Scraper | Trending Hashtags and Videos",
    "description": "TikTok Trend Scraper for TikTok Creative Center: trending hashtags by country, period and industry with posts, views, daily popularity curve, trend direction and top creators, plus top videos with views, engagement and completion rates. 52 hashtags in 13 seconds, 24 fields each, no TikTok account.",
    "version": "1.0",
    "x-build-id": "zNBIM1SsWvoxJDamb"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/silentflow~tiktok-trend-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-silentflow-tiktok-trend-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/silentflow~tiktok-trend-scraper/runs": {
      "post": {
        "operationId": "runs-sync-silentflow-tiktok-trend-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/silentflow~tiktok-trend-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-silentflow-tiktok-trend-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": {
          "trendType": {
            "title": "📊 Trend type",
            "enum": [
              "hashtags",
              "videos"
            ],
            "type": "string",
            "description": "<b>Trending hashtags</b>: the hashtags TikTok ranks as trending, with their posts, views, daily popularity curve, industries and the creators behind them. About 55 per country, read across the overall ranking and every industry ranking.<br><b>Top videos</b>: the most viewed and most engaging videos, with views, organic views, engagement rate, 6-second completion rate and author. Published for the United States, Japan, Thailand, Vietnam and Indonesia, around 80 videos per country over 7 days.",
            "default": "hashtags"
          },
          "countries": {
            "title": "🌍 Countries",
            "type": "array",
            "description": "One row set per country, each with that country's own ranks and numbers: pick <code>United States</code>, <code>France</code> and <code>Germany</code> to compare them in one run. Hashtags are ranked in these 27 markets; top videos in the United States, Japan, Thailand, Vietnam and Indonesia only (other picks are named in the run log and skipped). Leave empty with no link below to get the United States.",
            "items": {
              "type": "string",
              "enum": [
                "US",
                "GB",
                "FR",
                "DE",
                "IT",
                "ES",
                "AR",
                "AU",
                "BR",
                "CA",
                "CO",
                "EG",
                "ID",
                "IL",
                "JP",
                "KR",
                "MY",
                "MX",
                "PH",
                "SA",
                "SG",
                "ZA",
                "TW",
                "TH",
                "TR",
                "AE",
                "VN"
              ],
              "enumTitles": [
                "🇺🇸 United States",
                "🇬🇧 United Kingdom",
                "🇫🇷 France",
                "🇩🇪 Germany",
                "🇮🇹 Italy",
                "🇪🇸 Spain",
                "🇦🇷 Argentina",
                "🇦🇺 Australia",
                "🇧🇷 Brazil",
                "🇨🇦 Canada",
                "🇨🇴 Colombia",
                "🇪🇬 Egypt",
                "🇮🇩 Indonesia",
                "🇮🇱 Israel",
                "🇯🇵 Japan",
                "🇰🇷 South Korea",
                "🇲🇾 Malaysia",
                "🇲🇽 Mexico",
                "🇵🇭 Philippines",
                "🇸🇦 Saudi Arabia",
                "🇸🇬 Singapore",
                "🇿🇦 South Africa",
                "🇹🇼 Taiwan",
                "🇹🇭 Thailand",
                "🇹🇷 Turkey",
                "🇦🇪 United Arab Emirates",
                "🇻🇳 Vietnam"
              ]
            }
          },
          "startUrls": {
            "title": "🔗 Creative Center links",
            "type": "array",
            "description": "Optional. Paste the TikTok Creative Center trends page you are looking at and the run reads the same ranking, its country and period included:<ul><li>hashtags: <code>https://ads.tiktok.com/creative/creativeCenter/trends/hashtag?region=FR&amp;period=30</code></li><li>top videos: <code>https://ads.tiktok.com/creative/creativeCenter/trends/video?region=JP&amp;period=7</code></li><li>the former Creative Center links (<code>/business/creativecenter/inspiration/popular/hashtag/pc/en?countryCode=DE&amp;period=120</code>) work too, their 120 days read as 90.</li></ul>Each link is one more ranking in the run, on top of the countries above.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "period": {
            "title": "📅 Period",
            "enum": [
              "7",
              "30",
              "90"
            ],
            "type": "string",
            "description": "The window TikTok ranks over. <b>7 days</b> catches trends before they peak, <b>90 days</b> separates lasting hashtags from one-week spikes. These are the three periods Creative Center ranks today: a 120-day period, from an API call or a former link, is read as 90 days. Top videos cover 7 or 30 days: 90 days reads their 30-day ranking.",
            "default": "7"
          },
          "maxItems": {
            "title": "🔢 Max rows per country or link",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many hashtags or videos for each country and each link. A country gives about 55 hashtags (the top 3 of the overall ranking and of each industry ranking, a hashtag ranked in several of them once) and about 80 top videos. In our tests the 52 US hashtags of the week took 9 seconds. The cost grows with the rows delivered.",
            "default": 100
          },
          "industries": {
            "title": "🏷️ Industries",
            "type": "array",
            "description": "Optional. Keep only the hashtags TikTok ties to these industries: the top of each industry's own ranking, plus the hashtags of the other rankings that TikTok tags with it. Pick <code>Beauty & Personal Care</code> and <code>Food & Beverage</code> to brief a food and beauty brand. Expect 3 to 13 hashtags per industry and country: in our test, those two industries over 30 days gave 41 hashtags across the United States, the United Kingdom, France, Germany and Brazil. Leave empty for every industry. Applies to trending hashtags; top videos are read for every industry.",
            "items": {
              "type": "string",
              "enum": [
                "22000000000",
                "16000000000",
                "20000000000",
                "12000000000",
                "14000000000",
                "24000000000",
                "10000000000",
                "13000000000",
                "27000000000",
                "25000000000",
                "29000000000",
                "21000000000",
                "18000000000",
                "23000000000",
                "19000000000",
                "28000000000",
                "15000000000",
                "17000000000",
                "11000000000"
              ],
              "enumTitles": [
                "👗 Apparel & Accessories",
                "🔌 Appliances",
                "📱 Apps",
                "🍼 Baby, Kids & Maternity",
                "💄 Beauty & Personal Care",
                "💼 Business Services",
                "🎓 Education",
                "💳 Financial Services",
                "🍔 Food & Beverage",
                "🎮 Games",
                "🩺 Health",
                "🛠️ Home Improvement",
                "🧴 Household Products",
                "📰 News & Entertainment",
                "🐾 Pets",
                "⚽ Sports & Outdoor",
                "💻 Tech & Electronics",
                "✈️ Travel",
                "🚗 Vehicle & Transportation"
              ]
            }
          },
          "sortBy": {
            "title": "↕️ Order",
            "enum": [
              "popular",
              "video_views"
            ],
            "type": "string",
            "description": "<b>TikTok ranking order</b> delivers the overall ranking first, then each industry ranking, each from first place down. <b>Most video views first</b> reads every ranking of the country, then delivers the most viewed hashtags or videos first: with <b>Max rows</b> at 10, you get the 10 most viewed of them. The <code>rank</code> of each row stays its place in TikTok's ranking.",
            "default": "popular"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}