FetchPI
Log in
← Browse all APIs

Bilibili post API

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

  • 1 documented endpoints
  • GET /v1/bilibili/posts/{id}

Contract summary (English): Get a normalized Bilibili video (capability bilibili.post)

Normalized response entity
bilibili/post
capability
bilibili.post

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

Use cases

  • Feed content-analysis pipelines with structured {{platform}} posts: text, metrics, timestamps and media references.
  • Power moderation, research and monitoring workflows that need the original content plus engagement counts.
  • Archive {{platform}} content as stable, normalized JSON instead of brittle page scraping.

Response fields

Bilibili Post (normalized)

Normalized Bilibili post — the ONLY upper-layer format; provider-private fields are dropped. Serves bilibili.post and the post lists of /v1/bilibili.

FieldTypeRequiredDescription
idstringRequiredPlatform-native post id (BV id / status id / answer or article id).
platform"bilibili"Required—
type"post"Required—
author.idstringRequiredAuthor platform id.
author.usernamestringRequiredAuthor addressing key without leading @.
author.display_namestring | nullRequiredAuthor display name.
author.verifiedbooleanRequired—
titlestring | nullOptionalPost title (the video title, article title or — for zhihu answers — the parent question title).
textstring | nullRequiredPost text (desc/status/excerpt; null for media-only posts).
created_atstringRequiredPost publish time, UTC RFC3339.
metrics.likesintegerRequiredLike count (aggregate like/coins equivalent, recorded without conversion).
metrics.commentsintegerRequiredComment count.
metrics.collectsintegerRequiredCollect/favorite count.
metrics.viewsintegerRequiredPlay/view count.
attachmentsobject[]OptionalMedia attachments (max 8): photo urls and/or the video block.
fetched_atstringRequiredNormalization time of the stored snapshot (UTC).

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/bilibili/posts/{id}
curl -H "Authorization: Bearer $MESHDATA_API_KEY" \
  "https://api.fetchpi.com/v1/bilibili/posts/1842951234567890123"
{
  "data": {
    "id": "BV1ma101c0001",
    "platform": "bilibili",
    "type": "post",
    "author": {
      "id": "3255000122",
      "username": "MeshData 哔哩站",
      "display_name": "MeshData 哔哩站",
      "verified": true
    },
    "title": "哔哩哔哩:数据 API 实战",
    "text": "一条关于数据 API 的视频。",
    "created_at": "2026-09-16T11:20:00Z",
    "metrics": {
      "likes": 18220,
      "comments": 940,
      "collects": 2100,
      "views": 480000
    },
    "attachments": [
      {
        "type": "video",
        "preview_image_url": "https://cdn.example.com/cover/bilibili-BV1ma101c0001.jpeg"
      }
    ],
    "fetched_at": "2026-09-21T09:00:00Z"
  },
  "meta": {
    "request_id": "req_01HTXQ8Z9HTQ",
    "freshness": {
      "mode": "default",
      "age_seconds": 0,
      "source_layer": "upstream",
      "stale": false
    },
    "billing": {
      "amount_credits": 100,
      "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

Which content fields are included?

The normalized content entity — text, author, timestamps, engagement metrics and media references — as documented in the field table below, plus freshness and billing metadata.

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