# TikTok Top Ads Scraper (`rastriq/tiktok-top-ads-scraper`) Actor

Extract top-performing ad creatives from TikTok Creative Center: CTR, likes, video URLs, landing pages, and competitive intelligence across 49 countries and 21 industries. No API key needed. Export to JSON, CSV, or Excel.

- **URL**: https://apify.com/rastriq/tiktok-top-ads-scraper.md
- **Developed by:** [Rastriq — Structured data from the world](https://apify.com/rastriq) (community)
- **Categories:** Marketing, Social media, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 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.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#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 Top Ads Scraper — Extract Top-Performing TikTok Ads Data

![tiktok top ads](https://www.rastriq.es/readme/ads.png)

Extract top-performing ad creatives from **TikTok Creative Center** without an API key or login. TikTok Top Ads Scraper lets you scrape ad performance metrics, video URLs, landing pages, and competitive intelligence at scale, then export to JSON, CSV, or Excel and integrate with any workflow via the Apify API.

> 🚀 **Try it free** — your first $5 of usage is on Apify. No credit card required.

### 📌 What is TikTok Top Ads Scraper?

**TikTok Top Ads Scraper** is an unofficial TikTok Creative Center API that extracts the highest-performing ad creatives across 49 countries and 21 industries — the same data marketers browse manually at ads.tiktok.com/business/creativecenter.

Unlike manual browsing — which limits you to scrolling through 20 ads at a time — TikTok Top Ads Scraper collects hundreds of ads in a single run, with structured data ready for analysis.

Use TikTok Top Ads Scraper to:

- 🔍 **Monitor competitor ad strategies** — see which creatives, hooks, and landing pages your competitors are running in any market
- 📊 **Benchmark ad performance** — compare CTR, likes, and engagement across industries, countries, and time periods
- 🏆 **Discover winning creatives** — find top-performing video ads sorted by CTR, likes, reach, conversion rate, or view rates
- 🎯 **Research ad formats and trends** — filter by Spark Ads vs. non-Spark, ad language, objectives, and minimum engagement thresholds
- 🔄 **Automate recurring reports** — schedule daily or weekly runs and feed results into dashboards, spreadsheets, or BI tools via webhooks

The Apify platform gives TikTok Top Ads Scraper superpowers: **scheduling**, **monitoring**, **API access**, and **integrations** with Make, Zapier, Google Sheets, and more — all out of the box.

### 📋 What data does TikTok Top Ads Scraper extract?

TikTok Top Ads Scraper returns structured data with the following fields:

|                          |                                    |
| ------------------------ | ---------------------------------- |
| 🆔 Ad ID                 | 📝 Ad title / copy                 |
| 🏷️ Brand name            | 🏭 Industry                        |
| 💰 Cost tier             | 📈 Click-through rate (CTR)        |
| ❤️ Likes                 | 💬 Comments                        |
| 🔄 Shares                | 🎯 Campaign objective              |
| 🎬 Video URL (direct)    | 🖼️ Cover image URL                 |
| 🔗 Landing page URL      | ⏱️ Video duration                   |
| 🌍 Country               | 🔑 Search keyword                  |
| 🕐 Scraped timestamp     | 📎 Source URL                       |

> 💡 Enable **Scrape ad details** in the input to unlock landing page URLs, comments, and shares — fields not available in the basic listing.

### 🚀 How to use TikTok Top Ads Scraper

Extracting TikTok ad intelligence takes under two minutes:

1. **Create a free Apify account** at [apify.com](https://apify.com) — your first $5 is free
2. **Open TikTok Top Ads Scraper** in Apify Console or click **Try for free** on this page
3. **Set your input** — paste a TikTok Creative Center URL or configure filters (country, industry, time period, sort order)
4. **Choose your depth** — enable *Scrape ad details* for landing pages and engagement metrics, or leave it off for faster runs
5. **Click Save & Start** and wait a few seconds
6. **Download your results** in JSON, CSV, Excel, or XML — or access them via the Apify API

### ⚙️ Input options

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `Top Ads URLs` | array | — | Paste one or more TikTok Creative Center URLs. Filters are extracted automatically from the URL. |
| `Search keyword` | string | — | Search ads by keyword (brand name, product, niche). Leave empty to browse top ads. |
| `Max results` | integer | 100 | Maximum ads to extract per URL or filter combination (up to 1,000). |
| `Scrape ad details` | boolean | off | Fetch full details per ad: landing page, comments, shares. Slower but richer data. |
| `Country` | select | Spain | Choose from 49 countries including US, UK, Germany, France, Brazil, Mexico, Japan, and more. |
| `Time period` | select | 30 days | Last 7 days, 30 days, or 180 days. |
| `Industries` | multi-select | All | Filter by one or more of 21 industries (E-commerce, Beauty, Tech, Finance, etc.). |
| `Sort by` | select | For You | Sort by CTR, Likes, Reach, 2s/6s View Rate, Conversion Rate, or TikTok's recommendation. |
| `Ad objective` | multi-select | All | Traffic, Conversions, App Installs, Video Views, Reach, Lead Gen, or Product Sales. |
| `Ad language` | multi-select | All | Filter by 16 languages including English, Spanish, French, German, Portuguese, and more. |
| `Ad format` | select | All | All formats, Spark Ads only, or Non-Spark Ads only. |
| `Minimum likes` | select | None | Filter by engagement tier: 0–100, 100–1K, 1K–10K, 10K–100K, or 100K+. |

### 📦 Output example

Each result is a structured JSON object. Here is a sample from a real run with **Scrape ad details** enabled (country: Spain, period: 30 days, sorted by CTR):

```json
{
  "id": "7662630637333528583",
  "adTitle": "🔥 For just $29 ，only a few left, gone forever 🚨",
  "brandName": null,
  "cost": 1,
  "ctr": 0.06,
  "likes": 2091,
  "comments": 0,
  "shares": 3,
  "industryKey": "label_22108000000",
  "objectiveKey": "campaign_objective_conversion",
  "landingPage": "https://eosypro.com/collections/hot-selling?variant=dnbffGPsdF&utm_source=tiktok&utm_id=__CAMPAIGN_ID__&utm_campaign=__CAMPAIGN_NAME__&utm_medium=paid",
  "videoDuration": 19.534,
  "videoUrl": "https://v16m-default.tiktokcdn.com/cd1f36f0c314e32a5c9693b86c5177d5/...",
  "coverUrl": "https://p19-common-sign.tiktokcdn.com/tos-alisg-p-37c799-sg/...",
  "countryCode": "ES",
  "keyword": null,
  "sourceUrl": null,
  "scrapedAt": "2026-08-29T21:57:37.921285+00:00"
}
```

And a second ad from the same run:

```json
{
  "id": "7668681471281479698",
  "adTitle": "😊👋 #summercollection #summervibes #rebajasdeverano #rebajas #sales",
  "brandName": null,
  "cost": 2,
  "ctr": 0.06,
  "likes": 996,
  "comments": 2,
  "shares": 3,
  "industryKey": "label_22110000000",
  "objectiveKey": "campaign_objective_conversion",
  "landingPage": "https://puravidaclothes.com/84-rebajas-verano?utm_source=tiktok&utm_medium=paid&utm_id=__CAMPAIGN_ID__&utm_campaign=__CAMPAIGN_NAME__",
  "videoDuration": 15.837,
  "videoUrl": "https://v16m-default.tiktokcdn.com/7b3590b9d4e25d2d0a6d97140aa8996c/...",
  "coverUrl": "https://p16-common-sign.tiktokcdn.com/tos-no1a-p-0037-no/...",
  "countryCode": "ES",
  "keyword": null,
  "sourceUrl": null,
  "scrapedAt": "2026-08-29T21:57:37.921285+00:00"
}
```

Download results in **JSON, CSV, Excel, XML, or HTML** from the Output tab, or pull them programmatically using the Apify API (see the API tab for ready-to-use code snippets).

### See real records before you run it

[Browse sample data](https://console.apify.com/storage/datasets/yMgoJsEr3MTmz52ia) extracted by this Actor — fields, format and structure, ready to inspect before your first run.

### 💰 How much does it cost to use TikTok Top Ads Scraper?

**$1.00 per 1,000 ads** (+ $0.025 per start). Your $5 free trial credit covers ~4,900 ads.

### 🔄 Setting up recurring ad monitoring

TikTok Top Ads Scraper is designed for both one-time extractions and continuous competitive monitoring:

1. **Go to Schedules** in Apify Console after saving your input as a Task
2. **Set the frequency**: daily, weekly, or custom cron (e.g., `0 8 * * 1` for every Monday at 8am)
3. **Add a webhook** to receive data in Slack, email, or your own endpoint when each run finishes
4. **Track trends over time** — compare weekly top ads to spot emerging creatives and market shifts

### 🔗 Related Rastriq Actors

#### TikTok Creative Center

| Actor | What it adds |
| --- | --- |
| [TikTok Trending Videos Scraper](https://apify.com/rastriq/tiktok-trending-videos-scraper) | Trending organic videos with creator profiles, engagement rates and 6-second view-through rates |
| [TikTok Trends Scraper](https://apify.com/rastriq/tiktok-trends-scraper) | Trending hashtags with view counts, post volumes and industry tags across 27 countries |

#### Ad library scrapers

Extract the actual ads running on each platform — all four share a [normalized output schema](https://www.rastriq.es/en/ad-libraries/).

| Actor | What it adds |
| --- | --- |
| [TikTok Ad Library Scraper](https://apify.com/rastriq/tiktok-ad-library-scraper) | Real ads from TikTok's EU transparency archive — creatives, targeting, spend and audience data |
| [Facebook Ad Library Scraper](https://apify.com/rastriq/fb-adlibrary-scraper) | Ad creatives from Facebook and Instagram |
| [Google Ads Transparency Scraper](https://apify.com/rastriq/google-ads-scraper) | Search, Display and YouTube ads from Google's Ads Transparency Center |
| [LinkedIn Ad Library Scraper](https://apify.com/rastriq/linkedin-ad-library-scraper) | B2B ad intelligence — impressions by country, paying entity and targeting |

#### Competitive intelligence

| Actor | What it adds |
| --- | --- |
| [SimilarWeb Data Extractor](https://apify.com/rastriq/similarweb-data-extractor) | Traffic estimates and top pages for the landing pages these ads point to |

### Copy to your AI assistant

Copy the Apify Store URL for this Actor and paste it into ChatGPT, Claude, or any LLM with web access:

```
https://apify.com/rastriq/tiktok-top-ads-scraper
```

The model will read the Actor description, input schema, and field list — then help you build the right API call or integration.

### About the data

This Actor is built and maintained by [Rastriq](https://www.rastriq.es), a data intelligence company specializing in structured extraction for market research and competitive analysis. Browse our full [field reference and methodology](https://www.rastriq.es/en/competitor-ad-tracking/tiktok-ads/#campos).

### ❓ Frequently Asked Questions

#### Is scraping TikTok Creative Center legal?

TikTok Top Ads Scraper only accesses **publicly available data** on TikTok Creative Center — the same information visible to any visitor at ads.tiktok.com without logging in. We apply reasonable rate limiting to avoid overloading their servers.

As with any data collection activity, you are responsible for ensuring your use case complies with applicable laws (GDPR, CCPA) and TikTok's Terms of Service. For guidance, see [Apify's blog on the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

#### Does TikTok Top Ads Scraper require a TikTok account or API key?

No. TikTok Top Ads Scraper works entirely with **public data** from the Creative Center and does not require any account, login, or API credentials.

#### How many ads can I extract per run?

You can extract up to **1,000 ads per run**. For larger volumes, use multiple runs with different filters (country, industry, time period) to cover more ground.

#### What proxy configuration should I use?

TikTok Top Ads Scraper works **without proxy** from Apify's infrastructure by default. No proxy configuration is needed for standard use.

#### Can I search for specific brands or products?

Yes. Use the **Search keyword** field to find ads by brand name, product category, or any keyword (e.g., "adidas", "skincare", "shopify"). The scraper returns matching ads with all performance metrics.

#### How do I integrate TikTok Top Ads Scraper with my workflow?

TikTok Top Ads Scraper integrates natively with:

- **Make (formerly Integromat)** and **Zapier** — trigger runs and receive data automatically
- **Google Sheets** — export directly to a spreadsheet
- **Webhooks** — get notified when a run finishes
- **Apify API** — call from Python, Node.js, or any language (see the API tab)

#### I found a bug or my run failed. Where do I report it?

Please open an issue in the **Issues tab** on this page. Include your input configuration and the run ID so we can investigate quickly.

***

### 🇪🇸 Versión en español

> Esta sección es un resumen en español del README anterior.

#### ¿Qué es TikTok Top Ads Scraper?

**TikTok Top Ads Scraper** extrae los anuncios con mejor rendimiento del **TikTok Creative Center** de forma automatizada. Obtén métricas de rendimiento (CTR, likes, comentarios, shares), URLs de vídeo directas, landing pages y datos competitivos de 49 países y 21 industrias — sin necesidad de cuenta ni API key.

#### ¿Qué datos extrae?

Cada anuncio incluye: ID, título, marca, sector, coste, CTR, likes, comentarios, shares, objetivo de campaña, URL del vídeo, imagen de portada, landing page, duración del vídeo, país y fecha de extracción.

Activa la opción **Scrape ad details** para obtener landing pages, comentarios y shares — datos no disponibles en el listado básico.

#### ¿Cómo usar TikTok Top Ads Scraper?

1. **Crea una cuenta gratuita** en [apify.com](https://apify.com) — tus primeros $5 de uso son gratis
2. **Abre TikTok Top Ads Scraper** y pega una URL del Creative Center o configura filtros (país, industria, periodo, ordenación)
3. **Haz clic en Save & Start** y espera unos segundos
4. **Descarga tus resultados** en JSON, CSV, Excel o XML

#### ¿Cuánto cuesta usar TikTok Top Ads Scraper?

TikTok Top Ads Scraper usa un modelo de **pago por resultado (PPE)**: solo pagas por los anuncios extraídos.

- **Plan gratuito**: ~5.000 anuncios con el crédito inicial de $5
- **Plan Starter ($49/mes)**: ~49.000 anuncios/mes
- **Plan Scale ($149/mes)**: ~149.000 anuncios/mes

**Coste por 1.000 resultados: ~$1.00**

#### ¿Es legal extraer datos del TikTok Creative Center?

TikTok Top Ads Scraper accede únicamente a **datos públicos** del Creative Center, la misma información visible para cualquier visitante en ads.tiktok.com sin iniciar sesión. Eres responsable de cumplir con las leyes aplicables (RGPD, CCPA) y los Términos de Servicio de TikTok.

# Actor input Schema

## `startUrls` (type: `array`):

Paste one or more TikTok Creative Center Top Ads URLs. The actor extracts country, period, sort order, and other filters from the URL automatically.<br><br>When provided, these take priority over the manual filter fields below.

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

Search for ads by keyword (brand name, product, etc.). Leave empty to browse top ads without keyword filter.<br><br>Examples: <code>adidas</code>, <code>shopify</code>, <code>skincare</code>

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

Maximum number of ads to extract per URL (or per filter combination). The API returns pages of 20 items.

## `scrapeDetails` (type: `boolean`):

If enabled, fetches full details for each ad (landing page URL, comments, shares, keywords). Slower but provides richer data.

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

Country to filter top ads.

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

Time window for top ads.

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

Filter by industry. Leave empty to include all industries.

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

How to sort the results.

## `objective` (type: `array`):

Filter by ad objective. Leave empty for all objectives.

## `adLanguage` (type: `array`):

Filter ads by language. Leave empty for all languages.

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

Filter by ad format.

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

Filter by minimum likes tier.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://ads.tiktok.com/business/creativecenter/inspiration/topads/pc/en?period=30&region=ES&orderBy=ctr"
    }
  ],
  "maxResults": 20,
  "scrapeDetails": false,
  "countryCode": "ES",
  "period": "30",
  "industries": [],
  "orderBy": "for_you",
  "objective": [],
  "adLanguage": [],
  "adFormat": "",
  "minLikes": ""
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://ads.tiktok.com/business/creativecenter/inspiration/topads/pc/en?period=30&region=ES&orderBy=ctr"
        }
    ],
    "maxResults": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("rastriq/tiktok-top-ads-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 = {
    "startUrls": [{ "url": "https://ads.tiktok.com/business/creativecenter/inspiration/topads/pc/en?period=30&region=ES&orderBy=ctr" }],
    "maxResults": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("rastriq/tiktok-top-ads-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 '{
  "startUrls": [
    {
      "url": "https://ads.tiktok.com/business/creativecenter/inspiration/topads/pc/en?period=30&region=ES&orderBy=ctr"
    }
  ],
  "maxResults": 20
}' |
apify call rastriq/tiktok-top-ads-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,rastriq/tiktok-top-ads-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/LYAFCQ0iZVwj9NNYz/builds/E5IqUMxD60rwamHu0/openapi.json
