ScavioScavio
ToolsPricing
Sign InsGet Startedg
3 live endpoints

TikTok Ad Library API

Search and pull the ads brands are actually running on TikTok — titles, creative, CTR, engagement, objective, industry and the video — by keyword, industry or country, as structured JSON. No approved API application, one REST call.

Get your API keyRead the docs

50 free credits on signup. No card, no API application.

POST /api/v1/tiktok/ads/search
captured response
keyword:nike
Run it with your key
{  "data": {    "ads": [      {        "ad_id": "7626040181904211989",        "title": "ABAYA Sport Moderne: Elegance Redefined",        "brand": "moderne × nike",        "industry_key": "label_22110000000",        "objective_key": "campaign_objective_conversion",        "objective": "conversion",        "ctr": 0.52,        "likes": 212,        "favorites": false,        "is_search": false,        "video": {          "id": "v10033g50000d7ai7d7og65tgqn6q3s0",          "duration": 10.242,          "cover": "https://p16-common-sign.tiktokcdn.com/tos-alisg-p-0051c001-sg/oMYUPDhIA7NiDjU9zIXtdIa4igstVqASBE5AA~tplv-noop.image"        }      },      {        "ad_id": "7167018870405103618",        "title": "Come shop our best-selling hits—Clearance Sale!",        "brand": "Nike",        "industry_key": "label_30101000000",        "objective_key": "campaign_objective_conversion",        "objective": "conversion",        "ctr": 0.28,        "likes": 62703,        "favorites": false,        "is_search": false,        "video": {          "id": "v10033g50000d7uqkufog65tgqjlhkdg",          "duration": 41.867,          "cover": "https://p16-common-sign.tiktokcdn.com/tos-alisg-p-0051c001-sg/oAIzlbCTdf9qpFxS72fDnABGgoDfA5DG6QIUEa~tplv-noop.image"        }      }    ],    "pagination": {      "has_more": true,      "page": 1,      "size": 5,      "total_count": 300    }  },  "response_time": 1434,  "credits_used": 1,  "credits_remaining": 4573}
captured example · 1 credit50 free credits on signup

A real captured response from this endpoint. Sign up to run your own.

What is the Scavio TikTok Ad Library API?

The Scavio TikTok Ad Library API is a REST API that returns the ads brands are running on TikTok as structured JSON. You send a keyword, an industry or a country to one of 3 POST endpoints with your API key, and get back matching ads with their title, brand, CTR, likes, objective, industry and the video.

3
endpoints, all live in production
1
credit per call, every endpoint
0
API applications to fill out

Three endpoints, three ways in

Search by keyword, pull the top ads, or open one ad in full.

Ad search

POST /api/v1/tiktok/ads/search

Search the ads brands are running on TikTok by keyword, industry or country and get every match with its title, brand, CTR, likes, objective and video cover.

Top ads

POST /api/v1/tiktok/ads/top

The top-performing spotlight ads for an industry and country, each with a plain-language creative highlight explaining why it worked — a ready-made swipe file.

Ad detail

POST /api/v1/tiktok/ads/detail

One ad in full by its ad_id: the advertiser, every country it ran in, the landing page it points to and a directly playable video url.

All 3 TikTok Ad Library endpoints

Every route is a POST, returns JSON, and takes the same API key. All three cost 1 credit.

EndpointReturnsCredits
Ad search/api/v1/tiktok/ads/searchAds by keyword, industry or country — title, brand, CTR, likes, objective and cover1
Top ads/api/v1/tiktok/ads/topTop / spotlight ads for an industry and country, each with a creative highlight1
Ad detail/api/v1/tiktok/ads/detailOne ad in full by ad_id — advertiser, countries, landing page and playable video url1

50 free credits on signup covers 50 calls of any kind. See plans

A keyword to a brand's whole ad shelf

Search by keyword, country and lookback window, then open any ad in full. The response on the right is a real capture, field names and all.

from scavio import ScavioClient

client = ScavioClient(api_key="sk_live_your_key")

# Search the ads brands are running on TikTok - 1 credit
res = client.tiktok.ads_search(keyword="nike", country="US", period=180)
for ad in res["data"]["ads"]:
    print(ad["ad_id"], ad["brand"], ad["ctr"], ad["likes"])

