https://api.nexscope.ai/social/tiktok/ad-library/adRun this API
Send a JSON request to execute this API and receive the documented response payload.
Endpoint
| Method | POST |
| Path | https://api.nexscope.ai/social/tiktok/ad-library/ad |
| Auth | Bearer API key |
| Content-Type | application/json |
Request parameters
| Name | Type | Required | Description |
|---|---|---|---|
ad_id | string | required | Creative Center Top Ads material ID or URL, or a public Ads Library ad ID or library.tiktok.com detail URL. Example: 1869335220395266 |
Social data contract
Use your Nexscope API key. No supplier credentials are required. Requests reject unknown fields, including pageSize. URLs require HTTPS and an exact supported platform host and resource path. Documented YouTube video URLs may use youtu.be; other short links are unsupported. Check the request schema for supported fields and defaults.
Each request fetches one page. Continue manually with the returned nextCursor, or nextPage for Instagram Reels (pages 1–11). Cursors are opaque, unchanged strings up to 65536 UTF-8 bytes. No automatic pagination, retry, media download or transcription is performed. Repeated requests may purchase data again.
Resource status is independent of HTTP and billing: AVAILABLE, PARTIAL, PRIVATE, RESTRICTED, NOT_FOUND, NO_TRANSCRIPT or UNKNOWN can accompany code 0. Unknown values remain null; arrays remain empty arrays. fetchedAt is the response observation time; sourceFetchedAt is null without source evidence.
usage.billingStatus is NOT_CHARGED, SETTLED or UNKNOWN; chargedCredits is null when unconfirmed. Unknown charges never mean free. Completed lookups have a minimum charge of 10 credits, including cached, no-caption and unavailable-resource results; check API usage records for the actual charge. Parameter errors and unpublished APIs use the standard error envelope; upstream failures use code 13007, rate limits 429 and timeouts 408. Always check code and msg.
Response example
Platform response envelope. code 0 indicates success or acceptance; data contains the business result.
{
"code": 0,
"cost": "-1",
"data": {
"data": {
"ad_title": "I thought this was a gimmick until I tried it! A wrinkled shirt, one button, and a few minutes later... ready to wear. Tap the link in bio and see why everyone’s talking about Bellairon before it sells out. @Bellairon LLC ",
"brand_name": "",
"comment": 1,
"cost": 1,
"country_code": [
"TR"
],
"creative_center_url": "https://ads.tiktok.com/business/creativecenter/topads/7646829987799334920/pc/en",
"ctr": 0.5,
"detail_analysis": null,
"favorite": false,
"has_summary": false,
"highlight_text": "",
"id": "7646829987799334920",
"industry_key": "label_22108000000",
"interactive_time_analysis": {
"clicks": {
"analysis": [
{
"second": 0,
"value": 0.2631578947368421
}
],
"duration": 91,
"highlight": [
1
],
"metric": "click_cnt",
"percentile": 0.99
},
"conversion": {
"analysis": [
{
"second": 0,
"value": 0
}
],
"duration": 91,
"highlight": [],
"metric": "convert_cnt",
"percentile": 0.99
},
"ctr": {
"analysis": [
{
"second": 0,
"value": 0.048321828136158054
}
],
"duration": 91,
"highlight": [
1
],
"metric": "retain_ctr",
"percentile": 0.99
},
"cvr": {
"analysis": [
{
"second": 0,
"value": 0
}
],
"duration": 91,
"highlight": [],
"metric": "retain_cvr",
"percentile": 0.99
},
"remain": {
"analysis": [
{
"second": 0,
"value": 1
}
],
"duration": 91,
"highlight": [],
"metric": "play_retain_cnt",
"percentile": 0.99
}
},
"is_search": false,
"keyword_list": null,
"landing_page": "https://www.amazon.com/dp/B0DRTC8XBW?ref=cm_sw_r_cso_wa_apin_dp_71W8F02XC4M4QZRQ5RQN&ref_=cm_sw_r_cso_wa_apin_dp_71W8F02XC4M4QZRQ5RQN&social_share=cm_sw_r_cso_wa_apin_dp_71W8F02XC4M4QZRQ5RQN&oas=true&utm_source=tiktok&utm_medium=paid&utm_id=__CAMPAIGN_ID__&utm_campaign=__CAMPAIGN_NAME__",
"like": 92,
"objective_key": "campaign_objective_reach",
"objectives": [
{
"label": "campaign_objective_reach",
"value": 5
}
],
"pattern_label": [],
"recommended_for_you": [
{
"ad_title": "Adımlarınıza eğlence katmaya hazır mısınız? \"Hiç böyle çorap görmüş müydünüz?\" diyoruz ve iddiamızı ortaya koyuyoruz! Giyimkent Outlet İndirim Çadırı'nda çorap modasına yepyeni bir boyut getirdik. Sevdiğiniz popüler kültür ve kült anime karakterlerini, kolları hareket edebilen bu özel 3 boyutlu tasarım çoraplarla tarzınıza taşıyın. İster günlük kombinlerinize eğlenceli bir dokunuş yapın, ister arkadaşlarınıza tebessüm ettirecek harika bir hediye seçin. Videomuzdaki gibi ister halay çektirin, ister horon teptirin; seçim sizin! Bu benzersiz ve eğlenceli tasarım çoraplarda dev fırsat: 2 Adet Sadece 100 TL! Favori karakterleriniz tükenmeden sizleri de Esenler'deki Giyimkent Outlet indirim çadırımıza bekliyoruz. Adresimiz: Oruçreis mah. Giyimkent Caddesi No:5 Esenler/İstanbul M7 Metro Hattı Giyimkent durağı önü. Hafta içi 10:00 ile 19:00 Hafta Sonu 10:00 - 20:00 Saatleri Arasında açıktır. #alışverişfestivali #kampanya #outlet #giyimkent ",
"brand_name": "",
"cost": 0,
"ctr": 0.63,
"favorite": false,
"id": "7644102379697602567",
"industry_key": "label_22108000000",
"is_search": false,
"like": 127,
"objective_key": "campaign_objective_reach",
"video_info": {
"cover": "https://p16-common-sign.tiktokcdn.com/tos-alisg-p-0037/ogCtJD4GUCr8GavLIfI1jAQ9IDvNeGEAfjQgg9~tplv-noop.image?dr=18692&refresh_token=fc9b28a3&x-expires=1781231805&x-signature=zYq%2F3BQnXoM8CMFBFKDON6lhPBs%3D&t=9276707c&ps=14f1eb3e&shp=9e36835a&shcp=317596d8&idc=my&VideoID=v1c044g50000d86qrfnog65v7nuvf30g",
"duration": 13.213,
"height": 1024,
"vid": "v1c044g50000d86qrfnog65v7nuvf30g",
"video_url": {
"720p": "https://v16m-default.tiktokcdn.com/1342656e028b133716a1e892a89e214a/6a2b70bd/video/tos/alisg/tos-alisg-pve-0037c001/os3NtUfeIHH1ALjc3Q4IWADrx9BGCBG8IEgejj/?a=0&bti=NTU4QDM1NGA%3D&&bt=837&ft=cApXJCz7ThWHanz9LGZmo0P&mime_type=video_mp4&rc=ZDY4NTppZjg4ZWY6Nzc2NEBpajZ5cXk5cml0OzMzODczNEAwYi41YWMwNWMxYGEyM2IyYSMtY3I0MmRrbzNhLS1kMWBzcw%3D%3D&vvpl=1&l=20260612043632D3452D043274878B2384&btag=e000b0000"
},
"width": 576
}
}
],
"share": 1,
"source": "Others",
"source_key": 73,
"success": true,
"video_info": {
"cover": "https://p16-common-sign.tiktokcdn.com/tos-maliva-p-0068c799-us/oIbqBdvfEAiFpgvAOgrQHCF5R0mkDDLiEfvQDS~tplv-noop.image?dr=18692&refresh_token=2cdb79e2&x-expires=1781231880&x-signature=W%2BBTq1VGRRaNnIuMGUpWWSgmOoo%3D&t=9276707c&ps=14f1eb3e&shp=9e36835a&shcp=317596d8&idc=my&VideoID=v12044gd0000d8erq07og65h1cq991gg",
"duration": 89.767,
"height": 1280,
"vid": "v12044gd0000d8erq07og65h1cq991gg",
"video_url": {
"540p": "https://v16m-default.tiktokcdn.com/3e7ec770348dbc627fc02ea1e8417c25/6a2b7108/video/tos/maliva/tos-maliva-ve-0068c799-us/oIN2GPIRgHAUBHOeNfLk2HBSERoJeIALGC3jAE/?a=0&bti=NTU4QDM1NGA%3D&&bt=315&ft=cApXJCz7ThWHKnz9LGZmo0P&mime_type=video_mp4&rc=Omk6ZWQ7Nzc7OGY8PGVnOkBpajQ8Zms5cjN1OzMzZzczNEBgNDAzXl9hXjMxLzEvXjFiYSNkNm4uMmQ0bmJhLS1kMS9zcw%3D%3D&vvpl=1&l=20260612043631BE40574FD5FFAA863321&btag=e00090000",
"720p": "https://v16m-default.tiktokcdn.com/9f16ea869602069b9fdad27dc113cb48/6a2b7108/video/tos/maliva/tos-maliva-ve-0068c799-us/ooEipQa9HbhJ4ChzASIngUPhBAdXiABIvxU2E/?a=0&bti=NTU4QDM1NGA%3D&&bt=877&ft=cApXJCz7ThWHKnz9LGZmo0P&mime_type=video_mp4&rc=ZTg3OTQ0NTQzZGVpNWg6NkBpajQ8Zms5cjN1OzMzZzczNEBhNC0yMDViNi8xLV9hX2AuYSNkNm4uMmQ0bmJhLS1kMS9zcw%3D%3D&vvpl=1&l=20260612043631BE40574FD5FFAA863321&btag=e00090000"
},
"width": 720
},
"voice_over": false
},
"platform": "tiktok-ad-library",
"resourceStatus": "AVAILABLE",
"usage": {
"billingStatus": "UNKNOWN"
}
},
"msg": null,
"time": "2026-01-01 00:00:00",
"traceId": null,
"ts": "0"
}Response fields
| Name | Type | Required | Description |
|---|---|---|---|
code | integer | required | 0 means accepted or successful; nonzero is a platform error. |
cost | string | required | Elapsed milliseconds, never credits; -1 outside web requests. |
data | any | required | Data value used by this API operation. |
msg | string | null | required | Msg value used by this API operation. |
time | string | required | Server local time: yyyy-MM-dd HH:mm:ss. |
traceId | string | null | required | Trace id value used by this API operation. |
ts | string | required | Epoch milliseconds. |
Any of option 1 — requires platform, resourceStatus, data, usage
| Name | Type | Required | Description |
|---|---|---|---|
data | object | required | Data value used by this API operation. |
data.data | object | required | Data value used by this API operation. |
data.platform | string | required | Platform value used by this API operation. |
data.resourceStatus | string | required | Resource status value used by this API operation. |
data.usage | object | required | Usage value used by this API operation. |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data | null | required | Data value used by this API operation. |
Responses
| Code | Description |
|---|---|
| 200 | Default HTTP response for both success and many business errors. Only outer JSON code 0 indicates success or asynchronous acceptance; inspect data for the result. |
| 429 | Execution admission rate limit; honor Retry-After when present. |
| 503 | Execution admission is temporarily unavailable; honor Retry-After when present. |
| Opt-in | X-Nexscope-Http-Status: semantic maps controller-handled business errors to HTTP status on run and task routes. Pre-authentication failures, such as a missing API key (code 11209), may still return HTTP 200 before this mapping. Always check the outer JSON code; malformed requests and infrastructure failures may also return non-200 HTTP responses. |
Data source, freshness, and limitations
Source, freshness, coverage, rate limits, and estimation notes are not specified in this API definition unless they appear in the request or response field documentation above. Do not assume official marketplace data or real-time freshness when it is not explicitly documented.