# TikTok Creative Center Ad Intelligence (`webdata_labs/tiktok-creative-center-ad-intelligence`) Actor

\[💵 $3.00 / 1K] Export TikTok Creative Center Top Ads by country, period, and sort metric with clean creative rows, hook text, video links, objective/industry keys, and angle labels.

- **URL**: https://apify.com/webdata\_labs/tiktok-creative-center-ad-intelligence.md
- **Developed by:** [WebData Labs](https://apify.com/webdata_labs) (community)
- **Categories:** Marketing, Social media, For creators
- **Stats:** 12 total users, 7 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 creative records

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## TikTok Creative Center Ad Intelligence - Top Ads, Hooks & Creative Research

**Find TikTok ads worth studying - not another dump of ordinary TikTok videos.** This TikTok Creative Center scraper exports public **Top Ads** with hook text, creative-angle labels, rankings, brands, markets, thumbnails, and video URLs for competitor research and creative briefing.

Use it as a no-code **TikTok Creative Center API alternative** in Apify Console, or run it through the API, a schedule, Make, Zapier, webhooks, or your own application.

### ✅ What you get / ❌ what this is not

| You get | This Actor is not |
| --- | --- |
| One normalized row per TikTok Top Ads creative | Not a general TikTok profile or video scraper |
| Hook text and deterministic creative-angle labels | Not an AI claim that an ad will perform for you |
| Country, period, industry, objective, and ranking context | Not historical spend, revenue, or conversion data |
| Thumbnail and video URLs when TikTok exposes them | Not a permanent media-hosting service |
| Cross-country deduplication with all observed markets | Not an official TikTok API |
| A low-cost first run with no browser setup | Not access to private advertiser data |

### 🚀 Start with a ready-made TikTok ads task

Click a task, review the prefilled filters, and run it. These task pages are useful examples and can be copied into your own Apify account.

| Ready-made task | Best for |
| --- | --- |
| [US Top TikTok Ads This Week](https://apify.com/webdata_labs/tiktok-creative-center-ad-intelligence/examples/us-top-tiktok-ads-this-week) | Discover current high-impression US creatives |
| [High-CTR TikTok Ad Hooks](https://apify.com/webdata_labs/tiktok-creative-center-ad-intelligence/examples/high-ctr-tiktok-ad-hooks) | Study opening lines and performance-ranked hooks |
| [Weekly TikTok Creative Monitor](https://apify.com/webdata_labs/tiktok-creative-center-ad-intelligence/examples/weekly-tiktok-creative-monitor) | Repeatable weekly ad research |
| [Most Liked TikTok Ads from the Last 30 Days](https://apify.com/webdata_labs/tiktok-creative-center-ad-intelligence/examples/most-liked-tiktok-ads-last-30-days) | Find socially engaging creative concepts |
| [Compare US and UK TikTok Top Ads](https://apify.com/webdata_labs/tiktok-creative-center-ad-intelligence/examples/compare-us-uk-tiktok-top-ads) | Compare creative patterns across markets |

### 🔎 Why use this TikTok Creative Center scraper?

- **Find proven creative patterns faster.** Start from TikTok's Top Ads surface instead of manually scrolling through unrelated content.
- **Build swipe files.** Export hooks, thumbnails, video links, objectives, industries, and angle labels into CSV or Google Sheets.
- **Research competitors and categories.** Compare brands and creative approaches across countries and time periods.
- **Brief creative teams.** Turn winning-ad examples into structured references for copywriters, editors, media buyers, and UGC creators.
- **Monitor change.** Schedule the same task weekly and use `creativeId` to compare datasets or detect newly observed ads.
- **Analyze at scale.** Feed clean JSON rows into a notebook, warehouse, dashboard, classifier, or LLM workflow.

### 👥 Who is TikTok Ad Intelligence for?

- Performance marketers researching new ad concepts.
- Ecommerce and DTC teams building TikTok creative swipe files.
- Agencies monitoring ads across client markets.
- Media buyers comparing impression, CTR, like, and cost rankings.
- UGC creators looking for hooks and repeatable creative formats.
- Market researchers studying how ad creative differs by country.
- Data teams building internal ad-intelligence dashboards.

### 📊 What TikTok ad data can be extracted?

| Field | Type | Description |
| --- | --- | --- |
| `creativeId` | string | Stable identifier for deduplication and monitoring |
| `adTitle` | string | Public Top Ads title or creative text |
| `hookText` | string | Opening copy extracted for creative research |
| `creativeAngle` | string | Deterministic label such as problem-solution, discount, or product demo |
| `brandName` | string | Advertiser or brand name when available |
| `country` / `countries` | string / array | Market for the query and all markets where the creative was observed |
| `periodDays` | number | Creative Center lookback period |
| `sortBy` | string | Ranking requested: impressions, CTR, likes, or cost |
| `ctrRank` / `costRank` | number | Relative ranking values exposed by TikTok |
| `likeCount` | number | Public like count when available |
| `industryKey` | string | TikTok Creative Center industry classification |
| `objectiveKey` | string | Campaign objective classification |
| `videoUrl` | string | Video URL when exposed and still active |
| `thumbnailUrl` | string | Creative preview image |
| `scrapedAt` | string | UTC extraction timestamp |

The Actor deduplicates creatives by `creativeId`. If an ad appears in more than one requested country, the result contains all observed markets in `countries` and their count in `countryCount`.

### ⚙️ How to scrape TikTok Creative Center Top Ads

1. Open the Actor and click **Try for free**.
2. Enter one or more ISO country codes, such as `US`, `GB`, `DE`, `FR`, or `BR`.
3. Choose a period: 7, 30, or 120 days.
4. Select the ranking: impressions, CTR, likes, or cost.
5. Optionally add industry keys, objective keys, or a keyword.
6. Set **Max ad creatives**. Start with 20-100 while testing a market.
7. Click **Start**.
8. Open the **Top ads** dataset view and export JSON, CSV, Excel, XML, RSS, or HTML.

No coding or browser setup is required for the first run.

### 📥 Input

Quick start:

```json
{
  "countries": ["US"],
  "periodDays": "7",
  "sortBy": "impression",
  "maxResults": 40
}
```

Cross-market creative research:

```json
{
  "countries": ["US", "GB"],
  "periodDays": "30",
  "sortBy": "like",
  "industryKeys": [],
  "objectiveKeys": [],
  "maxResults": 80
}
```

| Input | What it controls |
| --- | --- |
| `countries` | One or more TikTok Creative Center markets as ISO country codes |
| `periodDays` | Lookback period: `7`, `30`, or `120` |
| `sortBy` | `impression`, `ctr`, `like`, or `cost` |
| `industryKeys` | Optional TikTok industry keys |
| `objectiveKeys` | Optional TikTok campaign objective keys |
| `keyword` | Optional brand or keyword filter; availability varies by query |
| `maxResults` | Maximum unique creative rows across all countries, up to 2,000 |

The review limit is global across requested countries. With several countries, earlier queries can consume more of the limit, so use a larger value for balanced cross-market research.

### 📤 Output

Every creative row is analysis-ready:

```json
{
  "recordType": "creative",
  "creativeId": "7289048123456789012",
  "adTitle": "The fastest way to refresh your routine",
  "hookText": "Stop doing this every morning",
  "creativeAngle": "problem_solution",
  "brandName": "Example Brand",
  "country": "US",
  "countries": ["US", "GB"],
  "countryCount": 2,
  "periodDays": 30,
  "sortBy": "like",
  "ctrRank": 0.82,
  "costRank": 0.41,
  "likeCount": 12500,
  "objectiveKey": "conversion",
  "industryKey": "retail",
  "thumbnailUrl": "https://...",
  "videoUrl": "https://...",
  "scrapedAt": "2026-07-24T12:00:00.000Z"
}
```

You can download the dataset in formats such as JSON, CSV, Excel, XML, RSS, and HTML, or read it directly through the Apify API.

### 💵 How much does it cost to scrape TikTok ads?

There is no run-start fee. One exported dataset record is one charged result.

| Apify plan | Per result | 1,000 records |
| --- | ---: | ---: |
| Free | $0.0030 | $3.00 |
| Bronze | $0.0030 | $3.00 |
| Silver | $0.0025 | $2.50 |
| Gold, Platinum, Diamond | $0.0020 | $2.00 |

Typical Free-plan examples:

- 20 records: about **$0.06**
- 100 records: about **$0.30**
- 1,000 records: **$3.00**

Your final total depends on the number of dataset records written. Use `maxResults` and Apify's run spending limit to cap the charge.

### 🔌 Run the TikTok Creative Center API

Open the Actor's **API** tab for generated JavaScript, Python, CLI, cURL, and MCP examples.

Example with the Apify JavaScript client:

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('webdata_labs/tiktok-creative-center-ad-intelligence').call({
  countries: ['US'],
  periodDays: '30',
  sortBy: 'ctr',
  maxResults: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

Keep `APIFY_TOKEN` in an environment variable or secret manager. Do not place it in public code, datasets, or saved task inputs.

### 🔁 Automate TikTok competitor ad monitoring

- Save a country, period, and ranking combination as an Actor task.
- Schedule it daily or weekly in Apify.
- Send finished-run webhooks to your application.
- Connect datasets to Google Sheets, Make, Zapier, Slack, or a warehouse.
- Compare `creativeId` values between runs to identify new creatives.

The Actor returns current snapshots. Persist scheduled datasets if you need your own historical view.

### ⚠️ Limits and responsible use

- v1 covers public **TikTok Creative Center Top Ads** listings. It does not scrape general TikTok profiles, organic videos, comments, or private advertiser dashboards.
- Available countries, ads, fields, video links, and ranking values vary with TikTok's current Creative Center response.
- A valid query can return no ads. Broaden the country, period, or filters before treating an empty result as an error.
- `ctrRank` and `costRank` are relative values exposed by the source, not exact spend, CTR, conversions, or revenue.
- Media URLs can expire or disappear after TikTok removes an ad.
- Creative-angle labels use deterministic text rules. Treat them as research aids, not guaranteed campaign advice.
- Use public advertising data responsibly and comply with applicable laws and TikTok's terms.

### 🧩 Related advertising research Actors

| Actor | Use it for |
| --- | --- |
| [Meta Ads Library Scraper](https://apify.com/webdata_labs/meta-ads-library-scraper) | Facebook and Instagram competitor ads by keyword or Page ID |
| [TikTok Hashtag Trends Scraper](https://apify.com/webdata_labs/tiktok-hashtag-trends-scraper) | TikTok trend and hashtag research across markets |

### ❓ FAQ

#### Is this a TikTok Creative Center API?

It is an Apify Actor and API for structured exports from TikTok Creative Center Top Ads. It is not an official TikTok API and is not affiliated with TikTok.

#### Can I find a competitor's TikTok ads by brand?

You can try the optional keyword or brand filter, but availability varies by Creative Center query. For reliable discovery, start broad by country and period, then filter `brandName`, `adTitle`, or `hookText` in the exported dataset.

#### Can I download TikTok ad videos?

The Actor returns video and thumbnail URLs when TikTok exposes them. It does not permanently download or host the media.

#### Can I find high-CTR TikTok ads?

Yes. Set `sortBy` to `ctr`, or open the ready-made [High-CTR TikTok Ad Hooks](https://apify.com/webdata_labs/tiktok-creative-center-ad-intelligence/examples/high-ctr-tiktok-ad-hooks) task.

#### Can I compare TikTok ads across countries?

Yes. Add multiple country codes. Creatives seen in several requested markets are deduplicated and include a `countries` array.

#### Can I schedule weekly TikTok ad monitoring?

Yes. Use a saved task and schedule. Each run creates a new dataset you can compare by `creativeId`.

#### Why did my search return no ads?

The selected keyword, industry, objective, market, or period may have no public Top Ads. Remove the narrowest filters, expand the period, or try another country.

### 🛠️ Support

For missing fields or unexpected results, open an Actor issue with:

- the run URL,
- sanitized input,
- the market and period,
- what you expected,
- and one example of the missing or incorrect result.

Never include your Apify token or other credentials.

If the Actor saved you research time, a short review in the **Reviews** tab helps other marketers evaluate it.

# Actor input Schema

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

ISO country codes supported by TikTok Creative Center. One request series is run per country.

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

Creative Center period in days.

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

Creative Center Top Ads ranking metric.

## `industryKeys` (type: `array`):

Optional TikTok industry keys. Leave empty for all industries. Use keys returned by Creative Center filters.

## `objectiveKeys` (type: `array`):

Optional TikTok campaign objective keys. Leave empty for all objectives.

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

Optional keyword or brand query when supported by the Creative Center endpoint.

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

Maximum creative rows to return across all countries. Low default keeps the first run cheap.

## `requestDelayMs` (type: `integer`):

Polite delay between Creative Center API requests.

## `requestRetries` (type: `integer`):

Retries transient timeouts, HTTP 429 rate limits, and 5xx responses with exponential backoff.

## Actor input object example

```json
{
  "countries": [
    "US"
  ],
  "periodDays": "7",
  "sortBy": "impression",
  "industryKeys": [],
  "objectiveKeys": [],
  "keyword": "",
  "maxResults": 100,
  "requestDelayMs": 400,
  "requestRetries": 3
}
```

# Actor output Schema

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

No description

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

No description

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

// Run the Actor and wait for it to finish
const run = await client.actor("webdata_labs/tiktok-creative-center-ad-intelligence").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("webdata_labs/tiktok-creative-center-ad-intelligence").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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 webdata_labs/tiktok-creative-center-ad-intelligence --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=webdata_labs/tiktok-creative-center-ad-intelligence",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/SbdnJEnAKpdRNFC46/builds/ypvkKfr00O4KDyUfO/openapi.json
