GET /internal/conversations
List conversations from the current backing store, including inbox summary counts. Supports cursor-based pagination vialimit and offset.
Maximum number of conversations to return. Defaults to
50, capped at 200.Number of conversations to skip. Defaults to
0. Must be non-negative.Inbox summary counts across all conversations (same as
GET /internal/inbox/summary).Array of conversation objects for the current page.
| Status | Condition |
|---|---|
200 | Conversations listed successfully |
GET /internal/conversations/
Retrieve a single conversation including its full message history.The conversation identifier returned from the list endpoint.
The full conversation record with all messages.
| Status | Condition |
|---|---|
200 | Conversation found |
404 | {"error": "conversation_not_found"} |
GET /internal/inbox/summary
Returns inbox summary counts without the full conversation list. Use this for dashboard badge counts.| Status | Condition |
|---|---|
200 | Summary returned |
GET /internal/conversations//messages
Retrieve only the messages for a given conversation without the full conversation metadata.The conversation identifier.
All messages in the conversation, oldest first.
| Status | Condition |
|---|---|
200 | Messages returned |
404 | {"error": "conversation_not_found"} |
POST /internal/conversations//messages
Send an outbound message in a conversation. Supports freeform text, template sends, interactive messages, and media.The conversation to send the message in.
Message body text. Required and must be at least one character. For template sends, pass an empty string or the template preview text.
The send mode. One of
"freeform" (default), "template", "interactive", or "media".The approved template name to use. Required when
sendMode is "template".WhatsApp’s 24-hour service window governs when you can send freeform messages. Outside the window, you must use an approved template. Switchbord’s send-eligibility checks enforce this constraint.
true when the message was appended to the conversation.The created message record with its assigned ID and status.
| Status | Condition |
|---|---|
201 | Message accepted and queued |
400 | Validation failure — {"error": "invalid_outbound_message", "issues": {...}} |
404 | Conversation not found — {"error": "conversation_not_found"} |
