analytics

Refresh post analytics across every connected platform

Reads engagement for posts Cadencz published in the last 30 days and stores a snapshot per post.

One platform failing never stops the others. Each platform — and each channel within it — is fetched independently, and the response names exactly what failed and why. A 200 with status: "partial" means some platforms refreshed and others did not; read platforms[] for the detail.

Two modes. force=true is the Refresh button: the user asked, so cadence gating is bypassed. force=false is arrival — opening Analytics, or signing in — and refreshes only if the data is older than the plan's interval, returning status: "skipped" otherwise. Either way a full-history read is still weekly; pressing refresh buys fresh numbers, not deeper ones.

post/api/v1/analytics/refresh

Request

  • Base URL: https://api.cadencz.com (the document declares no server; this is the origin it was published from)
  • URL: https://api.cadencz.com/api/v1/analytics/refresh
  • Auth: HTTP bearer

Query parameters

forceboolean

True for the Refresh button. False for the automatic refresh when a page loads, which respects the plan's refresh interval.

Response

Successful Response

status'ok' | 'partial' | 'failed' | 'empty' required
refreshedinteger required
postsinteger required

Example response

{
  "platforms": [
    {
      "platform": "bluesky",
      "posts": 12,
      "refreshed": 12,
      "status": "ok"
    },
    {
      "detail": "@acme: X refused the metrics read. Reading tweets requires the Basic tier ($200/month) or higher — the free tier is publish-only.",
      "platform": "x",
      "posts": 6,
      "refreshed": 0,
      "status": "failed"
    }
  ],
  "posts": 18,
  "refreshed": 12,
  "status": "partial"
}

Changes

No recorded changes to this operation across all 1 revision of this API.