# TikTok Trends Scraper — Creative Center hashtags & videos (`istmobot/tiktok-trends-scraper`) Actor

Scrape TikTok Creative Center trends with no login: trending hashtags with posts, views, daily trend curve and top creators, plus top trending TikTok videos by country, period and industry. TikTok API alternative for TikTok Shop sellers and marketers. Export JSON, CSV, Excel.

- **URL**: https://apify.com/istmobot/tiktok-trends-scraper.md
- **Developed by:** [Istmobot](https://apify.com/istmobot) (community)
- **Categories:** Social media, Marketing
- **Stats:** 7 total users, 5 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.005 / actor start

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

## TikTok Trends Scraper — TikTok Creative Center trending hashtags & top videos

Scrape **TikTok trends** from **TikTok Creative Center** with no login: **trending hashtags** with post counts, video views, a daily trend curve and their top creators, plus **top trending TikTok videos** with views, engagement rate and creator, for any supported country, time period and industry. A simple **TikTok API alternative** for TikTok Shop sellers, dropshippers, marketers and creators.

### What is TikTok Trends Scraper?

TikTok Trends Scraper is a **TikTok Creative Center scraper**. It reads the same public, logged-out trend data that TikTok shows on its Creative Center trends pages (ads.tiktok.com/creative/creativeCenter/trends) and returns it as one clean record per hashtag or video.

- **No login, no cookies, no browser.** It only reads public, aggregated trend data.
- **Two data types:** `hashtags` (trending hashtags) and `videos` (top trending videos).
- **27 countries** for hashtags, including US, ID, TH, VN, MY, PH, GB, JP, KR, SA, AE, BR and MX. Videos cover US, JP, VN, TH and ID.
- **Several markets in one run.** Compare trending hashtags across countries side by side.
- **Industry and content filters.** Get the top hashtags for Beauty & Personal Care, Apparel & Accessories, Household Products and 12 more industries, or top videos by content tag.
- Download your data as **JSON, CSV, Excel, HTML** or XML, or read it through the Apify API.

#### What data can I extract from TikTok Creative Center?

**Trending hashtags** (`type: "hashtags"`)

| Field | Description |
|---|---|
| `rank` | Position in Creative Center's popularity ranking |
| `hashtag` / `hashtagId` | Hashtag name (without #) and TikTok's hashtag ID |
| `posts` | Number of posts using the hashtag in the period |
| `videoViews` | Views of videos with the hashtag in the period |
| `industries` | Industries TikTok assigns to the hashtag |
| `trend` | Daily popularity curve, `[{ date, value }]`, where 100 is the peak day |
| `topCreators` | Top public creators using the hashtag: nickname, handle, followers, avatar, profile URL |
| `industryFilter` | The industry filter that produced this row (`null` = overall ranking) |
| `url` / `creativeCenterUrl` | TikTok tag page and Creative Center detail page |

**Top videos** (`type: "videos"`)

| Field | Description |
|---|---|
| `rank` | Position in the ranking for the selected metric |
| `videoId` / `title` / `url` | Video ID, caption with hashtags, and TikTok video URL |
| `coverUrl` | Cover image |
| `createdAt` | When the video was posted |
| `videoViews` / `videoViewsLifetime` / `organicVideoViews` | Views in the period, lifetime views, and organic (non-paid) views |
| `engagementRate` / `sixSecondViewRate` | Engagement rate and share of views lasting 6 seconds or more (0–1) |
| `creator` | Public creator profile: nickname, handle, followers, avatar, URL |
| `sortBy` / `contentTagFilter` | Ranking metric and content tag used |

Every item also has `type`, `countryCode`, `period` (days) and `scrapedAt`.

### How can I use TikTok trends data?

- **Product research for TikTok Shop and dropshipping.** Spot rising hashtags in Beauty, Apparel or Household Products in the market you sell to, before they peak.
- **Content ideas.** Find the hashtags and video formats that are trending this week and plan posts around them.
- **Influencer discovery.** Each trending hashtag comes with its top public creators and their follower counts, which gives you a ready shortlist for outreach.
- **Ad market research by country.** Compare what trends in the US, Indonesia, Thailand, Vietnam or Saudi Arabia before you launch a campaign or a cross-border store.
- **Trend monitoring.** Schedule a daily run and build your own history of TikTok trending hashtags per market.

### How to scrape TikTok Creative Center

1. Click **Try for free** on this Actor's page. You need a free Apify account.
2. Choose **What to scrape**: trending hashtags or top videos.
3. Pick one or more **countries** and a **period** (7, 30 or 90 days).
4. Optionally pick **industries** (hashtags) or **content tags** and a **ranking metric** (videos).
5. Click **Start**, then download the dataset as JSON, CSV, Excel or HTML, or connect it to your tools through the API.

> **How many results per query?** For logged-out visitors, TikTok Creative Center shows the **top 3 hashtags** and the **top 4 videos** for each combination of country, period and filter. To get more rows, add countries, industries or content tags. For example, 5 countries × 15 industries gives up to 225 trending hashtags. The same hashtag is not repeated within one country.

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

This Actor uses **pay-per-event** pricing, so you only pay for results you get:

| Event | Price |
|---|---|
| Actor start | $0.005 per run |
| `trend-result` (one hashtag or video in the dataset) | $0.003 per result, or **$3 per 1,000 results** |

Example: 100 trending hashtags cost $0.005 + 100 × $0.003 = **$0.305**.

The Apify free plan includes **$5 of monthly credit**, which covers about **1,600 results** per month. Error items, such as an unsupported country, are **never charged**. You can set a **maximum cost per run**. When the Actor reaches it, it stops cleanly and keeps everything scraped so far.

### ⬇️ Input

| Field | Type | Default | Description |
|---|---|---|---|
| `type` | `hashtags` | `videos` | `hashtags` | What to scrape (required) |
| `countryCodes` | list of country codes | `["US"]` | Markets to scrape. Hashtags: US, FR, DE, IT, ES, GB, AR, AU, BR, CA, CO, EG, ID, IL, JP, KR, MY, MX, PH, SA, SG, ZA, TW, TH, TR, AE, VN. Videos: US, JP, VN, TH, ID |
| `period` | `"7"` | `"30"` | `"90"` | `"7"` | Trend window in days. 90 is available for hashtags only |
| `industries` | list of industry IDs | all | Hashtags only. One ranking per industry, e.g. `14000000000` Beauty & Personal Care, `22000000000` Apparel & Accessories, `18000000000` Household Products |
| `contentTags` | list of tag IDs | all | Videos only: `11002` Beauty & Care, `11003` Fashion, `11010` Food & Beverage, `11013` Lifestyle & Leisure, `11015` Technology & Finance |
| `sortBy` | `views` | `engagement` | `completion` | `views` | Videos only: the ranking metric |
| `maxItems` | integer | `100` | Maximum results for the whole run |

```json
{
  "type": "hashtags",
  "countryCodes": ["US", "ID"],
  "period": "7",
  "industries": ["14000000000", "22000000000", "18000000000"],
  "maxItems": 50
}
```

Top beauty videos in Thailand by engagement: `{ "type": "videos", "countryCodes": ["TH"], "period": "30", "contentTags": ["11002"], "sortBy": "engagement" }`

### ⬆️ Output

You get one item per hashtag or video. The **Overview** table view in Apify Console shows the rank, country, hashtag or video title, posts, views and URL at a glance. This is a real sample, with the avatar URL shortened:

```json
{
  "type": "hashtags",
  "countryCode": "US",
  "period": 7,
  "industryFilter": "Beauty & Personal Care",
  "rank": 1,
  "hashtag": "metoo",
  "hashtagId": "35887",
  "posts": 3046,
  "videoViews": 19524941,
  "industries": ["News & Entertainment", "Beauty & Personal Care"],
  "trend": [
    { "date": "2026-09-27", "value": 0 },
    { "date": "2026-09-28", "value": 13.5 },
    { "date": "2026-09-29", "value": 66.5 },
    { "date": "2026-09-30", "value": 98.8 },
    { "date": "2026-10-01", "value": 100 },
    { "date": "2026-10-02", "value": 79 },
    { "date": "2026-10-03", "value": 56.1 }
  ],
  "topCreators": [
    { "nickname": "newsgirls.reports", "handle": "newsgirls.reports", "followers": 46115, "avatarUrl": "https://p16-common-sign.tiktokcdn.com/...", "url": "https://www.tiktok.com/@newsgirls.reports" }
  ],
  "url": "https://www.tiktok.com/tag/metoo",
  "creativeCenterUrl": "https://ads.tiktok.com/creative/creativeCenter/trends/hashtag/35887?region=US&period=7",
  "scrapedAt": "2026-10-05T02:32:46.933Z"
}
```

Video item (real sample, shortened):

```json
{
  "type": "videos",
  "countryCode": "US",
  "period": 30,
  "sortBy": "engagement",
  "contentTagFilter": "Beauty & Care",
  "rank": 1,
  "videoId": "7665562084373040398",
  "title": "Let’s go hygiene shopping @target 🧖‍♀️❤️ ... #hygieneproducts #selfcare",
  "url": "https://www.tiktok.com/@lavishkei/video/7665562084373040398",
  "coverUrl": "https://p19-common-sign.tiktokcdn-us.com/...",
  "createdAt": "2026-07-24T15:00:00.000Z",
  "videoViews": 16712,
  "videoViewsLifetime": 49117,
  "organicVideoViews": 16712,
  "engagementRate": 0.428,
  "sixSecondViewRate": 0.474,
  "creator": { "nickname": "Lavishkei", "handle": "lavishkei", "followers": 132685, "avatarUrl": "https://...", "url": "https://www.tiktok.com/@lavishkei" },
  "scrapedAt": "2026-10-05T02:32:56.274Z"
}
```

Notes on fields:

- `trend.value` is relative popularity on a 0–100 scale, where 100 is the busiest day in the period.
- Image URLs are signed by TikTok's CDN and expire after a few days. Download them if you need to keep them.

#### Error items

```json
{ "type": "videos", "countryCode": "GB", "period": 30, "errorType": "UNSUPPORTED_COUNTRY", "error": "videos are available for: US, JP, VN, TH, ID" }
```

`errorType` is `UNSUPPORTED_COUNTRY` or `FETCH_FAILED`. **Error items are never charged.**

### Integrations and API

**Python** (`pip install apify-client`):

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("istmobot/tiktok-trends-scraper").call(run_input={
    "type": "hashtags",
    "countryCodes": ["US", "ID", "TH"],
    "period": "7",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["countryCode"], item.get("rank"), item.get("hashtag"), item.get("videoViews"))
```

**Node.js** (`npm install apify-client`):

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

const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('istmobot/tiktok-trends-scraper').call({
    type: 'videos',
    countryCodes: ['US', 'VN'],
    period: '7',
    sortBy: 'views',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

- **Schedules.** Run the Actor daily to track TikTok trending hashtags per market over time.
- **Webhooks.** Get notified, or trigger your own pipeline, when a run finishes.
- **Make, Zapier, n8n.** Send TikTok trends to Google Sheets, Airtable, Slack or a database without code.
- **AI agents.** Use the Actor from Claude, ChatGPT or any MCP client through the Apify MCP server (https://mcp.apify.com).

### FAQ

**Do I need a TikTok account or login?** No. The Actor reads only the public trend data that Creative Center shows to logged-out visitors. It uses no cookies, no account and no browser.

**Is it legal to scrape TikTok Creative Center?** The Actor collects only publicly available, aggregated trend data (hashtag statistics and top content that TikTok publishes for marketers). It does not log in or bypass any access control. Creator fields are limited to the public profile details that Creative Center itself displays. You are responsible for using the data in line with applicable laws, including GDPR, and with TikTok's terms. If you are unsure, consult a lawyer.

**How fresh is the data?** It is as fresh as TikTok Creative Center. Hashtag rankings and the daily trend curve update every day. Video rankings use the latest daily snapshot that TikTok publishes. Each item has a `scrapedAt` timestamp.

**Why do I get only 3 hashtags or 4 videos per country?** That is how much Creative Center shows to logged-out visitors for each country, period and filter. Add more countries, industries or content tags to get more results in one run.

**Can I get trending songs or a creator leaderboard?** Not at the moment. TikTok's redesigned Creative Center no longer offers public song or creator rankings. The top creators for each trending hashtag are included in the `topCreators` field.

**Can I schedule it?** Yes. Use Apify Schedules to run it on any interval, for example daily, and combine it with webhooks or integrations to push results wherever you need them.

**Do I need proxies?** No. Each run makes only a few lightweight requests.

### Other Actors you might like

- [Steam Game Intelligence](https://apify.com/istmobot/steam-game-intelligence)
- [Metacritic Scraper](https://apify.com/istmobot/metacritic-scraper)

### Your feedback

Found a bug or want a new field? Open an issue in the **Issues** tab of this Actor. We read every one.

### Disclaimer

This is an **unofficial** tool. It is not affiliated with, endorsed by or sponsored by TikTok or ByteDance.

# Actor input Schema

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

"hashtags": trending hashtags with posts, views, daily trend curve and top creators. "videos": top trending TikTok videos with views, engagement and creator.

## `countryCodes` (type: `array`):

One or more markets. Hashtags: 27 countries. Videos: US, JP, VN, TH, ID only (other countries return a free error item).

## `period` (type: `string`):

Trend window in days. 90 days is available for hashtags only.

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

Hashtags only. Each selected industry returns its own top hashtags. Leave empty for the overall ranking.

## `contentTags` (type: `array`):

Videos only. Each selected tag returns its own top videos. Leave empty for all content.

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

Videos only: rank by video views, engagement rate or 6-second view rate.

## `maxItems` (type: `integer`):

Maximum number of results for the whole run (you are charged per result).

## Actor input object example

```json
{
  "type": "hashtags",
  "countryCodes": [
    "US",
    "ID"
  ],
  "period": "7",
  "industries": [
    "14000000000",
    "22000000000",
    "18000000000"
  ],
  "sortBy": "views",
  "maxItems": 50
}
```

# Actor output Schema

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

No description

# 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 = {
    "type": "hashtags",
    "countryCodes": [
        "US",
        "ID"
    ],
    "period": "7",
    "industries": [
        "14000000000",
        "22000000000",
        "18000000000"
    ],
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("istmobot/tiktok-trends-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 = {
    "type": "hashtags",
    "countryCodes": [
        "US",
        "ID",
    ],
    "period": "7",
    "industries": [
        "14000000000",
        "22000000000",
        "18000000000",
    ],
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("istmobot/tiktok-trends-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 '{
  "type": "hashtags",
  "countryCodes": [
    "US",
    "ID"
  ],
  "period": "7",
  "industries": [
    "14000000000",
    "22000000000",
    "18000000000"
  ],
  "maxItems": 50
}' |
apify call istmobot/tiktok-trends-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,istmobot/tiktok-trends-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/GAQtZ3rsAXlBlhWTs/builds/yff1DwbukdM1rRXWm/openapi.json
