Docs
X (Twitter)

Insights

Analytics and normalized metrics for X posts.

Fetch post analytics for a published X destination. Metrics are mapped into the shared Onepostly insights shape used across platforms.

Request

curl "https://api.onepostly.com/v1/posts/POST_ID/insights?destinationId=DEST_ID" \
  -H "x-api-key: op_YOUR_KEY"

Requires tweet.read. Wallet: billed as an X read at X list prices.

Normalized fields

FieldMeaning
impressionsImpression count when available
reachAlways null on X
likesLike count
commentsReply count
sharesRetweets + quotes
savesBookmark count
playsSame as impressions when present
engagementlikes + comments + shares + saves (null if all inputs are null)

Missing values are null (not 0), unless a composite field deliberately treats missing parts as 0 when at least one sibling is present (shares, engagement).

Example response shape

{
  "status": "ready",
  "metrics": {
    "impressions": 1200,
    "reach": null,
    "likes": 42,
    "comments": 3,
    "shares": 11,
    "saves": 5,
    "plays": 1200,
    "engagement": 61
  }
}

Errors

CodeMeaning
MISSING_EXTERNAL_IDDestination not published
INSIGHTS_PERMISSIONMissing tweet.read or unauthorized
INSUFFICIENT_WALLETOnepostly wallet empty
INSIGHTS_FAILEDTweet not found or other hard failure

Tips

  • For retweet counts, prefer metrics.shares over listing retweeters (list can be flaky)
  • Impressions may stay null depending on X access tier

See also