List commented posts
Returns posts with comment counts from all connected accounts. Aggregates data across multiple accounts.
Responses are cached for up to 10 minutes, so the feed may lag new comments by that
window. Do not poll this endpoint for real-time updates: subscribe to the
comment.received webhook, which fires for every new comment across your posts and
carries the post reference needed to keep this list current.
For users with the Ads add-on (accounts on usage-based billing always qualify), the user's Meta ads
(boosted/dark posts) are included too. There's one row per (ad, placement-with-comments):
an ad that runs on both Facebook feed and Instagram feed produces up to two rows (the
Page dark post and the IG media have separate comment threads), each flagged
isAd: true with adId and placement (id is {adId}:{placement}). Use
?platform=metaads to return only ad rows; passing facebook/instagram returns
organic posts only (no ads); omitting platform returns both. Fetch a row's thread
from GET /v1/ads/{adId}/comments?placement={placement}. Ad comment counts are read with
the Marketing API token (Facebook side) or the connected Instagram account's token
(Instagram side); a row whose count can't be read is omitted.
Pagination walks each account's platform listing. Following nextCursor reaches past
the first page on Facebook, Instagram, Threads, LinkedIn and YouTube, since they are
the platforms that support a server-side date window; on the others the listing stops
at its first page. Cursor pagination is only coherent for the default sort
(sortBy=date, sortOrder=desc): with sortOrder=asc, or with sortBy=comments,
the cursor filter does not match the sort order and the second page is unreliable.
nextCursor is opaque: pass it back verbatim, never construct or parse it, its
composition may change without notice. Because each page re-queries a live window,
results can still shift between requests, so dedupe by id on the client.
commentCount semantics differ by platform: YouTube's includes replies, Facebook's counts
top-level comments only.
Authorization
bearerAuth API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.
In: header
Query Parameters
Filter by profile ID
Filter by platform. metaads is a synthetic value meaning the user's ads (boosted/dark posts) only; facebook/instagram return organic posts only. tiktok covers accounts connected through the TikTok Business app only; developer-app TikTok accounts are returned under meta.accountsSkipped.
Value in
- "facebook"
- "instagram"
- "twitter"
- "bluesky"
- "threads"
- "youtube"
- "linkedin"
- "reddit"
- "tiktok"
- "metaads"
Minimum comment count
0 <= valuePosts created after this date
date-timeSort field
"date"Value in
- "date"
- "comments"
Sort order
"desc"Value in
- "asc"
- "desc"
1 <= value <= 10050Filter by specific account ID
Response Body
application/json
application/json
{ "data": [ { "id": "string", "platform": "string", "accountId": "string", "accountUsername": "string", "content": "string", "picture": "string", "permalink": "string", "createdTime": "2019-08-24T14:15:22Z", "commentCount": 0, "likeCount": 0, "cid": "string", "subreddit": "string", "isAd": true, "adId": "string", "placement": "facebook" } ], "pagination": { "hasMore": true, "nextCursor": "string" }, "meta": { "accountsQueried": 0, "accountsFailed": 0, "failedAccounts": [ { "accountId": "string", "accountUsername": "string", "platform": "string", "error": "string", "code": "string", "retryAfter": 0 } ], "lastUpdated": "2019-08-24T14:15:22Z", "accountsSkipped": [ { "accountId": "string", "platform": "string" } ] }}Send typing indicator
Show a typing indicator in a conversation. Platform support: - Facebook Messenger: Shows "Page is typing..." for 20 seconds - Instagram: Shows "typing..." to the recipient (works for both Instagram Login and Facebook Login accounts). The recipient must be signed in to Instagram to see it. - Telegram: Shows "Bot is typing..." for 5 seconds - WhatsApp: Shows "typing..." for up to 25 seconds. Requires a recent inbound message in the conversation (Meta references the inbound message id) and also marks that message as read as a side-effect. - All others: Returns 200 but no-op (platform doesn't support it) Typing indicators are best-effort. The endpoint always returns 200 even if the platform call fails; `success` reports whether a typing indicator was actually sent to the platform (`false` on unsupported platforms or when the platform call failed).
Get post comments
Fetch comments for a specific post. Requires accountId query parameter. On Facebook and Instagram, passing a COMMENT id as `postId` is also supported and returns that comment's replies instead of the post's top-level comments. This is not available on YouTube, where `postId` must be a video id. Responses are cached for up to 10 minutes, so a page may lag new comments by that window. Do not poll this endpoint for real-time updates: subscribe to the `comment.received` webhook, which delivers new comments as they arrive. Your own writes (creating, replying to, or deleting a comment) refresh the cache immediately. TikTok is served for accounts connected through the TikTok for Business app: `postId` is the TikTok video id, each top-level comment carries up to three inline replies, and `commentId` pages the full reply list of one comment. Developer-app TikTok accounts return 400 with code `PLATFORM_LIMITATION`.