# TikTok Trending Videos Scraper (`s_actors/tiktok-trending-videos-scraper`) Actor

Top TikTok videos by country from TikTok Creative Center: views in the period, organic views, engagement, 6-second view rate, plus current likes, comments, shares, hashtags and sound. About 80 per country, not just the top 4. New-video alerts.

- **URL**: https://apify.com/s_actors/tiktok-trending-videos-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 videos

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 Trending Videos Scraper

Get the **top TikTok videos in the US, Japan, Vietnam, Thailand and Indonesia** from TikTok Creative Center: **views in the period, organic views, engagement rate and 6-second view rate**, lifetime views, the creator with followers and bio email, plus the video's **current likes, comments, shares, saves, hashtags and sound**. Since its 2026 redesign the logged-out Creative Center shows only the **top 4 videos** per filter; this Actor reads **every ranking** (3 sort orders × 6 content tags × all and organic views) and merges them: **about 80 top videos per country** in one run.

```json
{ "countries": ["US", "JP"], "period": "7" }
```

No TikTok login, no cookies, no browser. Use it as a **TikTok trending videos API**, or schedule it with **Only new videos** to get an alert when a new video enters the top.

#### What you get

Real example, United States, week ending 27 September 2026:

| # | author | views in period | organic views | lifetime views | likes now | ad |
|---|---|---|---|---|---|---|
| 1 | renz.sadiwa | 39,282,773 | 675,036 | 49,042,032 | 24,000 | yes |
| 2 | clairetadokoro | 31,160,090 | 846,540 | 31,160,698 | 26,600 | yes |
| 3 | shelbyannbell | 24,679,665 | 2,295,700 | 24,925,659 | 70,000 | yes |
| 4 | thejcheneats | 23,716,132 | 8,291,365 | 83,619,123 | 139,200 | yes |
| 5 | stephpappas | 20,671,663 | 9,455,833 | 41,245,866 | 131,600 | yes |
| 6 | akhsulie | 19,447,546 | 8,137,519 | 80,009,171 | 69,700 | yes |

**Good to know:** Creative Center is TikTok's tool for advertisers, and its top videos are mostly **branded creator content and Spark Ads** (in the example above, 73 of the 79 videos with an open page were marked as ads). That is exactly what you want for ad and influencer research: which brand videos get the most views, how much of it is organic, and which creators made them. For organic viral videos, use the TikTok Explore feed instead.

| Field | Description |
|---|---|
| `videoUrl`, `videoId`, `videoDescription`, `videoCreatedAt` | The video |
| `periodViews`, `periodOrganicViews` | Views in the ranking period, and the organic (unpaid) part of them |
| `periodEngagementRate`, `periodSixSecondViewRate` | Engagement rate and share of views watched 6+ seconds in the period, % |
| `lifetimeViews`, `lifetimeOrganicViews`, `lifetimeEngagementRate` | The same since the video was posted (at the end of the period) |
| `videoPlayCount`, `videoLikeCount`, `videoCommentCount`, `videoShareCount`, `videoSaveCount`, `engagementRate` | Current numbers from the video page (**Current likes, comments and sound** on) |
| `hashtags`, `mentions`, `musicTitle`, `musicAuthor`, `musicUrl`, `durationSeconds`, `language`, `categories` | Hashtags, mentioned brands, sound and other details from the video page |
| `isAd`, `videoPageStatus` | Whether TikTok marks the video as an ad; `ok`, or why the page has no data (an ad-only "dark post", not available in the country, restricted or hidden by TikTok) |
| `videoAuthorUsername`, `videoAuthorName`, `videoAuthorFollowerCount`, `videoAuthorBio`, `videoAuthorEmail` | The creator, with an email found in the bio |
| `contentTags`, `rankings`, `bestRank` | Content tags, the video's place in every ranking it appeared in, and its best place |
| `country`, `periodDays`, `periodEnd`, `position` | Country, period, the end date of the ranking, and our order by views in the period |
| `coverUrl`, `videoFileUrl` | Cover image and video file |
| `isNew`, `creativeCenterUrl`, `scrapedAt` | Not in the previous run of this monitor (empty on the first run), the Creative Center page, run time |

#### How it works

1. Choose **countries**: US, JP, VN, TH, ID (the countries Creative Center ranks top videos for)
2. Choose the **period**: last day, 7 days or 30 days
3. Optional: only some **rankings** or **content tags**, **organic rankings only**, or **Only new videos** for scheduled runs
4. Run, then download the dataset as CSV, Excel, JSON or HTML. Three tabs: **Top videos**, **Likes, comments, sound** and **Creators**

