TikTok Creative Center Top Ads Scraper avatar

TikTok Creative Center Top Ads Scraper

Pricing

from $0.11 / 1,000 ad records

Go to Apify Store
TikTok Creative Center Top Ads Scraper

TikTok Creative Center Top Ads Scraper

Export public TikTok Creative Center Top Ads by keyword, country, period, industry, objective, language, and format with ad copy, videos, images, and performance signals.

Pricing

from $0.11 / 1,000 ad records

Rating

0.0

(0)

Developer

Fetch Cat

Fetch Cat

Maintained by Community

Actor stats

0

Bookmarked

203

Total users

107

Monthly active users

2 days ago

Last modified

Share

Export public TikTok Creative Center Top Ads for creative research and competitor analysis. Search by keyword and market, then download ad text, creative links and available public performance indicators as JSON, CSV or Excel.

This TikTok ads scraper covers Creative Center's curated Top Ads. It is not a complete archive of TikTok ads or the EU Commercial Content Library.

Quick start

  1. Open the Actor and choose a market, such as US or GB.
  2. Add a keyword or leave keywords empty for a market overview.
  3. Set a small result limit, run the Actor and open its dataset.
{
"keywords": ["skincare"],
"regions": ["US"],
"period": "7",
"sortBy": "for_you",
"maxItems": 20
}

Prefer a video guide? This short Apify walkthrough shows you how to set up and run an Actor. It uses a different Actor, but the setup steps are the same.

Ready-to-run examples

Choose an example to start with a small, preconfigured input.

What you get

  • Creative research: One dataset row per unique ad, including ad text and available brand or advertiser names.
  • Media references: Detail pages, landing pages, cover images and video URLs when supplied by Creative Center.
  • Public indicators: Likes, CTR and cost index when available. These are not private campaign analytics.
  • Focused searches: Country, keyword, period, language, industry, objective and format filters with Creative Center ranking choices.
  • Run context: Search settings, provenance and a RUN_SUMMARY record describing empty sources, partial results and errors.

Who is it for?

  • Creative strategists: Build a reference set of ad captions, covers and video links.
  • Ecommerce teams: Research product categories and public creative examples by market.
  • Agencies and analysts: Collect repeatable snapshots for reports and downstream comparison.
  • Developers: Feed public ad records into spreadsheets, databases or AI-assisted analysis.

Input settings

SettingJSON keyPurpose
KeywordskeywordsOptional text searches. Omit or leave empty for market Top Ads.
Regions / country codesregionsMarket codes such as US or GB. Defaults to US when no region or URL hint is supplied.
Maximum adsmaxItemsTotal saved-row limit from 1 to 1,000. Default 20.
Creative Center URLsstartUrlsOptional HTTPS ads.tiktok.com Creative Center URLs (strings or { "url": "..." } objects) with keyword, country and period hints.
Time periodperiodString "7", "30" or "180". Default "7".
Ad languageslanguagesOptional language codes such as en.
Industry keysindustriesOptional known Creative Center industry keys.
Objective keysobjectivesOptional known Creative Center objective keys.
Ad formatadFormatOptional known Creative Center format key.
Sort bysortByfor_you, ctr, like or cost. Default for_you.
Maximum retriesmaxRetriesTemporary-failure retry limit, 0–6. Default 3.
Runtime safety limitruntimeSafetySecsStops new requests after 30–270 seconds. Default 240.
Proxy configurationproxyConfigurationOptional manual proxy settings. Direct access is the default.

TikTok profile/video URLs and other unsupported URLs are skipped with an actionable warning and indexed details in RUN_SUMMARY.warnings. A mixed list still processes its supported Creative Center URLs. If every supplied URL is unsupported, the run succeeds with zero rows, an INVALID_INPUT summary and a visible status message; it does not silently search unrelated Top Ads. Replace unsupported URLs with https://ads.tiktok.com/business/creativecenter/inspiration/topads/pc/en?countryCode=US&period=7, or remove startUrls to search using filters alone.

Explicit keyword, region and period inputs take precedence over URL hints. An explicitly empty keyword or region list does not inherit URL hints. Empty regions use US. Use only known Creative Center filter keys, not guessed industry or objective names. Keywords, languages, industries and objectives each accept at most 20 entries per run. Split larger keyword lists into separate runs of at most 20 entries, keeping your other settings unchanged. Multiple filter lists expand into search combinations, with at most 100 combinations allowed.

Output data

The dataset contains ad rows, not error or status rows. Fields can be null when Creative Center does not supply them. This abbreviated example illustrates the shape only, not an observed ad:

{
"adId": "EXAMPLE_AD_ID",
"adText": "Illustrative public ad caption",
"brandName": null,
"advertiserName": null,
"landingPageUrl": null,
"videoUrl": null,
"likes": null,
"ctr": null,
"costIndex": null,
"countryCode": "US",
"language": null,
"adFormat": null,
"keyword": "skincare",
"periodDays": 7,
"source": "creative_center",
"sourcePage": 1
}
FieldsMeaning
adId, detailUrlAd identifier and Creative Center detail link.
brandName, advertiserName, adTextAvailable source names and ad title/caption.
landingPageUrlLanding page when returned by the source.
videoId, videoUrl, videoUrlsVideo identifier, preferred URL and available quality variants.
coverImageUrl, mediaExpiresAtCover URL and parsed signed-media expiry when available.
durationSeconds, width, heightAvailable video dimensions and duration.
likes, ctr, costIndexNumeric public Creative Center indicators, not private spend or analytics.
industryKey, objectiveKeySource industry and objective values.
countryCode, keyword, periodDaysSearch market, keyword and lookback window.
language, adFormatRequested search filters, not independently detected attributes.
rankDataset collection order, not a global popularity rank.
isSearchResult, source, sourcePage, scrapedAtSearch flag, source provenance and extraction time.

The run's key-value store also contains RUN_SUMMARY with counts and source outcomes. A valid search with no matches can succeed with an empty dataset. Mixed-source runs preserve available rows and report failed sources separately.

Download your results

Open your run's dataset, choose Export and select JSON, CSV or Excel. JSON keeps nested fields together. CSV and Excel are useful when you want to review the records in a spreadsheet.

See Apify's download and export guide for the available formats and field options.

Pricing

This Actor uses pay-per-event pricing. The apify-actor-start event is charged when a run starts, with its event count depending on allocated memory and a minimum of one event.

The apify-default-dataset-item event charges for each ad record saved in the default dataset. Diagnostics in RUN_SUMMARY are not ad rows. A run with no saved ads can still incur the start charge. Use maxItems to bound saved results.

See the live Pricing tab for current rates and discounts.

Tips for best results

  • Start with one market. A small result limit makes the output easier to review.
  • Widen sparse searches. Try a broader keyword or a 30-day or 180-day window when a seven-day search is empty.
  • Keep filters light. Industry, objective and format filters need known Creative Center keys.
  • Refresh media links when needed. Signed video and cover URLs can expire. Check mediaExpiresAt when available.
  • Compare snapshots downstream. Save separate runs and use your spreadsheet or workflow to identify changes.

Limits and caveats

  • Only public Creative Center Top Ads are included. No login is required for this public source.
  • This is not TikTok's complete ads archive or EU Commercial Content Library.
  • Private advertiser accounts, targeting and campaign spend are not available.
  • Advertiser, brand, landing-page and media fields are often missing. Public indicators are not full campaign analytics.
  • Source availability and filter coverage can change. A narrow valid search may return no usable ads.
  • Multiple searches share the result limit. Duplicate ads are saved only once. Collection order is not a cross-market ranking.
  • Source failures can produce partial results. Essential execution or storage failures still fail the run.

Automation and integrations

Save your settings for next time

Once you have an input that works for you, save it as an Apify task. This keeps your settings together so you can use them again without filling in the form from scratch.

Run on a schedule

Need fresh results regularly? You can schedule the Actor or a saved task to run at a time that suits you.

Each scheduled run collects the data again. If you want to compare results or highlight changes, add that step in your own workflow.

Send results to your other tools

Use n8n, Make or Zapier to connect this scraper to the rest of your workflow. For example, you could pass its results to an AI assistant or add records to a spreadsheet. Follow the Apify integration guides for your chosen tool.

For a custom connection, an Apify webhook can notify your app when a run finishes or fails. Your app can then fetch the results or handle the failure.

API usage

Want to collect this data from your own app or automation? The examples below send input to the scraper and show how to collect its results.

The Node.js and Python examples wait for the run to finish before reading its results. The cURL example starts the run and returns its details. Wait for that run to finish, then use its defaultDatasetId to fetch the results.

For setup instructions, see Apify's JavaScript client guide, Python client guide and Actor runs API reference.

cURL

curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~tiktok-ads-library-scraper/runs' \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"keywords":["skincare"],"regions":["US"],"period":"7","maxItems":20}'

After the run finishes, retrieve https://api.apify.com/v2/datasets/DATASET_ID/items with the same authorization header. Replace DATASET_ID with the run's defaultDatasetId.

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/tiktok-ads-library-scraper').call({
keywords: ['skincare'], regions: ['US'], period: '7', maxItems: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/tiktok-ads-library-scraper').call(run_input={
'keywords': ['skincare'], 'regions': ['US'], 'period': '7', 'maxItems': 20,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

