Skip to main content
Public engagement is what people write under your posts, and the posts that mention you. It is exposed as a single feed across every connected account, whatever the platform underneath.
This is not the inbox. A DM is a private thread with one contact; a comment is public, hangs off a post, and several people reply to each other under it. The two live at separate paths and never mix — a commenter never becomes a broadcast recipient.

What each platform allows

Threads cannot delete someone else’s reply — the platform only lets you delete your own posts — so DELETE returns unsupported_for_platform there. Hiding does the same job and is reversible. A mention belongs to its author: you can reply to it, never hide or delete it. Both actions are refused explicitly rather than failing at the platform.

The feed

Every row carries the post it sits under: a comment read without the content it answers cannot be answered well.

Filters

pending is the working list: it leaves out your own replies and anything deleted, since neither is waiting on you.
hidden is three-state. false = visible, true = hidden by you, null = the platform does not report it for this object. Do not read null as visible.

Where the data comes from

Two sources write the same rows, and you need both:
  • Webhooks, which deliver new comments in real time. Subscribe to the comments field — see Webhooks.
  • POST /v1/engagement/sync, which reads the platform to catch up after an outage, to fill in what a webhook payload omits (like counts, hidden state, author), and to reach an older post.
Without postId, the sweep covers each account’s most recent posts and its mentions. Pass postId to reach further back. A failing account never stops the others — the response names it:

Acting on a row

All four take the engagement _id, not a platform comment id.
Replying stores your reply immediately, so it appears in the feed without waiting for the webhook to echo it back. A deleted comment keeps its row, flagged deleted. A comment removed after you answered it is part of the exchange, and reading it back is the only way to make sense of the thread later.

From an assistant

Over MCP: list_engagement, get_engagement_summary, sync_engagement, reply_to_engagement, hide_comment, mark_engagement_handled, delete_comment. get_engagement_summary is the cheap first call — it returns how much is unanswered per account, so the assistant can decide where to look before reading anything.