Social Analytics for a Post

One post's full metrics plus its day-by-day timeline

Published

GET
/v1/social/analytics/posts/{postId}
curl -X GET "https://api.orshot.com/v1/social/analytics/posts/<POST_ID>?from=<FROM>&to=<TO>&refresh=<REFRESH>" \
  -H "Authorization: Bearer <ORSHOT_API_KEY>"

Overview#

Returns everything analytics knows about a single post: total metrics, per-platform results, sync status, and a daily timeline of impressions and engagement since it published.

For posts published through Orshot, :postId is the post id from the posts endpoints. For posts synced from your platforms, use the analytics_post_id from the analytics overview.

Endpoint
https://api.orshot.com/v1/social/analytics/posts/:postId

Request#

JavaScript
await fetch("https://api.orshot.com/v1/social/analytics/posts/512", {
  method: "GET",
  headers: {
    Authorization: "Bearer <ORSHOT_API_KEY>",
  },
});
JSON
{
  "data": {
    "post": {
      "analytics_post_id": "665f1c0f8a2b3c0012ab34cd",
      "post_id": 512,
      "is_external": false,
      "content": "Our new pricing is live.",
      "status": "published",
      "published_at": "2026-08-12T09:00:00.000Z",
      "platform": "linkedin",
      "post_url": "https://www.linkedin.com/feed/update/...",
      "thumbnail_url": "https://storage.orshot.com/.../launch.png",
      "media_type": "image",
      "metrics": {
        "impressions": 790,
        "reach": 561,
        "likes": 66,
        "comments": 2,
        "shares": 0,
        "saves": 1,
        "clicks": 2,
        "engagement_rate": 8.7,
        "last_updated": "2026-08-13T10:12:00.000Z"
      },
      "platforms": [
        {
          "platform": "linkedin",
          "metrics": { "impressions": 790, "likes": 66 },
          "sync_status": "synced",
          "post_url": "https://www.linkedin.com/feed/update/..."
        }
      ],
      "sync_status": "synced",
      "sync_message": null
    },
    "timeline": [
      {
        "date": "2026-08-12",
        "platform": "linkedin",
        "impressions": 610,
        "likes": 51,
        "comments": 2
      },
      {
        "date": "2026-08-13",
        "platform": "linkedin",
        "impressions": 180,
        "likes": 15
      }
    ]
  }
}

Right after publishing, sync_status is pending while the platform reports its first numbers. Poll with refresh=1 sparingly, or just wait a few minutes.

Query Parameters#

ParameterTypeRequiredDescription
fromStringNoTimeline start date, YYYY-MM-DD
toStringNoTimeline end date, YYYY-MM-DD
refreshStringNoPass 1 to bypass the cache and pull fresh numbers from the platforms

Error Responses#

Not found (404)#

The post does not exist in this workspace, has no analytics yet, or an external analytics_post_id does not belong to this workspace's accounts.

Other errors match the analytics overview endpoint: 403 with code analytics_not_enabled, and 429 with a Retry-After header.

Was this page helpful?

Ready to automate?

Start rendering images, PDFs and videos from your templates in under 2 minutes. Free plan, no credit card.

Get your API key
  • Image, PDF and video generation via API
  • Visual editor with AI and smart layouts
  • Zapier, Make, MCP and 50+ integrations
  • White-label embed for your own app
  • 30 free credits — no credit card required