Skip to main content

Inbox API: agents draft, people approve

The inbox API lets an agent read the comments, mentions and reviews on your accounts and propose replies. Nothing is posted until a person approves the reply.

It is being rolled out gradually and returns 404 until it is enabled for your workspace.

Networks​

NetworkStatus
BlueskyAvailable
MastodonAvailable
LinkedIn PagesAvailable
Google Business Profile (reviews)Available
Facebook Pages, InstagramAfter Meta approves the engagement permissions (see network permissions)
XNot planned: X charges for every read

The flow​

  1. Read. GET /{workspaceUuid}/inbox/conversations lists conversations with the latest message, newest activity first. Filter with status, unread, account_id, provider, sentiment, ai_label and since. GET .../inbox/conversations/{id} returns the last 50 messages.
  2. Draft. POST .../inbox/conversations/{id}/drafts with {"body": "..."} stores a pending draft. By default it replies to the latest incoming message; send in_reply_to (a message id) to pick another. Needs the write ability.
  3. Approve. A workspace admin or member opens Reply drafts at https://postboost.co/app/{workspaceUuid}/inbox-drafts, edits the text if needed, and approves or rejects it. Approval sends the reply. A different API key with the publish ability can also call POST .../inbox/drafts/{id}/approve or /reject.
  4. Check. GET .../inbox/drafts/{id} shows status: pending, approved, rejected, sent, or failed with an error.

Rules​

  • The API key that wrote a draft cannot approve it (403, code: self_approval). Give your agent a key with read and write only.
  • A draft is sent at most once. Approving, editing or deleting a draft that was already reviewed returns 409.
  • Reply length limits: Bluesky 300 characters, Mastodon 500, LinkedIn 1250, Google 4000.
  • Viewers cannot use the inbox API.
  • PATCH .../inbox/conversations/{id} marks a conversation open or resolved, and read or unread.
  • The MCP servers do not offer approve or reject tools: a person approves.

Notifications​

  • Webhooks: subscribe to inbox.draft.created (a draft is waiting) and inbox.draft.sent (an approved reply was posted). data is the draft as GET .../inbox/drafts/{id} returns it.
  • Email: once a day, workspace admins get one digest listing drafts that have waited more than 4 hours, with a link to Reply drafts. No email is sent when nothing is waiting.