# TikTok Creative Center API | Top Ads Scraper, Winning Ads (`aurelix/tiktok-creative-center-scraper`) Actor

Scrape TikTok Creative Center Top Ads through an API for $0.90 per 1,000 ads, cheaper per 1,000 than the leading tools, no login: brand, ad caption, CTR, likes, budget level, objective, industry, video and cover links. 28 countries, 7/30/180 days, only-new daily mode for winning ads.

- **URL**: https://apify.com/aurelix/tiktok-creative-center-scraper.md
- **Developed by:** [Aurelix](https://apify.com/aurelix) (community)
- **Categories:** Marketing, Social media, Lead generation
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.70 / 1,000 ad 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

### What is TikTok Creative Center API?

**Get TikTok Creative Center's Top Ads with CTR, likes, budget level, objective and video links for 28 countries, $0.90 per 1,000 ads, no login.**

For media buyers, agencies and creative teams. Eight TikTok-side filters, several countries and keywords per run, exact limits and an only-new daily mode with a Slack digest. Your first run with the example input costs about $0.026 (20 ads in our test run).

[![TikTok Creative Center API: 75-second demo video](https://api.apify.com/v2/key-value-stores/twkCCtTWzsi8fVbx5/records/tiktok-creative-center-scraper-demo-thumb-v1.png)](https://api.apify.com/v2/key-value-stores/twkCCtTWzsi8fVbx5/records/tiktok-creative-center-scraper-demo-v1.mp4)

**[▶ Watch the 75-second demo](https://api.apify.com/v2/key-value-stores/twkCCtTWzsi8fVbx5/records/tiktok-creative-center-scraper-demo-v1.mp4)**

| | |
|---|---|
| **Search by** | Country (28 or all), period, sort order, optional keywords |
| **Filters** | Industry, campaign objective, Spark or non-Spark ads, ad language, exact max ads per search |
| **Output** | 26 fields per ad; JSON, CSV, Excel, API |
| **Automate** | Schedules, webhooks, Zapier, Make, n8n, Google Sheets, MCP for AI agents |
| **Price** | $0.90 per 1,000 ads (from $0.70 per 1,000 ads on paid Apify plans) |
| **Free to try** | Runs on Apify's free plan: the $5 monthly credit covers about 5,500 ads |
| **Login needed** | No |

### Daily monitor: only what's new, every morning

Set it once, get only the new ads every morning. With **Only new ads since last run** on, the first run returns up to your per-search limit; each later run returns only ads that entered the ranking since an earlier run returned the rest, so you pay only for new ones.

```json
{
  "countries": [
    "US"
  ],
  "period": "7",
  "sortBy": "for_you",
  "maxResults": 0,
  "incremental": true,
  "stateKey": "us-top-ads-daily"
}
```

1. Paste this input into the **Input** tab (JSON view) and click **Save as a new task**; it appears under **Saved tasks**.
2. Open the task from **Saved tasks** and click **Schedule**.
3. Choose **Daily**, pick the hour, and save.

**Cost example:** the US 7-day ranking (about 50-125 ads, 3-7 results pages): say 15 new ads a day, one search and 2 later pages with nothing new ≈ $0.92/month on the free plan (from $0.83 on paid plans): one run a day for 30 days, start fee included. The first run returns the whole ranking (here up to about 125 ads), so it costs more.

Add a Slack incoming-webhook URL in `slackWebhookUrl` (or any URL in `webhookUrl`) to get a short digest of each run's new ads; nothing is sent when a run finds nothing.

### Why TikTok Creative Center API users pick this one

- **Performance on every ad.** CTR band, likes and budget level, plus objective and industry.
- **Eight filters, applied by TikTok.** Country, period, sort, industry, objective, format, language, keyword.
- **Ranking position kept.** rank shows where each ad sits in the order you chose.
- **Exact limits.** Ask for 50 ads per search, get and pay for at most 50.
- **New ads only.** A daily mode that returns just ads new to the ranking.

### Get started in 3 steps

1. Pick one or more countries, a period (7, 30 or 180 days) and a sort order such as Likes or CTR.
2. Optionally add industries, objectives, ad format, languages, keywords and the max ads per search; turn on 'Only new ads since last run' for a daily feed.
3. Click Start, then download JSON, CSV or Excel, or schedule it and send results to Google Sheets, Zapier, Make or n8n.

**[▶ Try it with the example input](https://apify.com/aurelix/tiktok-creative-center-scraper)**

The form opens with an example input already filled in: that run costs about $0.026 on the free plan.

### How much does it cost to scrape TikTok Creative Center?

Pay per event: you pay only for what the run returns, plus a small start fee. Bronze, Silver, Gold and higher Apify plans pay less per result. Paid plans pay $0.80 (Bronze) and $0.70 (Silver and higher) per 1,000 ads.

| Ads | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
| 100 | $0.098 | $0.088 | $0.078 | $0.078 |
| 1,000 | $0.91 | $0.81 | $0.71 | $0.71 |
| 10,000 | $9.01 | $8.01 | $7.01 | $7.01 |

Totals include the $0.008 start fee per run, rounded to the cent (amounts under $0.10 to four decimals). Apify's free plan includes $5 of credit a month, enough for about 5,500 ads.

Video and cover links are included in the price. Each search (one country, or one country and keyword) that TikTok answers costs $0.003, whether or not it finds ads, and a later results page with no ad to return (an only-new day with nothing new on that page) costs $0.003 too, so a check that finds nothing costs little. Refused pages and searches never reached are free. The start fee is $0.008 per run.

#### Billing events

| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
| `ad-result` | $0.90 per 1,000 ads | $0.80 per 1,000 ads | $0.70 per 1,000 ads | $0.70 per 1,000 ads |
| `search-checked` | $0.003 per country or keyword search TikTok answered | $0.003 per country or keyword search TikTok answered | $0.003 per country or keyword search TikTok answered | $0.003 per country or keyword search TikTok answered |
| `empty-page` | $0.003 per later results page with no ad to return | $0.003 per later results page with no ad to return | $0.003 per later results page with no ad to return | $0.003 per later results page with no ad to return |
| `apify-actor-start` | $0.008 per run | $0.008 per run | $0.008 per run | $0.008 per run |

### What data you get

**TikTok Creative Center API** is a TikTok top ads scraper: it turns TikTok Creative Center's public Top Ads ranking into clean rows: rank, brand name, ad caption, industry, campaign objective, CTR (as Creative Center shows it), likes, budget level, video and cover links, video length and size, country and period. Pick countries, the last 7, 30 or 180 days and the sort order (likes, CTR, reach, view rates, conversion rate), and optionally industries, objectives, ad format, ad languages and keywords.

- ad_id, rank, country, period_days, sort_by, keyword
- brand_name and ad_title (the caption) as Creative Center shows them
- industry and industry_id, objective (Conversions, Traffic, App Installs, ...)
- ctr and ctr_label ('Top 27%' as shown), likes, budget_level (Low, Medium, High)
- video_url (highest resolution), video_urls by resolution, cover_url, video_id, duration_s, width, height
- detail_url (the ad's Creative Center page), scraped_at

| rank | brand_name | ad_title | industry | objective | ctr_label | likes | budget_level |
|---|---|---|---|---|---|---|---|
| 4 | arc & thread | Designed for modern lifestyle, with a focus on exceptiona... | Women's Clothing | Conversions | Top 71% | 5 | Low |
| 6 | beckhaverhill | Riverside apartment living with modern comfort and vibran... | Real Estate & Home Rentals | Reach | Top 55% | 38 | Medium |
| 11 | XMARTIALGEAR | Black Friday Sale: Exclusive Deals Rash Guards and Shorts | Sports & Outdoor | Conversions | Top 85% | 1 | Low |

One full ad record, exactly as a real run returned it (long text and lists shortened here). From a real run:

```json
{
  "ad_id": "7696005139284181013",
  "rank": 4,
  "brand_name": "arc & thread",
  "ad_title": "Designed for modern lifestyle, with a focus on exceptional fabrics and effortless sophistication.",
  "industry": "Women's Clothing",
  "industry_id": "22110000000",
  "objective": "Conversions",
  "ctr": 0.71,
  "ctr_label": "Top 71%",
  "likes": 5,
  "budget_level": "Low",
  "video_url": "https://v16m-default.tiktokcdn.com/6eb7d8fac5bdff34d07d696fb9732115/6afa56b0/video/tos/alisg/tos-alisg-ve-0051c001-sg/oY... [279 more characters]",
  "video_resolution": "1080p",
  "video_urls": {
    "1080p": "https://v16m-default.tiktokcdn.com/6eb7d8fac5bdff34d07d696fb9732115/6afa56b0/video/tos/alisg/tos-alisg-ve-0051c001-sg/oY... [279 more characters]",
    "360p": "https://v16m-default.tiktokcdn.com/4e1b47d516f4ee52755ac1a22c671c9e/6afa56b0/video/tos/alisg/tos-alisg-ve-0051c001-sg/ok... [278 more characters]",
    "480p": "https://v16m-default.tiktokcdn.com/c0ff56147a699c42e952b5faeea21ff1/6afa56b0/video/tos/alisg/tos-alisg-ve-0051c001-sg/oY... [278 more characters]",
    "540p": "https://v16m-default.tiktokcdn.com/a150b551fcc13445e94d3c8584afe54e/6afa56b0/video/tos/alisg/tos-alisg-ve-0051c001-sg/ok... [279 more characters]",
    "720p": "https://v16m-default.tiktokcdn.com/d8625b0121bab2c2a4dc88d151cdcfed/6afa56b0/video/tos/alisg/tos-alisg-ve-0051c001-sg/oo... [279 more characters]"
  },
  "cover_url": "https://p16-common-sign.tiktokcdn.com/tos-alisg-p-0051c001-sg/ow4fwArkKoG5AIgVesLeDCAGKowkPwgWbUGnG9~tplv-noop.image?dr=... [194 more characters]",
  "video_id": "v14033g50000dbc53vnog65pqrg0lim0",
  "duration_s": 23.267,
  "width": 720,
  "height": 1280,
  "country": "US",
  "period_days": 30,
  "sort_by": "for_you",
  "keyword": null,
  "detail_url": "https://ads.tiktok.com/business/creativecenter/topads/7696005139284181013/pc/en?period=30&countryCode=US",
  "source_url": "https://ads.tiktok.com/business/creativecenter/topads/7696005139284181013/pc/en?period=30&countryCode=US",
  "scraped_at": "2026-11-15T19:04:21Z"
}
```

### Use cases

- Media buyers and agencies finding winning TikTok ad creatives by country and industry
- E-commerce and app marketers benchmarking CTR, likes and budget of top ads in their category
- Creative teams building swipe files of top-performing TikTok videos, refreshed daily
- Sales teams finding brands that spend on TikTok ads in a given country

### Input

| Field | Type | What it does | Default |
|---|---|---|---|
| `countries` (Countries) | array | Which country's Top Ads ranking to read; each country is its own search (an ad that ranks in two countries... | \["US"] |
| `maxResults` (Max ads per search) | integer | Upper limit of ads returned for each country (and keyword). | 100 |
| `period` (Period) | string | Ads ranked over the last 7, 30 or 180 days. | "30" |
| `sortBy` (Sort by) | string | The order TikTok ranks the ads in: For you (Creative Center's default), Likes, CTR, Reach, 2-second or 6-second view rate... | "for_you" |
| `keywords` (Keywords (optional)) | array | Only ads matching a brand or product keyword, as Creative Center's search box does, e.g. 'skincare' or 'protein'. |  |
| `industries` (Industries (optional)) | array | Only ads in these industries. |  |

All 13 fields, with examples: see the **Input** tab.

### Use with AI agents (MCP)

MCP (Model Context Protocol) is the open standard that lets AI assistants such as Claude, ChatGPT and Cursor call outside tools. Apify's hosted MCP server at `https://mcp.apify.com/?tools=aurelix/tiktok-creative-center-scraper` gives your assistant this Actor only: it fills in the input from your request, runs it and reads the ads back, at the same per-result price as a run started by hand.

#### Example prompts

- "Show me the 20 TikTok top ads with the most likes in the US over the last 7 days, with brand, CTR and budget level"
- "Find top TikTok ads in Beauty & Personal Care in the UK for the last 30 days and summarise which objectives they use"
- "List the TikTok ads that newly entered Creative Center's Top Ads in Germany since yesterday"

#### Claude Desktop and claude.ai

**Settings > Connectors > Add custom connector**, name it Apify, paste `https://mcp.apify.com/?tools=aurelix/tiktok-creative-center-scraper`, keep the detected OAuth settings, select **Add** and sign in to Apify.

#### Claude Code

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=aurelix/tiktok-creative-center-scraper"
```

#### Cursor and VS Code

Add this to `~/.cursor/mcp.json` (Cursor); in VS Code's `.vscode/mcp.json` put the same entry under `"servers"` with `"type": "http"`. Sign in to Apify when asked.

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com/?tools=aurelix/tiktok-creative-center-scraper"
    }
  }
}
```

#### ChatGPT

Turn on **Developer mode**, open **Settings > Apps & Connectors > Create**, paste the URL above as the MCP server URL, choose **OAuth** and authorize Apify.

Clients without sign-in send `Authorization: Bearer <YOUR_APIFY_TOKEN>` instead. No Apify account? This Actor supports Apify's agentic payments: an agent can pay per run with a prepaid, spend-capped token, bought with x402 stablecoin payments.

#### n8n AI agent

Give an **AI Agent** node an **MCP Client Tool** with the endpoint `https://mcp.apify.com/?tools=aurelix/tiktok-creative-center-scraper` and a Bearer credential holding your Apify token.

### Use it from AI agents (MCP), the API or no-code

#### Copy this to your AI assistant

```text
Use the Apify Actor aurelix/tiktok-creative-center-scraper (TikTok Creative Center API) through Apify's MCP server or API. Main input: countries (Countries); maxResults (Max ads per search). Example input: {"countries": ["US", "GB"], "period": "7", "sortBy": "like", "industries": ["14000000000"], "objectives": ["3"], "maxResults": 50, "incremental": true, "stateKey": "beauty-top-ads"}. Each result is one ad with fields such as ad_id, rank, brand_name, ad_title, industry, industry_id, objective, ctr. It costs $0.90 per 1,000 ads on Apify's free plan plus a $0.008 start fee per run, and needs no login.
```

MCP server URL for this Actor: `https://mcp.apify.com/?tools=aurelix/tiktok-creative-center-scraper` (setup for each client in the section above).

#### API

Start a run and read the dataset with Apify's REST API or the Python and JavaScript clients:

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("aurelix/tiktok-creative-center-scraper").call(run_input={'countries': ['US', 'GB'], 'period': '7', 'sortBy': 'like', 'industries': ['14000000000'], 'objectives': ['3'], 'maxResults': 50, 'incremental': True, 'stateKey': 'beauty-top-ads'})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

#### No-code: schedule it in 3 clicks

Send the results to Google Sheets, Zapier, Make, n8n, Slack or any webhook URL.

1. Fill in the input, then click **Save as a new task**.
2. In the task, click **Schedule** and pick daily or weekly (Apify Schedules).
3. Turn on **Only new ads since last run** so each run returns only what is new, and paste a Slack or webhook URL into **Slack webhook URL** / **Webhook URL** to get a digest of the new items (count plus the top 10) after every run.

Prefer n8n or Make? Ask in the **Issues** tab and we will share a ready-made workflow for it.

### FAQ

#### Can I scrape TikTok Creative Center without login?

No. The Actor reads the public Creative Center Top Ads page that anyone can open without logging in. It never logs in and uses no account, cookies or API key.

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

You can use this Actor as one. Start it with Apify's REST API or the Python and JavaScript clients and read the results as JSON (see the code above), or call it from an AI agent through MCP.

#### How much does it cost to scrape TikTok Creative Center?

About $0.91 for 1,000 ads on Apify's free plan and from $0.71 on paid plans, start fee included. The free $5 monthly credit covers about 5,500 ads.

#### Can I export TikTok Creative Center data to Excel or Google Sheets?

Yes. Download the results as Excel, CSV, JSON, XML or HTML from the run's **Storage** tab, or send them to Google Sheets with Apify's Google Sheets integration or the API.

#### Is it legal to scrape TikTok Creative Center?

It reads only public data any logged-out visitor can see: TikTok Creative Center's Top Ads page, which TikTok publishes for advertisers to browse. It goes at a polite pace, never logs in and never solves CAPTCHAs. It returns ad fields and brand names as the page shows them. Data is returned as shown publicly on the source; people can ask for removal by opening an issue on this Actor's Issues tab; if TikTok formally asks us to stop, this Actor will stop. You are responsible for using the data lawfully, incl. copyright in the ad videos and privacy laws; this is not legal advice.

#### Is there a cheaper TikTok Creative Center scraper on Apify?

Per 1,000 ads, yes: this Actor costs $0.90 per 1,000 ads on the free plan, $0.80 on Bronze and $0.70 on Silver and higher, cheaper per 1,000 than the leading tools, with video and cover links included rather than billed as extra details. A run also pays a $0.008 start fee and $0.003 per country or keyword search, so a run of fewer than about 60 ads in one search can cost a few tenths of a cent more than some of them; larger pulls cost less.

#### How do I track TikTok top ads in Google Sheets, n8n or an AI agent?

Two ways. For a fixed workflow, add Apify's n8n or Make node, choose **Run Actor**, enter `aurelix/tiktok-creative-center-scraper` and map the dataset to the next step; schedule it daily with 'Only new ads since last run' on. For an AI agent (Claude, ChatGPT, Cursor or an n8n AI Agent node), add `https://mcp.apify.com/?tools=aurelix/tiktok-creative-center-scraper` as an MCP server and ask for top ads in plain words. Runs bill your own Apify account at the same per-result price.

#### Why do I get at most about 125 ads per search?

Creative Center itself lists at most about 125 ads per filter set for the last 7 or 30 days, and up to 500 for the last 180 days. To get more, split the search by country, industry, objective or sort order; each country and keyword is its own search.

#### What does the CTR value mean?

Creative Center shows CTR as a band such as 'Top 27%' rather than a raw click rate. ctr_label is exactly what the page shows and ctr is the number behind it (0.27).

#### Why is brand_name empty on some ads?

Creative Center shows a brand name only for some ads; when it shows none, brand_name is empty. The caption is in ad_title.

#### Is there a landing page or ad analytics?

No. Logged out, Creative Center shows the ranking fields only; the landing page and the per-second analytics need a TikTok login, which this Actor never uses. detail_url is the ad's Creative Center page, which shows its analytics once you log in to TikTok yourself.

#### How long do the video links work?

TikTok signs video and cover links and they expire after some hours. Download the creatives soon after the run.

#### How does 'Only new ads since last run' work?

The Actor remembers the ads it returned for each country and keyword with the same filters, and skips them next time without charging. The memory forgets ads not seen for 120 days. Set a state name to keep separate feeds apart.

### Limits (stated honestly)

- Data comes from Creative Center's public web page, not an official TikTok API. A TikTok layout change can break it until fixed; a daily health run checks it.
- Creative Center lists at most about 125 ads per filter set for 7 or 30 days and up to 500 for 180 days; split big pulls by country, industry or objective.
- Keyword search is TikTok's own and narrow: many keywords match only a few ads, and a keyword with no match returns nothing (you pay only the $0.003 search fee).
- No landing page, separate contact fields or per-second analytics: those need a TikTok login, which this Actor never uses. Captions are returned as the advertiser wrote them.
- The same ad can appear on two pages of the ranking; each ad is returned once per search, and once per country when you search several countries.
- Video and cover links are signed by TikTok and expire after some hours; download creatives soon after the run.
- If TikTok refuses or stops answering, the run stops early, keeps the ads already read, and the status message says so; you pay only for ads returned.
- Creative Center's own Likes range filter is not offered; sort by Likes instead.

### Works great with

- **Then: [TikTok Ads Library API](https://apify.com/aurelix/tiktok-ads-library-scraper)**: a `brand_name` in its `queries` input: that brand's TikTok ads in Europe with targeting and reach
- **Then: [Facebook Ad Library Search & API](https://apify.com/aurelix/facebook-ad-library-scraper)**: the same `brand_name` in its `queries` input: the brand's Facebook and Instagram ads

### Related Aurelix tools

Public Aurelix Actors, grouped by the data they collect. All are pay-per-result and need no login.

#### Ad intelligence

- **[Competitor Watch](https://apify.com/aurelix/competitor-watch)**: One report per competitor with only what is new: Meta, TikTok and Google ads, page changes, Shopify products and prices, jobs.
- **[Facebook Ad Library Search & API](https://apify.com/aurelix/facebook-ad-library-scraper)**: Facebook and Instagram business ads from the Meta Ad Library: copy, creatives, landing pages, dates, optional EU reach.
- **[TikTok Ads Library API](https://apify.com/aurelix/tiktok-ads-library-scraper)**: TikTok Ads Library ads for Europe, UK, Switzerland and Turkey with targeting, reach, ad text and landing pages.

#### Jobs and hiring data

- **[Job Bank Canada Scraper API](https://apify.com/aurelix/job-bank-canada-scraper)**: Official Job Bank Canada postings by month: NOC and NAICS codes, wages, hours and location.
- **[Greenhouse Jobs Scraper](https://apify.com/aurelix/greenhouse-jobs-scraper)**: Live jobs from a company's Greenhouse, Lever, Ashby or SmartRecruiters board, with salary and Canadian province tags.
- **[Career Page Monitor](https://apify.com/aurelix/hiring-signal-monitor)**: New, removed and reposted roles plus hiring velocity per company, from seven job-board systems including Workday.
- **[LinkedIn Jobs Country Filter Scraper](https://apify.com/aurelix/linkedin-jobs)**: Public LinkedIn job postings by keyword and country: title, company, location, seniority, job type, salary text, description.
- **[Multiple Job Boards Scraper](https://apify.com/aurelix/multi-job-board-scraper)**: LinkedIn, about 50 company career sites, Remote OK and We Work Remotely jobs in one deduplicated list.
- **[Remote Job Board Scraper API](https://apify.com/aurelix/remote-jobs-scraper)**: Remote OK and We Work Remotely jobs in one deduplicated list with salary, regions and tags.
- **[Wellfound Jobs API & Scraper](https://apify.com/aurelix/wellfound-jobs-scraper)**: Wellfound startup jobs with salary and equity ranges, company stage and size, $0.50 per 1,000.
- **[Workday Job Postings Scraper](https://apify.com/aurelix/workday-jobs-scraper)**: Jobs from any Workday career site by link or company name, with full descriptions and Canadian province tags.

#### E-commerce and product data

- **[AliExpress Scraper API](https://apify.com/aurelix/aliexpress-product-search)**: AliExpress search results by keyword: price, discount, rating, units sold, ship-from country and sponsored flag.
- **[Amazon Best Sellers & Amazon New Releases](https://apify.com/aurelix/amazon-best-sellers)**: Amazon Best Sellers and New Releases top 100 on 10 marketplaces: rank, ASIN, price, rating, rank change.
- **[Best Buy Canada Scraper API](https://apify.com/aurelix/best-buy-canada-scraper)**: Best Buy Canada search results: CAD price, sale savings, rating, reviews and seller, plus optional UPC and specs.
- **[Shopify App Store Scraper](https://apify.com/aurelix/shopify-app-store-scraper)**: Shopify App Store apps with pricing plans, ratings, category ranks and reviews; new-app and new-review watch.
- **[Shopify Product Export Scraper](https://apify.com/aurelix/shopify-products-scraper)**: Every public product of any Shopify store with variants, SKUs, prices, barcodes, stock counts and collections.
- **[Shopify Best Sellers Tracker](https://apify.com/aurelix/shopify-best-sellers-tracker)**: Competitor Shopify stores' best-sellers, new products, price changes, stock-outs and restocks since your last run, plus catalogue summary.

#### Leads and company data

- **[Companies House Scraper](https://apify.com/aurelix/companies-house-scraper)**: Newly incorporated UK companies from Companies House: SIC codes, region, registered office, directors with roles.
- **[Company Phone Numbers Scraper](https://apify.com/aurelix/contact-details-scraper)**: Published company emails, phones, addresses, social pages and team members from a list of company websites.
- **[Decision Maker Finder](https://apify.com/aurelix/decision-maker-finder)**: Founders, CEOs, VPs and department heads from company team pages, with title, seniority and function.
- **[FMCSA API](https://apify.com/aurelix/fmcsa-carrier-api)**: FMCSA carriers by DOT, MC or name, plus daily new-authority leads: contacts, fleet, cargo, insurance, out of service.
- **[Newly Funded Companies Hiring](https://apify.com/aurelix/funded-companies-hiring)**: Companies that just raised money (SEC Form D), with their open roles and business contacts, as a new-only monitor.
- **[Google Maps Phone Scraper](https://apify.com/aurelix/google-maps-scraper)**: Local business lists from Google Maps: phones, websites, ratings, hours, coordinates; optional website emails and socials.
- **[Google Maps Reviews](https://apify.com/aurelix/google-maps-reviews-scraper)**: Google Maps reviews from many places per run with an only-new daily monitor: rating, text, date, likes, owner reply.
- **[Liquor License Applications](https://apify.com/aurelix/liquor-license-applications)**: New liquor license applications and new licenses from California, Texas, New York, Missouri, Washington and Ontario.
- **[New Business Licenses Scraper](https://apify.com/aurelix/new-business-licenses)**: Newly licensed businesses from 11 US and Canadian city open-data portals in one schema, with category, issue date and address.
- **[Recently Funded Companies API](https://apify.com/aurelix/recently-funded-companies)**: US companies that just filed an SEC Form D: amount raised, industry, state, executives, confirmed website.
- **[Tech Stack API](https://apify.com/aurelix/tech-stack-detector)**: CMS, e-commerce platform, analytics, ad pixels, chat, CDN and email provider for each domain you enter.
- **[Yellow Pages Canada Scraper](https://apify.com/aurelix/yellow-pages-canada-scraper)**: YellowPages.ca businesses by search term and city: phone, website, address, postal code, hours and rating.

#### Canada and government data

- **[Canada Building Permits](https://apify.com/aurelix/canada-building-permits-scraper)**: Building permits and development applications from 7 Canadian cities: address, type, status, dates, value, applicant, contractor and Toronto planner contact.
- **[Government Tenders USA Scraper](https://apify.com/aurelix/government-tenders-scraper)**: Open tenders from SAM.gov, CanadaBuys and EU TED in one table: buyer, codes, value, deadline, contact and link.
- **[New York Building Permits Scraper](https://apify.com/aurelix/building-permits-scraper)**: Building permits from 12 US city open-data portals in one schema, with value, status, contractor, owner and applicant.
- **[USPTO Trademark API](https://apify.com/aurelix/uspto-trademark-search)**: US trademark search and watch from USPTO: mark, owner or number lookups, new filings, owner, attorney, goods.

#### AI, content and SEO

- **[Google Maps Rank Tracker](https://apify.com/aurelix/google-maps-rank-tracker)**: Extract Google Maps local rankings on a geo-grid at $1.00 per 1,000 grid points on the free plan: your rank...
- **[Google Trends by Region](https://apify.com/aurelix/google-trends-scraper)**: Google Trends interest over time, by region and rising queries for any number of keywords, plus trending searches.
- **[Google Autocomplete API](https://apify.com/aurelix/google-autocomplete-scraper)**: Expands seed keywords into hundreds of real Google and YouTube autocomplete phrases, tagged by search intent.
- **[PDF Table Extraction & PDF to Markdown OCR](https://apify.com/aurelix/pdf-to-markdown)**: Turns linked PDF and Word files into Markdown per page, with tables as JSON rows, RAG chunks and OCR.
- **[Website to Knowledge Base Sync](https://apify.com/aurelix/rag-site-sync)**: Turns a website into knowledge base chunks with stable IDs, then returns only chunks to upsert or delete.
- **[Broken Link Crawler & SEO Audit](https://apify.com/aurelix/seo-audit-crawler)**: Audits a whole site: one row per page with SEO checks and broken links, plus a ranked issues summary.
- **[Bulk TikTok Transcripts Scraper](https://apify.com/aurelix/tiktok-transcript-scraper)**: Returns TikTok video transcripts as text, timed segments and SRT, from video links or @profiles' latest videos.
- **[Website Change Tracker](https://apify.com/aurelix/website-change-monitor)**: Re-checks a site and returns only added, changed and deleted pages, with chunks to upsert and IDs to delete.
- **[Bulk Website Screenshot Tool](https://apify.com/aurelix/website-screenshot)**: Full-page screenshots or PDFs of a list of URLs, cookie banners hidden, lazy images loaded, a public link per image.
- **[Website to Markdown API](https://apify.com/aurelix/website-to-markdown)**: Crawls a site and returns one row of clean main-content Markdown per page, with title, headings and links.
- **[YouTube Transcript Scraper](https://apify.com/aurelix/youtube-transcript-scraper)**: Returns YouTube video transcripts as text, timed segments and AI chunks, from videos, channels, playlists or searches.
- **[YouTube Video Scraper API](https://apify.com/aurelix/youtube-video-scraper)**: Full details for every YouTube video in a search, channel or playlist: views, likes, comments, tags, publish time.

#### More data tools

- **[Agoda API (Unofficial)](https://apify.com/aurelix/agoda-reviews-scraper)**: Scrape Agoda guest reviews at $0.50 per 1,000 with this unofficial Agoda API, cheaper than the leading tools: Agoda and...
- **[Merge CSV Files & Datasets: Remove Duplicates, Excel, JSON](https://apify.com/aurelix/dataset-merge-dedup)**: Merges datasets, CSV, JSON and Excel files and removes duplicates with careful URL, email and number matching.
- **[Polymarket Odds Tracker](https://apify.com/aurelix/polymarket-odds-tracker)**: Polymarket outcomes with implied probability, bid/ask, volume and results, plus price history and price-move alerts.
- **[Tennis Betting Odds Scraper](https://apify.com/aurelix/tennis-odds-scraper)**: Tennis results and upcoming matches with opening and closing odds per bookmaker and implied probabilities.

### Recent changes

- **0.1**: First release: Top Ads by country, period and sort order, with industry, objective, ad format, language and keyword filters, exact limits and an only-new daily mode.

The full history is on the **Changelog** tab.

### Tested daily

An automated health check runs this Actor every day on a fixed input and checks that at least 10 ads come back with `ad_id`, `rank`, `ad_title`, `objective`, `ctr`, `video_url` filled in; a failed check alerts the maintainer straight away.

### Was this useful?

- **Something went wrong?** [Open an issue](https://apify.com/aurelix/tiktok-creative-center-scraper/issues) and tell us what you ran: we answer fast and aim to reply within a day.
- **It worked?** [Leave a review](https://apify.com/aurelix/tiktok-creative-center-scraper/reviews): it takes a minute and helps other people find this tool.

# Changelog

This Actor's version history is a separate document: https://apify.com/aurelix/tiktok-creative-center-scraper/changelog.md

# Actor input Schema

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

Which country's Top Ads ranking to read; each country is its own search (an ad that ranks in two countries comes back once per country). 'All countries' reads TikTok's combined ranking. Creative Center covers these 28 countries.

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

Ads ranked over the last 7, 30 or 180 days.

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

The order TikTok ranks the ads in: For you (Creative Center's default), Likes, CTR, Reach, 2-second or 6-second view rate, or conversion rate. 'rank' in the output is the position in this order.

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

Upper limit of ads returned for each country (and keyword). TikTok shows at most about 125 ads per filter set for the last 7 or 30 days and up to 500 for 180 days. 0 = every ad TikTok lists.

## `keywords` (type: `array`):

Only ads matching a brand or product keyword, as Creative Center's search box does, e.g. 'skincare' or 'protein'. Each keyword is its own search per country. Leave empty for the full ranking. Keyword search on Creative Center is narrow: many keywords match only a few ads.

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

Only ads in these industries. Empty = every industry.

## `objectives` (type: `array`):

Only ads with these campaign objectives. Empty = every objective.

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

Spark Ads are boosted organic posts; Non-Spark Ads are regular ads.

## `adLanguages` (type: `array`):

Only ads in these languages. Empty = every language.

## `incremental` (type: `boolean`):

Return only ads no earlier run with the same filters returned for that country and keyword. Use with a daily schedule to get the ads that newly entered the Top Ads ranking. Ads already returned are skipped and not charged.

## `stateKey` (type: `string`):

Name for the 'new since last run' memory. Leave empty to derive it from the filters; set it to keep separate feeds apart.

## `slackWebhookUrl` (type: `string`):

After each run, post a short digest to Slack: how many results were saved (new ones only when 'Only new ads since last run' is on) and the top 10 with links, e.g. https://hooks.slack.com/services/T000/B000/XXXX. Nothing is posted when the run saved nothing. Leave empty to skip.

## `webhookUrl` (type: `string`):

After each run, POST the same digest as JSON (actor, newOnly, count, items = top 10 results, runUrl, text) to any URL, e.g. a Zapier, Make or n8n webhook. Nothing is sent when the run saved nothing. Leave empty to skip.

## Actor input object example

```json
{
  "countries": [
    "US"
  ],
  "period": "30",
  "sortBy": "for_you",
  "maxResults": 20,
  "keywords": [],
  "industries": [],
  "objectives": [],
  "adFormat": "all",
  "adLanguages": [],
  "incremental": false
}
```

# Actor output Schema

## `ads` (type: `string`):

Every ad found in this run, one item per ad and search, in ranking order.

# 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"
    ],
    "maxResults": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("aurelix/tiktok-creative-center-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"],
    "maxResults": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("aurelix/tiktok-creative-center-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"
  ],
  "maxResults": 20
}' |
apify call aurelix/tiktok-creative-center-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,aurelix/tiktok-creative-center-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/Qjm059Tj0rFrIPAuU/builds/WvchAYSUCC3fTmXbG/openapi.json
