---
title: "Get analytics for multiple posts in one call"
method: GET
path: "/analytics/posts"
tags: ["Analytics"]
---

# Get analytics for multiple posts in one call

`GET /analytics/posts`

Batch version of GET /analytics/posts/{id}. Pass a comma-separated list of numeric OmniSocials post ids in `ids` and get each post's latest per-platform metrics back in a single request (thread posts are summed across their parts, same as the single-post endpoint). Built for sync clients that would otherwise call the single-post endpoint once per post and hit the 100 requests/minute rate limit. Up to 100 ids per call; page through larger sets in batches. Every requested id is returned (in request order); ids with no collected analytics come back with an empty `platforms` object rather than being omitted, so clients can map results 1:1 to the ids they sent. Reads stored snapshots from our database, the same data as the single-post endpoint, so it never calls the social platforms live.

## Query parameters

- `ids` string, required

## Response `200`

Per-post analytics, one entry per requested id

- object
  - `data` PostAnalytics[]
    - `post_id` string
    - `platforms` object — One entry per platform the post was published to. For thread platforms (X, Bluesky, Mastodon, Threads) a post can publish as a chain of several parts; the entry sums each part's metrics so you get the thread's total (matching the in-app analytics), and reports the thread's root as `platform_post_id`.
  - `count` integer — Number of entries returned (equals the number of valid ids requested)

## Other responses

- `400` — Missing `ids`, more than 100 ids, or one or more ids that are not numeric OmniSocials post ids (e.g. a platform post id was supplied).

---

[API](https://skmtc.dev/omnisocials/apis/omnisocials-api.md) · [All operations](https://skmtc.dev/omnisocials/apis/omnisocials-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/omnisocials/omnisocials-api/revisions/e53b89af0b98/schema)
