# TikTok Creative Center Scraper - Trending Hashtags & Videos (`topapi/tiktok-creative-center-scraper`) Actor

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.

- **URL**: https://apify.com/topapi/tiktok-creative-center-scraper.md
- **Developed by:** [Top Api](https://apify.com/topapi) (community)
- **Categories:** Social media, Videos
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.80 / 1,000 trending hashtags

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What does TikTok Creative Center Scraper do?

**TikTok Creative Center Scraper** exports the trends TikTok publishes in its Creative Center (now part of TikTok One): **trending hashtags** in 27 countries over 7, 30 or 90 days, and **trending videos** in the US, Japan, Vietnam, Thailand and Indonesia. Each row is one hashtag or one video for one country and period, with TikTok's exact numbers. Built for social media managers, agencies, brand and content teams, and trend analysts who need the lists in a sheet or a pipeline every day instead of reading three rows at a time on the page.

TikTok trends scraper · TikTok Creative Center API · TikTok trending hashtags · TikTok trending videos

- **Past TikTok's 3 rows:** signed out, the Creative Center shows 3 hashtags or 4 videos per list. Every industry, content tag, sort and organic switch is a list of its own, so the actor reads all of them and merges them: **about 52 hashtags per country and period** (1,398 for all 27 markets in one 81-second run) and **about 116 videos per market and period** (2,320 for all 5 markets x 4 periods in one 4-minute run) instead of 3 and 4.
- **19 industry lists:** the overall ranking plus all 19 industries TikTok ranks hashtags in (Education to Health), each row naming every list and rank it holds.
- **Trend curve and trend stats:** TikTok's daily popularity curve for every hashtag, plus the direction (up, down, flat), momentum, peak date and stage (emerging, peaking, steady, declining) worked out from it.
- **Rank changes between runs:** `previousRank`, `rankChange`, `isNew` and `firstSeenAt` from the actor's own memory, since TikTok no longer serves them.
- **Video metrics and creators:** views, organic views, engagement rate, 6-second view rate (period and lifetime), caption, hashtags, creator handle, followers and bio, the MP4 and cover links.
- **Weekly and monthly video history:** TikTok's weekly (Monday to Sunday) and monthly rankings, back about a year.
- **No login, cookies or TikTok API key:** pick countries and periods; the actor reads the Creative Center's own data the way the page does.
- **Pay only for delivered rows:** no start fee; filtered rows and rows a monitor run already delivered cost nothing.

### What data can you get from the TikTok Creative Center?

<table>
<tr>
<td>#️⃣ Hashtag and its id</td>
<td>🏆 Rank and every list it holds (`lists`)</td>
<td>📝 Posts in the period</td>
</tr>
<tr>
<td>👀 Views in the period</td>
<td>🏭 The hashtag's industries</td>
<td>📈 Daily popularity curve (`trendData`)</td>
</tr>
<tr>
<td>🧭 Direction, momentum, peak date, stage (`trendStats`)</td>
<td>🌟 Top 3 creators with followers</td>
<td>🔁 Previous rank, rank change, new entry</td>
</tr>
<tr>
<td>🎬 Video id, caption, hashtags, mentions</td>
<td>📊 Views, organic views, engagement, 6s view rate</td>
<td>⏳ The same metrics over the video's lifetime</td>
</tr>
<tr>
<td>👤 Creator handle, name, bio, followers</td>
<td>🔗 Video page, MP4 and cover links</td>
<td>💬 Top comments (US videos, add-on)</td>
</tr>
<tr>
<td>🏷️ Content tags</td>
<td>🌍 Country and period (window dates)</td>
<td>🕒 When it was read</td>
</tr>
</table>

On the 27-market hashtag run (1,398 rows) posts, views, the curve and trend stats were filled on 100% of rows, industries on 98.6% and top creators on 99.9% (3 per hashtag).

### How to scrape TikTok trends with TikTok Creative Center Scraper

1. [Create a free Apify account](https://console.apify.com/sign-up) — $5 of monthly credit, no card needed.
2. Open [TikTok Creative Center Scraper](https://apify.com/TopApi/tiktok-creative-center-scraper) and click **Try for free**.
3. Pick **Trends to read** (hashtags, videos or both) and the **Countries**.
4. Choose the **Hashtag period** and **Video period**, and set **Max results**.
5. Click **Start**. Rows stream into the dataset as each country and period is read.
6. Open the **Storage** tab and **Export** as JSON, CSV or Excel — or let a schedule run it for you.

### ⬇️ Input

| Parameter | Type | Description |
|---|---|---|
| **🔍 What to scrape** | | |
| `sections` | List | `hashtags`, `videos` or both. Default: `["hashtags"]` |
| `countries` | List | Markets, e.g. `["US", "GB"]`, or `["ALL"]`. Hashtags: 27 markets. Videos: US, JP, VN, TH, ID. Default: `["US"]` |
| `startUrls` | List | Creative Center trend links; each link is read with its own tab, country and period (the three fields above are then not used) |
| **🎯 Filters** (TikTok's lists) | | |
| `periods` | List | Hashtag windows `7`, `30`, `90` (days). Default: `["7"]` |
| `industries` | List | `overall` and/or industry ids. Empty = the overall list plus all 19 industries |
| `videoPeriods` | List | `last_7_days`, `last_30_days`, `weekly`, `monthly`. Default: `["last_7_days"]` |
| `videoSortBy` | List | `views`, `engagement_rate`, `six_second_view_rate`. Empty = all three |
| `videoContentTags` | List | `all` and/or content tag ids. Empty = all content plus the 13 tags |
| `videoOrganic` | Select | `both`, `all_views` or `organic_only`. Default: `both` |
| `snapshotsBack` | Integer | Weekly / monthly only: also read this many earlier rankings. Default: `0` |
| `snapshotDates` | List | Weekly / monthly only: the rankings that hold these dates (`YYYY-MM-DD`) |
| **✂️ Refine results** (before any charge) | | |
| `hashtags` | List | Keep only these hashtags (`#skincare`, `skincare`, a tiktok.com/tag/ link) |
| `keywords` / `excludeKeywords` | List | Keep / drop rows whose hashtag, caption or creator contains a word |
| `minPosts`, `minViews`, `minFollowers` | Integer | Lower bounds on posts (hashtags), views, creator followers (videos) |
| `onlyRising` | Boolean | Hashtags whose curve goes up. Default: `false` |
| `createdAfter` | Date | Videos posted on or after a date or a relative time (`3 days`) |
| **➕ Extra data** | | |
| `includeVideoDetails` | Boolean | Top comments and the creator's store region — charged as **video-details** at $0.0009 per video that gets them (US videos) |
| **🔁 Monitoring** | | |
| `monitorMode` | Boolean | Only hashtags / videos this task has not delivered before. Pair with a daily schedule |
| `trackChanges` | Boolean | Fill `previousRank`, `rankChange`, `isNew`, `firstSeenAt` from the task's previous run |
| `monitorStoreName` | String | Name of the memory (one per task) |
| **📦 Output** | | |
| `maxResults` | Integer | Most charged rows per run. Default `100`; `0` = no cap |
| `maxResultsPerCountry` | Integer | Most rows per section, country and period (best-ranked first). `0` = no cap |
| `sortBy` | Select | `rank`, `views` or `posts` — the order inside each country and period |
| `compact` | Boolean | Core fields only, for sheets, AI agents and MCP |
| **⚙️ Advanced** | | |
| `proxyConfiguration` | Proxy | Optional; the actor starts direct and moves to Apify proxies by itself |
| `maxConcurrency` | Integer | Parallel requests. Default `6` |

The actor also accepts the input names other Creative Center actors use (`countryCode`, `region`, `period`, `days`, `timePeriod`, `industryId`, `maxHashtags`, `maxItems`, `trendTypes`, `videoContentTags`, `videoOrganicOnly`, `weeksBack`, `videoSnapshots`, `onlyNew` and more), so a saved input moves over as is.

#### Input JSON

```json
{
  "sections": ["hashtags", "videos"],
  "countries": ["US", "GB", "JP"],
  "periods": ["7", "30"],
  "videoPeriods": ["weekly"],
  "snapshotsBack": 4,
  "trackChanges": true,
  "monitorStoreName": "tiktok-trends-weekly",
  "maxResults": 1000
}
```

#### Leave the industry and tag lists empty for the most rows

Each industry and content tag is its own list of 3 hashtags or 4 videos, so the empty default (every list) is what gives about 52 hashtags and 116 videos per country and period. **Do:** leave `industries` empty and filter with `keywords`. **Don't:** pick one industry and expect 50 rows — one list holds 3.

#### Videos are ranked in five markets only

TikTok ranks videos in the US, Japan, Vietnam, Thailand and Indonesia. Asking for videos in another market skips it and says so in the run status; hashtags work in all 27 markets.

#### Use the weekly and monthly rankings for history

`last_7_days` and `last_30_days` move every day and have no history. **Do:** `"videoPeriods": ["weekly"], "snapshotsBack": 12` for the last 13 weekly rankings. **Don't:** combine `snapshotsBack` with `last_7_days` only (nothing extra is read).

### ⬆️ Output

Every hashtag or video becomes one dataset item; `section` says which. The dataset has two views, **Hashtags** and **Videos**. A hashtag row from a US / 7-day run (curve and creators shortened to one entry each; `lists` shows it is #2 overall and #1 in Games):

```json
{
  "section": "hashtag",
  "rank": 2,
  "overallRank": 2,
  "bestListRank": 1,
  "lists": [{ "list": "Overall", "industryId": null, "rank": 2 }, { "list": "Games", "industryId": "25000000000", "rank": 1 }],
  "hashtag": "marvelrivalsavengers",
  "hashtagId": "7462773581512966150",
  "tiktokUrl": "https://www.tiktok.com/tag/marvelrivalsavengers",
  "posts": 110088,
  "videoViews": 24120743,
  "industries": ["Games"],
  "trendData": [{ "date": "2026-10-09", "value": 95.54 }, { "date": "2026-10-10", "value": 100 }],
  "trendStats": { "direction": "down", "momentumPct": -71.6, "peakDate": "2026-10-10", "peakValue": 100, "latestValue": 25.89, "averageValue": 39.92, "stage": "declining" },
  "topCreators": [{ "rank": 1, "userId": "7432779219689636907", "handle": "cinnavry", "followers": 7196, "countryCode": "US", "profileUrl": "https://www.tiktok.com/@cinnavry" }],
  "countryCode": "US",
  "country": "United States",
  "period": 7
}
```

A video row from the same run (US, last 7 days; caption shortened):

```json
{
  "section": "video",
  "rank": 1,
  "bestListRank": 1,
  "videoId": "7693885184399150367",
  "title": "#AveenoBabyPartner Better skin at night = better sleep for the whole family. 💤 If your baby has eczema, …",
  "hashtags": ["AveenoBabyPartner", "ad"],
  "mentions": ["aveenobabyus"],
  "createdAt": "2026-10-07T11:24:42.000Z",
  "videoUrl": "https://www.tiktok.com/@dr_mikem/video/7693885184399150367",
  "contentTags": ["Family & Relationship"],
  "videoViews": 11819715,
  "organicVideoViews": 6204428,
  "engagementRate": 0.00029755370582116404,
  "sixSecondViewRate": 0.01087675816639692,
  "authorHandle": "dr_mikem",
  "authorName": "Dr. Mike Milobsky",
  "authorFollowers": 385236,
  "countryCode": "US",
  "period": "last_7_days",
  "periodStart": "2026-10-19",
  "periodEnd": "2026-10-25"
}
```

#### Fields

| Field | Type | What it is | Fill |
|---|---|---|---|
| `rank` | integer | Position in the country & period's merged ranking (TikTok's overall top 3 first) | 100% |
| `overallRank` | integer | Rank in TikTok's overall hashtag list (only the top 3 have one) | 5.8% |
| `bestListRank` / `lists` | integer / array | Best rank in any list; every list and rank | 100% |
| `hashtag`, `hashtagId`, `tiktokUrl` | string | The hashtag, its id and tiktok.com page | 100% |
| `posts` / `videoViews` | integer | Posts and views in the period | 100% |
| `industries` / `industryIds` | array | The hashtag's own industries | 98.6% |
| `trendData` / `trendStats` | array / object | Daily curve (0-100) and the stats from it | 100% |
| `topCreators` | array | TikTok's top 3 creators for the hashtag | 99.9% |
| `videoId`, `title`, `createdAt`, `videoUrl` | string | The video, its caption, post time and page | 100% (title 99.2%) |
| `playUrl`, `coverUrl` | string | MP4 and cover links (signed, they expire) | 100% |
| `hashtags` / `mentions` | array | From the caption | 89.8% / 27.7% |
| `contentTags` / `contentTagIds` | array | TikTok's content tags | 90.6% |
| `organicVideoViews`, `engagementRate`, `sixSecondViewRate` (+ `…Lifetime`) | number | Video metrics for the period and lifetime | 100% |
| `authorHandle`, `authorName`, `authorFollowers`, `authorUrl`, `authorId`, `creatorId` | mixed | The creator | 100% (authorId 96.6%) |
| `authorBio` | string | The creator's bio as TikTok shows it | 98.0% |
| `topComments`, `topCommentsCount`, `authorStoreRegion`, `creatorType`, `detailStatus` | mixed | Video top comments add-on (US) | on rows that get it |
| `previousRank`, `rankChange`, `isNew`, `firstSeenAt` | mixed | Rank tracking (`trackChanges` / `monitorMode`, from the second run) | on tracked runs |
| `countryCode`, `country`, `period`, `periodStart`, `periodEnd`, `sourceUrl`, `scrapedAt` | string | Where and when | 100% |

Fill figures are from the 27-market hashtag run (1,398 rows) and the 5-market x 4-period video run (2,320 rows, 1,682 requests, 237 seconds).

### How can I use TikTok trends data?

- 📣 **Social media managers** — a daily sheet of what is trending in each market and industry, with the curve showing whether to jump on it now or skip it.
- 🏢 **Agencies** — per-client industry lists (Beauty, Games, Food & Beverage …) across countries, with the creators TikTok credits for each hashtag.
- 🎬 **Content and brand teams** — the top videos by views, engagement or 6-second retention, with captions and hashtags to brief creators from.
- 🔎 **Influencer scouts** — creators behind trending hashtags and videos, with followers and bios.
- 📈 **Trend analysts** — weekly and monthly video rankings back about a year, and rank changes between scheduled runs.
- 🤖 **AI and research teams** — compact rows (`compact`) for an LLM that writes the weekly trend report.

### How much does it cost to scrape TikTok trends?

TikTok Creative Center Scraper is pay-per-result: **$1.80 per 1,000 trending hashtags or videos**, no start fee. Video top comments are an add-on at **$0.90 per 1,000 videos** that get them. Filtered rows, rows a monitor run already delivered, and a video whose comments TikTok serves only to signed-in users cost nothing.

| Rows | Cost |
|---:|---:|
| 10 | $0.018 |
| 100 | $0.18 |
| 1,000 | $1.80 |
| 10,000 | $18.00 |

Apify platform usage is billed separately by Apify and is small: the 27-market hashtag run (1,398 rows, 540 requests) took 81 seconds on 256 MB and used $0.0032 of compute.

### Run it on a schedule

Save an input as a task, open **Schedules** and pick daily or weekly. Two switches make a schedule cheap:

- **Monitor mode** delivers only hashtags and videos this task has not delivered before, per country and period; the rest is not charged. A daily poll with nothing new costs a fraction of a cent of platform usage and no rows.
- **Track rank changes** keeps a memory per task (`monitorStoreName`) and fills `previousRank`, `rankChange` (positive = climbed), `isNew` and `firstSeenAt` on every row from the second run on.

```json
{
  "sections": ["hashtags"],
  "countries": ["US", "GB", "DE", "FR"],
  "periods": ["7"],
  "monitorMode": true,
  "monitorStoreName": "tiktok-new-hashtags-eu-us",
  "maxResults": 0
}
```

### Integrations, API & MCP

- **Webhooks:** fire a URL when a run finishes — push rows to your CRM, Slack or a sheet.
- **No-code:** Make, Zapier, n8n, Google Sheets, Airtable, Slack via [Apify integrations](https://docs.apify.com/integrations).
- **API:** call it from Node.js or Python with `apify-client` — code on the [API tab](https://apify.com/TopApi/tiktok-creative-center-scraper/api/python) and the [Apify API reference](https://docs.apify.com/api/v2).
- **MCP / AI agents:** connect Claude, Cursor or any MCP client through the [MCP tab](https://apify.com/TopApi/tiktok-creative-center-scraper/api/mcp) and ask for TikTok trends in plain language; `compact` keeps the rows short.

### More TikTok scrapers

<table>
<tr>
<td>📢 <a href="https://apify.com/TopApi/tiktok-ads-library-scraper">TikTok Ads Library Scraper</a> — Ad Library and Creative Center Top Ads</td>
<td>🎵 <a href="https://apify.com/TopApi/tiktok-scraper">TikTok Scraper</a> — videos, hashtags, profiles, transcripts</td>
<td>🎬 <a href="https://apify.com/TopApi/tiktok-video-scraper">TikTok Video Scraper</a> — stats and transcript by URL</td>
</tr>
<tr>
<td>👥 <a href="https://apify.com/TopApi/tiktok-user-search-scraper">TikTok User Search Scraper</a> — creators by keyword</td>
<td>🛍️ <a href="https://apify.com/TopApi/tiktok-shop-scraper">TikTok Shop Scraper</a> — products, sales, sellers</td>
<td>🧭 <a href="https://apify.com/TopApi">All TopApi actors</a></td>
</tr>
</table>

### Limits & empty runs

- **Rows per list:** signed out, TikTok serves 3 hashtags or 4 videos per list; the actor merges every list of a country and period. Measured: 52-60 hashtags per country and period, about 116 videos per market and period (106-122 per market and period over 20 groups).
- **What TikTok removed:** songs, the creator ranking, Keyword Insights and Top Products are gone from the Creative Center (their old routes answer "deprecated") — asking for them is reported in the run status and charges nothing. Top Ads live in our [TikTok Ads Library Scraper](https://apify.com/TopApi/tiktok-ads-library-scraper).
- **Signed-in only:** a hashtag's audience (ages, interests, regions) and the comments of non-US videos; TikTok answers "login required" and the actor does not log in.
- **Not available:** TikTok's own rank change, "new to top 100" and "promoted" flags (no longer served; rank changes come from the actor's memory instead).
- **History:** weekly rankings go back about 52 weeks (some weeks are missing on TikTok's side and are named in the run status); monthly back about a year. The rolling 7 / 30-day rankings have no history.
- **Links expire:** `playUrl`, `coverUrl` and avatar links are signed by TikTok and stop working after a few days.
- **Empty dataset:** filters that match nothing, a monitor run with nothing new, or markets TikTok does not rank — the status message says which. If TikTok refuses every request on every route the run fails and nothing is charged.

### FAQ

#### How many hashtags does TikTok Creative Center Scraper return per country?

About 52-60 per country and period: TikTok shows 3 per list signed out, and the actor reads the overall list plus all 19 industry lists and merges them. All 27 markets for 7 days gave 1,398 hashtags in one run.

#### Can I get TikTok trending videos for my country?

TikTok ranks videos in the US, Japan, Vietnam, Thailand and Indonesia only. For other markets, use the hashtag lists (27 markets).

#### Can TikTok Creative Center Scraper track rank changes over time?

Yes. Turn on **Track rank changes** and give the task a memory name; from the second run every row has `previousRank`, `rankChange`, `isNew` and `firstSeenAt`. For videos, the weekly and monthly rankings also have about a year of history.

#### Can I run TikTok Creative Center Scraper on a schedule to get only new trends?

Yes. Save the input as a task, schedule it daily and turn on **Monitor mode**: each run delivers and charges only hashtags and videos the task has not delivered before.

#### Does TikTok Creative Center Scraper get trending songs or creators?

No. TikTok removed the song and creator rankings from the Creative Center. Each trending hashtag row carries TikTok's top 3 creators for it, and each video row carries its creator with followers and bio.

#### Does it scrape TikTok Top Ads?

Top Ads are in our [TikTok Ads Library Scraper](https://apify.com/TopApi/tiktok-ads-library-scraper), together with the TikTok Ad Library.

#### Do I need a TikTok account, cookies or an API key?

No. The actor reads what the Creative Center shows any visitor; you pick countries and periods.

#### Can I use TikTok Creative Center Scraper with the Apify API or an MCP server?

Yes. Start runs and read datasets with `apify-client` for [Node.js](https://apify.com/TopApi/tiktok-creative-center-scraper/api/javascript) or [Python](https://apify.com/TopApi/tiktok-creative-center-scraper/api/python), or connect an MCP client through the [MCP tab](https://apify.com/TopApi/tiktok-creative-center-scraper/api/mcp).

#### Why did my run return no rows?

In order of frequency: filters that matched nothing (the status says how many rows they dropped), a monitor run with nothing new, videos asked for a market TikTok does not rank, or a weekly ranking TikTok does not keep. None of these is charged.

#### How is TikTok Creative Center Scraper different from other TikTok trends scrapers?

It reads 20 hashtag lists per country and period (the overall list and all 19 industries) where most actors read 1 and return 3 rows, adds trend stats and rank changes, covers videos with weekly and monthly history, and costs $1.80 per 1,000 rows with no start fee.

#### Is it legal to scrape TikTok Creative Center data?

The actor collects public, aggregated trend data from TikTok's Creative Center and does not log in. Results can include creator handles and profile links, which may be personal data under laws such as the GDPR; use them for a legitimate purpose. TikTok is a trademark of ByteDance Ltd.; this actor is independent and not affiliated with or endorsed by TikTok.

#### Your feedback

Found a bug or missing a field? Open an issue on the [Issues tab](https://apify.com/TopApi/tiktok-creative-center-scraper/issues/open).

# Actor input Schema

## `sections` (type: `array`):

Trending hashtags (rank, posts, views, curve, top creators) and/or trending videos (views, engagement, 6-second view rate, creator). Empty = hashtags.

## `countries` (type: `array`):

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).

## `startUrls` (type: `array`):

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

## `periods` (type: `array`):

Hashtag ranking windows. Each is its own set of lists. TikTok dropped 120 and 180 days (asked for, they read 90).

## `industries` (type: `array`):

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.

## `videoPeriods` (type: `array`):

Video ranking windows. Weekly and monthly rankings also have history (see Earlier rankings).

## `videoSortBy` (type: `array`):

TikTok ranks videos three ways; each is its own list of 4. Empty = all three, merged.

## `videoContentTags` (type: `array`):

Empty = all content plus each of the 13 tags (each is its own list). Pick tags to read only those.

## `videoOrganic` (type: `string`):

TikTok ranks videos on all views or on organic views only; each is its own list.

## `snapshotsBack` (type: `integer`):

Weekly / monthly video rankings only: also read this many earlier rankings (12 with Weekly = the last 13 weeks). TikTok keeps about a year.

## `snapshotDates` (type: `array`):

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.

## `hashtags` (type: `array`):

Keep only these hashtags (#skincare, skincare or a tiktok.com/tag/ link). Ones not in TikTok's lists are named in the run status.

## `keywords` (type: `array`):

Keep rows whose hashtag, or video caption / creator, contains any of these words, e.g. "halloween".

## `excludeKeywords` (type: `array`):

Drop rows whose hashtag, or video caption / creator, contains any of these words.

## `minPosts` (type: `integer`):

Keep hashtags with at least this many posts in the period. Empty = all.

## `minViews` (type: `integer`):

Keep hashtags / videos with at least this many views in the period. Empty = all.

## `minFollowers` (type: `integer`):

Keep videos whose creator has at least this many followers. Empty = all.

## `onlyRising` (type: `boolean`):

Keep hashtags whose popularity curve is going up (trendStats.direction = up).

## `createdAfter` (type: `string`):

Keep videos posted on or after this date (e.g. 2026-10-01 or 3 days). Pairs with scheduled runs.

## `includeVideoDetails` (type: `boolean`):

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.

## `monitorMode` (type: `boolean`):

Deliver only hashtags / videos this task has not delivered before (per country and period). Turns on rank tracking. Rows skipped are not charged.

## `trackChanges` (type: `boolean`):

Fill previousRank, rankChange, isNew and firstSeenAt by comparing with this task's previous run (the first run sets the baseline).

## `monitorStoreName` (type: `string`):

Named key-value store that keeps the memory between runs. Use one name per task, e.g. tiktok-trends-us.

## `maxResults` (type: `integer`):

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.

## `maxResultsPerCountry` (type: `integer`):

Most rows per section, country and period (best-ranked first). 0 = no cap.

## `sortBy` (type: `string`):

Order of the rows within each country and period, which also decides which rows a cap keeps.

## `compact` (type: `boolean`):

Core fields only (rank, name, posts, views, direction, creator, link) - for sheets and AI agents. Same price.

## `proxyConfiguration` (type: `object`):

Optional. Your own proxy replaces the direct start; the Apify datacenter and residential fallbacks still follow.

## `maxConcurrency` (type: `integer`):

Parallel requests to TikTok.

## Actor input object example

```json
{
  "sections": [
    "hashtags",
    "videos"
  ],
  "countries": [
    "US"
  ],
  "periods": [
    "7"
  ],
  "videoPeriods": [
    "last_7_days"
  ],
  "videoOrganic": "both",
  "snapshotsBack": 0,
  "onlyRising": false,
  "includeVideoDetails": false,
  "monitorMode": false,
  "trackChanges": false,
  "maxResults": 50,
  "maxResultsPerCountry": 25,
  "sortBy": "rank",
  "compact": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "maxConcurrency": 6
}
```

# Actor output Schema

## `results` (type: `string`):

One item per trending hashtag or video per country and period: rank and the lists it holds, posts, views, trend curve and stats, top creators; video metrics, caption, creator, links; top comments when switched on.

## `summary` (type: `string`):

Every list group read (lists read, rows served, unique rows, delivered), rows filtered or already delivered, inputs skipped and why, transport.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "sections": [
        "hashtags",
        "videos"
    ],
    "countries": [
        "US"
    ],
    "maxResults": 50,
    "maxResultsPerCountry": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("topapi/tiktok-creative-center-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "sections": [
        "hashtags",
        "videos",
    ],
    "countries": ["US"],
    "maxResults": 50,
    "maxResultsPerCountry": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("topapi/tiktok-creative-center-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "sections": [
    "hashtags",
    "videos"
  ],
  "countries": [
    "US"
  ],
  "maxResults": 50,
  "maxResultsPerCountry": 25
}' |
apify call topapi/tiktok-creative-center-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,topapi/tiktok-creative-center-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/cdiSYNBHwa54Lh7az/builds/JyvykHkgenen8pnyp/openapi.json
