TikTok Creative Center API

Get TikTok Creative Center data with one API

The TikTok Creative Center API returns TikTok ad-spy and creative intelligence as clean JSON.

T
/tiktok-creative-center/v1

7 active endpoints, on 1 and 3 credit tiers.

  • POST/tiktok-creative-center/v1/top_ads
  • POST/tiktok-creative-center/v1/ad_detail
  • POST/tiktok-creative-center/v1/search_ads
  • POST/tiktok-creative-center/v1/ad_filters
  • POST/tiktok-creative-center/v1/query_suggestions
  • POST/tiktok-creative-center/v1/trend_reports
  • POST/tiktok-creative-center/v1/locations

What TikTok Creative Center endpoints does ReefAPI ship?

7 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.

7 endpoints

top_ads

3 cr

Top-performing TikTok ads for a market, filterable by region, period, industry, objective and…

required
optional
region, period, order_by, industry, objective, ad_language, limit, page

ad_detail

3 cr

Full creative record for one ad.

required
ad_id
optional

search_ads

3 cr

Keyword search across TikTok's Top-Ads index (region/period scoped), returning the same ad sh…

required
keyword
optional
region, period, limit, page

ad_filters

1 cr

The live filter taxonomy used by top_ads.

required
optional

query_suggestions

1 cr

Suggested Top-Ads search terms surfaced by TikTok's Creative Center search box.

required
optional
limit

trend_reports

1 cr

