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
| Network | Status |
|---|---|
| Bluesky | Available |
| Mastodon | Available |
| LinkedIn Pages | Available |
| Google Business Profile (reviews) | Available |
| Facebook Pages, Instagram | After Meta approves the engagement permissions (see network permissions) |
| X | Not planned: X charges for every read |
The flow
- Read.
GET /{workspaceUuid}/inbox/conversationslists conversations with the latest message, newest activity first. Filter withstatus,unread,account_id,provider,sentiment,ai_labelandsince.GET .../inbox/conversations/{id}returns the last 50 messages. - Draft.
POST .../inbox/conversations/{id}/draftswith{"body": "..."}stores a pending draft. By default it replies to the latest incoming message; sendin_reply_to(a messageid) to pick another. Needs thewriteability. - 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 thepublishability can also callPOST .../inbox/drafts/{id}/approveor/reject. - Check.
GET .../inbox/drafts/{id}showsstatus:pending,approved,rejected,sent, orfailedwith anerror.
Rules
- The API key that wrote a draft cannot approve it (
403,code: self_approval). Give your agent a key withreadandwriteonly. - 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 conversationopenorresolved, 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) andinbox.draft.sent(an approved reply was posted).datais the draft asGET .../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.