Threads
Insights
Analytics and normalized metrics for Threads posts.
Fetch media analytics for a published Threads destination. Metrics are mapped into the shared Onepostly insights shape used across platforms.
Requires threads_manage_insights.
Request
curl "https://api.onepostly.com/v1/posts/POST_ID/insights" \
-H "x-api-key: op_YOUR_KEY"Optional: ?refresh=1 (or refresh=true) to bypass cache and refetch from Threads.
Response includes one entry per destination under insights.destinations.
Normalized fields
| Field | Notes |
|---|---|
impressions | Views |
reach | Always null on Threads |
likes | Likes |
comments | Replies |
shares | Shares, or reposts + quotes when available |
saves | Always null |
plays | Same as views (convenience alias) |
engagement | likes + comments + shares (null if all inputs are null) |
Missing values are null (not 0), unless a composite field sums available siblings.
Example response shape
{
"insights": {
"postId": "…",
"status": "ready",
"destinations": [
{
"destinationId": "…",
"platform": "threads",
"status": "ready",
"metrics": {
"impressions": 1200,
"reach": null,
"likes": 40,
"comments": 8,
"shares": 3,
"saves": null,
"plays": 1200,
"engagement": 51
}
}
]
}
}Errors / statuses
| Code / status | Meaning |
|---|---|
NOT_PUBLISHED | Destination not published yet |
INSIGHTS_PERMISSION | Missing insights scope → reconnect |
INSIGHTS_PENDING | Metrics not ready yet — retry later |
INSIGHTS_FAILED | Hard failure fetching metrics |
MISSING_EXTERNAL_ID | No media id on the destination |