Creative-Center trend reports & creative-guidance articles (official TikTok marketing insight…

required
optional
article_type, limit, page

locations

1 cr

Supported markets for the region filter.

required
optional

Every parameter, every allowed value →

TikTok Creative Center API

3 of 7 endpoints, ready to run

View docs ↗

Top-performing TikTok ads for a market, filterable by region, period, industry, objective and…

3 credits0 required · 2 optional
POST/tiktok-creative-center/v1/top_ads
idle
// Press "Try it" and this pane shows exactly what the
// live site returned this second — including an empty
// result, if that is the truth. No key, no account.

How the TikTok Creative Center API works

TikTok Creative Center is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 185 engines.

02
Call
POST /tiktok-creative-center/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
1 or 3 credits per call

Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.

04
Read
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

What the Top Ads metrics actually measure, and which filter vocabularies are real

The metric names on these ads look like advertising numbers you can spend against, and two of them are not. This table says what each one is on the wire. Everything was measured on 2026-08-27 with top_ads and ad_detail for region US, period 30, plus the ad_filters and locations taxonomies.

Field or parameterMeasuredWhat it means
ctr0.01 through 0.88 across 20 adsA percentage, not a ratio. 0.88 means 0.88 percent, measured over the period window
costOnly the values 0, 1 and 2 appeared across 20 adsA coarse spend bucket TikTok publishes in place of a currency amount. There is no money figure anywhere in this engine
like, comment, share347,148 likes on the top row; 5 comments and 17 shares on one ad_detailAbsolute counts accumulated over the period window
period7, 30 and 180 onlyAnything else falls back to 30. ad_filters.period labels them seven_day, thirty_day and half_year
order_byfor_you, ctr and like all returned data; cost was rejectedcost fails with UPSTREAM_HTTP: "Field validation for 'OrderBy' failed on the 'oneof' tag"
industry_key"label_20112000000"Join it to ad_filters.industry, whose 258 entries each carry id, a human value such as Games or Outdoor Equipment, the same label string, and parent_id
objective_key"campaign_objective_reach"One of 7. ad_detail also returns objectives[] pairing each label with a numeric value, e.g. product_sales 15 and reach 5
regionlocations returned 73 markets, ad_filters.country returned 28The two lists disagree. Treat locations as the wider one, and expect an unsupported code to fall back to US
pagination.total_count178 for region US with period 30The size of the ranked index behind those filters, not a page count. page above 1 returns nothing
brand_namenull on 7 of 10 rowsOften absent, and ad_title can be an empty string too. Do not key on either

Measured on 2026-08-27, order_by "ctr" returned ads in ascending CTR order: 0.01, 0.01, 0.02, 0.02, 0.02, 0.04, 0.05, 0.06, 0.06, 0.07 across ten rows. That surfaces the weakest performers first, so sort client-side if you want the top of the distribution. ad_detail adds comment, share, country_code[], landing_page, keyword_list, objectives[], highlight_text, source with source_key, and voice_over, but on the ad measured landing_page came back as an empty string and keyword_list as null.

What people build with TikTok Creative Center

The jobs this data is most often used for.

7

endpoints

1/3

credits per call

01

Ad-intelligence tools call top_ads to find the highest-performing TikTok ads by industry and region.

02

Creative teams use ad_detail and trend_reports to study winning hooks, formats and objectives.

03

Competitor-research products use search_ads by brand to track a rival's live ad creative.

What TikTok Creative Center data costs

The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.

Full pricing →
$0.67–$1.50 / 1,000 credits
  • 1,000 free credits on signup, no card
  • One key, all 185 APIs, one credit pool
  • Failed and blocked calls are never charged
  • Credits roll over and never expire

Call it in two lines

Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.

curl
curl -X POST https://api.reefapi.com/tiktok-creative-center/v1/top_ads \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"region":"US","period":"30"}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/tiktok-creative-center/v1/top_ads",
    headers={"x-api-key": REEF_KEY},
    json={
  "region": "US",
  "period": "30"
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up TikTok Creative Center.

Get a free key →
Is the cost field a dollar amount?

No, and treating it as one will give you nonsense. Across 20 ads pulled on 2026-08-27 the only values that ever appeared were 0, 1 and 2. It is a coarse spend bucket TikTok publishes instead of real ad spend, so the most you can read from it is relative scale. No action in this engine returns a currency amount for an ad.

What does ctr measure, and over what window?

Click-through rate as a percentage, over the period you asked for. Values measured on region US with period 30 ranged from 0.01 to 0.88, meaning 0.01 percent to 0.88 percent, not 1 percent to 88 percent. period accepts only 7, 30 and 180, and anything else falls back to 30, so the same ad will show different metrics depending on the window you request.

Does order_by cost work?

No. The spec lists it, but TikTok rejects it upstream. A live call with order_by "cost" on 2026-08-27 returned ok false with error.code UPSTREAM_HTTP and the message "Field validation for 'OrderBy' failed on the 'oneof' tag", retryable false. The three that do work are for_you, ctr and like. Since cost is only a 0 to 2 bucket anyway, pull with for_you or like and sort by cost yourself.

How do I turn industry_key into a readable category?

Call ad_filters and join on the label. An ad returns industry_key "label_20112000000"; ad_filters.industry returned 258 entries on 2026-08-27, each shaped {id, value, label, parent_id}, so label_20112000000 maps to a value name and parent_id points at its top-level vertical. There are 21 top-level verticals with round ids, such as 25000000000 Games, 14000000000 Beauty & Personal Care and 22000000000 Apparel & Accessories, and the rest are sub-categories under them.

Are the numbers absolute or a ranking?

Both, in different places. like, comment and share are absolute counts, and one measured ad carried 347,148 likes. There is no rank field: the order of the ads array is the ranking for whichever order_by you passed, and pagination.total_count tells you how large the ranked index is behind your filters, 178 for region US with period 30. So position in the array is the rank, and the metrics on it are real counts.

How many markets can I query?

The two taxonomy actions disagree, so use locations. On 2026-08-27 locations returned 73 countries, each as {id, code, name} with code being the value you pass as region, while ad_filters.country returned only 28. Pass a two-letter ISO code; an unsupported one falls back to US rather than erroring, so check that the region echoed back in meta matches what you asked for.

Why does page 2 come back empty?

Because TikTok serves a single ranked page per combination of region, period, filters and order_by. Asking for page 2 of the same combination returns nothing, no matter what total_count says. total_count 178 is the size of the index, not something you can page through. To see different ads, change order_by between for_you, ctr and like, change period between 7, 30 and 180, or add an industry or objective filter.

Why is brand_name so often null?

Because TikTok only attaches an advertiser name to some creatives. On 10 ads pulled with order_by ctr, 7 returned brand_name null and 3 named an advertiser. ad_title can also be an empty string on the same rows. Neither field is a reliable key, so use the ad id, which is a long numeric string such as 7664610922204889108, and feed that to ad_detail for the landing page and keyword list when they exist.

What is the TikTok Creative Center API?

TikTok Creative Center API is a ReefAPI endpoint group for tiktok creative center It returns live JSON through POST requests under /tiktok-creative-center/v1.

Is the TikTok Creative Center API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. TikTok Creative Center calls use the same shared credit balance as every other ReefAPI engine.

Do I need a TikTok Creative Center login or account?

No login to TikTok Creative Center is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the TikTok Creative Center data?

The page example is captured from a live top_ads call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the TikTok Creative Center API use?

TikTok Creative Center actions currently cost 1-3 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call TikTok Creative Center from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call tiktok-creative-center actions with the same key, credit pool and JSON envelope used by normal REST requests.

10 Social Media APIs on the same key

One key, one credit pool, one response envelope. If you are pulling TikTok Creative Center, you are one call away from the rest of the category — no second contract, no second integration.

Try it on your own data before you pay anything

The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 184 APIs, and the same envelope everywhere.

Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts.