/v1/call/douyin.kol_performancePreviewDouyin KOL metrics API (Xingtu)
Only on Douyin.
The Douyin KOL metrics API (Xingtu) returns how a Douyin creator's videos did over the last 30 or 90 days, by Xingtu creator ID: videos, median views, average likes, comments and shares, engagement and completion ratios, expected cost per thousand views and per interaction. One call costs 3 credits ($0.006 to $0.01 depending on the pack); failed calls are free. Call it over HTTP or from your AI client over MCP. Last tested 2026-10-17.
Last updated:
Request and response
curl https://api.socialtoai.com/v1/call/douyin.kol_performance \ -H "Authorization: Bearer $SOCIALTOAI_KEY" \ -H "Content-Type: application/json" \ -d '{ "id": "6763236383382306828" }'import osimport requestsresponse = requests.post( "https://api.socialtoai.com/v1/call/douyin.kol_performance", headers={"Authorization": f"Bearer {os.environ['SOCIALTOAI_KEY']}"}, json={ "id": "6763236383382306828", },)print(response.json())# Connected over MCP? Ask in plain words.Use the Douyin Xingtu creator metrics interface (douyin.kol_performance) with id: 6763236383382306828.# Your AI calls the call tool with:{ "id": "6763236383382306828"}window{ "op": "douyin.kol_performance", "platform": "douyin", "status": "ok", "items": [ { "platform": "douyin", "id": "…", "ref": "…", "approx": [], "type": "entry", "entry_type": "xingtu_creator_metrics", "title": null, "url": null, "rank": null, "heat": null, "fields": { "videos": 763, "median_views": 237059, "average_likes": 11712, "average_comments": 993, "average_shares": 938, "engagement_rate": 0.0148, "engagement_rate_percentile": 0.512, "completion_rate": 0.2377, "completion_rate_percentile": 0.7391, "currency": "…", "cpm_21_60s": "537.29", "cpm_over_60s": "2238.73", "cpe_21_60s": "36.92", "cpe_over_60s": "153.84" } } ], "unavailable": [], "cost_credits": 3}- entry_type
- xingtu_creator_metrics
- videos
- 763
- median_views
- 237059
- average_likes
- 11712
- average_comments
- 993
- average_shares
- 938
- engagement_rate
- 0.0148
Names and text were removed from the sample; the numbers are as recorded.
2 parameters.
1 required.
Send them as a JSON body with POST. Your key goes in the Authorization header, never in the URL.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | Required | — | Xingtu creator ID, a string of digits; not the Douyin account ID: take it from the Xingtu creator search |
| window | string | Optional | "30d" | The period: the last 30 or the last 90 days"30d""90d" |
Where to get what you send.
idXingtu creator ID, a string of digits; not the Douyin account ID: take it from the Xingtu creator search (e.g. 6763236383382306828)
Every item these return carries its ref; send it as it is:
kol_searchXingtu creator search
The fields of each item.
What Douyin cannot give is marked.
| Field | Type | Meaning |
|---|---|---|
| items[].title | string | The entry's title or name. |
| items[].url | string | A link that opens it; null where the platform's list has none. |
| items[].rank | integer | Position on a board, from 1. |
| items[].heat | integer | The platform's heat score. |
| items[].fields.videos | integer | Videos in the period. |
| items[].fields.median_views | integer | Median views per video. |
| items[].fields.average_likes | integer | Average likes per video. |
| items[].fields.average_comments | integer | Average comments per video. |
| items[].fields.average_shares | integer | Average shares per video. |
| items[].fields.engagement_rate | number | Engagement rate, 0 to 1. |
| items[].fields.engagement_rate_percentile | number | The share of comparable creators this engagement rate beats, 0 to 1. |
| items[].fields.completion_rate | number | Completion rate, 0 to 1. |
| items[].fields.completion_rate_percentile | number | The share of comparable creators this completion rate beats, 0 to 1. |
| items[].fields.currency | string | The currency of the four costs below. |
| items[].fields.cpm_21_60s | string | Expected cost per thousand views of a 21 to 60 second video. |
| items[].fields.cpm_over_60s | string | Expected cost per thousand views of a video over 60 seconds. |
| items[].fields.cpe_21_60s | string | Expected cost per interaction of a 21 to 60 second video. |
| items[].fields.cpe_over_60s | string | Expected cost per interaction of a video over 60 seconds. |
nullFields Douyin cannot giveDouyin gives every field of this call. Where one item lacks a value, that field is null.
Every item also has platform, id, ref, approx and type; the response around the items is the same on every call. Response format
What to expect.
1 call per second per key, 5 after a purchase; going over is not charged. Rate limits
A failed call costs 0 credits and is never retried on its own. Error codes
Once connected over MCP, these questions use it.
Get how a Douyin creator's videos did over the last 30 or 90 days, by Xingtu creator ID: 6763236383382306828.
3 creditscall {"op":"douyin.kol_performance","id":"6763236383382306828"}Get how a Douyin creator's videos did over the last 30 or 90 days, by Xingtu creator ID: 6763236383382306828, with window set to 90d.
3 creditscall {"op":"douyin.kol_performance","id":"6763236383382306828","window":"90d"}Search Douyin creators on Xingtu by words in their name: 美食, then for the first 3: get how a Douyin creator's videos did over the last 30 or 90 days, by Xingtu creator ID.
12 creditscall {"op":"douyin.kol_search","query":"美食"}call {"op":"douyin.kol_performance","id":"<ref>"} × 3