SocialToAIStart freeConsole
POST/v1/call/douyin.account_audiencePreview

Douyin trend-index creator follower profile API

Only on Douyin.

The Douyin trend-index creator follower profile API returns who follows a Douyin account from the platform's own index tool, by the account's numeric ID: the share of each segment by gender, age, province, city, city tier, phone brand and interest. Not limited to marketplace creators; shares only, no head counts. One call costs 2 credits ($0.004 to $0.0067 depending on the pack); failed calls are free. Call it over HTTP or from your AI client over MCP. Last tested 2026-10-17.

100 credits on sign-up, no card needed
2 creditsper call
One objectreturned per call
2026-10-17last tested
1.9 KBsample response, 1 item

Last updated:

Preview: this interface is not marked stable yet, so its parameters and fields may still change. It is charged like any other call, and a failed call is not charged.

Request and response

curl https://api.socialtoai.com/v1/call/douyin.account_audience \  -H "Authorization: Bearer $SOCIALTOAI_KEY" \  -H "Content-Type: application/json" \  -d '{    "id": "66598046050"  }'
import osimport requestsresponse = requests.post(    "https://api.socialtoai.com/v1/call/douyin.account_audience",    headers={"Authorization": f"Bearer {os.environ['SOCIALTOAI_KEY']}"},    json={        "id": "66598046050",    },)print(response.json())
# Connected over MCP? Ask in plain words.Use the Douyin trend-index creator follower profile interface (douyin.account_audience) with id: 66598046050.# Your AI calls the call tool with:{  "id": "66598046050"}
Sign in to run2 creditsOpens in the Playground with these parameters after you sign in. It never runs by itself.
200 OK1.9 KB2 credits
{  "op": "douyin.account_audience",  "platform": "douyin",  "status": "ok",  "items": [    {      "platform": "douyin",      "id": "…",      "ref": "…",      "approx": [],      "type": "entry",      "entry_type": "audience",      "title": null,      "url": null,      "rank": null,      "heat": null,      "fields": {        "measured_at": null,        "gender": [          {            "name": "male",            "share": 0.8084029405057243,            "count": null          },          {            "name": "female",            "share": 0.1915970594942758,            "count": null          }        ],        "age": [          {            "name": "31-40",            "share": 0.3573003477857061,            "count": null          },          {            "name": "41-50",            "share": 0.2595408957167182,            "count": null          }        ],        "province": [          {            "name": "广东",            "share": 0.14160949971558792,            "count": null          },          {            "name": "江苏",            "share": 0.07285886667660696,            "count": null          }        ],        "city": [          {            "name": "北京",            "share": 0.03281000167057653,            "count": null          },          {            "name": "上海",            "share": 0.027333702606498388,            "count": null          }        ],        "interest": [          {            "name": "随拍",            "share": 0.04880862874319531,            "count": null          },          {            "name": "未分类(垂直度不足)",            "share": 0.045695193136280836,            "count": null          }        ],        "device": [          {            "name": "华为",            "share": 0.30586610757827787,            "count": null          },          {            "name": "苹果",            "share": 0.22449642440387466,            "count": null          }        ],        "city_tier": [          {            "name": "三线",            "share": 0.22936908477712395,            "count": null          },          {            "name": "新一线",            "share": 0.20041213759459334,            "count": null          }        ],        "crowd": null,        "purchase_category": null,        "purchase_amount": null      }    }  ],  "unavailable": ["fields.measured_at", "fields.gender.count", "fields.age.count", "fields.province.count", "fields.city.count", "fields.interest.count", "fields.device.count", "fields.city_tier.count", "fields.crowd", "fields.purchase_category", "fields.purchase_amount"],  "cost_credits": 2}
entry_type
audience
measured_at
null
crowd
null
purchase_category
null
purchase_amount
null

Names and text were removed from the sample; the numbers are as recorded.

Sample dataFull response

1 parameter.
All required.

Send them as a JSON body with POST. Your key goes in the Authorization header, never in the URL.

NameTypeRequiredDefaultDescription
idstringRequired—The account's numeric Douyin ID (uid), a string of digits; not the token starting with MS4w that the profile endpoint takes

Where to get what you send.

id

The account's numeric Douyin ID (uid), a string of digits; not the token starting with MS4w that the profile endpoint takes (e.g. 66598046050)

No other interface of the platform returns it: take it from the web page or link as described above.

The fields of each item.
What Douyin cannot give is marked.

FieldTypeMeaning
items[].titlestringThe entry's title or name.
items[].urlstringA link that opens it; null where the platform's list has none.
items[].rankintegerPosition on a board, from 1.
items[].heatintegerThe platform's heat score.
items[].fields.measured_atstringalways nullThe day the figures are for, as the start of that day in China time (UTC+8).
items[].fields.genderarrayBy gender: name, share, count.count: always null here
items[].fields.agearrayBy age group: name, share, count.count: always null here
items[].fields.provincearrayBy province: name, share, count.count: always null here
items[].fields.cityarrayBy city, the largest only: name, share, count.count: always null here
items[].fields.interestarrayBy interest: name, share, count.count: always null here
items[].fields.devicearrayBy phone brand: name, share, count.count: always null here
items[].fields.city_tierarrayBy city tier: name, share, count.count: always null here
items[].fields.crowdarrayalways nullBy the consumer groups the platform sorts people into: name, share, count.
items[].fields.purchase_categoryarrayalways nullBy category of goods bought: name, share, count.
items[].fields.purchase_amountarrayalways nullBy amount spent per order: name, share, count.
nullFields Douyin cannot give

Read null as “Douyin did not give this”, not as zero. These are always null on this call:

  • fields.measured_atThe day the figures are for, as the start of that day in China time (UTC+8).
  • fields.crowdBy the consumer groups the platform sorts people into: name, share, count.
  • fields.purchase_categoryBy category of goods bought: name, share, count.
  • fields.purchase_amountBy amount spent per order: name, share, count.
  • fields.gender.countBy gender: name, share, count.
  • fields.age.countBy age group: name, share, count.
  • fields.province.countBy province: name, share, count.
  • fields.city.countBy city, the largest only: name, share, count.
  • fields.interest.countBy interest: name, share, count.
  • fields.device.countBy phone brand: name, share, count.
  • fields.city_tier.countBy city tier: name, share, count.

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.

One call returns one object, with no pages, for 2 credits.

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.

  1. Get who follows a Douyin account from the platform's own index tool, by the account's numeric ID: 66598046050.
    call {"op":"douyin.account_audience","id":"66598046050"}
    2 credits

Questions.
Short answers.

Everything on Douyin
Do I need a Douyin account or Douyin's own API access?
No. You only need a SocialToAI key. The call returns content and account information publicly visible on Douyin; you never sign in to Douyin or apply for anything there.
What does “Preview” mean here?
Preview: this interface is not marked stable yet, so its parameters and fields may still change. It is charged like any other call, and a failed call is not charged.

Your AI is one URL away
from all of social media.

100 credits on sign-up, no card needed