List live comments for a post
Live comments for a published post, normalized across Facebook and Instagram. `mediumId` is **required**. By default returns every top-level comment (oldest-first on Facebook); set `filter=comments_and_replies` for everything including replies — on both channel types. Set `includeCuid=true` to resolve commenters against your identified users and add `cuid` to their comments. Paged via `paging.after` — echo it back as `after` for the next page, and check `paging.hasMore`.
/posts/{postId}/commentsBeta
Authorization
x-api-key x-date x-signature x-api-version Your API key (the ApiKeys document id).
In: header
Current timestamp as an IMF-fixdate string (GMT, US locale) "EEE, dd MMM yyyy HH:mm:ss z", e.g. "Sun, 06 Dec 2020 12:59:11 GMT". 30-second TTL.
In: header
HMAC-SHA256 of the x-date string keyed by your secret, lowercase hex.
In: header
API version you're coding against — currently 1. Required; a missing or unsupported value returns 400 with Missing or unsupported x-api-version header. Supported versions: 1.
In: header
Path Parameters
The published post id.
Query Parameters
The channel id (from GET /channels).
Coverage mode. toplevel_comments (default) returns every
top-level comment on the post (oldest-first on Facebook) — no
replies. comments_and_replies returns everything including
replies (each reply carries parentId); it also includes the
channel's own auto-replies — compare from.id to the page /
account id to identify them. On Instagram, replies are expanded
inline per top-level comment and flattened to the same shape —
there limit counts top-level comments (replies ride on top,
so a page can carry more than limit records), and a comment
whose reply list Meta truncated is flagged hasMoreReplies: true
(Instagram threads are one level deep, so parent + replies is
otherwise full coverage).
Opt-in identity enrichment. When true, each commenter is
resolved against the organization's identified users, and comments
whose author is identified gain a cuid — your own user id for
them. Unidentified commenters simply have no cuid field. Works
on both Facebook and Instagram channels. Off by default — it adds
identity lookups per page.
Max comments per page (passed natively to Meta).
Opaque page cursor — the paging.after of a previous response.
Cursors are only valid with the same filter value that produced
them — don't mix.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
Try it
read-onlyKept in this tab only and signed in your browser — your secret never leaves your device.
Path
Query
Enter your key and secret to send.
curl -X GET "https://example.com/posts/AbC123XyZ/comments?mediumId=FB_PAGE_123456789012345"{ "comments": [ { "id": "string", "message": "string", "createdTime": "string", "from": { "id": "string", "name": "string" }, "permalink": "string", "parentId": "string", "hasMoreReplies": true, "cuid": "string" } ], "paging": { "after": "string", "hasMore": true }}{ "message": "string"}{ "message": "string"}{ "message": "string"}{ "message": "string"}{ "message": "string"}{ "error": [ { "message": "string", "path": [ "string" ], "type": "string", "context": {} } ]}{ "message": "string"}Get published-post insights
Performance for one published post and its superpower: public/private replies, link-button clicks + CTR, reactions, comments, shares, auto-likes. Covers up to the last 365 days; older posts come back with `isOldPost=true` and empty funnel metrics. `mediumId` is **required**.
Export a post's stored comments to CSV
Export a post's **stored** comments to a CSV and return `{ totalCount, csvUrl }`. When there are no stored comments, `csvUrl` is `null` and `totalCount` is `0`. `mediumId` is **required**.