# Douyin Xingtu creator analytics API (douyin.xingtu_creator_analytics)

- Canonical page: https://everyinfra.com/en/douyin-api/xingtu_creator_analytics
- Endpoint: POST https://api.everyinfra.com/api/v1/social with {"platform": "douyin", "action": "xingtu_creator_analytics", "params": {...}}
- Price: $0.000556 per call ($0.56 per 1,000 requests); failed calls and empty results are not charged
- Returns: single object
- Mode: sync; add "mode": "async" for slow tasks

Douyin Xingtu creator analytics reads one creator's commercial snapshot from Xingtu, Douyin's platform for commercial creator partnerships, given the Douyin ID shown on the creator's profile. It returns Xingtu's `creator_id`, the creator type and grade, follower count, the average play count Xingtu reports, city, province, gender, category, content themes and tags, flags for Xingtu membership and e-commerce, and the lowest quote on display. Before a booking, brand and agency teams use it to vet a creator: how large the audience is, how many plays a typical video draws, and where the price starts.

`average_play_count` is Xingtu's own figure, useful because public Douyin pages do not show plays, but it is not a forecast of future results. `lowest_quote_cny` is a quote in yuan, not a settled price. `is_xingtu_creator` tells you whether the account is a Xingtu creator at all, and `city` is written in the platform's own language without normalization.

## Health

- Live health (24h percent, hourly and daily trends): https://api.everyinfra.com/api/v1/social/availability?platform=douyin&action=xingtu_creator_analytics

## Parameters

| name | type | required | default | description |
|---|---|---|---|---|
| douyin_id | not declared | yes | not declared | The visible Douyin account ID (`unique_id`) returned by the ordinary `creator_search` action and required by `xingtu_creator_analytics` and `xingtu_rate_card`; `xingtu_creator_search` does not return it. It is distinct from a `user_id` (`secUid`), Xingtu `creator_id`, and nickname. |

## Response fields (items in `results`)

| field | meaning |
|---|---|
| creator_id | platform-native meaning |
| creator_type | platform-native meaning |
| follower_count | Followers. null means not disclosed, not 0. |
| average_play_count | platform-native meaning |
| city | City name in the platform's language, not normalized. |
| province | platform-native meaning |
| gender | Gender as shown on the account. |
| category_id | platform-native meaning |
| content_themes | platform-native meaning |
| tags | Array of tags. An empty array, not null, when there are none. |
| creator_grade | platform-native meaning |
| is_xingtu_creator | platform-native meaning |
| ecommerce_enabled | platform-native meaning |
| lowest_quote_cny | platform-native meaning |
| platform | Source platform identifier, the same as platform in the request (for example xiaohongshu, tiktok). |

## Example

```bash
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "platform": "douyin",
  "action": "xingtu_creator_analytics",
  "params": {
    "douyin_id": "XiaoZhenlla"
  }
}'
```

```python
import os
import requests

response = requests.post(
    "https://api.everyinfra.com/api/v1/social",
    headers={"Authorization": f"Bearer {os.environ['EVERYINFRA_API_KEY']}"},
    json={
        "platform": "douyin",
        "action": "xingtu_creator_analytics",
        "params": {
            "douyin_id": "XiaoZhenlla",
        },
    },
    timeout=120,
)
print(response.status_code)
print(response.json())
```

## Response example

No real sample for these example parameters yet: structure only, every value is a placeholder (…).

```text
{
  "id": "req_…",
  "platform": "douyin",
  "action": "xingtu_creator_analytics",
  "results": {
    "creator_id": …,
    "creator_type": …,
    "follower_count": …,
    "average_play_count": …,
    "city": …,
    "province": …,
    "gender": …,
    "category_id": …,
    "content_themes": …,
    "tags": …,
    "creator_grade": …,
    "is_xingtu_creator": …,
    "ecommerce_enabled": …,
    "lowest_quote_cny": …,
    "platform": …
  },
  "billing": {
    "charged": …,
    "charged_usd": …,
    "balance_after_usd": …,
    …
  },
  "quota": { … }
}
```

## FAQ

### Where do I get the `douyin_id`?

Use the Douyin ID shown on the creator's profile, which the Douyin Creator search capability returns for every account it finds. Results from Xingtu creator search do not include it: they carry Xingtu's commercial IDs and quotes instead, so they cannot be passed here. A secUid starting with MS4w or a nickname will not work either.

### How do `creator_id` and `douyin_id` differ?

`douyin_id` is the public handle you pass in, the one shown on the profile. `creator_id` is Xingtu's own stable ID for the same creator; it is neither the profile ID that other Douyin capabilities use nor the handle. Store both so you can join Xingtu data with profile, audience and video data later.

### Is `lowest_quote_cny` what a collaboration will cost?

No. It is the lowest quote Xingtu displays for the creator, a listed price rather than a transaction price, and its unit has not been verified, so do not use it directly as a quote. To see every quote tier with its settlement notes and whether it is open, read the Douyin Xingtu creator rate card capability with the same `douyin_id`.

## Also

- Capability catalog (no key): https://api.everyinfra.com/api/v1/social/catalog?platform=douyin
- OpenAPI: https://everyinfra.com/openapi.json · Agents guide: https://everyinfra.com/agents.md
