Skip to main content
The inbox is every chat your agents handle, across four channels, in one list. With an API key you can read threads, see who’s handling them, and change their status, assignee, priority and tags, for example to mirror them into a helpdesk or CRM. Phone calls aren’t in the inbox; they’re in Calls.
What API keys can and can’t do today. Reading threads and changing their state work with API keys (inbox:read, inbox:write). Sending replies, attachments, taking over and handing back are dashboard-only for now: they need a teammate signed in. Connecting the channels themselves happens in the dashboard through Meta sign-in.

List threads

Threads are ordered by last activity. The answer pages with a cursor (see Pagination) and adds counts for the open, needs-you, mine and unread tabs.
window is the channel’s reply window. WhatsApp, Messenger and Instagram only allow free-form replies for 24 hours after the customer’s last message; web chat has no window. Read one thread with GET /v1/inbox/threads/{channel}/{thread_id}.

Change a thread’s state

PATCH /v1/inbox/threads/{channel}/{thread_id}/state with any of:
POST /v1/inbox/threads/{channel}/{thread_id}/read marks a thread as read.

More you can read

Get every message as it happens

Thread endpoints return a preview of the last message, not the whole history. To capture each message, subscribe a webhook to the conversation events:
conversation.message.received and conversation.message.sent then carry the message text, and conversation.analyzed carries the summary. Without include_content, the events still arrive, minus the text. See Events.