---
title: "Post Analytics API"
method: GET
path: "/v1/analytics/post"
tags: ["Utilities"]
---

# Post Analytics API

`GET /v1/analytics/post`

## Request

- Base URL: `https://api.captapi.com`
- URL: `https://api.captapi.com/v1/analytics/post`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

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

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). An unresolvable URL is 404 at 0 credits — never a zero-filled metrics object. 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).

Docs: https://captapi.com/apis/analytics-post

## Query parameters

- `url` string, required
- `cache` boolean

## Response `200`

Success. The data object for this endpoint.

- object
  - `success` unknown, required
  - `data` object, required
    - `platform` string: Platform identifier for this response (matches the endpoint's platform).
    - `url` string: Canonical URL of the item.
    - `id` string: Stable platform ID for the item.
    - `title` string: Title of the item.
    - `publishedAt` string: Publish date (ISO 8601) when the platform exposes an absolute timestamp.
    - `durationSeconds` integer: Length in seconds for this item (full media length, or a segment span when the endpoint documents a start/end).
    - `thumbnailUrl` string: Thumbnail image URL.
    - `author` object
      - `username` string: Author @handle when known — never the display name.
      - `displayName` string: Display name of the account. Canonical across profile endpoints (prefer over name).
      - `url` string: Canonical URL of the item.
      - `verified` unknown
    - `metrics` object
      - `views` integer: View count when the platform exposes one.
      - `viewsIsApproximate` boolean: true when views came from a compact UI count. Usually false on YouTube watch pages with exact viewCount.
      - `likes` integer: Like count (number).
      - `comments` integer: Comment count. On Reddit this is the public num_comments integer — not null. Reddit's documented nulls on this endpoint are views / shares / saves.
      - `commentsIsApproximate` boolean: true 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.
      - `shares` unknown
      - `saves` unknown
      - `interactions` integer: Sum of available engagement counts (likes + comments + shares + saves). Null when none of those are present.
      - `interactionsIsApproximate` boolean: true when interactions (and thus engagementRate) inherit uncertainty from an approximate numerator such as comments.
      - `engagementRate` number: Engagement 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.
      - `engagementRateBasis` string: Always "interactions/views" (ratio). Do not compare to popular-creators without reading that field's basis.

## Other responses

- `400`: Bad request: wrong platform URL, unknown endpoint, or an invalid parameter value. Not billed.
- `401`: Missing, invalid or revoked API key. Not billed.
- `402`: Not enough credits for this request. Not billed.
- `404`: The resource does not exist or is not public. Not billed.
- `422`: A required parameter is missing or has the wrong type. Not billed.
- `429`: Rate limit reached. Wait for Retry-After seconds. Not billed.
- `502`: The platform could not be reached or returned nothing usable. Retryable, not billed. 503 and 504 use the same envelope.

---

[API](https://skmtc.dev/captapi/apis/captapi-api.md) · [All operations](https://skmtc.dev/captapi/apis/captapi-api/llms.txt) · [OpenAPI document](https://skmtc.dev/captapi/apis/captapi-api/revisions/c9b9ac5ff1bd?raw)
