# TikTok Trending Explore Snapshot (`getdataforu/tiktok-trending-explore`) Actor

What TikTok is pushing right now in each Explore category, country by country, with views, engagement, hashtags and sounds.

- **URL**: https://apify.com/getdataforu/tiktok-trending-explore.md
- **Developed by:** [EMT Crawler](https://apify.com/getdataforu) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.60 / 1,000 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 Trending Explore Snapshot

See **what TikTok is pushing right now** in each Explore category — country by country — with full stats for every video, and a summary of the topics and creators that keep coming up.

No login, no TikTok account. **23 countries**, including Vietnam, Indonesia, Thailand, the Philippines, Malaysia, Japan, Korea, Brazil, Mexico and most of Europe.

### What it's for

- **Trend spotting** — find the topics climbing in your niche before you film.
- **Market research** — compare what Vietnamese, Indonesian and Thai audiences are being shown in the same category.
- **Creator discovery** — the creators TikTok promotes in a category are the ones worth booking.
- **Daily trend archive** — schedule it every morning and build your own history of what was hot when.

### What you get

**One row per video**, with:

| | |
|---|---|
| **Where it was seen** | Country, Explore category, position in the feed, snapshot time |
| **Performance** | Views, likes, comments, shares, saves, engagement rate |
| **Creator** | Username, name, verified badge, followers |
| **Content** | Caption, hashtags, mentions, sound, duration, language, posting date |
| **Media** | Cover image, playable video link |

**One `SNAPSHOT_SUMMARY` record** per run, with each country/category feed summarised:

```json
{
  "region": "VN",
  "category": "Food",
  "videos": 100,
  "medianViews": 1100000,
  "medianEngagementRate": 0.046,
  "topHashtags": [{ "value": "food", "count": 4 }, { "value": "kechuyen", "count": 2 }],
  "topSounds": [],
  "topCreators": [{ "value": "vn.mecola", "count": 2 }],
  "newestVideoAt": "2026-10-10T12:45:19.000Z"
}
```

*(Real output: Vietnam, Food tab, 100 videos.)* Sounds and creators are only listed when they recur — in a 100-video sample most don't, which is itself the signal: the feed is broad, not dominated by one sound. Collect more videos per category to see sound trends form.

Reach-chasing tags that appear on everything — `#fyp`, `#viral`, `#trending`, `#xuhuong` and similar — are left out of `topHashtags`, so the real topics surface. They are still in each video's own `hashtags`.

### Input

```json
{
  "regions": ["VN", "ID", "TH"],
  "categories": ["All", "Food", "Beauty Care"],
  "maxVideosPerCategory": 50,
  "maxAgeDays": 7
}
```

| Field | Default | Notes |
|---|---|---|
| `regions` | `["GB"]` | Countries to snapshot. Each one is a different feed. |
| `categories` | `["All"]` | Explore tabs: All, Food, Beauty Care, Comedy, Sports, Games, Outfit, Cars, Animals, Education, Technology and 10 more. |
| `maxVideosPerCategory` | `50` | Distinct videos per country and category. |
| `minViews` | `0` | Skip small videos. Skipped videos are not charged. |
| `maxAgeDays` | `0` | Only keep videos posted in the last N days. `0` keeps all. |
| `maxConcurrency` | `5` | Feeds fetched at the same time. |

### Speed and cost

Measured: **150 videos (Vietnam × 3 categories) in 18 seconds.** The feed arrives about 25–30 videos per request, which makes this the cheapest way to collect TikTok video stats in bulk.

### How the snapshot works — read this

TikTok's Explore feed is **not a fixed ranking**. Every request returns a fresh batch of videos TikTok is currently promoting in that category, for a visitor in that country. So:

- Two runs a minute apart return different videos. That is the feed, not an error.
- `feedPosition` is the order the actor received the videos, not a global "rank #1".
- A video can appear in two categories (for example in *All* and in *Food*) — each sighting is its own row.
- The larger `maxVideosPerCategory`, the more representative the sample.

### Limitations

- **No United States feed.** TikTok serves no Explore feed to US visitors without a login.
- Large counters are rounded by TikTok itself on some videos.
- `videoPlayUrl` is signed by TikTok and expires after a few hours.

### Legal

Reads only data TikTok shows any visitor without logging in. You are responsible for how you use it.

# Actor input Schema

## `regions` (type: `array`):

TikTok tailors the Explore feed to the viewer's country, so each country gives a different snapshot. Pick several to compare markets. The United States is not listed because TikTok serves no Explore feed to US visitors without a login.

## `categories` (type: `array`):

Explore tabs to snapshot. "All" is the mixed feed.

## `maxVideosPerCategory` (type: `integer`):

How many distinct videos to collect from each country and category. The feed is fetched about 30 videos at a time.

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

Skip videos below this view count. Filtered videos are not charged.

## `maxAgeDays` (type: `integer`):

Only keep videos posted in the last N days, to see fresh trends rather than evergreen hits. 0 keeps everything.

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

How many country/category feeds to fetch at the same time.

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

Residential proxies are used by default. The proxy country is set from each country you picked, because that is what decides the feed's content.

## Actor input object example

```json
{
  "regions": [
    "VN"
  ],
  "categories": [
    "All",
    "Food",
    "Beauty Care"
  ],
  "maxVideosPerCategory": 50,
  "minViews": 0,
  "maxAgeDays": 0,
  "maxConcurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

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

Every video collected, with its country, category, position in the feed, stats, hashtags and sound.

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

Per country and category: video count, median views and engagement, and the hashtags, sounds and creators that recur in the feed.

# 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 = {
    "regions": [
        "VN"
    ],
    "categories": [
        "All",
        "Food",
        "Beauty Care"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("getdataforu/tiktok-trending-explore").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 = {
    "regions": ["VN"],
    "categories": [
        "All",
        "Food",
        "Beauty Care",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("getdataforu/tiktok-trending-explore").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 '{
  "regions": [
    "VN"
  ],
  "categories": [
    "All",
    "Food",
    "Beauty Care"
  ]
}' |
apify call getdataforu/tiktok-trending-explore --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getdataforu/tiktok-trending-explore"
        }
    }
}
```

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/PDhXwXdfbqAExn8ci/builds/TmS1x2CToDBjmPi98/openapi.json
