Utilities
GET /v1/analytics/post

Post Analytics API

Unified metrics for one post, video, or reel — platform auto-detected (1 credit).

1 credit per request
TL;DR
Unified metrics for one post, video, or reel — platform auto-detected (1 credit). The Post Analytics API (Utilities) is a single authenticated GET request to /v1/analytics/post that responds with clean JSON and costs 1 credit. Pass cache=true for a free 24h cache hit; default is always fresh. Start with 100 free credits — no credit card.

What is the Post Analytics API?

Pass a public post/video/reel URL from one of 11 platforms (YouTube, TikTok, Instagram, Facebook, X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble) — not the full Captapi catalog (Kwai, Twitch, Spotify, Snapchat, and others are out of scope). Platform is auto-detected; cross-platform URLs are the point of this endpoint. Returns one normalized metrics object: views, likes, comments, shares, saves, interactions, engagementRate with engagementRateBasis=interactions/views (ratio), plus commentsIsApproximate / interactionsIsApproximate when a compact UI count (e.g. YouTube "2.4M") contributed. Schema is stable across networks; unavailable values are null (YouTube has no public share/save counts; author.username is the @handle when known, never the display name). Do not compare this engagementRate to TikTok popular-creators — that field uses a different engagementRateBasis (percent). Flat 1 credit. Pass cache=true for the 24h shared cache (0 credits on hit).

What you get

  • Post Analytics fields as clean structured JSON
  • IDs, URLs, and titles where the platform exposes them
  • Engagement or popularity signals when available
  • Stable IDs for joining with other endpoints

Try it

Open in Playground

Fill in the parameters below and copy a ready-to-run request, or open the live Playground to run it against your account (no API key paste).

Parameters

Sign in to run live
curl "https://api.captapi.com/v1/analytics/post?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DdQw4w9WgXcQ" \
  -H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."

Edit the parameters and the code updates instantly. Switch languages and hit copy.

Example response

{
  "success": true,
  "data": {
    "platform": "youtube",
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "id": "dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "publishedAt": "2009-10-25T06:57:33.000Z",
    "durationSeconds": 213,
    "thumbnailUrl": "https://i.ytimg.com/vi_webp/dQw4w9WgXcQ/sddefault.webp",
    "author": {
      "username": "RickAstleyYT",
      "displayName": "Rick Astley",
      "url": "https://www.youtube.com/channel/UCuAXFkgsw1L7xaCfnd5JJOw",
      "verified": null
    },
    "metrics": {
      "views": 1799593805,
      "viewsIsApproximate": false,
      "likes": 19303349,
      "comments": 2400000,
      "commentsIsApproximate": true,
      "shares": null,
      "saves": null,
      "interactions": 21703349,
      "interactionsIsApproximate": true,
      "engagementRate": 0.0121,
      "engagementRateBasis": "interactions/views"
    }
  }
}

Billing metadata is returned in response headers: X-Captapi-Credits (credits charged), X-Captapi-Cache (hit or miss), and X-Captapi-Source. Failed requests (4xx/5xx) are never charged. See the full list of error codes in the error reference.

Response structure

A successful call returns success, cached, creditsUsed, and a data object with the following fields:

