Analytics · Robopost Docs

Analytics

On this page

Robopost collects metrics from the networks for each published post. The API gives you those numbers per post, summed per channel, and over time.

You need: an API key and a plan that includes analytics. Numbers are only collected for published posts.

A post's metrics

Every post has an analytics object: impressions, engagements, likes, comments, shares, saves, engagement_rate and last_synced_at. See List and read posts.

To ask the network for fresh numbers now:

curl -X POST https://public-api.robopost.app/v1/scheduled_posts/<post id>/analytics/refresh \
  -H "Authorization: Bearer $ROBOPOST_API_KEY"

The 202 answer means the refresh is queued; read the post again after a minute and check that last_synced_at moved. A refresh already running is not queued twice (code: REFRESH_RUNNING).

Totals per channel

curl "https://public-api.robopost.app/v1/analytics/channels?dt_from=2026-10-01T00:00:00Z&dt_to=2026-10-31T23:59:59Z" \
  -H "Authorization: Bearer $ROBOPOST_API_KEY"
{
  "dt_from": "2026-10-01T00:00:00.000Z",
  "dt_to": "2026-10-31T23:59:59.000Z",
  "channels": [
    { "channel_id": "…", "channel_name": "Ale Noa Channel", "social_network": "YOUTUBE",
      "published_posts": 31, "impressions": 48210, "engagements": 1904, "likes": 1500,
      "comments": 120, "shares": 260, "saves": 24, "engagement_rate": 0.0395,
      "last_synced_at": "2026-11-07T04:18:24.372Z" }
  ]
}

The range filters on when posts were published (default: the last 30 days, at most two years). Narrow it with channel_id or social_network (repeat the parameter for several).

curl "https://public-api.robopost.app/v1/analytics/timeseries?interval=week&by_channel=true&dt_from=2026-09-01T00:00:00Z" \
  -H "Authorization: Bearer $ROBOPOST_API_KEY"

interval is day, week (weeks start on Monday) or month, in UTC. Each series has one point per period, including periods without posts (zeros), so you can chart it directly. With by_channel=true you get one series per channel.

Team totals by network

GET /v1/aggregated_posts_analytics returns precomputed team totals per network and per day, week or month (interval, social_network, overall_only, dt_from, dt_to). analytics_last_sync on each row is when its totals were last recomputed.

Rows come oldest first, 200 per page (limit up to 1000, skip for the next page). On a team with a long history the first page can end months ago, which looks like the numbers stopped updating. To get the latest periods first, add sort_order=desc, or narrow the range with dt_from:

curl "https://public-api.robopost.app/v1/aggregated_posts_analytics?interval=DAILY&sort_order=desc&limit=30" \
  -H "Authorization: Bearer $ROBOPOST_API_KEY"

How fresh the numbers are

Each network is asked for a post's metrics regularly after it publishes, often at first and less over time. last_synced_at tells you when the numbers were last fetched. Networks also delay and revise their own numbers.

Next

Video series