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.
Authorization
bearerAuth API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.
In: header
Path Parameters
Zernio post ID or platform-specific post ID. Zernio IDs are auto-resolved. LinkedIn third-party posts accept full activity URN or numeric ID. On Facebook and Instagram, a comment ID is also accepted here and returns that comment's replies.
Query Parameters
(Reddit only) Subreddit name
Maximum number of comments to return
1 <= value <= 10025Pagination cursor, returned by a previous call as pagination.cursor. This is the platform's own opaque paging value passed through verbatim: never construct, decode or validate it client-side.
(Reddit and TikTok only) Get replies to a specific comment
Response Body
application/json
application/json
application/json
{ "status": "string", "comments": [ { "id": "string", "message": "string", "createdTime": "2019-08-24T14:15:22Z", "from": { "id": "string", "name": "string", "username": "string", "picture": "string", "isOwner": true, "verifiedType": "blue" }, "likeCount": 0, "replyCount": 0, "platform": "string", "url": "string", "replies": [ {} ], "repliesHasMore": true, "canReply": true, "canDelete": true, "canHide": true, "canLike": true, "isHidden": true, "isLiked": true, "likeUri": "string", "cid": "string", "parentId": "string", "rootUri": "string", "rootCid": "string" } ], "post": { "id": "string", "fullname": "string", "title": "string", "selftext": "string", "author": "string", "subreddit": "string", "permalink": "string", "url": "string", "score": 0, "numComments": 0, "createdUtc": 0, "over18": true, "stickied": true, "flairText": "string", "isGallery": true }, "pagination": { "hasMore": true, "cursor": "string" }, "meta": { "platform": "string", "postId": "string", "accountId": "string", "subreddit": "string", "lastUpdated": "2019-08-24T14:15:22Z", "adComments": { "adId": "string", "adCommentsUrl": "string" } }}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.
Set comment moderation status
Set a comment's moderation status. Supported on YouTube only. Use this to work a moderation queue: approve a held comment (`published`), reject it (`rejected`), or send it back for review (`heldForReview`). The request must be authorized by the owner of the channel or video the comment belongs to. You cannot moderate comments on videos you do not own. This is distinct from `POST /v1/inbox/comments/{postId}/{commentId}/hide`, which covers Facebook, Instagram, Threads, and X and does not apply to YouTube.