# TikTok Trends Scraper: Trending Hashtags, Videos & Sounds (`s_actors/tiktok-trending-scraper`) Actor

Trending TikTok hashtags by country with posts, views, a daily popularity curve and top creators, across all 15 industries (not just the top 3). Creative Center top videos, the Explore feed by category in any country, trending sounds. Only-new alerts.

- **URL**: https://apify.com/s_actors/tiktok-trending-scraper.md
- **Developed by:** [Superior Actors](https://apify.com/s_actors) (community)
- **Categories:** Social media, Marketing, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.49 / 1,000 trend results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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: Trending Hashtags, Videos & Sounds

Get **trending TikTok hashtags by country** from TikTok Creative Center with posts, views, a **daily popularity curve**, the trend direction and the **top creators** of each hashtag. The logged-out Creative Center shows only the **top 3 hashtags** per filter since its 2026 redesign; this Actor collects the ranking of **every one of the 15 industries** and merges them: **about 45 trending hashtags per country** in one run. Plus Creative Center **top videos**, the **Explore feed by category as seen from any country**, and the **sounds** trending in it.

```json
{ "trendType": "hashtags", "countries": ["US", "GB", "BR"], "period": "7" }
```

No TikTok login, no cookies, no browser. Use it as a **TikTok trends API**: one call returns clean JSON for many countries. Schedule it with **Only new entries** to get an alert when a new hashtag starts trending.

#### What you get

Real example, October 2026, trending hashtags in the United States, last 7 days:

| position | hashtag | posts | views | trend | industry ranks |
|---|---|---|---|---|---|
| 1 | reggie | 71,821 | 789,016,635 | rising | News & Entertainment #1 |
| 2 | cornell | 47,323 | 559,097,435 | rising | Education #1 |
| 3 | cornelluniversity | 47,030 | 424,137,221 | rising | — |
| 4 | janedoe | 35,146 | 166,830,482 | peaking | News & Entertainment #2, Games #1 |
| 5 | tylil | 4,399 | 101,829,875 | rising | Sports & Outdoor #1 |
| 6 | fortnitemares | 9,484 | 87,759,540 | rising | Games #3 |

A run returns one trend type. The **Overview** table shows what every type has: `title` (hashtag, video description or sound), `author` (creator or the hashtag's top creator), `views`, `url`. **All fields** shows every field of the type below.

| Trend type | Fields |
|---|---|
| **Trending hashtags** (`hashtag`) | `hashtag`, `hashtagUrl`, `posts`, `views`, `popularityCurve` (index 0-100 per day), `trend` (rising, peaking, steady, falling), `overallRank` (Creative Center's top 3), `industries`, `industryRanks` (place in each industry ranking), `topCreators` (username, followers, link), `position` |
| **Top videos** (`video`) | `videoUrl`, `videoDescription`, `videoCreatedAt`, author `videoAuthorUsername`, `videoAuthorFollowerCount`, `videoAuthorBio`, `videoAuthorEmail`; `periodViews`, `periodOrganicViews`, `periodEngagementRate`, `periodSixSecondViewRate`, `lifetimeViews`, `lifetimeOrganicViews`, `lifetimeEngagementRate`; `rankings` (each ranking and place), `bestRank`, `contentTags`, `coverUrl`, `videoFileUrl` |
| **Explore videos** (`exploreVideo`) | `category`, `position` and the full video: plays, likes, comments, shares, saves, `engagementRate`, description, `hashtags`, `mentions`, duration, language, sound (`musicTitle`, `musicUrl`...), author with followers and bio, cover, location, AI-generated and ad flags |
| **Trending sounds** (`sound`) | `musicTitle`, `musicAuthor`, `musicUrl`, `musicAudioUrl`, `musicCoverUrl`, `musicIsOriginal`, `musicDurationSeconds`, `videosInSample` (Explore videos using it), `sampleSize`, `samplePlays`, `sampleLikes`, `categories`, `topVideoUrl`, `videoUrls` |
| Every row | `type`, `country`, `position`, `title`, `author`, `views`, `url`, `periodDays`, `isNew` (not in the previous run of this monitor), `scrapedAt`; a country without such a ranking is skipped (the run's status says which) |

#### How it works

1. Choose **what to get**: trending hashtags, top videos, Explore videos or trending sounds (one type per run; save a task for each type you track)
2. Add **countries** (two-letter codes) and the **period**: 7, 30 or 90 days for hashtags; yesterday, 7 or 30 days for top videos
3. Optional: limit to some **industries**, video **rankings** or **content tags**, choose **Explore categories**
4. Run, then download the dataset as CSV, Excel, JSON or HTML

| Source | Countries | How much per run |
|---|---|---|
| Trending hashtags (Creative Center) | 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 | ~40-46 per country and period (the overall top 3 + the top 3 of 15 industries) |
| Top videos (Creative Center) | US, JP, VN, TH, ID | ~70-85 per country and period (3 rankings × 6 content tags × overall / organic, 4 each) |
| Explore videos | any country | up to 2,000 per category and country (new videos on every load) |
| Trending sounds | any country | from the Explore videos of the run: more categories = a bigger sample |

#### Why this Actor

| | |
|---|---|
| 📈 **~45 hashtags, not 3** | Since the 2026 Creative Center redesign a logged-out visitor sees the top 3 hashtags per filter. The Actor reads all 15 industry rankings and merges them, with each hashtag's place in every industry |
| 🌍 **Explore in any country** | TikTok's Explore feed depends on the viewer's country: the Actor loads it through a residential IP in the country you choose (Brazil: 57 of 80 videos in Portuguese; Japan: 73 of 82 in Japanese) |
| 🎵 **Trending sounds** | TikTok removed its public sound chart; the Actor counts the sounds of the Explore videos it collects, with plays and the top video of each |
| 🔔 **Trend alerts** | `isNew` on every row; **Only new entries** returns just what entered the trends since the previous run |
| 📊 **Video performance** | Creative Center's period views, organic views, engagement and 6-second view rate, plus the creator's bio email |
| 💰 **$0.99 per 1,000 results** | No subscription, no paid start; failed countries and only-new repeats are free |

#### Track new trends

1. Choose the trend type and countries, turn on **Only new entries**
2. Save as a task and add a schedule, e.g. every morning
3. The **first run** returns the full ranking as a baseline. **Every later run** returns only new hashtags, videos or sounds: send them to [Google Sheets](https://apify.com/s_actors/google-sheets-import-export), Slack or email with an integration

The memory is kept in your account (key-value store `tiktok-trends-state`). Use a different **Monitor name** for each task.

#### Pricing

Pay per result, no subscription needed. Apify Scale and Business plans pay less:

| Event | Free and Starter plans | Scale plan | Business plan |
|---|---|---|---|
| Run start | $0.001 | $0.001 | $0.001 |
| Trend result (one row) | $0.00099 | $0.00074 | $0.00049 |

| Task | Cost |
|---|---|
| Trending hashtags in one country (~45) | ~$0.05 |
| Hashtags in all 27 countries (~1,200) | ~$1.20 |
| Daily new-hashtag alert for 5 countries (~10 new a day each) | ~$1.50 per month |
| 1,000 Explore videos | ~$0.99 |

Error rows and entries skipped in only-new mode are not charged.

#### Ready-made tasks

Open it, change the countries, and run:

| Task | What you get |
|---|---|
| [What's Trending on TikTok Right Now by Country](https://apify.com/s_actors/tiktok-trending-scraper/examples/tiktok-trends-by-country) | The videos TikTok's Explore page pushes right now in the US and the UK |

#### FAQ

**Why do other tools return only 3 hashtags?** TikTok Creative Center (now "TikTok One Creative Suite") shows a logged-out visitor the top 3 hashtags of a filter and the top 4 videos. The Actor asks for every industry, ranking and content tag and merges the answers, so you get the whole visible trend picture of a country in one run.

**Where are trending songs and creators?** TikTok removed the song and creator charts from the public Creative Center in 2026. Trending sounds here come from the Explore feed: the sounds used by the videos TikTok is pushing right now in that country.

**Why only some countries for hashtags and top videos?** These are the countries Creative Center ranks (27 for hashtags, 5 for top videos). For any other country use Explore videos and sounds.

**What do the numbers mean?** `posts` and `views` are Creative Center's counts for the period; `popularityCurve` is TikTok's daily popularity index (100 = the peak of the period). Explore plays and likes from 10,000 up are rounded by TikTok itself (1.5M).

**Do I need a TikTok account or cookies?** No.

#### Use with the API and AI agents

Run it via the [Apify API](https://docs.apify.com/api/v2) from Python, Node.js or any HTTP client, or connect it to Claude, ChatGPT and other AI agents through the [Apify MCP server](https://mcp.apify.com): "What hashtags are trending on TikTok in Brazil this week, and which ones are new since yesterday?"

#### Other tools

| Tool | What it does |
|---|---|
| [YouTube Search Scraper](https://apify.com/s_actors/youtube-search-scraper) | YouTube search results with filters: videos, Shorts, channels, playlists |
| [Google Sheets Import & Export](https://apify.com/s_actors/google-sheets-import-export) | Send the trends to a Google Sheet |

# Actor input Schema

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

Trending hashtags: TikTok Creative Center's hashtag ranking with posts, views, a daily popularity curve and the top creators, collected across all 15 industries (up to ~45 hashtags per country instead of the 3 the logged-out site shows). Top videos: Creative Center's top videos with period views, engagement and 6-second view rate. Explore: the videos TikTok's Explore page shows in a category, as seen from the chosen country. Sounds: the sounds used most across the Explore videos. One type per run: the Overview table shows title, author, views and link of any type; All fields shows everything the type has.

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

Two-letter country codes, one per line (US, GB, DE, BR, JP...). 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. Top videos: US, JP, VN, TH, ID. Explore and sounds: any country (loaded through a residential IP in that country).

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

Ranking period of Creative Center. Hashtags: 7, 30 or 90 days (Yesterday uses 7). Top videos: yesterday, 7 or 30 days (90 uses 30). Explore is always live.

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

Only hashtags of these industries. Empty = the overall ranking plus every industry (the most hashtags). Each row lists the industries it ranks in and its place there.

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

Which Creative Center video rankings to collect. Empty = all three (the most videos). Each row lists every ranking the video is in.

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

Only videos with these Creative Center content tags. Empty = all videos plus every tag.

## `organicOnly` (type: `boolean`):

Only Creative Center's ranking of organic (not promoted) views. Off = both the overall and the organic rankings.

## `exploreCategories` (type: `array`):

Explore page categories for Explore videos and sounds. More categories give sounds a bigger sample.

## `maxExploreVideos` (type: `integer`):

Different videos to collect per category and country. TikTok's Explore feed gives new videos on every load, so this is a sample of what is being pushed right now.

## `maxSounds` (type: `integer`):

Sounds to return per country, the most used in the Explore sample first. TikTok removed its public sound chart in 2026; this counts the sounds of the Explore videos collected in this run.

## `onlyNew` (type: `boolean`):

For scheduled runs (save the input as a task and add a schedule). The first run returns everything and remembers it; every later run returns only hashtags, videos and sounds that were not there before. Without it, every row still has isNew.

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

Name of the memory used by isNew and Only new entries. Use a different name for each task.

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

How many requests to TikTok run at the same time.

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

Creative Center goes direct first and switches to Apify datacenter proxies when TikTok refuses it. Explore and sounds always use Apify residential proxies in the chosen country (TikTok gives cloud IPs an empty Explore list).

## `debugLog` (type: `boolean`):

Log every retried request (for troubleshooting).

## Actor input object example

```json
{
  "trendType": "hashtags",
  "countries": [
    "US"
  ],
  "period": "7",
  "organicOnly": false,
  "exploreCategories": [
    "All"
  ],
  "maxExploreVideos": 100,
  "maxSounds": 50,
  "onlyNew": false,
  "monitorName": "default",
  "maxConcurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "debugLog": false
}
```

# Actor output Schema

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

Title, author, views and link of every result.

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

Every field of every row.

# 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 = {
    "trendType": "hashtags",
    "countries": [
        "US"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("s_actors/tiktok-trending-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 = {
    "trendType": "hashtags",
    "countries": ["US"],
}

# Run the Actor and wait for it to finish
run = client.actor("s_actors/tiktok-trending-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 '{
  "trendType": "hashtags",
  "countries": [
    "US"
  ]
}' |
apify call s_actors/tiktok-trending-scraper --silent --output-dataset

```

## MCP server setup

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