# Open one ad in full - advertiser, countries, landing page, playable video
detail = client.tiktok.ads_detail(ad_id="7361015644840312839")
200 response.jsoncaptured
{
  "data": {
    "ads": [
      {
        "ad_id": "7626040181904211989",
        "title": "ABAYA Sport Moderne: Elegance Redefined",
        "brand": "moderne × nike",
        "industry_key": "label_22110000000",
        "objective_key": "campaign_objective_conversion",
        "objective": "conversion",
        "ctr": 0.52,
        "likes": 212,
        "favorites": false,
        "is_search": false,
        "video": {
          "id": "v10033g50000d7ai7d7og65tgqn6q3s0",
          "duration": 10.242,
          "cover": "https://p16-common-sign.tiktokcdn.com/tos-alisg-p-0051c001-sg/oMYUPDhIA7NiDjU9zIXtdIa4igstVqASBE5AA~tplv-noop.image"
        }
      },
      {
        "ad_id": "7167018870405103618",
        "title": "Come shop our best-selling hits—Clearance Sale!",
        "brand": "Nike",
        "industry_key": "label_30101000000",
        "objective_key": "campaign_objective_conversion",
        "objective": "conversion",
        "ctr": 0.28,
        "likes": 62703,
        "favorites": false,
        "is_search": false,
        "video": {
          "id": "v10033g50000d7uqkufog65tgqjlhkdg",
          "duration": 41.867,
          "cover": "https://p16-common-sign.tiktokcdn.com/tos-alisg-p-0051c001-sg/oAIzlbCTdf9qpFxS72fDnABGgoDfA5DG6QIUEa~tplv-noop.image"
        }
      }
    ],
    "pagination": {
      "has_more": true,
      "page": 1,
      "size": 5,
      "total_count": 300
    }
  },
  "response_time": 1434,
  "credits_used": 1,
  "credits_remaining": 4573
}

Why not TikTok's official ad API?

TikTok publishes a Commercial Content Library, but for most people it is narrower and slower to reach than they expect.

TikTok Commercial Content Library API

  • Covers only ads shown to users in the European Union
  • Requires an approved API application before any access
  • Review-gated onboarding, and access can be revoked
  • Built for research disclosure, not fast creative pulls

Scavio TikTok Ad Library API

  • One API key, issued at signup — no application, no review queue
  • Ads worldwide, filterable by keyword, industry or country
  • CTR, likes and objective on every ad, plus a playable video url
  • Same key and JSON envelope as 30 other Scavio platforms

Scavio returns TikTok's public advertising data and never authenticates as a TikTok user.

What developers build with it

Competitor creative research

Search a brand or category and pull the ads actually in market — the title, the objective, the CTR and the video cover — then diff it week over week to see what a competitor is testing and what they killed.

ads/search

Building a swipe file that ranks

Top ads come back with a plain-language highlight explaining the hook that worked. Collect them by industry to seed briefs your creative team can actually act on, not just admire.

ads/top

Ad-intelligence dashboards

Every ad carries CTR, likes and objective, so you can chart performance across an industry, rank creatives, and surface the outliers — all from structured JSON, no pipeline to maintain.

ads/search + ads/detail

Landing-page and funnel teardowns

Ad detail returns the landing page an ad points to and every country it ran in, so you can map a competitor's funnel from creative to destination and see where they run it.

ads/detail

Agent tools for ad research

Point an agent at the MCP server and TikTok ad research becomes a callable tool — what is this brand running, what's winning in this vertical — with one key across every Scavio platform.

MCP + REST

How to get TikTok ad data as JSON

  1. 1

    Get an API key

    Sign up for a Scavio account and copy your key from the dashboard. You get 50 credits free on signup, no card required and no API application to submit.

  2. 2

    Search by keyword, industry or country

    POST {"keyword": "nike", "country": "US", "period": 180} to /api/v1/tiktok/ads/search with an Authorization: Bearer header. Provide a keyword or an industry; country and period are optional filters.

  3. 3

    Mind the two filter shapes

    period accepts only 7, 30 or 180 (days of lookback), and industry takes TikTok's numeric taxonomy code — the label_... value on every ad's industry_key — not free text. Search by keyword when you don't have the code.

  4. 4

    Open the ads that matter

    Take any ad_id from a search or top result and POST it to /api/v1/tiktok/ads/detail for the advertiser, the countries it ran in, the landing page and a directly playable video url.

