Skip to main content
Fetch comments on the last N posts per platform or reply to a specific comment. Supported platforms: LinkedIn, Facebook, Instagram, YouTube, Threads, TikTok, Bluesky.

Base URL & auth

https://backend.postsiva.com
curl "https://backend.postsiva.com/unified/comments?limit=10" \
  -H "X-API-Key: psk_live_YOUR_KEY"
HeaderRequiredNotes
X-API-KeyYes (or Bearer)Workspace from key
X-Workspace-IdJWT onlyRequired with JWT
Requires an Inbox plan feature (REQUIRE_INBOX). See Authentication.

GET /unified/comments

Dashboard-style inbox: comments on recent posts for each connected platform.

Query parameters

ParameterTypeDefaultDescription
limitinteger10Posts per platform to fetch comments for, 1–50
platformsstring[]alllinkedin, facebook, instagram, youtube, threads, tiktok, bluesky
comments_per_postinteger50Max comments per post, 1–100
force_refreshbooleanfalseBypass comment caches and refresh from platform APIs
facebook_page_idsstring[]Only use these Facebook Pages for post/comment fetch
linkedin_organization_idsstring[]Only these LinkedIn orgs for company-post comments
force_refresh refreshes comments only. It does not rebuild unified post lists — LinkedIn org posts are still resolved from DB/cache (same posts used to decide which threads to read).

Example

curl -G "https://backend.postsiva.com/unified/comments" \
  -H "X-API-Key: psk_live_YOUR_KEY" \
  --data-urlencode "limit=5" \
  --data-urlencode "comments_per_post=25" \
  --data-urlencode "platforms=facebook" \
  --data-urlencode "platforms=instagram" \
  --data-urlencode "facebook_page_ids=123456789012345"

Response structure

Top-level: success, plus one slice per platform (linkedin, facebook, instagram, youtube, threads, tiktok, bluesky). Each platform slice:
FieldDescription
postsArray of { post_id, comments[], linkedin_page_id?, facebook_page_id? }
last_updatedISO refresh time
messageOptional status text
errorSet when platform fetch failed
Each comment (unified shape):
FieldTypeDescription
idstringPlatform comment id
typestring"comment" (top-level) or "reply"
textstringComment body
author_namestringDisplay name
author_idstringPlatform author id
author_profile_image_urlstringAvatar URL when available
created_atstringISO timestamp
like_countintegerLikes on the comment
reply_countintegerTotal replies when available
parent_idstringParent comment id (replies only)
repliesobject[]Nested replies (each type: "reply")
platform_metaobjectExtra platform fields

Example response

{
  "success": true,
  "facebook": {
    "posts": [
      {
        "post_id": "1234567890_9876543210",
        "facebook_page_id": "123456789012345",
        "comments": [
          {
            "id": "9876543210987654",
            "type": "comment",
            "text": "Love this update!",
            "author_name": "Jane Doe",
            "author_id": "111222333",
            "created_at": "2026-07-07T15:30:00Z",
            "like_count": 2,
            "reply_count": 1,
            "parent_id": null,
            "replies": [
              {
                "id": "9876543210987655",
                "type": "reply",
                "text": "Thanks Jane!",
                "author_name": "Your Page",
                "parent_id": "9876543210987654",
                "like_count": 0
              }
            ]
          }
        ]
      }
    ],
    "last_updated": "2026-07-08T12:00:00Z"
  }
}

POST /unified/comments/reply

Publish a reply to an existing comment. IDs are query parameters; the JSON body contains only the reply text.

Query parameters

ParameterRequiredDescription
platformYeslinkedin, facebook, instagram, youtube, threads, bluesky, tiktok
comment_idYesComment to reply to (Bluesky: parent at:// URI)
facebook_page_idFacebookPage id — required when platform=facebook
linkedin_organization_idLinkedIn orgOptional; must match stored org on the comment when set

Request body

FieldTypeRequiredDescription
textstringYesReply text (min length 1)
Post/video id is resolved server-side from synced comment rows where possible (YouTube, Instagram, and Bluesky may require ids from prior comment sync).
curl -X POST "https://backend.postsiva.com/unified/comments/reply?platform=facebook&comment_id=9876543210987654&facebook_page_id=123456789012345" \
  -H "X-API-Key: psk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Thanks for the feedback!"}'

Reply response

{
  "success": true,
  "reply_id": "9876543210987656",
  "message": "Reply posted",
  "platform": "facebook"
}

Error codes

StatuserrorMeaning
400PLATFORM_NOT_SUPPORTEDInvalid platform
400VALIDATION_ERRORMissing page/org id or empty text
404COMMENT_NOT_FOUNDComment not in synced data
502Platform API failure

Additional comment endpoints

MethodPathPurpose
GET/unified/comments/by-postComments for one post_id + platform (always refreshes when requested)
GET/unified/comments/repliesDirect replies to one parent comment_id
Use facebook_page_ids / linkedin_organization_ids query params the same way as the list endpoint when targeting page/org content.

MCP equivalents

MCP toolREST
get_commentsGET /unified/comments (or by-post with post_id + platform)
reply_to_commentPOST /unified/comments/reply
Connect at https://mcp.postsiva.com/mcpMCP tools.
  • Posts — recent posts that comments attach to
  • OAuth — platforms must be connected before inbox access
  • Authentication — inbox plan gate