{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok Creative Center Scraper - Trending Hashtags & Videos",
    "description": "Scrape TikTok Creative Center trends: trending hashtags in 27 countries (7/30/90 days, 19 industries) with posts, views, trend curve and top creators; trending videos with views, engagement, 6s view rate, creator and comments. $1.80 per 1,000 rows. No login.",
    "version": "0.1",
    "x-build-id": "JyvykHkgenen8pnyp"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/topapi~tiktok-creative-center-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-topapi-tiktok-creative-center-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/topapi~tiktok-creative-center-scraper/runs": {
      "post": {
        "operationId": "runs-sync-topapi-tiktok-creative-center-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/topapi~tiktok-creative-center-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-topapi-tiktok-creative-center-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": {
          "sections": {
            "title": "Trends to read",
            "type": "array",
            "description": "Trending hashtags (rank, posts, views, curve, top creators) and/or trending videos (views, engagement, 6-second view rate, creator). Empty = hashtags.",
            "items": {
              "type": "string",
              "enum": [
                "hashtags",
                "videos"
              ],
              "enumTitles": [
                "Trending hashtags (27 countries, 7/30/90 days)",
                "Trending videos (US, JP, VN, TH, ID)"
              ]
            },
            "default": [
              "hashtags"
            ]
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Markets to read. Hashtags: all 27. Videos: TikTok ranks them in US, JP, VN, TH and ID only (other markets are skipped for videos and said so).",
            "items": {
              "type": "string",
              "enum": [
                "ALL",
                "US",
                "GB",
                "CA",
                "AU",
                "DE",
                "FR",
                "IT",
                "ES",
                "BR",
                "MX",
                "AR",
                "CO",
                "JP",
                "KR",
                "TW",
                "ID",
                "MY",
                "PH",
                "SG",
                "TH",
                "VN",
                "TR",
                "SA",
                "AE",
                "EG",
                "IL",
                "ZA"
              ],
              "enumTitles": [
                "All markets",
                "United States",
                "United Kingdom",
                "Canada",
                "Australia",
                "Germany",
                "France",
                "Italy",
                "Spain",
                "Brazil",
                "Mexico",
                "Argentina",
                "Colombia",
                "Japan",
                "South Korea",
                "Taiwan",
                "Indonesia",
                "Malaysia",
                "Philippines",
                "Singapore",
                "Thailand",
                "Vietnam",
                "Turkey",
                "Saudi Arabia",
                "United Arab Emirates",
                "Egypt",
                "Israel",
                "South Africa"
              ]
            },
            "default": [
              "US"
            ]
          },
          "startUrls": {
            "title": "Creative Center links",
            "type": "array",
            "description": "Optional trend links copied from the browser; their tab, country and period are used, e.g. https://ads.tiktok.com/creative/creativeCenter/trends/hashtag?region=GB&period=30",
            "items": {
              "type": "string"
            }
          },
          "periods": {
            "title": "Hashtag period",
            "type": "array",
            "description": "Hashtag ranking windows. Each is its own set of lists. TikTok dropped 120 and 180 days (asked for, they read 90).",
            "items": {
              "type": "string",
              "enum": [
                "7",
                "30",
                "90"
              ],
              "enumTitles": [
                "Last 7 days",
                "Last 30 days",
                "Last 90 days"
              ]
            },
            "default": [
              "7"
            ]
          },
          "industries": {
            "title": "Hashtag industries",
            "type": "array",
            "description": "Empty = the overall list plus all 19 industry lists, merged (about 50-60 hashtags per country and period instead of 3). Pick lists to read only those.",
            "items": {
              "type": "string",
              "enum": [
                "overall",
                "10000000000",
                "11000000000",
                "12000000000",
                "13000000000",
                "14000000000",
                "15000000000",
                "16000000000",
                "17000000000",
                "18000000000",
                "19000000000",
                "20000000000",
                "21000000000",
                "22000000000",
                "23000000000",
                "24000000000",
                "25000000000",
                "27000000000",
                "28000000000",
                "29000000000"
              ],
              "enumTitles": [
                "Overall (all industries)",
                "Education",
                "Vehicle & Transportation",
                "Baby, Kids & Maternity",
                "Financial Services",
                "Beauty & Personal Care",
                "Tech & Electronics",
                "Appliances",
                "Travel",
                "Household Products",
                "Pets",
                "Apps",
                "Home Improvement",
                "Apparel & Accessories",
                "News & Entertainment",
                "Business Services",
                "Games",
                "Food & Beverage",
                "Sports & Outdoor",
                "Health"
              ]
            }
          },
          "videoPeriods": {
            "title": "Video period",
            "type": "array",
            "description": "Video ranking windows. Weekly and monthly rankings also have history (see Earlier rankings).",
            "items": {
              "type": "string",
              "enum": [
                "last_7_days",
                "last_30_days",
                "weekly",
                "monthly"
              ],
              "enumTitles": [
                "Last 7 days",
                "Last 30 days",
                "Weekly ranking (Mon-Sun)",
                "Monthly ranking (calendar month)"
              ]
            },
            "default": [
              "last_7_days"
            ]
          },
          "videoSortBy": {
            "title": "Video sorts",
            "type": "array",
            "description": "TikTok ranks videos three ways; each is its own list of 4. Empty = all three, merged.",
            "items": {
              "type": "string",
              "enum": [
                "views",
                "engagement_rate",
                "six_second_view_rate"
              ],
              "enumTitles": [
                "Video views",
                "Engagement rate",
                "6-second view rate"
              ]
            }
          },
          "videoContentTags": {
            "title": "Video content tags",
            "type": "array",
            "description": "Empty = all content plus each of the 13 tags (each is its own list). Pick tags to read only those.",
            "items": {
              "type": "string",
              "enum": [
                "all",
                "11001",
                "11002",
                "11003",
                "11004",
                "11005",
                "11007",
                "11009",
                "11010",
                "11011",
                "11012",
                "11013",
                "11014",
                "11015"
              ],
              "enumTitles": [
                "All content",
                "Nature & Animals",
                "Beauty & Care",
                "Fashion",
                "Music & Entertainment",
                "Games",
                "Sports & Outdoor",
                "Family & Relationship",
                "Food & Beverage",
                "Vlog & Selfie",
                "Society",
                "Lifestyle & Leisure",
                "Vehicles & Transportation",
                "Technology & Finance"
              ]
            }
          },
          "videoOrganic": {
            "title": "Video views counted",
            "enum": [
              "both",
              "all_views",
              "organic_only"
            ],
            "type": "string",
            "description": "TikTok ranks videos on all views or on organic views only; each is its own list.",
            "default": "both"
          },
          "snapshotsBack": {
            "title": "Earlier rankings",
            "minimum": 0,
            "maximum": 60,
            "type": "integer",
            "description": "Weekly / monthly video rankings only: also read this many earlier rankings (12 with Weekly = the last 13 weeks). TikTok keeps about a year.",
            "default": 0
          },
          "snapshotDates": {
            "title": "Rankings holding these dates",
            "type": "array",
            "description": "Weekly / monthly video rankings only: read the ranking that holds each date (YYYY-MM-DD), e.g. 2026-08-15 = the week ending Sunday 2026-08-16.",
            "items": {
              "type": "string"
            }
          },
          "hashtags": {
            "title": "Only these hashtags",
            "type": "array",
            "description": "Keep only these hashtags (#skincare, skincare or a tiktok.com/tag/ link). Ones not in TikTok's lists are named in the run status.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Keep rows whose hashtag, or video caption / creator, contains any of these words, e.g. \"halloween\".",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop rows whose hashtag, or video caption / creator, contains any of these words.",
            "items": {
              "type": "string"
            }
          },
          "minPosts": {
            "title": "Min posts (hashtags)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep hashtags with at least this many posts in the period. Empty = all."
          },
          "minViews": {
            "title": "Min views",
            "minimum": 0,
            "type": "integer",
            "description": "Keep hashtags / videos with at least this many views in the period. Empty = all."
          },
          "minFollowers": {
            "title": "Min creator followers (videos)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep videos whose creator has at least this many followers. Empty = all."
          },
          "onlyRising": {
            "title": "Only rising hashtags",
            "type": "boolean",
            "description": "Keep hashtags whose popularity curve is going up (trendStats.direction = up).",
            "default": false
          },
          "createdAfter": {
            "title": "Videos created after",
            "type": "string",
            "description": "Keep videos posted on or after this date (e.g. 2026-10-01 or 3 days). Pairs with scheduled runs."
          },
          "includeVideoDetails": {
            "title": "Video top comments",
            "type": "boolean",
            "description": "Adds up to ~50 top comments (text, likes, date, user) and the creator's store region. TikTok serves this signed out for US videos only. $0.0009 per video that gets it.",
            "default": false
          },
          "monitorMode": {
            "title": "Monitor mode (only new)",
            "type": "boolean",
            "description": "Deliver only hashtags / videos this task has not delivered before (per country and period). Turns on rank tracking. Rows skipped are not charged.",
            "default": false
          },
          "trackChanges": {
            "title": "Track rank changes",
            "type": "boolean",
            "description": "Fill previousRank, rankChange, isNew and firstSeenAt by comparing with this task's previous run (the first run sets the baseline).",
            "default": false
          },
          "monitorStoreName": {
            "title": "Memory name",
            "type": "string",
            "description": "Named key-value store that keeps the memory between runs. Use one name per task, e.g. tiktok-trends-us."
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Most charged rows (hashtags + videos) this run delivers. 0 = no cap. A full sweep gives ~50-60 hashtags per country & period and ~100 videos per market & period.",
            "default": 100
          },
          "maxResultsPerCountry": {
            "title": "Max per country and period",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Most rows per section, country and period (best-ranked first). 0 = no cap.",
            "default": 0
          },
          "sortBy": {
            "title": "Order",
            "enum": [
              "rank",
              "views",
              "posts"
            ],
            "type": "string",
            "description": "Order of the rows within each country and period, which also decides which rows a cap keeps.",
            "default": "rank"
          },
          "compact": {
            "title": "Compact output",
            "type": "boolean",
            "description": "Core fields only (rank, name, posts, views, direction, creator, link) - for sheets and AI agents. Same price.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional. Your own proxy replaces the direct start; the Apify datacenter and residential fallbacks still follow.",
            "default": {
              "useApifyProxy": false
            }
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Parallel requests to TikTok.",
            "default": 6
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}