#### Why this Actor

| | |
|---|---|
| 📇 **Creator contacts** | The creators behind the top videos and their agencies: ready for outreach: email, website, Telegram, Instagram, YouTube in one table |
| 🎬 **~80 videos, not 4** | A logged-out visitor sees the top 4 videos of a filter. The Actor reads every sort order, content tag and organic ranking and merges them, with the video's place in each |
| 📊 **Period and lifetime metrics** | Views, organic views, engagement and 6-second view rate for the period and since posting: the numbers the Creative Center charts show |
| ❤️ **Current likes and comments** | Each video page is read for today's plays, likes, comments, shares, saves, hashtags and sound |
| 👤 **Creators with emails** | Followers, bio and the email in it: ready for influencer outreach |
| 🔔 **New-video alerts** | `isNew` on every row; **Only new videos** returns just the ones that entered the top since the previous run |
| 💰 **$0.99 per 1,000 videos** | No subscription, no paid start |

#### Track new top videos

1. Choose the countries and turn on **Only new videos**
2. Save as a task and add a schedule, e.g. every morning
3. The **first run** returns the whole top as a baseline. **Every later run** returns only new videos: 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-trending-videos-state`). Use a different **Monitor name** for each task.

#### Creator contacts (leads)

Turn on **Creator contacts (leads)** (input section **Leads**) and every row gets the contacts of its account in the **Leads** tab of the results, plus a table of the creators of the top videos, **one row per account** (contacts are not repeated on every row): exact followers, bio, business category, **email**, **website**, **Telegram**, **Instagram**, **YouTube**, X, Facebook, LinkedIn, WhatsApp, Twitch. The Actor opens each TikTok profile and the website or link-in-bio page (Linktree, Taplink, Beacons, Stan...) linked in it, with its contact page, and reads handles like `TG: @name` in the bio. The one-row-per-account table is in the run's **Output** tab → **Authors (CSV)** (also `AUTHORS` as JSON). Each account is looked up once per run. Real example, October 2026 (US, last 7 days: 82 creators, 77 with contacts, 65 with an email):

| username | followerCount | email | emailSource | website | instagram |
|---|---|---|---|---|---|
| kelssopretty | 744,498 | kelsei@digitalstreamers.com | bio | kelseiqueen.my.canva.site | |
| nataliesoutlet | 1,306,124 | nataliesoutlet@gmail.com | bio | | instagram.com/nataliesoutlet |
| shelbyannbell | 2,610,834 | delaney@foreveragency.co | bio | | instagram.com/shelbyannbell |

**Max accounts for contacts** (default 500) takes the most frequent accounts first; `0` = all. Accounts without any contact are listed for free.

#### Pricing

Pay per video, 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 |
| Video (one row) | $0.00099 | $0.00074 | $0.00049 |
| Account with contacts, no email (Creator contacts) | $0.0005 | $0.00045 | $0.0004 |
| Account with an email (Creator contacts) | $0.00399 | $0.00359 | $0.00319 |

| Task | Cost |
|---|---|
| Top videos of one country (~80) | ~$0.08 |
| All 5 countries (~400) | ~$0.40 |
| Daily new-video alert for the US (~20 new a day) | ~$0.65 per month |

#### Ready-made tasks

Open it, change the countries, and run:

| Task | What you get |
|---|---|
| [Most Viewed TikTok Videos This Week](https://apify.com/s_actors/tiktok-trending-videos-scraper/examples/most-viewed-tiktok-videos-this-week) | The week's top videos in the US and Japan |

#### FAQ

**Why do other tools return only 4 videos?** TikTok Creative Center (now "TikTok One Creative Suite") shows a logged-out visitor the top 4 videos of a filter. The Actor asks for every ranking and merges the answers.

**Why only 5 countries?** These are the countries Creative Center ranks top videos for. Other countries get no ranking and are skipped.

**Why is the latest week a few days old?** TikTok publishes each ranking after the period ends; `periodEnd` shows the date. Views now are in `videoPlayCount`.

**Why are most videos ads?** Creative Center ranks the videos advertisers learn from, and those are mostly branded creator videos and Spark Ads. `isAd` and `periodOrganicViews` show how much is paid.

**Why do some rows have no likes?** Some top videos are ad-only "dark posts" with no public page, or are closed in the country of the request; `videoPageStatus` says which. Creative Center's numbers are still there.

**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): "Which TikTok videos got the most views in the US this week, which brands are behind them, and how much of it was organic?"

#### Other tools

| Tool | What it does |
|---|---|
| [TikTok Trending Hashtags Scraper](https://apify.com/s_actors/tiktok-trending-hashtags-scraper) | Trending TikTok hashtags by country: ~45 per country (not just the top 3), views, trend curve, top creators, new-trend alerts |
| [TikTok Video Scraper](https://apify.com/s_actors/tiktok-video-scraper) | Views, likes, shares, hashtags and sound of TikTok videos, MP4 download, views tracker |
| [TikTok Comments Scraper](https://apify.com/s_actors/tiktok-comments-scraper) | Comments and replies of TikTok videos and profiles, keyword filter, only-new alerts |
| [TikTok Transcript Scraper](https://apify.com/s_actors/tiktok-transcript-scraper) | Transcripts and subtitles of TikTok videos and profiles: text, SRT, VTT, translations |
| [TikTok Followers Scraper](https://apify.com/s_actors/tiktok-followers-scraper) | Followers and following lists of TikTok profiles: bio emails, follow time, new followers and unfollows |
| [TikTok Viral Videos & Explore Scraper](https://apify.com/s_actors/tiktok-explore-scraper) | Viral TikTok videos from the Explore page in any country and 21 categories: plays, likes, plays per hour, creators, new-video alerts |
| [TikTok Trending Sounds & Songs Scraper](https://apify.com/s_actors/tiktok-trending-sounds-scraper) | Trending TikTok sounds and songs by country and Explore category: videos using each sound, plays, creators, commercial use, MP3 |
| [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 videos to a Google Sheet |

# Actor input Schema

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

Countries whose top videos you want. TikTok Creative Center ranks top videos in these 5 countries.

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

Ranking period: the latest daily, weekly or monthly ranking (TikTok publishes it a few days late; the periodEnd column shows its date).

## `sortBy` (type: `array`):

Which Creative Center rankings to read. Empty = all three (about 80 videos per country).

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

Only videos of these content tags. Empty = all videos plus every tag.

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

Read only the rankings by organic (unpaid) views. Off = both the overall and the organic rankings.

## `videoDetails` (type: `boolean`):

Open each video's page for its current plays, likes, comments, shares, saves, hashtags, sound, duration and whether it is an ad. Off = Creative Center's numbers only (faster).

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

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

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

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

## `findLeads` (type: `boolean`):

Open the TikTok profile of each of the creators of the videos and the website or link-in-bio page (Linktree, Taplink, Beacons...) linked in it, and add to every row exact followers, bio, business category, email, website, Telegram, Instagram, YouTube, X, Facebook, LinkedIn, WhatsApp, Twitch. See the Leads tab of the results; one row per account: Output tab → Authors (CSV). Charged per account with contacts (more with an email, see Pricing); accounts without any contact are listed for free. Contacts are not repeated on every row.

## `maxLeads` (type: `integer`):

At most this many accounts get contacts, the most frequent creators first. 0 = all accounts of the run.

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

How many requests to TikTok run at the same time.

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

Requests go direct first and switch to Apify datacenter proxies when TikTok refuses them. The default works for most runs.

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

Log every retried request and every video page that gave no data (for troubleshooting).

## Actor input object example

```json
{
  "countries": [
    "US"
  ],
  "period": "7",
  "organicOnly": false,
  "videoDetails": true,
  "onlyNew": false,
  "monitorName": "default",
  "findLeads": false,
  "maxLeads": 500,
  "maxConcurrency": 10,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "debugLog": false
}
```

# Actor output Schema

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

Videos with views in the period, organic views, engagement and 6-second view rate.

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

With Creator contacts: email, website, Telegram, Instagram, YouTube of each account, on its rows.

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

With Creator contacts: one row per account of the creators of the videos: followers, email, website, Telegram, Instagram, YouTube.

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

Current plays, likes, comments, shares, saves, hashtags and sound from each video page.

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

The creators of the top videos with followers, bio and email.

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

Every field of every row, with each video's place in every ranking.

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

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

# Run the Actor and wait for it to finish
run = client.actor("s_actors/tiktok-trending-videos-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 '{
  "countries": [
    "US"
  ]
}' |
apify call s_actors/tiktok-trending-videos-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-videos-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/sV77Asa9vfJoWSC5S/builds/pheD5AiKq8PX4fM0w/openapi.json
