/v1/call/tiktok.ad_detailPreviewTikTok Ads Library ad detail API
Only on TikTok.
The TikTok Ads Library ad detail API returns one ad of TikTok's public Ads Library by its ID or link: advertiser, headline, videos and images, landing page, when it was first and last shown, the countries it was shown in and the campaign's objective. One call costs 2 credits ($0.004 to $0.0067 depending on the pack); failed calls are free. Call it over HTTP or from your AI client over MCP. Last tested 2026-10-17.
Last updated:
Request and response
curl https://api.socialtoai.com/v1/call/tiktok.ad_detail \ -H "Authorization: Bearer $SOCIALTOAI_KEY" \ -H "Content-Type: application/json" \ -d '{ "id": "1871655924410641" }'import osimport requestsresponse = requests.post( "https://api.socialtoai.com/v1/call/tiktok.ad_detail", headers={"Authorization": f"Bearer {os.environ['SOCIALTOAI_KEY']}"}, json={ "id": "1871655924410641", },)print(response.json())# Connected over MCP? Ask in plain words.Use the TikTok Ads Library ad detail interface (tiktok.ad_detail) with id: 1871655924410641.# Your AI calls the call tool with:{ "id": "1871655924410641"}{ "op": "tiktok.ad_detail", "platform": "tiktok", "status": "ok", "items": [ { "platform": "tiktok", "id": "…", "ref": "…", "approx": [], "type": "entry", "entry_type": "ad", "title": "…", "url": "https://example.com/…", "rank": null, "heat": null, "fields": { "format": "video", "text": null, "landing_url": "https://example.com/…", "advertiser": { "id": "…", "name": "…", "url": null }, "images": ["https://example.com/…"], "first_shown_at": "2026-10-09T00:00:00.000Z", "last_shown_at": "2026-10-11T00:00:00.000Z" } } ], "unavailable": ["fields.text", "fields.advertiser.url"], "cost_credits": 2}- entry_type
- ad
- format
- video
- text
null- landing_url
- https://example.com/…
- first_shown_at
- 2026-10-09T00:00:00.000Z
- last_shown_at
- 2026-10-11T00:00:00.000Z
Names and text were removed from the sample; the numbers are as recorded.
2 parameters.
0 required.
Send them as a JSON body with POST. Your key goes in the Authorization header, never in the URL.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | One of these | — | The ad's ID, a string of digits |
| url | string | One of these | — | The ad's link in the library, written library.tiktok.com/ads/detail/?ad_id= and the ID |
Where to get what you send.
idThe ad's ID, a string of digits (e.g. 1871655924410641)
Every item these return carries its ref; send it as it is:
top_ad_searchCreative Center Top Ads searchad_searchAds Library search
The fields of each item.
What TikTok cannot give is marked.
| Field | Type | Meaning |
|---|---|---|
| items[].title | string | The entry's title or name. |
| items[].url | string | A link that opens it; null where the platform's list has none. |
| items[].rank | integer | Position on a board, from 1. |
| items[].heat | integer | The platform's heat score. |
| items[].fields.format | string | The ad's format: text, image or video. other is a format of the platform's own. |
| items[].fields.text | stringalways null | The ad's body text. |
| items[].fields.landing_url | string | Where a click on the ad leads. |
| items[].fields.advertiser.id | string | Advertiser ID. |
| items[].fields.advertiser.name | string | Advertiser's name. |
| items[].fields.advertiser.url | stringalways null | The advertiser's page on the platform. |
| items[].fields.images | string[] | Addresses of the ad's images. |
| items[].fields.first_shown_at | string | When the ad was first shown. |
| items[].fields.last_shown_at | string | When the ad was last shown. For an ad still running, when the platform last saw it. |
nullFields TikTok cannot giveRead null as “TikTok did not give this”, not as zero. These are always null on this call:
fields.textThe ad's body text.fields.advertiser.urlThe advertiser's page on the platform.
Every item also has platform, id, ref, approx and type; the response around the items is the same on every call. Response format
What to expect.
1 call per second per key, 5 after a purchase; going over is not charged. Rate limits
A failed call costs 0 credits and is never retried on its own. Error codes
Once connected over MCP, these questions use it.
Get one ad of TikTok's public Ads Library by its ID or link: 1871655924410641.
2 creditscall {"op":"tiktok.ad_detail","id":"1871655924410641"}Search the Top Ads of TikTok's Creative Center by keyword: sneakers, then for the first 3: get one ad of TikTok's public Ads Library by its ID or link.
8 creditscall {"op":"tiktok.top_ad_search","query":"sneakers"}call {"op":"tiktok.ad_detail","id":"<ref>"} × 3
The interface of the same name on other platforms.
All platforms and prices/v1/call/tiktok.ad_detail{ "id": "1871655924410641" }2 creditsper call