Better Fetch

TikTok Ad Library Scraper

Search and inspect ads exposed by TikTok's official logged-out Creative Center, with source-linked media, engagement, objectives, destinations, and performance fields.

Socialv0.1.0~1 credit/runSource on GitHub

Workspace

Configure

Inputs stay here while results become exportable artifacts.

Start from an example

Search the public top-ads feed or inspect one ad.

Requested public results page.

TikTok Creative Center material ID for ad mode.

Optional case-insensitive filter applied to visible title and brand fields on the returned public page.

Creative Center lookback period in days.

Two-letter market code for search mode.

Maximum normalized ads to return.

Sign in and run
~1 credit/run10 runs/minute

Results

Preview, inspect, copy, or export the complete output.

Your result will become an artifact

Run the tool to inspect structured rows, raw JSON, execution details, and downloadable JSON, CSV, and Markdown files.

adadsmodepagecounthas_moresource_urltotal_count

Overview

TikTok Ad Library Scraper reads TikTok's official Creative Center as a logged-out visitor. It captures the public data calls made by the rendered page and normalizes each result without TikTok credentials, private accounts, or synthetic records.

Last validated: Jul 15, 2026

Input

mode"search" | "ad"required

Search the public top-ads feed or inspect one ad.

pageintegerdefault: 1

Requested public results page.

ad_idstring

TikTok Creative Center material ID for ad mode.

querystring

Optional case-insensitive filter applied to visible title and brand fields on the returned public page.

period"7" | "30" | "180"default: "30"

Creative Center lookback period in days.

regionstringdefault: "US"

Two-letter market code for search mode.

max_resultsintegerdefault: 10

Maximum normalized ads to return.

Output

adobject

Resolved individual public ad.

ad.ctrnumber
ad.urlstring
ad.costnumber
ad.ad_idstring
ad.titlestring
ad.sourcestring
ad.video_idstring
ad.video_urlstring
ad.brand_namestring
ad.like_countnumber
ad.share_countnumber
ad.video_widthnumber
ad.industry_keystring
ad.landing_pagestring
ad.video_heightnumber
ad.comment_countnumber
ad.countries_csvstring
ad.objective_keystring
ad.video_cover_urlstring
ad.video_duration_secondsnumber
adsobject[]required

Normalized public Creative Center ads.

modestringrequired

Resolved operation.

pageinteger

Page number TikTok reports.

countintegerrequired

Number of normalized ads returned.

has_moreboolean

Whether TikTok reports another page.

source_urlstringrequired

Official Creative Center page fetched by Better Fetch.

total_countinteger

Total results TikTok reports for the selected public feed.

api_source_urlstringrequired

Public TikTok data request captured from that page.

query_applied_locallyboolean

True when query filtered the current public page locally.

Examples

search-top-ads

{
  "mode": "search",
  "period": "30",
  "region": "AU",
  "max_results": 5
}

ad-details

{
  "mode": "ad",
  "ad_id": "7644503475464159239"
}

Use cases

Creative research

Review public top-ad titles, video assets, objectives, and visible performance signals by market and time period.

Campaign verification

Resolve a Creative Center ad ID to its current public detail record and source URL.

Landing-page intelligence

Connect public ad creative to the destination and countries TikTok exposes on the detail page.

FAQ

Does this require TikTok login?

No. It reads the data TikTok's official Creative Center exposes to logged-out visitors.

Is this every TikTok ad?

No. Coverage is limited to ads TikTok publishes in Creative Center and varies by market and period.

How does keyword filtering work?

The optional query filters the current public result page by visible ad title and brand. The response marks query_applied_locally so this bounded behavior is explicit.

Use it anywhere

MCP (Claude, ChatGPT, Codex)

# After connecting https://betterfetch.co/api/mcp, ask your AI to:
1. Call search_tools for "TikTok Ad Library Scraper"
2. Call run_tool with:
   name: "tiktok_ad_library_scraper"
   input: {"mode":"search","period":"30","region":"AU","max_results":5}

REST

curl -sS -X POST "https://betterfetch.co/api/tools/tiktok_ad_library_scraper/run" \
  -H "Authorization: Bearer bf_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"input": {"mode":"search","period":"30","region":"AU","max_results":5}}'

Run locally

git clone https://github.com/better-fetch/tools/tree/main/tools/tiktok-ad-library-scraper && cd tiktok-ad-library-scraper && npm i
BETTER_FETCH_API_KEY=bf_your_key_here npx bf-tool run --input '{"mode":"search","period":"30","region":"AU","max_results":5}'