Top-level fields

  • platformPlatform identifier for this response (matches the endpoint's platform).
  • urlCanonical URL of the item.
  • idStable platform ID for the item.
  • titleTitle of the item.
  • publishedAtPublish date (ISO 8601) when the platform exposes an absolute timestamp.
  • durationSecondsLength in seconds for this item (full media length, or a segment span when the endpoint documents a start/end).
  • thumbnailUrlThumbnail image URL.

Author

The author object contains:

  • usernameAuthor @handle when known — never the display name.
  • displayNameDisplay name of the account. Canonical across profile endpoints (prefer over name).
  • urlCanonical URL of the item.
  • verifiedWhether the account is verified on this platform.

Metrics

The metrics object contains:

  • viewsView count when the platform exposes one.
  • viewsIsApproximatetrue when views came from a compact UI count. Usually false on YouTube watch pages with exact viewCount.
  • likesLike count (number).
  • commentsComment count.
  • commentsIsApproximatetrue when comments came from a compact UI count (e.g. YouTube "2.4M"). The integer is still returned, but treat it as ± rounding error — not unit-precise.
  • sharesNull when the platform does not expose public share counts (e.g. YouTube).
  • savesNull when the platform does not expose public save/bookmark counts (e.g. YouTube).
  • interactionsSum of available engagement counts (likes + comments + shares + saves). Null when none of those are present.
  • interactionsIsApproximatetrue when interactions (and thus engagementRate) inherit uncertainty from an approximate numerator such as comments.
  • engagementRateEngagement rate. Meaning depends on engagementRateBasis — never compare values across different bases. Post/compare analytics: interactions/views (ratio 0–1+). TikTok popular-creators: Creative Center interact rate (percent) or avgLikesPerVideo/followers × 100.
  • engagementRateBasisAlways "interactions/views" (ratio). Do not compare to popular-creators without reading that field's basis.

Parameters

NameTypeRequiredDescription
urlstringYesPublic post/video/reel URL from one of 11 platforms: YouTube, TikTok, Instagram, Facebook, X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, or Rumble. Platform is auto-detected — cross-platform URLs are expected here (unlike single-platform endpoints). Not in scope: Kwai, Twitch, Spotify, Snapchat, and other Captapi platforms.
cachebooleanNoSet true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.

Authentication: send your key as Authorization: Bearer capt_live_.... A typical call costs 1 credit. Pass cache=true for a free 24h cache hit; default is always fresh.

Using an AI agent? This endpoint is the MCP tool analytics_post via @captapi/mcp. Set it up →

How it works

  1. 1. Sign up — get 100 free credits, no card required.
  2. 2. Create a key from your dashboard.
  3. 3. Send one request to /v1/analytics/post and parse the JSON response.

Use cases

Cross-platform dashboards

One metrics{} shape for YouTube, TikTok, Instagram, and eight other networks — read engagementRateBasis before comparing rates.

Honest reporting

When commentsIsApproximate is true, show rounded comments and inherited interactions uncertainty in reports.

Handle vs display name

Join on author.username (@handle), never displayName.

Frequently asked questions

What does the Post Analytics API do?+

The Post Analytics API lets you fetch full metadata and key stats from a public Utilities post or video URL using one GET request to /v1/analytics/post. It returns clean JSON — no OAuth or infrastructure setup required.

How many credits does the Post Analytics API cost?+

Each successful call costs 1 credit. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Hits include cached + cachedAt. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Failed or empty results are never charged.

Do I need a Utilities API key or OAuth?+

No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle proxies, rate limits, retries, and authentication for you.

How is engagementRate calculated?+

On Post Analytics and Compare, engagementRate is always interactions ÷ views (a ratio). Every metrics object includes engagementRateBasis: "interactions/views". TikTok popular-creators uses a different basis (Creative Center percent or avgLikesPerVideo/followers) — do not compare those numbers to post analytics without reading engagementRateBasis.

What do commentsIsApproximate / interactionsIsApproximate mean?+

Some platforms expose compact UI counts (YouTube "2.4M" comments). We still return an integer, but commentsIsApproximate=true means that integer is rounded — interactions and engagementRate inherit the same uncertainty via interactionsIsApproximate. Prefer exact likes when present; do not treat interactions as unit-precise when the flag is true.

Which platforms are supported?+

Eleven: YouTube, TikTok, Instagram, Facebook, X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, and Rumble. That is intentionally not the full Captapi catalog — Kwai, Twitch, Spotify, Snapchat, and others are out of scope for this unified metrics shape.

Is the Post Analytics API suitable for production use?+

Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Hits include cached + cachedAt. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Use it for analytics, monitoring, and content automation.

More Utilities APIs

Ready to use the Post Analytics API?

Sign up, grab your key, and make your first call in 60 seconds.