One key, 31 platformsMCP server for agentsPython & JS SDKsn8n community node

TikTok Ad Library API FAQ

What is the Scavio TikTok Ad Library API?

+

It is a REST API that returns the ads brands are running on TikTok as structured JSON. Three POST endpoints cover ad search by keyword, industry or country; the top / spotlight ads for an industry; and a single ad in full by its ad_id. You authenticate with a Scavio API key.

Who is this for?

+

Performance marketers and agencies building creative swipe files, competitive-intelligence teams tracking what rivals run on TikTok, ad-tech developers building ad-intelligence products, and AI agent builders wiring TikTok ad research in as an MCP or SDK tool. Same API for all of them.

How is this different from TikTok's official Commercial Content Library API?

+

TikTok's official Commercial Content Library covers only ads shown to users in the European Union and requires an approved API application before you get any access. This returns TikTok's public advertising data worldwide, filterable by country, with one API key issued at signup and no application.

What does an ad record contain?

+

Each search result carries ad_id, title, brand, industry_key, objective_key, objective, ctr, likes, favorites, is_search and a video object with the clip's id, duration and cover image. Ad detail adds comments, shares, the countries it ran in, the landing_page, the source and a playable video url.

Can I get the actual video, not just a thumbnail?

+

Yes. Ad search and top ads return a video.cover image for every ad, and ad detail returns a video.url that plays the creative directly, alongside the cover. That is the endpoint to call when you need the ad itself rather than the list.

How do I filter by industry?

+

The industry filter takes TikTok's numeric taxonomy code — the label_... value you see on every ad's industry_key field, such as label_22110000000. It is not free text. If you don't have the code, search by keyword instead and read the industry_key off the results.

What lookback windows are supported?

+

The period parameter accepts 7, 30 or 180 — days of lookback — and defaults to 180. Those are the only three values; there is no arbitrary date range. Leave it off for the widest window.

How do search and top ads differ?

+

Ad search is query-driven: you pass a keyword and/or industry and page through matches with CTR, likes and objective on each. Top ads is a curated feed of the best-performing spotlight ads for an industry and country, and each one comes with a written highlight explaining the creative hook.

How much does a request cost?

+

Every TikTok Ad Library endpoint costs 1 credit — search, top and detail alike. New accounts get 50 free credits on signup, one time, with no card. Paid plans start at $30 per month for 7,000 credits, and the same credits work across every Scavio platform.

How do I paginate results?

+

Search responses include a pagination object with page, size, total_count and has_more. Increment page (1 to 100) and set limit (1 to 50) to walk the results, and stop when has_more is false.

Which languages and tools are supported?

+

Official Python (pip install scavio) and JavaScript/TypeScript (npm i scavio) SDKs, a remote MCP server at mcp.scavio.dev for AI agents, and an n8n community node. Any language can call the REST endpoints directly with an HTTP client.

Is using this data allowed?

+

Scavio returns TikTok's public advertising data as structured JSON and never authenticates as a user. You remain responsible for how you use it, including compliance with TikTok's terms. Talk to your own counsel for your specific use case.

Explore more of Scavio

TikTok API

Profiles, videos, comments and hashtags.

TikTok Shop API

Products, shops and reviews as JSON.

Meta Ad Library API

Facebook and Instagram ads as JSON.

Google Ads Transparency API

Advertisers, ads and creative history.

MCP server

Every platform as a callable tool for agents.

Pricing

Credit packs and plans, no per-platform surcharge.

Start pulling TikTok ads today

50 free credits on signup, no card. Your first request is a POST with a keyword in it.

Get your API keySee pricing
ScavioScavio

One scraper API for every social, search and ecommerce platform. Built for AI agents.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative
  • Serper Alternative
  • Tavily vs Scavio
  • SerpAPI vs Scavio
  • All alternatives
  • Compare Scavio vs alternatives

Search APIs

  • Google Search API
  • Amazon Product API
  • YouTube API
  • Reddit API
  • Walmart Product API
  • TikTok API
  • Instagram API

Tools

  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy