FetchPI
Log in

Douyin user_followers API

Douyin user_followers data in one REST call — normalized to the stable JSON schema shared across every FetchPI platform.

  • 1 documented endpoints
  • GET /v1/douyin/users/{username}/followers

Contract summary (English): List Douyin followers (capability douyin.user_followers)

Normalized response entity
douyin/user_followers
capability
douyin.user_followers

Every response also carries freshness (cache / default / live) and billing metadata.

Use cases

  • Analyze a {{platform}} account's audience: follower and following lists as normalized, paginated JSON.
  • Spot shared followers between accounts to map audiences and detect engagement groups.
  • Estimate audience quality and overlap before partnerships — no raw page exports needed.

Response fields

Douyin douyin.user_followers response (normalized envelope)

Response envelope of the /v1/douyin douyin.user_followers capability. Cursor is opaque and platform-independent; page size follows the request's `limit` parameter (1..100, default 20).

FieldTypeRequiredDescription
dataprofile[]Required—
next_cursorstring | nullRequiredOpaque pagination cursor; null when the list is exhausted.
meta.request_idstringRequired—
meta.freshness.modecache | default | liveRequired—
meta.freshness.age_secondsinteger | nullOptional—
meta.freshness.source_layercache | db | upstreamRequired—
meta.freshness.stalebooleanOptional—
meta.billing.cache_hitbooleanRequired—
meta.billing.amount_creditsintegerRequiredCredits actually charged for this request (the settlement unit; 1 credit = $0.0001, permanent).

Field notes are shown in the contract's original English.

Response meta

FieldTypeRequiredDescription
modecache | default | liveRequiredEffective mode after merging param > max_age > source policy (D-004).
age_secondsinteger | nullOptionalAge of served data; null when unknown.
source_layercache | db | upstreamRequiredWhich layer served the response (PRD §10).
stalebooleanOptionalTrue when stale data was served under stale_if_error / SWR (D-004).
billing.amount_creditsintegerRequiredMicro-USD (1e-6 USD) actually charged for this request.
billing.cache_hitbooleanRequired—

Field notes are shown in the contract's original English.

Example request & response

GET/v1/douyin/users/{username}/followers
curl -H "Authorization: Bearer $MESHDATA_API_KEY" \
  "https://api.fetchpi.com/v1/douyin/users/newdev/followers"
{
  "data": [
    {
      "id": "7004994945113",
      "platform": "douyin",
      "type": "profile",
      "username": "meshdata_dev",
      "display_name": "MeshData 抖音站",
      "description": "短视频形式的数据 API 教程。",
      "url": "https://fetchpi.com",
      "profile_image_url": "https://cdn.example.com/avatar/douyin-meshdata.jpg",
      "verified": true,
      "created_at": "2019-06-01T00:00:00Z",
      "metrics": {
        "followers": 1288000,
        "following": 88,
        "posts": 412,
        "likes": 18600000
      },
      "fetched_at": "2026-09-21T09:00:00Z"
    }
  ],
  "next_cursor": null,
  "meta": {
    "request_id": "req_01HTXQ8Z9HTQ",
    "freshness": {
      "mode": "default",
      "age_seconds": 0,
      "source_layer": "upstream",
      "stale": false
    },
    "billing": {
      "amount_credits": 200,
      "cache_hit": false
    }
  }
}

Free demo

Create a free account, grab an API key and call this endpoint from the browser-based Playground.

Try it in the Playground

Parameter tables, error codes and response semantics for this endpoint live in the API documentation.

Open the endpoint reference

Frequently asked questions

How are long follower lists handled?

Lists are cursor-paginated — request the next page with the returned cursor until you have what you need.

Can I try this endpoint for free?

Yes — register an account, grab an API key and call it from the Playground in the console.

How is the user_followers capability billed?

Data API calls are billed per request in credits, with different cache/live freshness multipliers. Current per-capability prices live on the pricing page.

Pricing

Per-request credit billing with cache/live freshness options — current prices live on the pricing page.