Creators
A creator's public profile and posts, and their TikTok Shop business: what they sell, for which brands, and who follows them.
One TikTok creator
One creator's public account: profile (followers, likes, bio, Shop seller status; counts are rounded the way the app shows them, so use creator_search with the handle for exact numbers), posts, reposts, liked posts, followers, following, embed posts, playlists and collections. Pass any identifier; TokConnect resolves the ids. For what the creator sells or earns, the products they link, or their follower demographics, use creator_commerce. Example: {"id":"@dollskill","method":"posts"}. method=audit reports the account's registered country, ids and TikTok's milestones (started posting, follower marks); method=lookalikes lists accounts TikTok suggests as similar. Example: {"id":"@nike","method":"audit"}.
/v1/creators/{id}Followers, likes, videos, bio, link, verified, Shop seller, ids
Parameters
- idstringPathRequired
Creator: @handle, profile or video link, secUid (MS4wLjAB...) or numeric user id. TokConnect looks up the ids it needs.
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 creator tool with method: profile. Same data, same credit. MCP setup
{
"tool": "creator",
"arguments": {
"method": "profile",
"id": "nike"
}
}Request
curl "https://api.tokconnect.com/v1/creators/nike" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/creators/nike",
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/creators/nike", {
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": {
"bio": "Just Do It.",
"bioLink": "http://empli.fi/niketiktok",
"followers": 9345115,
"following": 91,
"handle": "nike",
"id": "208464585232822272",
"likes": 50478646,
"nickname": "Nike",
"secUid": "MS4wLjABAAAA_3ndMt8d_tECTdpKgCxcx238tOnQZX-20wqN01aMui5zQ7hsqSdff-jC5qYC-Cl_",
"url": "https://www.tiktok.com/@nike",
"verified": true,
"videos": 1147
},
"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.biostringdata.bioLinkstringdata.followersintegerdata.followingintegerdata.handlestringdata.idstringdata.likesintegerdata.nicknamestringdata.secUidstringdata.urlstringdata.verifiedbooleandata.videosintegermetaobjectmeta.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/creators/{id}/auditRegistered country, ids, TikTok milestones (started posting, follower marks)
Parameters
- idstringPathRequired
Creator: @handle, profile or video link, secUid (MS4wLjAB...) or numeric user id. TokConnect looks up the ids it needs.
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 creator tool with method: audit. Same data, same credit. MCP setup
{
"tool": "creator",
"arguments": {
"method": "audit",
"id": "nike"
}
}Request
curl "https://api.tokconnect.com/v1/creators/nike/audit" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/creators/nike/audit",
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/creators/nike/audit", {
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:19Z",
"country": "US",
"followers": 9345458,
"handle": "nike",
"likes": 50478595,
"milestones": [
{
"date": "2021-06-05",
"title": "Reached 1M followers",
"top_posts": [
"6947750712164093189",
"6960708098977729797",
"6965902749355625734"
]
},
{
"date": "2020-03-27",
"title": "Reached 500K followers",
"top_posts": [
"6795435424132205829",
"6797470670591741190",
"6795576861863775493"
]
},
{
"date": "2020-02-13",
"title": "Reached 100K followers",
"top_posts": [
"6792724034258750726",
"6792723599254981893",
"6792722035081579782"
]
}
],
"nickname": "Nike",
"notes": [
"Calls made: TikTok's account-country lookup and its creator milestones.",
"country is the country TikTok has on record for the account, not where its followers are.",
"TikTok does not expose the account creation date; started_posting is the first milestone TikTok shows."
],
"sec_uid": "MS4wLjABAAAA_3ndMt8d_tECTdpKgCxcx238tOnQZX-20wqN01aMui5zQ7hsqSdff-jC5qYC-Cl_",
"see_also": [
"creator method=profile id=@nike",
"creator method=lookalikes id=@nike"
],
"source": "tiktok_live",
"started_posting": "2017-03-24",
"user_id": "208464585232822272"
},
"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.countrystringdata.followersintegerdata.handlestringdata.likesintegerdata.milestonesarraydata.milestones[].datestringdata.milestones[].titlestringdata.milestones[].top_postsarraydata.nicknamestringdata.notesarraydata.sec_uidstringdata.see_alsoarraydata.sourcestringdata.started_postingstringdata.user_idstringmetaobjectmeta.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/creators/{id}/collectionsPublic saved collections (often empty)
Parameters
- idstringPathRequired
Creator: @handle, profile or video link, secUid (MS4wLjAB...) or numeric user id. TokConnect looks up the ids it needs.
- limitinteger
Results per page. posts max 35, others max 30. 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 creator tool with method: collections. Same data, same credit. MCP setup
{
"tool": "creator",
"arguments": {
"method": "collections",
"id": "nike",
"limit": 3
}
}Request
curl "https://api.tokconnect.com/v1/creators/nike/collections?limit=3" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/creators/nike/collections",
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/creators/nike/collections?${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": false,
"playlists": []
},
"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.hasMorebooleandata.playlistsarraymetaobjectmeta.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/creators/{id}/embedPosts in the creator's embed widget
Parameters
- idstringPathRequired
Creator: @handle, profile or video link, secUid (MS4wLjAB...) or numeric user id. TokConnect looks up the ids it needs.
- limitinteger
Results per page. posts max 35, others max 30. 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 creator tool with method: embed. Same data, same credit. MCP setup
{
"tool": "creator",
"arguments": {
"method": "embed",
"id": "nike",
"limit": 3
}
}Request
curl "https://api.tokconnect.com/v1/creators/nike/embed?limit=3" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/creators/nike/embed",
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/creators/nike/embed?${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": false,
"videos": [
{
"caption": "Sculpted out of endless curiosity. Built for an obsession with better. The Kobe 10 Protro arrives 8.23.",
"comments": 0,
"creator": {
"handle": "nike",
"secUid": "MS4wLjABAAAA_3ndMt8d_tECTdpKgCxcx238tOnQZX-20wqN01aMui5zQ7hsqSdff-jC5qYC-Cl_"
},
"id": "7670207038068215054",
"likes": 0,
"saves": 0,
"shares": 0,
"url": "https://www.tiktok.com/@nike/video/7670207038068215054",
"views": 1100000
},
{
"caption": "(✨️life changing title✨️)#kitten #why #confetti #weirdshithappenstome #whyandhowthefuckisthisconfettiflying",
"comments": 0,
"creator": {
"handle": "ech0d0gg",
"secUid": "MS4wLjABAAAAWvoibP5ag1boCZQKyWxN2IAWjXUi5JCEZsa97O_f8nTG-BXFORDu7j8QR60jpbxX"
},
"id": "7699977998820281620",
"likes": 0,
"saves": 0,
"shares": 0,
"url": "https://www.tiktok.com/@ech0d0gg/video/7699977998820281620",
"views": 9000000
}
]
},
"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.hasMorebooleandata.videosarraydata.videos[].captionstringdata.videos[].commentsintegerdata.videos[].creatorobjectdata.videos[].creator.handlestringdata.videos[].creator.secUidstringdata.videos[].idstringdata.videos[].likesintegerdata.videos[].savesintegerdata.videos[].sharesintegerdata.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
Try it Live call, 1 credit
/v1/creators/{id}/followersFollowers, when TikTok shows them (usually hidden)
Parameters
- idstringPathRequired
Creator: @handle, profile or video link, secUid (MS4wLjAB...) or numeric user id. TokConnect looks up the ids it needs.
- limitinteger
Results per page. posts max 35, others max 30. 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 creator tool with method: followers. Same data, same credit. MCP setup
{
"tool": "creator",
"arguments": {
"method": "followers",
"id": "nike",
"limit": "3"
}
}Request
curl "https://api.tokconnect.com/v1/creators/nike/followers?limit=3" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/creators/nike/followers",
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/creators/nike/followers?${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": {
"accounts": [
{
"followers": 864,
"handle": "an_a1130",
"id": "7151412295716045870",
"nickname": "𝒜𝓃𝒶",
"secUid": "MS4wLjABAAAAXO8B9taNnHhJTyIOFTVDQjg3nBJ0yf-3ByIJs0ZqWky9Ikt8A039USDtWurUDwfO",
"verified": true
},
{
"followers": 33,
"handle": "igorkrepe",
"id": "7510391742630282247",
"nickname": "iguins_rlk",
"secUid": "MS4wLjABAAAAS7BUaaFIDbK1U9nziOV1KKZKlIzHmgiR2bxaWGJx0fn-EVFrxu_P6AXfMhM8i1cR",
"verified": true
},
{
"followers": 227,
"handle": "random_things__5",
"id": "7470355816270627883",
"nickname": "randomstuff",
"secUid": "MS4wLjABAAAAnhNCoUXQk-1nudlsOoITQqtXqcbqTMMUwdFgP7Vaj7z0KI5jebFAftvY2iF6MCLw",
"verified": true
}
],
"hasMore": true,
"max_time": 1793402802,
"min_time": 1793402752,
"myself_user_id": "0",
"next": "eyJtYXhfY3Vyc29yIjoiMTc5MzQwMjgwMiIsIm1pbl9jdXJzb3IiOiIxNzkzNDAyNzUyIn0",
"next_page_token": "eyJtYXhfY3Vyc29yIjoxNzkzNDAyNzc0LCJtaW5fY3Vyc29yIjoxNzkzNDAyNzUyfQ==",
"version": "v2"
},
"meta": {
"credits_charged": 1,
"credits_remaining": 7906,
"request_id": "req_3f9c2a1b7d4e"
},
"next_cursor": "eyJtYXhfY3Vyc29yIjoiMTc5MzQwMjgwMiIsIm1pbl9jdXJzb3IiOiIxNzkzNDAyNzUyIn0"
}Response fields
dataobjectThe tool's result. Compact by default; passdetail=fullfor the complete record.data.accountsarraydata.accounts[].followersintegerdata.accounts[].handlestringdata.accounts[].idstringdata.accounts[].nicknamestringdata.accounts[].secUidstringdata.accounts[].verifiedbooleandata.hasMorebooleandata.max_timeintegerdata.min_timeintegerdata.myself_user_idstringdata.nextstringdata.next_page_tokenstringdata.versionstringmetaobjectmeta.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/creators/{id}/followingAccounts followed, when shown (usually hidden)
Parameters
- idstringPathRequired
Creator: @handle, profile or video link, secUid (MS4wLjAB...) or numeric user id. TokConnect looks up the ids it needs.
- limitinteger
Results per page. posts max 35, others max 30. 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 creator tool with method: following. Same data, same credit. MCP setup
{
"tool": "creator",
"arguments": {
"method": "following",
"id": "tiktok",
"limit": 3
}
}Request
curl "https://api.tokconnect.com/v1/creators/tiktok/following?limit=3" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/creators/tiktok/following",
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/creators/tiktok/following?${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": {
"accounts": [
{
"followers": 9000000,
"handle": "tiktokcreators",
"id": "6551237489917432832",
"nickname": "tiktok creators",
"secUid": "MS4wLjABAAAAXqqA-cLDC0hfQPIrS5APYNsg04zkl-socWCkqkI3UIOaEe6_Qnokg0GcWpLnMNQP",
"verified": true
}
],
"hasMore": false,
"isTruncated": false
},
"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.accountsarraydata.accounts[].followersintegerdata.accounts[].handlestringdata.accounts[].idstringdata.accounts[].nicknamestringdata.accounts[].secUidstringdata.accounts[].verifiedbooleandata.hasMorebooleandata.isTruncatedbooleanmetaobjectmeta.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/creators/{id}/likesPublic Liked tab (empty when hidden)
Parameters
- idstringPathRequired
Creator: @handle, profile or video link, secUid (MS4wLjAB...) or numeric user id. TokConnect looks up the ids it needs.
- limitinteger
Results per page. posts max 35, others max 30. 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 creator tool with method: likes. Same data, same credit. MCP setup
{
"tool": "creator",
"arguments": {
"method": "likes",
"id": "nike",
"limit": 3
}
}Request
curl "https://api.tokconnect.com/v1/creators/nike/likes?limit=3" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/creators/nike/likes",
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/creators/nike/likes?${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": "eyJjdXJzb3IiOiIxNzkzMTQzODIxMDAwIn0",
"videos": []
},
"meta": {
"credits_charged": 1,
"credits_remaining": 7906,
"request_id": "req_3f9c2a1b7d4e"
},
"next_cursor": "eyJjdXJzb3IiOiIxNzkzMTQzODIxMDAwIn0"
}Response fields
dataobjectThe tool's result. Compact by default; passdetail=fullfor the complete record.data.hasMorebooleandata.nextstringdata.videosarraymetaobjectmeta.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/creators/{id}/lookalikesAccounts TikTok suggests as similar
Parameters
- idstringPathRequired
Creator: @handle, profile or video link, secUid (MS4wLjAB...) or numeric user id. TokConnect looks up the ids it needs.
- limitinteger
Results per page. posts max 35, others max 30. 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 creator tool with method: lookalikes. Same data, same credit. MCP setup
{
"tool": "creator",
"arguments": {
"method": "lookalikes",
"id": "nike",
"limit": "3"
}
}Request
curl "https://api.tokconnect.com/v1/creators/nike/lookalikes?limit=3" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/creators/nike/lookalikes",
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/creators/nike/lookalikes?${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:20Z",
"count": 3,
"has_more": true,
"id": "nike",
"items": [
{
"bio": "Energy, Uncompromised. \n\nIntentional energy to unlock clarity.",
"followers": 34122,
"handle": "drinkupdate",
"likes": 911029,
"nickname": "Update",
"sec_uid": "MS4wLjABAAAA-9wqJbm_0WZLTwJ0M9y3dqpQwIVlxcgkRlr18Gu6FgZWAxv7KU7ch8RQz403erSB",
"user_id": "7579300616255718413",
"verified": false,
"videos": 55
},
{
"bio": "The next generation of underwear and loungewear.",
"followers": 3072432,
"handle": "skims",
"likes": 40256030,
"nickname": "SKIMS",
"sec_uid": "MS4wLjABAAAAMe5oovmTxsAE9a4nA3cGv2QXfvAPoPYw1Pnvg9nHtgSIqYLU2zcf4LmWWPGRRcn0",
"user_id": "6714013419890852870",
"verified": true,
"videos": 3246
},
{
"bio": "Managed by parents\n Use code Saint10 at\n@Charge Graphics",
"followers": 83972,
"handle": ".s4into",
"likes": 1430253,
"nickname": "SAINT2STEEZY",
"sec_uid": "MS4wLjABAAAA-oDAVsukJBl04OTSqtYkh41UhbSfQ0kIAkNZfd62Rz3Y3jky9l61tTb81IP1XBF9",
"user_id": "7588795210720281613",
"verified": false,
"videos": 129
}
],
"next": "eyJ0b2tlbiI6Ik16QT0ifQ",
"notes": [
"TikTok's own similar-account suggestions, in TikTok's order. Not ranked by TokConnect."
],
"see_also": [
"creator method=audit id=@<items[].handle>",
"creator method=profile id=@<items[].handle>"
],
"source": "tiktok_live"
},
"meta": {
"credits_charged": 1,
"credits_remaining": 7906,
"request_id": "req_3f9c2a1b7d4e"
},
"next_cursor": "eyJ0b2tlbiI6Ik16QT0ifQ"
}Response fields
dataobjectThe tool's result. Compact by default; passdetail=fullfor the complete record.data.as_ofstringdata.countintegerdata.has_morebooleandata.idstringdata.itemsarraydata.items[].biostringdata.items[].followersintegerdata.items[].handlestringdata.items[].likesintegerdata.items[].nicknamestringdata.items[].sec_uidstringdata.items[].user_idstringdata.items[].verifiedbooleandata.items[].videosintegerdata.nextstringdata.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/creators/{id}/playlistsPublic playlists (ids for creator_playlist)
Parameters
- idstringPathRequired
Creator: @handle, profile or video link, secUid (MS4wLjAB...) or numeric user id. TokConnect looks up the ids it needs.
- limitinteger
Results per page. posts max 35, others max 30. 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 creator tool with method: playlists. Same data, same credit. MCP setup
{
"tool": "creator",
"arguments": {
"method": "playlists",
"id": "nike",
"limit": "3"
}
}Request
curl "https://api.tokconnect.com/v1/creators/nike/playlists?limit=3" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/creators/nike/playlists",
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/creators/nike/playlists?${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": "eyJjdXJzb3IiOiIzIn0",
"playlists": [
{
"creator": {
"handle": "nike",
"id": "208464585232822272",
"nickname": "Nike",
"secUid": "MS4wLjABAAAA_3ndMt8d_tECTdpKgCxcx238tOnQZX-20wqN01aMui5zQ7hsqSdff-jC5qYC-Cl_"
},
"id": "7628692798685940494",
"name": "Athlete Versus",
"videos": 4
},
{
"creator": {
"handle": "nike",
"id": "208464585232822272",
"nickname": "Nike",
"secUid": "MS4wLjABAAAA_3ndMt8d_tECTdpKgCxcx238tOnQZX-20wqN01aMui5zQ7hsqSdff-jC5qYC-Cl_"
},
"id": "7352922358623062826",
"name": "Air Max Dn BTS",
"videos": 5
},
{
"creator": {
"handle": "nike",
"id": "208464585232822272",
"nickname": "Nike",
"secUid": "MS4wLjABAAAA_3ndMt8d_tECTdpKgCxcx238tOnQZX-20wqN01aMui5zQ7hsqSdff-jC5qYC-Cl_"
},
"id": "7268891136851413806",
"name": "1000Victories",
"videos": 19
}
]
},
"meta": {
"credits_charged": 1,
"credits_remaining": 7906,
"request_id": "req_3f9c2a1b7d4e"
},
"next_cursor": "eyJjdXJzb3IiOiIzIn0"
}Response fields
dataobjectThe tool's result. Compact by default; passdetail=fullfor the complete record.data.hasMorebooleandata.nextstringdata.playlistsarraydata.playlists[].creatorobjectdata.playlists[].creator.handlestringdata.playlists[].creator.idstringdata.playlists[].creator.nicknamestringdata.playlists[].creator.secUidstringdata.playlists[].idstringdata.playlists[].namestringdata.playlists[].videosintegermetaobjectmeta.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/creators/{id}/postsPosts, newest first, with counts and linked products
Parameters
- idstringPathRequired
Creator: @handle, profile or video link, secUid (MS4wLjAB...) or numeric user id. TokConnect looks up the ids it needs.
- limitinteger
Results per page. posts max 35, others max 30. 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 - regionstring
Market as an ISO country code, default US. Shop Analytics methods: sales data for that market, amounts in its currency. Live methods that take it (search, video detail, creator posts, Shop pages): TikTok as seen in that market where TikTok serves it. Core: US, GB, DE, FR, ES, JP, TH, VN, ID, MY, PH, BR, MX. Extended: PL, IT, NL, IE. Other countries are refused. See
shop_regions.
Use it in Claude or ChatGPT
Connect https://mcp.tokconnect.com/mcp and your AI calls this as the creator tool with method: posts. Same data, same credit. MCP setup
{
"tool": "creator",
"arguments": {
"method": "posts",
"id": "nike",
"limit": "3"
}
}Request
curl "https://api.tokconnect.com/v1/creators/nike/posts?limit=3" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/creators/nike/posts",
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/creators/nike/posts?${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": "eyJjdXJzb3IiOjE3OTMyNDM2NjYwMDB9",
"videos": [
{
"caption": "Welcome to New York City. This tour is 26.2 miles and will take everything you've got. See you at the finish. #nikerunning #fiveboroughs #marathon #fyp",
"comments": 30,
"creator": {
"handle": "nike",
"id": "208464585232822272",
"nickname": "Nike",
"secUid": "MS4wLjABAAAA_3ndMt8d_tECTdpKgCxcx238tOnQZX-20wqN01aMui5zQ7hsqSdff-jC5qYC-Cl_",
"verified": true
},
"durationSec": 13,
"hashtags": [
{
"id": "13020056",
"name": "nikerunning"
},
{
"id": "77850878",
"name": "fiveboroughs"
},
{
"id": "20467",
"name": "marathon"
}
],
"id": "7702531221674347789",
"language": "en",
"likes": 590,
"posted": "2026-10-30T18:35:40Z",
"saves": 12,
"shares": 7,
"sound": {
"author": "Nike",
"id": "7702531360175098638",
"original": true,
"title": "原声 - Nike"
},
"url": "https://www.tiktok.com/@nike/video/7702531221674347789",
"views": 8168
},
{
"caption": "Nike Jewelry just landed. Check the SNKRS app for more. #nike #jewelry #fyp",
"comments": 50,
"creator": {
"handle": "nike",
"id": "208464585232822272",
"nickname": "Nike",
"secUid": "MS4wLjABAAAA_3ndMt8d_tECTdpKgCxcx238tOnQZX-20wqN01aMui5zQ7hsqSdff-jC5qYC-Cl_",
"verified": true
},
"durationSec": 7,
"hashtags": [
{
"id": "9789",
"name": "nike"
},
{
"id": "21519",
"name": "jewelry"
},
{
"id": "229207",
"name": "fyp"
}
],
"id": "7702142102230158606",
"language": "en",
"likes": 2596,
"posted": "2026-10-29T17:25:17Z",
"saves": 104,
"shares": 28,
"sound": {
"author": "Nike",
"id": "7702142090700180238",
"original": true,
"title": "原声 - Nike"
},
"url": "https://www.tiktok.com/@nike/video/7702142102230158606",
"views": 35963
},
{
"caption": "How refreshing. A 57-year thirst has been quenched.",
"comments": 41,
"creator": {
"handle": "nike",
"id": "208464585232822272",
"nickname": "Nike",
"secUid": "MS4wLjABAAAA_3ndMt8d_tECTdpKgCxcx238tOnQZX-20wqN01aMui5zQ7hsqSdff-jC5qYC-Cl_",
"verified": true
},
"durationSec": 28,
"id": "7701922739875089678",
"language": "en",
"likes": 1269,
"posted": "2026-10-29T03:14:26Z",
"saves": 45,
"shares": 12,
"sound": {
"author": "Nike",
"id": "7701922865952983822",
"original": true,
"title": "原声 - Nike"
},
"url": "https://www.tiktok.com/@nike/video/7701922739875089678",
"views": 19870
}
]
},
"meta": {
"credits_charged": 1,
"credits_remaining": 7906,
"request_id": "req_3f9c2a1b7d4e"
},
"next_cursor": "eyJjdXJzb3IiOjE3OTMyNDM2NjYwMDB9"
}Response fields
dataobjectThe tool's result. Compact by default; passdetail=fullfor the complete record.data.hasMorebooleandata.nextstringdata.videosarraydata.videos[].captionstringdata.videos[].commentsintegerdata.videos[].creatorobjectdata.videos[].creator.handlestringdata.videos[].creator.idstringdata.videos[].creator.nicknamestringdata.videos[].creator.secUidstringdata.videos[].creator.verifiedbooleandata.videos[].durationSecintegerdata.videos[].hashtagsarraydata.videos[].hashtags[].idstringdata.videos[].hashtags[].namestringdata.videos[].idstringdata.videos[].languagestringdata.videos[].likesintegerdata.videos[].postedstringdata.videos[].savesintegerdata.videos[].sharesintegerdata.videos[].soundobjectdata.videos[].sound.authorstringdata.videos[].sound.idstringdata.videos[].sound.originalbooleandata.videos[].sound.titlestringdata.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
Try it Live call, 1 credit
/v1/creators/{id}/repostsPosts the creator reposted
Parameters
- idstringPathRequired
Creator: @handle, profile or video link, secUid (MS4wLjAB...) or numeric user id. TokConnect looks up the ids it needs.
- limitinteger
Results per page. posts max 35, others max 30. 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 creator tool with method: reposts. Same data, same credit. MCP setup
{
"tool": "creator",
"arguments": {
"method": "reposts",
"id": "nike",
"limit": "3"
}
}Request
curl "https://api.tokconnect.com/v1/creators/nike/reposts?limit=3" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/creators/nike/reposts",
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/creators/nike/reposts?${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": "eyJjdXJzb3IiOiIzIn0",
"videos": [
{
"caption": "Golden boots for a golden player ✨",
"comments": 74,
"creator": {
"followers": 67500,
"handle": "londoncitylionesses",
"id": "6815596123420525573",
"nickname": "londoncitylionesses",
"secUid": "MS4wLjABAAAACewsvrGMrmompNpDsbDcxWQnGMdve7wSF-RshmCY2980g9YC6p3Sy121iV8rZtbz"
},
"durationSec": 46,
"id": "7701372324020276502",
"language": "en",
"likes": 14600,
"posted": "2026-10-27T15:38:02Z",
"saves": 1053,
"shares": 482,
"sound": {
"author": "londoncitylionesses",
"id": "7701372337848961814",
"original": true,
"title": "original sound"
},
"url": "https://www.tiktok.com/@londoncitylionesses/video/7701372324020276502",
"views": 118900
},
{
"caption": "Alpha Chi ❤︎’s @Nike Shoutout to Nike for gifting our new member class their new Studio Fleece! Seriously the best sweatsets ever! #nikeaxo #studiofleece #nike #sorority #universityofsouthcarolina",
"comments": 222,
"creator": {
"followers": 39900,
"handle": "alphachiuofsc",
"id": "7047632338502796334",
"nickname": "ALPHA CHI USC",
"secUid": "MS4wLjABAAAAO7_-6IqQYl0sEDTZRi7gf1YkQbYcMLOuEpDsrU6DjbsKTzr0pCn3A5wHmp8EwtCG"
},
"durationSec": 11,
"hashtags": [
{
"id": "7677236652473286669",
"name": "nikeaxo"
},
{
"id": "7662951028928544782",
"name": "studiofleece"
},
{
"id": "9789",
"name": "nike"
}
],
"id": "7677263890794761503",
"language": "en",
"likes": 26300,
"posted": "2026-08-23T16:25:13Z",
"saves": 546,
"shares": 1031,
"sound": {
"author": "twokay",
"id": "7531317665290390273",
"original": true,
"title": "original sound"
},
"url": "https://www.tiktok.com/@alphachiuofsc/video/7677263890794761503",
"views": 488800
},
{
"caption": "OH NO! @LSU TIGER GIRLS we stole your girl 😉 PC ‘26 JUST DO IT & GO DZ!!! Thank you @Nike #teamnike Choreo by: @Carsen R. @Sammy McFadden #asudznike #notlikeus #rushtok #sorority",
"comments": 1817,
"creator": {
"followers": 74400,
"handle": "asudeltazeta",
"id": "6821168696859395077",
"nickname": "ASU Delta Zeta",
"secUid": "MS4wLjABAAAAPO9are-WaNTkxqwEdkFhTU2pOh8EEOnWTY5IxajgQ0NGDunDtzXlpWgSB17LGYrX"
},
"durationSec": 20,
"hashtags": [
{
"id": "351929",
"name": "teamnike"
},
{
"id": "7672433323716640798",
"name": "asudznike"
},
{
"id": "25392924",
"name": "notlikeus"
}
],
"id": "7672486939706019102",
"language": "en",
"likes": 421100,
"posted": "2026-08-10T19:28:08Z",
"saves": 9957,
"shares": 16500,
"sound": {
"author": "ASU Delta Zeta",
"id": "7672486895805025054",
"original": true,
"title": "original sound"
},
"url": "https://www.tiktok.com/@asudeltazeta/video/7672486939706019102",
"views": 4200000
}
]
},
"meta": {
"credits_charged": 1,
"credits_remaining": 7906,
"request_id": "req_3f9c2a1b7d4e"
},
"next_cursor": "eyJjdXJzb3IiOiIzIn0"
}Response fields
dataobjectThe tool's result. Compact by default; passdetail=fullfor the complete record.data.hasMorebooleandata.nextstringdata.videosarraydata.videos[].captionstringdata.videos[].commentsintegerdata.videos[].creatorobjectdata.videos[].creator.followersintegerdata.videos[].creator.handlestringdata.videos[].creator.idstringdata.videos[].creator.nicknamestringdata.videos[].creator.secUidstringdata.videos[].durationSecintegerdata.videos[].idstringdata.videos[].languagestringdata.videos[].likesintegerdata.videos[].postedstringdata.videos[].savesintegerdata.videos[].sharesintegerdata.videos[].soundobjectdata.videos[].sound.authorstringdata.videos[].sound.idstringdata.videos[].sound.originalbooleandata.videos[].sound.titlestringdata.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
Try it Live call, 1 credit
A creator's TikTok Shop business
What a creator sells. Live: linked_products (products linked in recent posts, with views; no sales). Shop Analytics, any market via region: sales (revenue, units, video vs LIVE), trend (daily), products (with revenue), shops (brands they sell for), videos (selling videos), audience (follower age, gender, locations, languages; says so when the source has not built it). Use to vet affiliates. Example: {"id":"@dollskill","method":"products","window":"90d"}.
/v1/creators/{id}/shop/audienceFollower age, gender, top locations and languages, active hours (when the source has built it)
Parameters
- idstringPathRequired
Creator: @handle, profile or video link, secUid (MS4wLjAB...) or numeric user id. TokConnect looks up the ids it needs.
7 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 - endstring
Shop Analytics methods: custom range end, YYYY-MM-DD (capped at the last complete day).
- limitinteger
Results per page. Shop Analytics methods max 100. Values above a method's maximum are lowered and reported in notes.
- regionstring
Market as an ISO country code, default US. Shop Analytics methods: sales data for that market, amounts in its currency. Live methods that take it (search, video detail, creator posts, Shop pages): TikTok as seen in that market where TikTok serves it. Core: US, GB, DE, FR, ES, JP, TH, VN, ID, MY, PH, BR, MX. Extended: PL, IT, NL, IE. Other countries are refused. See
shop_regions. - startstring
Shop Analytics methods: custom range start, YYYY-MM-DD.
- windowstring
Shop Analytics methods: date range ending at the last complete day (about 2 days ago). Default 30d. Use start/end for a custom range.
One of
7d30d90d180d365d
Use it in Claude or ChatGPT
Connect https://mcp.tokconnect.com/mcp and your AI calls this as the creator_commerce tool with method: audience. Same data, same credit. MCP setup
{
"tool": "creator_commerce",
"arguments": {
"method": "audience",
"id": "6963732702017668101"
}
}Request
curl "https://api.tokconnect.com/v1/creators/6963732702017668101/shop/audience" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/creators/6963732702017668101/shop/audience",
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/creators/6963732702017668101/shop/audience", {
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": {
"audience": null,
"dataEnd": "2026-10-28",
"id": "6963732702017668101",
"market": "US",
"notes": [
"Market US (United States).",
"The source has not built this creator's audience breakdown yet, so there is no follower age, gender, location or language data to report. Try again later; no other tool returns it."
],
"source": "TokConnect Shop Analytics (TikTok Shop US). Revenue and units are estimates: units track TikTok's sold counter; revenue is units times listed price.",
"status": "not_built",
"window": {
"days": 30,
"end": "2026-10-28",
"start": "2026-09-29"
}
},
"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.audiencenulldata.dataEndstringdata.idstringdata.marketstringdata.notesarraydata.sourcestringdata.statusstringdata.windowobjectdata.window.daysintegerdata.window.endstringdata.window.startstringmetaobjectmeta.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/creators/{id}/shop/linked-productsEach product linked in recent posts, with post count, views and likes (not sales)
Parameters
- idstringPathRequired
Creator: @handle, profile or video link, secUid (MS4wLjAB...) or numeric user id. TokConnect looks up the ids it needs.
2 more optional parameters
- detailstring
compact (default) returns the useful fields; full adds the raw upstream payload (large).
Default
compactOne ofcompactfull - max_pagesinteger
method=linked_products: post pages to scan, 15 posts each (default 3, max 5).
Use it in Claude or ChatGPT
Connect https://mcp.tokconnect.com/mcp and your AI calls this as the creator_commerce tool with method: linked_products. Same data, same credit. MCP setup
{
"tool": "creator_commerce",
"arguments": {
"method": "linked_products",
"id": "6963732702017668101"
}
}Request
curl "https://api.tokconnect.com/v1/creators/6963732702017668101/shop/linked-products" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/creators/6963732702017668101/shop/linked-products",
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/creators/6963732702017668101/shop/linked-products", {
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": {
"creator": {
"followers": 279536,
"handle": "sharkbeauty",
"nickname": "Shark Beauty",
"secUid": "MS4wLjABAAAAzeqNqWunXSTTn5OPKk-IYTqhuv4aoEn42EiNJcl8riTWAgYH9GU1lGJZEhVpl1Zo",
"verified": true
},
"from": "2026-09-30",
"note": "Products linked in the creator's recent public posts (TikTok Shop links on videos). Not the full showcase tab, and not sales.",
"postsWithProducts": 0,
"productCount": 0,
"products": [],
"scannedPosts": 45,
"to": "2026-10-30"
},
"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.creatorobjectdata.creator.followersintegerdata.creator.handlestringdata.creator.nicknamestringdata.creator.secUidstringdata.creator.verifiedbooleandata.fromstringdata.notestringdata.postsWithProductsintegerdata.productCountintegerdata.productsarraydata.scannedPostsintegerdata.tostringmetaobjectmeta.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/creators/{id}/shop/productsProducts they sold, with revenue
Parameters
- idstringPathRequired
Creator: @handle, profile or video link, secUid (MS4wLjAB...) or numeric user id. TokConnect looks up the ids it needs.
7 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 - endstring
Shop Analytics methods: custom range end, YYYY-MM-DD (capped at the last complete day).
- limitinteger
Results per page. Shop Analytics methods max 100. Values above a method's maximum are lowered and reported in notes.
- regionstring
Market as an ISO country code, default US. Shop Analytics methods: sales data for that market, amounts in its currency. Live methods that take it (search, video detail, creator posts, Shop pages): TikTok as seen in that market where TikTok serves it. Core: US, GB, DE, FR, ES, JP, TH, VN, ID, MY, PH, BR, MX. Extended: PL, IT, NL, IE. Other countries are refused. See
shop_regions. - startstring
Shop Analytics methods: custom range start, YYYY-MM-DD.
- windowstring
Shop Analytics methods: date range ending at the last complete day (about 2 days ago). Default 30d. Use start/end for a custom range.
One of
7d30d90d180d365d
Use it in Claude or ChatGPT
Connect https://mcp.tokconnect.com/mcp and your AI calls this as the creator_commerce tool with method: products. Same data, same credit. MCP setup
{
"tool": "creator_commerce",
"arguments": {
"method": "products",
"id": "6963732702017668101"
}
}Request
curl "https://api.tokconnect.com/v1/creators/6963732702017668101/shop/products" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/creators/6963732702017668101/shop/products",
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/creators/6963732702017668101/shop/products", {
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": {
"count": 20,
"currency": "USD",
"dataEnd": "2026-10-28",
"hasMore": true,
"id": "6963732702017668101",
"items": [
{
"id": "1732479640669033376",
"product_title": "Shark FacialPro Glow At Home Facial System - FH320",
"revenue": "$40.66k",
"sale": "136",
"seller_id": "7494661364292028320",
"unit_price": "$299.00"
},
{
"id": "1732571163004670880",
"product_title": "Shark FacialPro Glow At Home Hydrating Facial System - FH310",
"revenue": "$28.39k",
"sale": "114",
"seller_id": "7494661364292028320",
"unit_price": "$249.00"
},
{
"id": "1732479644677411744",
"product_title": "Shark Beauty SilkiPro Hair Straightener and Dryer - HT400",
"revenue": "$25.07k",
"sale": "126",
"seller_id": "7494661364292028320",
"unit_price": "$199.00"
}
],
"market": "US",
"next": "eyJwYWdlIjoyLCJzaXplIjoyMH0",
"notes": [
"Market US (United States): amounts are in USD."
],
"source": "TokConnect Shop Analytics (TikTok Shop US). Revenue and units are estimates: units track TikTok's sold counter; revenue is units times listed price.",
"window": {
"days": 30,
"end": "2026-10-28",
"start": "2026-09-29"
}
},
"meta": {
"credits_charged": 1,
"credits_remaining": 7906,
"request_id": "req_3f9c2a1b7d4e"
},
"next_cursor": "eyJwYWdlIjoyLCJzaXplIjoyMH0"
}Response fields
dataobjectThe tool's result. Compact by default; passdetail=fullfor the complete record.data.countintegerdata.currencystringdata.dataEndstringdata.hasMorebooleandata.idstringdata.itemsarraydata.items[].idstringdata.items[].product_titlestringdata.items[].revenuestringdata.items[].salestringdata.items[].seller_idstringdata.items[].unit_pricestringdata.marketstringdata.nextstringdata.notesarraydata.sourcestringdata.windowobjectdata.window.daysintegerdata.window.endstringdata.window.startstringmetaobjectmeta.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/creators/{id}/shop/salesRevenue, units, video vs LIVE, average price
Parameters
- idstringPathRequired
Creator: @handle, profile or video link, secUid (MS4wLjAB...) or numeric user id. TokConnect looks up the ids it needs.
7 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 - endstring
Shop Analytics methods: custom range end, YYYY-MM-DD (capped at the last complete day).
- limitinteger
Results per page. Shop Analytics methods max 100. Values above a method's maximum are lowered and reported in notes.
- regionstring
Market as an ISO country code, default US. Shop Analytics methods: sales data for that market, amounts in its currency. Live methods that take it (search, video detail, creator posts, Shop pages): TikTok as seen in that market where TikTok serves it. Core: US, GB, DE, FR, ES, JP, TH, VN, ID, MY, PH, BR, MX. Extended: PL, IT, NL, IE. Other countries are refused. See
shop_regions. - startstring
Shop Analytics methods: custom range start, YYYY-MM-DD.
- windowstring
Shop Analytics methods: date range ending at the last complete day (about 2 days ago). Default 30d. Use start/end for a custom range.
One of
7d30d90d180d365d
Use it in Claude or ChatGPT
Connect https://mcp.tokconnect.com/mcp and your AI calls this as the creator_commerce tool with method: sales. Same data, same credit. MCP setup
{
"tool": "creator_commerce",
"arguments": {
"method": "sales",
"id": "6963732702017668101"
}
}Request
curl "https://api.tokconnect.com/v1/creators/6963732702017668101/shop/sales" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/creators/6963732702017668101/shop/sales",
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/creators/6963732702017668101/shop/sales", {
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": {
"currency": "USD",
"dataEnd": "2026-10-28",
"id": "6963732702017668101",
"market": "US",
"notes": [
"Market US (United States): amounts are in USD."
],
"source": "TokConnect Shop Analytics (TikTok Shop US). Revenue and units are estimates: units track TikTok's sold counter; revenue is units times listed price.",
"totals": {
"day_followers": "396",
"day_live_revenue": "$7.96k",
"day_live_views": "17.7k",
"day_revenue": "$8.03k",
"day_sale": "36.4",
"day_shop_revenue": "$69.16",
"day_video_revenue": "$0.00",
"day_video_views": "299.44k",
"followers": "11.9k",
"live_revenue": "$238.91k",
"live_views": "531.01k",
"revenue": "$240.98k",
"sale": "1.09k",
"shop_revenue": "$2.07k",
"unit_price": "$220.68",
"video_revenue": "$0.00",
"video_views": "8.98m"
},
"window": {
"days": 30,
"end": "2026-10-28",
"start": "2026-09-29"
}
},
"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.currencystringdata.dataEndstringdata.idstringdata.marketstringdata.notesarraydata.sourcestringdata.totalsobjectdata.totals.day_followersstringdata.totals.day_live_revenuestringdata.totals.day_live_viewsstringdata.totals.day_revenuestringdata.totals.day_salestringdata.totals.day_shop_revenuestringdata.totals.day_video_revenuestringdata.totals.day_video_viewsstringdata.totals.followersstringdata.totals.live_revenuestringdata.totals.live_viewsstringdata.totals.revenuestringdata.totals.salestringdata.totals.shop_revenuestringdata.totals.unit_pricestringdata.totals.video_revenuestringdata.totals.video_viewsstringdata.windowobjectdata.window.daysintegerdata.window.endstringdata.window.startstringmetaobjectmeta.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/creators/{id}/shop/shopsShops (brands) they sell for, with revenue
Parameters
- idstringPathRequired
Creator: @handle, profile or video link, secUid (MS4wLjAB...) or numeric user id. TokConnect looks up the ids it needs.
7 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 - endstring
Shop Analytics methods: custom range end, YYYY-MM-DD (capped at the last complete day).
- limitinteger
Results per page. Shop Analytics methods max 100. Values above a method's maximum are lowered and reported in notes.
- regionstring
Market as an ISO country code, default US. Shop Analytics methods: sales data for that market, amounts in its currency. Live methods that take it (search, video detail, creator posts, Shop pages): TikTok as seen in that market where TikTok serves it. Core: US, GB, DE, FR, ES, JP, TH, VN, ID, MY, PH, BR, MX. Extended: PL, IT, NL, IE. Other countries are refused. See
shop_regions. - startstring
Shop Analytics methods: custom range start, YYYY-MM-DD.
- windowstring
Shop Analytics methods: date range ending at the last complete day (about 2 days ago). Default 30d. Use start/end for a custom range.
One of
7d30d90d180d365d
Use it in Claude or ChatGPT
Connect https://mcp.tokconnect.com/mcp and your AI calls this as the creator_commerce tool with method: shops. Same data, same credit. MCP setup
{
"tool": "creator_commerce",
"arguments": {
"method": "shops",
"id": "6963732702017668101"
}
}Request
curl "https://api.tokconnect.com/v1/creators/6963732702017668101/shop/shops" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/creators/6963732702017668101/shop/shops",
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/creators/6963732702017668101/shop/shops", {
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": {
"count": 1,
"currency": "USD",
"dataEnd": "2026-10-28",
"hasMore": false,
"id": "6963732702017668101",
"items": [
{
"live_revenue": "$238.91k",
"product_count": "21",
"revenue": "$240.98k",
"sale": "1.09k",
"seller_id": "7494661364292028320",
"seller_type": "BRAND",
"shop_name": "Shark Beauty",
"video_revenue": "$0.00"
}
],
"market": "US",
"notes": [
"Market US (United States): amounts are in USD."
],
"source": "TokConnect Shop Analytics (TikTok Shop US). Revenue and units are estimates: units track TikTok's sold counter; revenue is units times listed price.",
"window": {
"days": 30,
"end": "2026-10-28",
"start": "2026-09-29"
}
},
"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.countintegerdata.currencystringdata.dataEndstringdata.hasMorebooleandata.idstringdata.itemsarraydata.items[].live_revenuestringdata.items[].product_countstringdata.items[].revenuestringdata.items[].salestringdata.items[].seller_idstringdata.items[].seller_typestringdata.items[].shop_namestringdata.items[].video_revenuestringdata.marketstringdata.notesarraydata.sourcestringdata.windowobjectdata.window.daysintegerdata.window.endstringdata.window.startstringmetaobjectmeta.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/creators/{id}/shop/trendDaily revenue (up to ~13 months)
Parameters
- idstringPathRequired
Creator: @handle, profile or video link, secUid (MS4wLjAB...) or numeric user id. TokConnect looks up the ids it needs.
7 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 - endstring
Shop Analytics methods: custom range end, YYYY-MM-DD (capped at the last complete day).
- limitinteger
Results per page. Shop Analytics methods max 100. Values above a method's maximum are lowered and reported in notes.
- regionstring
Market as an ISO country code, default US. Shop Analytics methods: sales data for that market, amounts in its currency. Live methods that take it (search, video detail, creator posts, Shop pages): TikTok as seen in that market where TikTok serves it. Core: US, GB, DE, FR, ES, JP, TH, VN, ID, MY, PH, BR, MX. Extended: PL, IT, NL, IE. Other countries are refused. See
shop_regions. - startstring
Shop Analytics methods: custom range start, YYYY-MM-DD.
- windowstring
Shop Analytics methods: date range ending at the last complete day (about 2 days ago). Default 30d. Use start/end for a custom range.
One of
7d30d90d180d365d
Use it in Claude or ChatGPT
Connect https://mcp.tokconnect.com/mcp and your AI calls this as the creator_commerce tool with method: trend. Same data, same credit. MCP setup
{
"tool": "creator_commerce",
"arguments": {
"method": "trend",
"id": "6963732702017668101"
}
}Request
curl "https://api.tokconnect.com/v1/creators/6963732702017668101/shop/trend" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/creators/6963732702017668101/shop/trend",
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/creators/6963732702017668101/shop/trend", {
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": {
"coverage": {
"days": 27,
"daysWithSales": 23,
"firstDayWithSales": "2026-10-02"
},
"currency": "USD",
"dataEnd": "2026-10-28",
"id": "6963732702017668101",
"market": "US",
"notes": [
"Market US (United States): amounts are in USD.",
"First day with recorded sales in this window: 2026-10-02."
],
"series": [
{
"content_views": 238295,
"followers": 400,
"live_revenue": 9454.86,
"live_views": 14021,
"partition_day": "2026-10-02",
"revenue": 9572.82,
"sale": 44,
"unit_price": 217.56,
"video_revenue": 0,
"video_views": 224274
},
{
"content_views": 291172,
"followers": 300,
"live_revenue": 0,
"live_views": 0,
"partition_day": "2026-10-03",
"revenue": 78,
"sale": 2,
"unit_price": 39,
"video_revenue": 0,
"video_views": 291172
},
{
"content_views": 1529670,
"followers": 500,
"live_revenue": 21725.95,
"live_views": 42909,
"partition_day": "2026-10-04",
"revenue": 21842.95,
"sale": 92,
"unit_price": 237.42,
"video_revenue": 0,
"video_views": 1486761
}
],
"source": "TokConnect Shop Analytics (TikTok Shop US). Revenue and units are estimates: units track TikTok's sold counter; revenue is units times listed price.",
"totals": {
"revenue": 240984,
"units": 1092
},
"window": {
"days": 30,
"end": "2026-10-28",
"start": "2026-09-29"
}
},
"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.coverageobjectdata.coverage.daysintegerdata.coverage.daysWithSalesintegerdata.coverage.firstDayWithSalesstringdata.currencystringdata.dataEndstringdata.idstringdata.marketstringdata.notesarraydata.seriesarraydata.series[].content_viewsintegerdata.series[].followersintegerdata.series[].live_revenuenumberdata.series[].live_viewsintegerdata.series[].partition_daystringdata.series[].revenuenumberdata.series[].saleintegerdata.series[].unit_pricenumberdata.series[].video_revenueintegerdata.series[].video_viewsintegerdata.sourcestringdata.totalsobjectdata.totals.revenueintegerdata.totals.unitsintegerdata.windowobjectdata.window.daysintegerdata.window.endstringdata.window.startstringmetaobjectmeta.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/creators/{id}/shop/videosTheir selling videos, with revenue
Parameters
- idstringPathRequired
Creator: @handle, profile or video link, secUid (MS4wLjAB...) or numeric user id. TokConnect looks up the ids it needs.
7 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 - endstring
Shop Analytics methods: custom range end, YYYY-MM-DD (capped at the last complete day).
- limitinteger
Results per page. Shop Analytics methods max 100. Values above a method's maximum are lowered and reported in notes.
- regionstring
Market as an ISO country code, default US. Shop Analytics methods: sales data for that market, amounts in its currency. Live methods that take it (search, video detail, creator posts, Shop pages): TikTok as seen in that market where TikTok serves it. Core: US, GB, DE, FR, ES, JP, TH, VN, ID, MY, PH, BR, MX. Extended: PL, IT, NL, IE. Other countries are refused. See
shop_regions. - startstring
Shop Analytics methods: custom range start, YYYY-MM-DD.
- windowstring
Shop Analytics methods: date range ending at the last complete day (about 2 days ago). Default 30d. Use start/end for a custom range.
One of
7d30d90d180d365d
Use it in Claude or ChatGPT
Connect https://mcp.tokconnect.com/mcp and your AI calls this as the creator_commerce tool with method: videos. Same data, same credit. MCP setup
{
"tool": "creator_commerce",
"arguments": {
"method": "videos",
"id": "6963732702017668101"
}
}Request
curl "https://api.tokconnect.com/v1/creators/6963732702017668101/shop/videos" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/creators/6963732702017668101/shop/videos",
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/creators/6963732702017668101/shop/videos", {
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": {
"count": 20,
"currency": "USD",
"dataEnd": "2026-10-28",
"hasMore": true,
"id": "6963732702017668101",
"items": [
{
"ad": 0,
"ad2Cost": "$0.00",
"ad2Roas": 0,
"ad_cpa": 0,
"ad_revenue_ratio": "0%",
"ad_view_ratio": "0%",
"ai_video": 0,
"collect_day": "2026-10-26",
"content_type": "video",
"create_time": "2026/10/26 09:55:54",
"creator_uid": "6963732702017668101",
"description": "Don’t miss @Chrisappleton1 LIVE tonight on our TikTok! Who's in? 👀 #sharkbeauty #chrisappleton #tiktoklive #tiktokshop #hairtutorial",
"duration": "12s",
"follower_count": 278600,
"gpm": 0,
"handle": "sharkbeauty",
"id": "7700974905965268237",
"original_duration": 12,
"product_ids": [],
"revenue": "$0.00",
"sale": "0",
"views": "6.5k"
},
{
"ad": 0,
"ad2Cost": "$0.00",
"ad2Roas": 0,
"ad_cpa": 0,
"ad_revenue_ratio": "0%",
"ad_view_ratio": "0%",
"ai_video": 0,
"collect_day": "2026-10-01",
"content_type": "video",
"create_time": "2026/10/01 15:53:28",
"creator_uid": "6963732702017668101",
"description": "National Hair Day calls for two things: bouncy blowouts and shopping early prime day deals sale on @amazon . 🍒✨ Shop FlexStlye now. #sharkbeauty #sharkflexstyle #amazon #primeday #nationalhairday",
"duration": "18s",
"follower_count": 278100,
"gpm": 0,
"handle": "sharkbeauty",
"id": "7691789893600562446",
"original_duration": 18,
"product_ids": [],
"revenue": "$0.00",
"sale": "0",
"views": "12.08k"
},
{
"ad": 0,
"ad2Cost": "$0.00",
"ad2Roas": 0,
"ad_cpa": 0,
"ad_revenue_ratio": "0%",
"ad_view_ratio": "0%",
"ai_video": 0,
"collect_day": "2026-10-05",
"content_type": "video",
"create_time": "2026/10/05 10:38:44",
"creator_uid": "6963732702017668101",
"description": "Gentle on the skin, big on the glow. ✨Shop now. #sharkbeauty #sharkfacialproglow #gentle #dermdetox #sensitiveskin",
"duration": "16s",
"follower_count": 278600,
"gpm": 0,
"handle": "sharkbeauty",
"id": "7693193061777591565",
"original_duration": 16,
"product_ids": [],
"revenue": "$0.00",
"sale": "0",
"views": "4.36k"
}
],
"market": "US",
"next": "eyJwYWdlIjoyLCJzaXplIjoyMH0",
"notes": [
"Market US (United States): amounts are in USD."
],
"source": "TokConnect Shop Analytics (TikTok Shop US). Revenue and units are estimates: units track TikTok's sold counter; revenue is units times listed price.",
"window": {
"days": 30,
"end": "2026-10-28",
"start": "2026-09-29"
}
},
"meta": {
"credits_charged": 1,
"credits_remaining": 7906,
"request_id": "req_3f9c2a1b7d4e"
},
"next_cursor": "eyJwYWdlIjoyLCJzaXplIjoyMH0"
}Response fields
dataobjectThe tool's result. Compact by default; passdetail=fullfor the complete record.data.countintegerdata.currencystringdata.dataEndstringdata.hasMorebooleandata.idstringdata.itemsarraydata.items[].adintegerdata.items[].ad2Coststringdata.items[].ad2Roasintegerdata.items[].ad_cpaintegerdata.items[].ad_revenue_ratiostringdata.items[].ad_view_ratiostringdata.items[].ai_videointegerdata.items[].collect_daystringdata.items[].content_typestringdata.items[].create_timestringdata.items[].creator_uidstringdata.items[].descriptionstringdata.items[].durationstringdata.items[].follower_countintegerdata.items[].gpmintegerdata.items[].handlestringdata.items[].idstringdata.items[].original_durationintegerdata.items[].product_idsarraydata.items[].revenuestringdata.items[].salestringdata.items[].viewsstringdata.marketstringdata.nextstringdata.notesarraydata.sourcestringdata.windowobjectdata.window.daysintegerdata.window.endstringdata.window.startstringmetaobjectmeta.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
One playlist or collection
One creator playlist or saved collection (id from creator method=playlists or method=collections): detail or its videos. Example: {"id":"7123...","kind":"playlist","method":"videos"}.
/v1/playlists/{id}Name, video count, owner
Parameters
- idstringPathRequired
Playlist or collection id.
2 more optional parameters
- detailstring
compact (default) returns the useful fields; full adds the raw upstream payload (large).
Default
compactOne ofcompactfull - kindstring
playlist (default) or collection.
One of
playlistcollection
Use it in Claude or ChatGPT
Connect https://mcp.tokconnect.com/mcp and your AI calls this as the creator_playlist tool with method: detail. Same data, same credit. MCP setup
{
"tool": "creator_playlist",
"arguments": {
"method": "detail",
"id": "7628692798685940494"
}
}Request
curl "https://api.tokconnect.com/v1/playlists/7628692798685940494" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/playlists/7628692798685940494",
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/playlists/7628692798685940494", {
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": {
"creator": {
"handle": "nike",
"id": "208464585232822272",
"nickname": "Nike",
"secUid": "MS4wLjABAAAA_3ndMt8d_tECTdpKgCxcx238tOnQZX-20wqN01aMui5zQ7hsqSdff-jC5qYC-Cl_"
},
"id": "7628692798685940494",
"name": "Athlete Versus",
"videos": 4
},
"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.creatorobjectdata.creator.handlestringdata.creator.idstringdata.creator.nicknamestringdata.creator.secUidstringdata.idstringdata.namestringdata.videosintegermetaobjectmeta.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/playlists/{id}/videosThe videos in it
Parameters
- idstringPathRequired
Playlist or collection id.
- limitinteger
Results per page. Max 30. 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 - kindstring
playlist (default) or collection.
One of
playlistcollection
Use it in Claude or ChatGPT
Connect https://mcp.tokconnect.com/mcp and your AI calls this as the creator_playlist tool with method: videos. Same data, same credit. MCP setup
{
"tool": "creator_playlist",
"arguments": {
"method": "videos",
"id": "7628692798685940494",
"limit": "3"
}
}Request
curl "https://api.tokconnect.com/v1/playlists/7628692798685940494/videos?limit=3" \
-H "X-API-Key: $TOKCONNECT_API_KEY"import os
import requests
r = requests.get(
"https://api.tokconnect.com/v1/playlists/7628692798685940494/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/playlists/7628692798685940494/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": "eyJjdXJzb3IiOiIzIn0",
"videos": [
{
"allowsAdUse": true,
"caption": "@A’ja Wilson has been and forever will be a bucket 🪣",
"comments": 82,
"creator": {
"followers": 9300000,
"handle": "nike",
"id": "208464585232822272",
"nickname": "Nike",
"secUid": "MS4wLjABAAAA_3ndMt8d_tECTdpKgCxcx238tOnQZX-20wqN01aMui5zQ7hsqSdff-jC5qYC-Cl_",
"verified": true
},
"durationSec": 78,
"id": "7611313628892908814",
"isAd": true,
"language": "en",
"likes": 4538,
"posted": "2026-02-26T23:04:22Z",
"saves": 222,
"shares": 165,
"sound": {
"author": "Nike",
"id": "7611313645716507405",
"original": true,
"title": "original sound"
},
"url": "https://www.tiktok.com/@nike/video/7611313628892908814",
"views": 102300
},
{
"allowsAdUse": true,
"caption": "Sabrina Ionescu isn’t new to this",
"comments": 77,
"creator": {
"followers": 9300000,
"handle": "nike",
"id": "208464585232822272",
"nickname": "Nike",
"secUid": "MS4wLjABAAAA_3ndMt8d_tECTdpKgCxcx238tOnQZX-20wqN01aMui5zQ7hsqSdff-jC5qYC-Cl_",
"verified": true
},
"durationSec": 76,
"id": "7628691578630032653",
"isAd": true,
"language": "en",
"likes": 2677,
"posted": "2026-04-14T19:00:22Z",
"saves": 147,
"shares": 81,
"sound": {
"author": "Nike",
"id": "7628691779193211662",
"original": true,
"title": "original sound"
},
"url": "https://www.tiktok.com/@nike/video/7628691578630032653",
"views": 170100
},
{
"allowsAdUse": true,
"caption": "We all know Nelly Korda can sink putts but she can sink some baskets too.",
"comments": 152,
"creator": {
"followers": 9300000,
"handle": "nike",
"id": "208464585232822272",
"nickname": "Nike",
"secUid": "MS4wLjABAAAA_3ndMt8d_tECTdpKgCxcx238tOnQZX-20wqN01aMui5zQ7hsqSdff-jC5qYC-Cl_",
"verified": true
},
"durationSec": 84,
"id": "7629804861051161869",
"isAd": true,
"language": "en",
"likes": 2189,
"posted": "2026-04-17T19:00:09Z",
"saves": 136,
"shares": 115,
"sound": {
"author": "Nike",
"id": "7629804938620685069",
"original": true,
"title": "original sound"
},
"url": "https://www.tiktok.com/@nike/video/7629804861051161869",
"views": 184000
}
]
},
"meta": {
"credits_charged": 1,
"credits_remaining": 7906,
"request_id": "req_3f9c2a1b7d4e"
},
"next_cursor": "eyJjdXJzb3IiOiIzIn0"
}Response fields
dataobjectThe tool's result. Compact by default; passdetail=fullfor the complete record.data.hasMorebooleandata.nextstringdata.videosarraydata.videos[].allowsAdUsebooleandata.videos[].captionstringdata.videos[].commentsintegerdata.videos[].creatorobjectdata.videos[].creator.followersintegerdata.videos[].creator.handlestringdata.videos[].creator.idstringdata.videos[].creator.nicknamestringdata.videos[].creator.secUidstringdata.videos[].creator.verifiedbooleandata.videos[].durationSecintegerdata.videos[].idstringdata.videos[].isAdbooleandata.videos[].languagestringdata.videos[].likesintegerdata.videos[].postedstringdata.videos[].savesintegerdata.videos[].sharesintegerdata.videos[].soundobjectdata.videos[].sound.authorstringdata.videos[].sound.idstringdata.videos[].sound.originalbooleandata.videos[].sound.titlestringdata.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