Ads and Creative Center
TikTok's ads library and Creative Center: search ads by keyword, see where each ad ran and how viewers held on second by second, plus trending videos by market, SEO inspiration lists and Creative Partner agencies.
TikTok top ads library
TikTok's library of top-performing ads: search by keyword, one ad's detail (countries it ran in, CTR, likes, objective, landing page, video), analysis (TikTok's per-second retention curve and the ad's CTR percentile against other ads), and similar ads. Search results are worldwide: the library does not filter by market (tested 31 Oct 2026 with US, DE and JP, and with a language filter, which returned the same ads), so check countries with method=detail. Examples: {"method":"search","keyword":"skincare","period":"30"}, {"method":"analysis","id":"7382019274430578705"}.
/v1/ads/searchTop ads matching keyword (worldwide)
Parameters
- keywordstring
method=search: phrase in the ad, e.g. 'skincare'. Omit to list top ads of the period. - limitinteger
Results per page. search max 50. Values above a method's maximum are lowered and reported in notes.
3 more optional parameters
- cursorstring
Paging: pass the next value from the previous response unchanged. Omit on the first page.
- detailstring
compact (default) returns the useful fields; full adds the raw upstream payload (large).
Default
compactOne ofcompactfull - periodstring
method=search: ads from the last 7, 30 or 180 days (default 30).One of
730180
Use it in Claude or ChatGPT
Connect https://mcp.tokconnect.com/mcp and your AI calls this as the ad_library tool with method: search. Same data, same credit. MCP setup
{
"tool": "ad_library",
"arguments": {
"method": "search",
"keyword": "lip oil",
"limit": "3"
}
}Request
curl "https://api.tokconnect.com/v1/ads/search?keyword=lip%20oil&limit=3" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/ads/search",
params={
"keyword": "lip oil",
"limit": "3",
},
headers={"X-API-Key": os.environ["TOKCONNECT_API_KEY"]},
timeout=100,
)
r.raise_for_status()
body = r.json()
print(body["data"])const params = new URLSearchParams({
keyword: "lip oil",
limit: "3",
});
const res = await fetch(`https://api.tokconnect.com/v1/ads/search?${params}`, {
headers: { "X-API-Key": process.env.TOKCONNECT_API_KEY },
});
if (!res.ok) throw new Error((await res.json()).error?.message);
const { data, next_cursor } = await res.json();Response
{
"data": {
"as_of": "2026-10-30T23:27:06Z",
"count": 3,
"has_more": true,
"items": [
{
"brand": "",
"cover": "https://p16-common-sign.tiktokcdn.com/tos-alisg-p-0037/oofEIsEmxiO1ABcc8qxtR7gzkiIYfBhBIz9Xm0~tplv-noop.image?dr=18692&refresh_token=62c83a30&x-expires=1793424472&x-signature=YlOuM7U3FOPkNMfTUB1ozcJVmag%3D&t=9276707c&ps=14f1eb3e&shp=9e36835a&shcp=317596d8&idc=my&VideoID=v1c044g50000dapv4mvog65hoi7gt…",
"ctr": 0.96,
"duration": 47.534,
"id": "7689369336687034388",
"industry": "14104000000",
"likes": 167,
"objective": "reach",
"title": "Kalau korang area SG Besi, jangan scroll dulu 👀🔥 Ada satu spot yang korang kena try sendiri! ✨ Zufora SG Besi — sesuai untuk korang yang suka cantikkan diri dari segi makeup , supplement dan macam2 lagi 🌸 Jangan lupa waze 📍Zufora, SG Besi #Zufora #cosmetics #skincare #makeup #supple…"
},
{
"brand": "medicube",
"cover": "https://p16-common-sign.tiktokcdn.com/tos-alisg-p-0051c001-sg/oAAxDGrVoIzE4bcgVIKeCLeieGdl6vQ5jOLLiA~tplv-noop.image?dr=18692&refresh_token=37a069b0&x-expires=1793424505&x-signature=eCZBXTq9JTIhxCJ7wk4rxtu06Bs%3D&t=9276707c&ps=14f1eb3e&shp=9e36835a&shcp=317596d8&idc=my&VideoID=v14033g50000db2nlefog6…",
"ctr": 0.78,
"duration": 80.214,
"id": "7693690323848609793",
"industry": "14109000000",
"likes": 7,
"objective": "conversion",
"title": "50% OFF PLUS FREE SHIPPING "
},
{
"brand": "",
"cover": "https://p16-common-sign.tiktokcdn.com/tos-maliva-p-0068/oUIFCICPICjSug6b8flWzQfjLF7e5DhpsCEgAC~tplv-noop.image?dr=18692&refresh_token=4305f516&x-expires=1793424533&x-signature=Khk03LGsIUgc1c5lK9739vmojOQ%3D&t=9276707c&ps=14f1eb3e&shp=9e36835a&shcp=317596d8&idc=my&VideoID=v09044g40000cncvg6vog65iln66…",
"ctr": 0.62,
"duration": 108.252,
"id": "7391864211066601473",
"industry": "23122000000",
"likes": 0,
"objective": "product_sales",
"title": "Are you ready to build a skincare routine that actually works? You've come to the right video! Watch the first episode of our Skincare 101 series ▶️🩷 #kbeautycafe #skincareroutine #skincareforbeginners #skincare #koreanskincare #SkinCare101 #fyp "
}
],
"market": "worldwide",
"next": "eyJwYWdlIjoyfQ",
"notes": [
"ctr and likes are TikTok's ad library figures for the ad; objective and industry are TikTok's labels.",
"The ad library answers worldwide; method=detail lists the countries each ad ran in."
],
"period_days": 30,
"see_also": [
"ad_library method=detail id=<items[].id>",
"ad_library method=analysis id=<items[].id>"
],
"source": "tiktok_live",
"total": 33
},
"meta": {
"credits_charged": 1,
"credits_remaining": 7906,
"request_id": "req_3f9c2a1b7d4e"
},
"next_cursor": "eyJwYWdlIjoyfQ"
}Response fields
dataobjectThe tool's result. Compact by default; passdetail=fullfor the complete record.data.as_ofstringdata.countintegerdata.has_morebooleandata.itemsarraydata.items[].brandstringdata.items[].coverstringdata.items[].ctrnumberdata.items[].durationnumberdata.items[].idstringdata.items[].industrystringdata.items[].likesintegerdata.items[].objectivestringdata.items[].titlestringdata.marketstringdata.nextstringdata.notesarraydata.period_daysintegerdata.see_alsoarraydata.sourcestringdata.totalintegermetaobjectmeta.credits_chargedinteger1 on success.meta.credits_remainingintegerCredits left this period, when known.meta.request_idstringQuote it to support.next_cursorstringPresent when there is another page: pass it back as cursor.
Errors
400401402403404429502503
Try it Live call, 1 credit
/v1/ads/{id}One ad: countries, CTR, likes, objective, landing page, video
Parameters
- idstringPathRequired
Ad id (
items[].idfrommethod=searchor similar).
1 more optional parameter
- detailstring
compact (default) returns the useful fields; full adds the raw upstream payload (large).
Default
compactOne ofcompactfull
Use it in Claude or ChatGPT
Connect https://mcp.tokconnect.com/mcp and your AI calls this as the ad_library tool with method: detail. Same data, same credit. MCP setup
{
"tool": "ad_library",
"arguments": {
"method": "detail",
"id": "7689369336687034388"
}
}Request
curl "https://api.tokconnect.com/v1/ads/7689369336687034388" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/ads/7689369336687034388",
headers={"X-API-Key": os.environ["TOKCONNECT_API_KEY"]},
timeout=100,
)
r.raise_for_status()
body = r.json()
print(body["data"])const res = await fetch("https://api.tokconnect.com/v1/ads/7689369336687034388", {
headers: { "X-API-Key": process.env.TOKCONNECT_API_KEY },
});
if (!res.ok) throw new Error((await res.json()).error?.message);
const { data, next_cursor } = await res.json();Response
{
"data": {
"ad": {
"brand": "",
"comments": 2,
"countries": [
"MY"
],
"cover": "https://p16-common-sign.tiktokcdn.com/tos-alisg-p-0037/oofEIsEmxiO1ABcc8qxtR7gzkiIYfBhBIz9Xm0~tplv-noop.image?dr=18692&refresh_token=574a5739&x-expires=1793424473&x-signature=HJXPys9Os17%2F0bQZY5h5%2F9BbUvI%3D&t=9276707c&ps=14f1eb3e&shp=9e36835a&shcp=317596d8&idc=my&VideoID=v1c044g50000dapv4mvog65ho…",
"ctr": 0.96,
"duration": 47.534,
"id": "7689369336687034388",
"industry": "14104000000",
"likes": 167,
"objective": "reach",
"shares": 4,
"source": "Others",
"title": "Kalau korang area SG Besi, jangan scroll dulu 👀🔥 Ada satu spot yang korang kena try sendiri! ✨ Zufora SG Besi — sesuai untuk korang yang suka cantikkan diri dari segi makeup , supplement dan macam2 lagi 🌸 Jangan lupa waze 📍Zufora, SG Besi #Zufora #cosmetics #skincare #makeup #supple…",
"video_url": "https://v16m-default.tiktokcdn.com/c5b9222cf24f8648f8cad1b000953fd5/6ae57c59/video/tos/alisg/tos-alisg-pve-0037c001/oYFffikdAZORXBxhE19Btxv8OEiEsqLcgQBzII/?a=0&bti=NTU4QDM1NGA%3D&&bt=988&ft=cApXJCz7ThWHj788LGZmo0P&mime_type=video_mp4&rc=ZWloZDNlZDc3NGg2ZTs2NkBpajRqbGs5cnB5ZDMzODczNEBfLS4uMy02NTMxXjU…",
"voice_over": false
},
"as_of": "2026-10-30T23:27:07Z",
"notes": [
"ctr and likes are TikTok's ad library figures for the ad; objective and industry are TikTok's labels."
],
"see_also": [
"ad_library method=analysis id=7689369336687034388",
"ad_library method=similar id=7689369336687034388"
],
"source": "tiktok_live"
},
"meta": {
"credits_charged": 1,
"credits_remaining": 7906,
"request_id": "req_3f9c2a1b7d4e"
}
}Response fields
dataobjectThe tool's result. Compact by default; passdetail=fullfor the complete record.data.adobjectdata.ad.brandstringdata.ad.commentsintegerdata.ad.countriesarraydata.ad.coverstringdata.ad.ctrnumberdata.ad.durationnumberdata.ad.idstringdata.ad.industrystringdata.ad.likesintegerdata.ad.objectivestringdata.ad.sharesintegerdata.ad.sourcestringdata.ad.titlestringdata.ad.video_urlstringdata.ad.voice_overbooleandata.as_ofstringdata.notesarraydata.see_alsoarraydata.sourcestringmetaobjectmeta.credits_chargedinteger1 on success.meta.credits_remainingintegerCredits left this period, when known.meta.request_idstringQuote it to support.next_cursorstringPresent when there is another page: pass it back as cursor.
Errors
400401402403404429502503
Try it Live call, 1 credit
/v1/ads/{id}/analysisRetention curve per second, biggest drop, CTR percentile
Parameters
- idstringPathRequired
Ad id (
items[].idfrommethod=searchor similar).
1 more optional parameter
- detailstring
compact (default) returns the useful fields; full adds the raw upstream payload (large).
Default
compactOne ofcompactfull
Use it in Claude or ChatGPT
Connect https://mcp.tokconnect.com/mcp and your AI calls this as the ad_library tool with method: analysis. Same data, same credit. MCP setup
{
"tool": "ad_library",
"arguments": {
"method": "analysis",
"id": "7689369336687034388"
}
}Request
curl "https://api.tokconnect.com/v1/ads/7689369336687034388/analysis" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/ads/7689369336687034388/analysis",
headers={"X-API-Key": os.environ["TOKCONNECT_API_KEY"]},
timeout=100,
)
r.raise_for_status()
body = r.json()
print(body["data"])const res = await fetch("https://api.tokconnect.com/v1/ads/7689369336687034388/analysis", {
headers: { "X-API-Key": process.env.TOKCONNECT_API_KEY },
});
if (!res.ok) throw new Error((await res.json()).error?.message);
const { data, next_cursor } = await res.json();Response
{
"data": {
"as_of": "2026-10-30T23:27:09Z",
"ctr_percentile": 0.99,
"duration": 49,
"id": "7689369336687034388",
"notes": [
"Calls made: TikTok's keyframe retention analysis and its CTR percentile for the ad.",
"TikTok returned no retention data for this ad (every point was 0), so no curve is shown.",
"ctr_percentile is TikTok's rank of the ad's click-through rate among ads over 180 days (0.99 = top 1%)."
],
"see_also": [
"ad_library method=detail id=7689369336687034388"
],
"source": "tiktok_live"
},
"meta": {
"credits_charged": 1,
"credits_remaining": 7906,
"request_id": "req_3f9c2a1b7d4e"
}
}Response fields
dataobjectThe tool's result. Compact by default; passdetail=fullfor the complete record.data.as_ofstringdata.ctr_percentilenumberdata.durationintegerdata.idstringdata.notesarraydata.see_alsoarraydata.sourcestringmetaobjectmeta.credits_chargedinteger1 on success.meta.credits_remainingintegerCredits left this period, when known.meta.request_idstringQuote it to support.next_cursorstringPresent when there is another page: pass it back as cursor.
Errors
400401402403404429502503
Try it Live call, 1 credit
/v1/ads/{id}/similarAds TikTok recommends next to this one
Parameters
- idstringPathRequired
Ad id (
items[].idfrommethod=searchor similar). - limitinteger
Results per page. search max 50. Values above a method's maximum are lowered and reported in notes.
2 more optional parameters
- cursorstring
Paging: pass the next value from the previous response unchanged. Omit on the first page.
- detailstring
compact (default) returns the useful fields; full adds the raw upstream payload (large).
Default
compactOne ofcompactfull
Use it in Claude or ChatGPT
Connect https://mcp.tokconnect.com/mcp and your AI calls this as the ad_library tool with method: similar. Same data, same credit. MCP setup
{
"tool": "ad_library",
"arguments": {
"method": "similar",
"id": "7689369336687034388",
"limit": "3"
}
}Request
curl "https://api.tokconnect.com/v1/ads/7689369336687034388/similar?limit=3" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/ads/7689369336687034388/similar",
params={
"limit": "3",
},
headers={"X-API-Key": os.environ["TOKCONNECT_API_KEY"]},
timeout=100,
)
r.raise_for_status()
body = r.json()
print(body["data"])const params = new URLSearchParams({
limit: "3",
});
const res = await fetch(`https://api.tokconnect.com/v1/ads/7689369336687034388/similar?${params}`, {
headers: { "X-API-Key": process.env.TOKCONNECT_API_KEY },
});
if (!res.ok) throw new Error((await res.json()).error?.message);
const { data, next_cursor } = await res.json();Response
{
"data": {
"as_of": "2026-10-30T23:27:12Z",
"count": 1,
"has_more": false,
"id": "7689369336687034388",
"items": [
{
"brand": "",
"cover": "https://p16-common-sign.tiktokcdn.com/tos-alisg-p-0037/oQBIAgGHeQVALzx85geCr1DF4xebFiEnAIDujQ~tplv-noop.image?dr=18692&refresh_token=13d07d8c&x-expires=1793424460&x-signature=0qdezaCOQa527FDQQnHG3Vkuqlw%3D&t=9276707c&ps=14f1eb3e&shp=9e36835a&shcp=317596d8&idc=my&VideoID=v10025g50000db0hf0fog65sekh7o…",
"ctr": 0.83,
"duration": 28.84,
"id": "7692455584689340423",
"industry": "14104000000",
"likes": 785,
"objective": "product_sales",
"title": "銀座に旗艦店がある、フローリアス(花西子)のUVクッションファンデ。本場中国のドール肌、宮廷時代から磨かれ続けた微細粒子と先端技術のUVカット。試してみない? #とくとくセール #ショップ始めました #ファンデーショ…"
}
],
"notes": [
"ctr and likes are TikTok's ad library figures for the ad; objective and industry are TikTok's labels.",
"Calls made: the ad's detail (industry 14104000000, country MY), then TikTok's recommended ads for them."
],
"see_also": [
"ad_library method=detail id=<items[].id>"
],
"source": "tiktok_live"
},
"meta": {
"credits_charged": 1,
"credits_remaining": 7906,
"request_id": "req_3f9c2a1b7d4e"
}
}Response fields
dataobjectThe tool's result. Compact by default; passdetail=fullfor the complete record.data.as_ofstringdata.countintegerdata.has_morebooleandata.idstringdata.itemsarraydata.items[].brandstringdata.items[].coverstringdata.items[].ctrnumberdata.items[].durationnumberdata.items[].idstringdata.items[].industrystringdata.items[].likesintegerdata.items[].objectivestringdata.items[].titlestringdata.notesarraydata.see_alsoarraydata.sourcestringmetaobjectmeta.credits_chargedinteger1 on success.meta.credits_remainingintegerCredits left this period, when known.meta.request_idstringQuote it to support.next_cursorstringPresent when there is another page: pass it back as cursor.
Errors
400401402403404429502503
Try it Live call, 1 credit
TikTok Creative Center
TikTok Creative Center: top videos by market (US, JP, VN, TH, ID), public SEO inspiration lists, and Creative Partner agency leaderboards. Example: {"method":"top_videos","country":"JP","sort":"engagement"}.
/v1/creative-center/partnersCreative Partner agencies for a market
Parameters
- countrystring
method=top_videos: US (default), JP, VN, TH or ID.method=partners: market code fromreferencemethod=creative_markets, e.g. TH (default US, where TikTok lists no partners).
2 more optional parameters
- detailstring
compact (default) returns the useful fields; full adds the raw upstream payload (large).
Default
compactOne ofcompactfull - query_datestring
method=partners: unix timestamp fromreferencemethod=creative_markets.
Use it in Claude or ChatGPT
Connect https://mcp.tokconnect.com/mcp and your AI calls this as the creative_center tool with method: partners. Same data, same credit. MCP setup
{
"tool": "creative_center",
"arguments": {
"method": "partners",
"country": "US"
}
}Request
curl "https://api.tokconnect.com/v1/creative-center/partners?country=US" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/creative-center/partners",
params={
"country": "US",
},
headers={"X-API-Key": os.environ["TOKCONNECT_API_KEY"]},
timeout=100,
)
r.raise_for_status()
body = r.json()
print(body["data"])const params = new URLSearchParams({
country: "US",
});
const res = await fetch(`https://api.tokconnect.com/v1/creative-center/partners?${params}`, {
headers: { "X-API-Key": process.env.TOKCONNECT_API_KEY },
});
if (!res.ok) throw new Error((await res.json()).error?.message);
const { data, next_cursor } = await res.json();Response
{
"data": {
"partners": []
},
"meta": {
"credits_charged": 1,
"credits_remaining": 7906,
"request_id": "req_3f9c2a1b7d4e"
}
}Response fields
dataobjectThe tool's result. Compact by default; passdetail=fullfor the complete record.data.partnersarraymetaobjectmeta.credits_chargedinteger1 on success.meta.credits_remainingintegerCredits left this period, when known.meta.request_idstringQuote it to support.next_cursorstringPresent when there is another page: pass it back as cursor.
Errors
400401402403404429502503
Try it Live call, 1 credit
/v1/creative-center/seoPublic SEO inspiration names by type
Parameters
- biz_typestring
method=seo_listorseo_detail: which list.One of
keywordhashtagselling_pointstop_contenttop_ads
1 more optional parameter
- detailstring
compact (default) returns the useful fields; full adds the raw upstream payload (large).
Default
compactOne ofcompactfull
Use it in Claude or ChatGPT
Connect https://mcp.tokconnect.com/mcp and your AI calls this as the creative_center tool with method: seo_list. Same data, same credit. MCP setup
{
"tool": "creative_center",
"arguments": {
"method": "seo_list",
"biz_type": "keyword"
}
}Request
curl "https://api.tokconnect.com/v1/creative-center/seo?biz_type=keyword" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/creative-center/seo",
params={
"biz_type": "keyword",
},
headers={"X-API-Key": os.environ["TOKCONNECT_API_KEY"]},
timeout=100,
)
r.raise_for_status()
body = r.json()
print(body["data"])const params = new URLSearchParams({
biz_type: "keyword",
});
const res = await fetch(`https://api.tokconnect.com/v1/creative-center/seo?${params}`, {
headers: { "X-API-Key": process.env.TOKCONNECT_API_KEY },
});
if (!res.ok) throw new Error((await res.json()).error?.message);
const { data, next_cursor } = await res.json();Response
{
"data": {
"names": [],
"updated": "2026-10-30T00:00:00Z"
},
"meta": {
"credits_charged": 1,
"credits_remaining": 7906,
"request_id": "req_3f9c2a1b7d4e"
}
}Response fields
dataobjectThe tool's result. Compact by default; passdetail=fullfor the complete record.data.namesarraydata.updatedstringmetaobjectmeta.credits_chargedinteger1 on success.meta.credits_remainingintegerCredits left this period, when known.meta.request_idstringQuote it to support.next_cursorstringPresent when there is another page: pass it back as cursor.
Errors
400401402403404429502503
Try it Live call, 1 credit
/v1/creative-center/seo/detailDetail for names from seo_list
Parameters
- biz_typestring
method=seo_listorseo_detail: which list.One of
keywordhashtagselling_pointstop_contenttop_ads - detailstring
compact (default) returns the useful fields; full adds the raw upstream payload (large).
Default
compactOne ofcompactfull - namesarray of string
method=seo_detail: exact names frommethod=seo_list.
Use it in Claude or ChatGPT
Connect https://mcp.tokconnect.com/mcp and your AI calls this as the creative_center tool with method: seo_detail. Same data, same credit. MCP setup
{
"tool": "creative_center",
"arguments": {
"method": "seo_detail"
}
}Request
curl "https://api.tokconnect.com/v1/creative-center/seo/detail" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/creative-center/seo/detail",
headers={"X-API-Key": os.environ["TOKCONNECT_API_KEY"]},
timeout=100,
)
r.raise_for_status()
body = r.json()
print(body["data"])const res = await fetch("https://api.tokconnect.com/v1/creative-center/seo/detail", {
headers: { "X-API-Key": process.env.TOKCONNECT_API_KEY },
});
if (!res.ok) throw new Error((await res.json()).error?.message);
const { data, next_cursor } = await res.json();Response
Every success comes back in the same envelope: the tool's JSON under data, next_cursor when there is another page, and meta with the credits charged. See pagination.
{
"data": { "...": "the tool's JSON" },
"next_cursor": "eyJwYWdlIjoyfQ",
"meta": { "credits_charged": 1, "request_id": "req_…" }
}Response fields
dataobjectThe tool's result. Compact by default; passdetail=fullfor the complete record.metaobjectmeta.credits_chargedinteger1 on success.meta.credits_remainingintegerCredits left this period, when known.meta.request_idstringQuote it to support.next_cursorstringPresent when there is another page: pass it back as cursor.
Errors
400401402403404429502503
Try it Live call, 1 credit
/v1/creative-center/top-videosTrending videos by market with engagement
Parameters
- limitinteger
Results per page.
method=top_videosmax 20 (TikTok often returns 4). Values above a method's maximum are lowered and reported in notes.
6 more optional parameters
- countrystring
method=top_videos: US (default), JP, VN, TH or ID.method=partners: market code fromreferencemethod=creative_markets, e.g. TH (default US, where TikTok lists no partners). - detailstring
compact (default) returns the useful fields; full adds the raw upstream payload (large).
Default
compactOne ofcompactfull - pageinteger
method=top_videos: page 1-25. - periodstring
method=top_videos: week (default), day or long.One of
weekdaylong - period_endinteger
method=top_videos: unix seconds for the ranking close; 0 = last Sunday. - sortstring
method=top_videos: views (default), engagement orsix_seconds_vtr.One of
viewsengagementsix_seconds_vtr
Use it in Claude or ChatGPT
Connect https://mcp.tokconnect.com/mcp and your AI calls this as the creative_center tool with method: top_videos. Same data, same credit. MCP setup
{
"tool": "creative_center",
"arguments": {
"method": "top_videos",
"limit": "3"
}
}Request
curl "https://api.tokconnect.com/v1/creative-center/top-videos?limit=3" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/creative-center/top-videos",
params={
"limit": "3",
},
headers={"X-API-Key": os.environ["TOKCONNECT_API_KEY"]},
timeout=100,
)
r.raise_for_status()
body = r.json()
print(body["data"])const params = new URLSearchParams({
limit: "3",
});
const res = await fetch(`https://api.tokconnect.com/v1/creative-center/top-videos?${params}`, {
headers: { "X-API-Key": process.env.TOKCONNECT_API_KEY },
});
if (!res.ok) throw new Error((await res.json()).error?.message);
const { data, next_cursor } = await res.json();Response
{
"data": {
"hasMore": true,
"next": "eyJwYWdlIjoyfQ",
"videos": [
{
"caption": "プロ達の評価が恐ろしく高い プリュスオーから新作がでた plus eau(プリュスオー) リポルムシャンプー・トリートメント 各1,650円(税込) 全国のドラッグストア・バラエティストア等で販売中! #PR #pluseau #シャンプー #��…",
"engagementRate": 0.00048087144629807885,
"handle": "yuya.koyama",
"id": "7694996589001248021",
"nickname": "こやゆう【美髪アドバイザー】",
"posted": "2026-10-10T11:16:58Z",
"url": "https://www.tiktok.com/@yuya.koyama/video/7694996589001248021",
"views": 5893467
},
{
"caption": "友達の様子が突然変わったらみんなはどうする??💖好きな人ができたのかな?とか色々考えちゃうよね! 鼻の黒ずみ*で悩んでいるならクレンジングはパーフェクトワンフォーカスの黒バームが推し🎶リニューアル前も��…",
"engagementRate": 0.00901324900435645,
"handle": "maipan_03",
"id": "7698310710845115668",
"nickname": "まいぱん🍞",
"posted": "2026-10-19T09:37:26Z",
"url": "https://www.tiktok.com/@maipan_03/video/7698310710845115668",
"views": 5766622
},
{
"caption": "この主人公、不気味すぎる... #PR #ハズカシゲーム #LINEマンガ #無料マンガ",
"engagementRate": 0.002261597480148014,
"handle": "motsumotsu_manga",
"id": "7694498082603552021",
"nickname": "もつもつ🍆漫画紹介のひと",
"posted": "2026-10-09T03:02:30Z",
"url": "https://www.tiktok.com/@motsumotsu_manga/video/7694498082603552021",
"views": 5078711
}
]
},
"meta": {
"credits_charged": 1,
"credits_remaining": 7906,
"request_id": "req_3f9c2a1b7d4e"
},
"next_cursor": "eyJwYWdlIjoyfQ"
}Response fields
dataobjectThe tool's result. Compact by default; passdetail=fullfor the complete record.data.hasMorebooleandata.nextstringdata.videosarraydata.videos[].captionstringdata.videos[].engagementRatenumberdata.videos[].handlestringdata.videos[].idstringdata.videos[].nicknamestringdata.videos[].postedstringdata.videos[].urlstringdata.videos[].viewsintegermetaobjectmeta.credits_chargedinteger1 on success.meta.credits_remainingintegerCredits left this period, when known.meta.request_idstringQuote it to support.next_cursorstringPresent when there is another page: pass it back as cursor.
Errors
400401402403404429502503