MCP and AI agents

You can ask your AI assistant to collect data with TikTok Creative Center Top Ads Scraper and help you work with the results. The scraper returns the data, and your assistant can then summarize it, compare records or prepare notes.

Connect your assistant through the Apify MCP server. MCP gives your assistant a way to find this scraper, run it and read the results. Follow the official setup and sign-in guide for your app.

Easier setup with an Apify plugin

If you use a supported coding assistant, the official Apify plugin can set up the connection for you. It connects your assistant to Apify and includes instructions for common tasks. Follow the guide for your particular app.

Use Apify AI in Console

Prefer to keep everything in Apify? Open Apify AI in Console and ask it to find Fetch Cat's TikTok Creative Center Top Ads Scraper. You can describe the data you want and ask questions about the results.

Apify AI is currently in beta. It asks for confirmation before starting an Actor, and normal run charges apply.

Choose your assistant

Connect just this scraper

To keep your setup focused on this scraper, add this server configuration to a compatible MCP client:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=fetch_cat/tiktok-ads-library-scraper"
}
}
}

Sign in to Apify when your client asks. If your client uses a Bearer token instead, follow its setup guide and keep the token in its secure configuration. Configuration formats vary by app, so use the linked guide if your client needs a different format.

Use Apify's general server

Already connected to the general Apify MCP server at https://mcp.apify.com? You can use it to find this scraper without adding another server. Ask your assistant to use TikTok Creative Center Top Ads Scraper by Fetch Cat, or give it the identifier fetch_cat/tiktok-ads-library-scraper.

Your assistant can check the available settings and retrieve the results from the returned run. If the run is still working, it should follow that run rather than start it again. Both connection options use Apify's hosted service.

Example requests

  • “Collect up to 20 US skincare Top Ads from the last 30 days and summarize the themes in their captions.”
  • “Find UK fashion Top Ads from the last month and make a table of the available brands and creative links.”
  • “Get recent US mobile-game Top Ads ranked by likes and prepare notes comparing their ad text.”

Normal Apify charges apply. Check the live Pricing tab before asking your assistant to run a larger batch.

Pay with x402

If your AI agent has a funded wallet, it can pay for Apify usage through x402. This experimental option lets an agent use Apify without a conventional account.

Apify AGI provides a prepaid API token with a spending cap after payment. Your agent can use that token to run this scraper through the Apify API or an authenticated MCP connection.

This public, limited-permission Actor can use the documented prepaid-token route. Direct per-request MCP payments have separate eligibility requirements. That route has not been verified for this Actor, so use the prepaid-token API flow above.

Follow the official guide for wallet setup, supported payment options and current terms. Apify handles the payments. Keep wallet keys and payment tokens in your agent's secure configuration.

Other ways for agents to pay

Apify also supports MPP for prepaid access through AGI and Skyfire for eligible Actors. If your agent already uses one of these, see the agentic payment guide to choose the right setup.

FAQ

Can I scrape TikTok ads without logging in?

Yes. This Actor reads the public Creative Center Top Ads source. It does not access private advertiser accounts.

Can I filter by country?

Use regions with country codes such as US, GB, DE or JP. Returned market fields reflect the search, not a complete delivery-country history.

Why did a valid search return no rows?

Creative Center can have no Top Ads for a narrow query. Review RUN_SUMMARY, broaden the keyword or choose 30 or 180 days. An empty result is not evidence that the whole source is unavailable.

Does it include the EU Commercial Content Library?

No. The EU transparency library is a different source with different coverage and fields.

Can I use an API or AI assistant?

Yes. Use the API clients or the shared Apify MCP server described above. Read the returned run and dataset rather than starting duplicate runs.

How is usage charged?

A start event applies when the run starts, and saved ad rows are charged as dataset items. The live Pricing tab shows current rates.

Can I compare competitor ads over time?

Save the same search input and compare separate snapshots in your own workflow. The Actor does not calculate changes between runs.

Support and feedback

For custom additions or integrations, email hello@fetchcat.dev.

Found an error or have a feature request? Open an issue with the run URL, a non-sensitive input example and what you expected.

Need help sharing it? See Apify’s guide to sharing a run when reporting an issue. Sharing a run can give the developer access to its input, logs and results, so use a run that contains no sensitive data. Please leave out API tokens, passwords, cookies, private documents and personal data. Use a public sample URL or a redacted example instead.

Tried this scraper? We'd love to hear how it worked for you. Leave a review from the Actor page to help others choose the right tool and help us improve it. Your feedback means a lot to us.

Made with care for curious people, AI agents and the possibilities in data. ♥