FetchPI
Log in

Douyin user_posts API

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

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

Contract summary (English): List Douyin user videos (capability douyin.user_posts)

Normalized response entity
douyin/user_posts
capability
douyin.user_posts

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

Use cases

  • Monitor what a {{platform}} account publishes, in order, with normalized per-item metrics.
  • Detect new activity when scheduled jobs re-query the feed — ideal for alerting and digest workflows.
  • Benchmark publishing cadence and engagement across accounts with comparable, structured output.

Response fields

Douyin douyin.user_posts response (normalized envelope)

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

FieldTypeRequiredDescription
datapost[]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}/posts
curl -H "Authorization: Bearer $MESHDATA_API_KEY" \
  "https://api.fetchpi.com/v1/douyin/users/newdev/posts"
{
  "data": [
    {
      "id": "7412050000000001001",
      "platform": "douyin",
      "type": "post",
      "author": {
        "id": "7004994945113",
        "username": "meshdata_dev",
        "display_name": "MeshData 抖音站",
        "verified": true
      },
      "text": "一条关于数据 API 的短视频。",
      "created_at": "2026-09-17T12:34:56Z",
      "metrics": {
        "likes": 32810,
        "comments": 1204,
        "shares": 988,
        "collects": 5600,
        "views": 2140000
      },
      "attachments": [
        {
          "type": "video",
          "preview_image_url": "https://cdn.example.com/cover/douyin-7412050000000001001.jpeg",
          "duration_ms": 45678
        }
      ],
      "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

Can I poll the feed on a schedule?

Yes — the endpoint is a plain REST call, so any scheduler can re-query it. Use the freshness parameters to control how current each answer is and how it is billed.

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_posts 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.