Skip to main content
GET
/
comments
List comments
curl --request GET \
  --url http://localhost:4100/api/v1/comments \
  --header 'Authorization: Bearer <token>'
[
  {
    "id": "<string>",
    "socialAccountId": "<string>",
    "externalCommentId": "<string>",
    "externalParentId": "<string>",
    "externalPostId": "<string>",
    "externalUrl": "<string>",
    "author": {
      "handle": "<string>",
      "displayName": "<string>",
      "avatarUrl": "<string>"
    },
    "body": "<string>",
    "createdAt": "2023-11-07T05:31:56Z",
    "readAt": "2023-11-07T05:31:56Z",
    "reply": {
      "body": "<string>",
      "externalId": "<string>",
      "createdAt": "2023-11-07T05:31:56Z"
    }
  }
]

Authorizations

Authorization
string
header
required

Your Postbreeze API key

Query Parameters

workspaceId
string

Optional. When set, returns comments in only this workspace. When omitted, returns comments across every workspace the API key can reach.

platform
enum<string>

Optional. Filter to comments from a specific platform (e.g. INSTAGRAM, YOUTUBE). Platforms without inbox support are rejected with 400.

Available options:
INSTAGRAM,
FACEBOOK_PAGE,
X,
LINKEDIN_PERSON,
LINKEDIN_COMPANY,
TIKTOK_BUSINESS,
TIKTOK_PERSONAL,
YOUTUBE,
PINTEREST,
THREADS,
BLUESKY
unread
boolean

Optional. Pass true to return only unread comments (readAt is null). Any other value (or omitting the param) returns both read and unread rows.

Response

Inbox comments visible to the caller, newest-first by the platform's reported createdAt.

id
string

Prefixed cuid identifier of the comment row.

platform
enum<string>

Which platform this comment was pulled from.

Available options:
INSTAGRAM,
FACEBOOK_PAGE,
X,
LINKEDIN_PERSON,
LINKEDIN_COMPANY,
TIKTOK_BUSINESS,
TIKTOK_PERSONAL,
YOUTUBE,
PINTEREST,
THREADS,
BLUESKY
socialAccountId
string

Prefixed cuid of the connected channel that owns the post. Matches an id from GET /social-accounts, so consumers can group inbox rows by channel without a second call.

externalCommentId
string

Platform-side identifier of the comment itself. Unique per (socialAccountId, externalCommentId) — re-running refresh upserts in place rather than creating duplicates.

externalParentId
string | null

Platform-side parent id when this comment is itself a reply nested inside a thread. Null for top-level comments on the post.

externalPostId
string

Platform-side identifier of the post the comment belongs to. Stored even for posts that weren't scheduled through Postbreeze, so the inbox can deep-link "View on platform".

externalUrl
string | null

Server-built deep link to the comment in the platform's native UI. Null when the platform doesn't expose a stable per-comment URL (some Instagram comments fall in this bucket).

author
object

Author snapshot captured at fetch time. Frozen — platform-side renames after fetch won't be reflected here.

body
string

Plain-text body of the comment.

createdAt
string<date-time>

When the platform says the comment was posted.

readAt
string<date-time> | null

When a user marked the comment read in the Postbreeze inbox. Null while the row is still unread. Filter on unread=true to see only rows where this is null.

reply
object

The reply Postbreeze posted on this comment, if any. Null when the comment hasn't been replied to through Postbreeze. Replies posted natively on the platform are not surfaced here.