Skip to main content
Version: Latest

Communication

Send messages and inspect channels for Messenger, Instagram, SMS, Telegram, Web Chatt, and WhatsApp.

📄️Ignore one contact on an application channel

The identifier is ignored only inside the Hub; it is not blocked at WhatsApp, Instagram, Messenger, SMS, Telegram or Web Chatt. Matching inbound events, provider echoes and contact-specific message statuses are discarded before new messages, sessions, billing or customer webhooks are created. WhatsApp COEX history threads for ignored contacts are also skipped. Account-wide events without a contact identity continue normally; existing conversations and charges are not removed, and sending through the Hub API is not blocked. WhatsApp accepts phone or BSUID; Instagram and Telegram accept ID or username; Messenger accepts ID; SMS accepts phone; Web Chatt accepts visitor_id. Phone values are compared as digits, usernames case-insensitively without the leading @, and IDs and BSUIDs exactly. Prefer provider IDs: usernames match only when the provider supplies them. Web Chatt visitor IDs are controlled by the browser and can change when local data is cleared. An already-connected ignored Web Chatt visitor receives message.ack with status ignored; an ignored visitor connecting again is closed with WebSocket policy code 1008.

📄️List configured channels for the API key application

Returns a safe channel identity subset for the application selected by the API key. Each `from` is the simplest configured alias accepted by the corresponding send endpoint, falling back to the application channel ID. Stored configuration values and credentials are never returned. Sandbox channels include safe synthetic `configurationValues` containing their display name and keyword username. Completed WhatsApp, Instagram, and Messenger Sandboxes are included with their keyword and `isSandbox: true`. Empty regular channels, deleted or inactive channels, pending Sandboxes, and incomplete OAuth connections are excluded. APIS2.ME channels are never exposed. offset is a zero-based page index: offset=1&limit=20 returns the second page (skip=20).

📄️Send a Facebook Messenger message

Media captions are not supported: companion content.text is discarded for imageUrl, videoUrl, audioUrl and documentUrl. Send the description as a separate text message. Set `from` to the sandbox keyword or application-channel UUID to send through the application's Messenger Sandbox. `to` is the external identifier of an active sandbox session. The API key must belong to the application that owns the sandbox channel. Messenger Sandbox accepts text, image, video and audio content. Sandbox errors include `SANDBOX_NOT_FOUND`, `INVALID_SANDBOX_FROM`, `SANDBOX_APPLICATION_MISMATCH`, `SANDBOX_SESSION_NOT_FOUND`, `SANDBOX_SESSION_NOT_CONNECTED`, `SANDBOX_SESSION_EXPIRED`, `SANDBOX_CHANNEL_NOT_CONFIGURED`, `SANDBOX_MESSAGE_LIMIT_REACHED`, `SANDBOX_CHANNEL_NOT_ALLOWED`, `SANDBOX_MESSAGE_SEND_FAILED`, and `UNSUPPORTED_MESSAGE_TYPE`. Sandbox media accepts text, mimeType, filename and voice companions. Sandbox responses are enqueued. Public message sends may transfer active/awaiting_human sessions and authorize session billing; typing controls do not persist messages; read controls follow the ordinary persisted outbound path. HTTP validation/authorization/wallet errors use ApiErrorResponse; HTTP 200 status:error is a provider submission failure.

📄️Send an Instagram message

Media captions are not supported: companion content.text is discarded for imageUrl, videoUrl and audioUrl. Send the description as a separate text message. Outbound documentUrl is not supported. Set `from` to the sandbox keyword or application-channel UUID to send through the application's Instagram Sandbox. `to` is the external identifier of an active sandbox session. The API key must belong to the application that owns the sandbox channel. Instagram Sandbox accepts text, image, video and audio content. Sandbox errors include `SANDBOX_NOT_FOUND`, `INVALID_SANDBOX_FROM`, `SANDBOX_APPLICATION_MISMATCH`, `SANDBOX_SESSION_NOT_FOUND`, `SANDBOX_SESSION_NOT_CONNECTED`, `SANDBOX_SESSION_EXPIRED`, `SANDBOX_CHANNEL_NOT_CONFIGURED`, `SANDBOX_MESSAGE_LIMIT_REACHED`, `SANDBOX_CHANNEL_NOT_ALLOWED`, `SANDBOX_MESSAGE_SEND_FAILED`, and `UNSUPPORTED_MESSAGE_TYPE`. Sandbox media accepts text, mimeType, filename and voice companions. Sandbox responses are enqueued. Public message sends may transfer active/awaiting_human sessions and authorize session billing; typing controls do not persist messages; read controls follow the ordinary persisted outbound path. HTTP validation/authorization/wallet errors use ApiErrorResponse; HTTP 200 status:error is a provider submission failure.

📄️Send a Web Chatt message

The widget displays content.text below imageUrl, videoUrl or documentUrl, aligned to the left for inbound and outbound messages. Document captions require widget v1.3.3 or later. Audio can be sent, but companion text is not displayed for audioUrl; send its description as a separate text message. Sends a message to a visitor through the Web Chatt channel selected by `from`. Messages for offline visitors are stored as pending and retain the successful `sent` API response. The API key application must own the selected channel.

📄️Send a WhatsApp message

For regular WhatsApp sends, content.text is delivered as a caption with imageUrl, videoUrl or documentUrl. audioUrl has no caption, including with voice=true; send its description as a separate text message. Set `from` to the sandbox keyword or application-channel UUID to send through the application's WhatsApp Sandbox. `to` is the external identifier of an active sandbox session. The API key must belong to the application that owns the channel. WhatsApp Sandbox accepts text, the fake sandbox template, image, video, audio and document content. Sandbox errors include `SANDBOX_NOT_FOUND`, `INVALID_SANDBOX_FROM`, `SANDBOX_APPLICATION_MISMATCH`, `SANDBOX_SESSION_NOT_FOUND`, `SANDBOX_SESSION_NOT_CONNECTED`, `SANDBOX_SESSION_EXPIRED`, `SANDBOX_CHANNEL_NOT_CONFIGURED`, `SANDBOX_MESSAGE_LIMIT_REACHED`, `SANDBOX_TEMPLATE_PARAMETERS_INVALID`, `SANDBOX_CHANNEL_NOT_ALLOWED`, `SANDBOX_MESSAGE_SEND_FAILED`, and `UNSUPPORTED_MESSAGE_TYPE`. For a regular channel, an outbound message other than typing or mark-as-read transfers the recipient's active AI session before provider delivery. Non-template content requires a customer inbound message on the same channel within the preceding 24 hours; an active internal session alone does not open that window. Template content may be sent without a recent inbound message when `content` contains only `template` and optional `context`; optional fields omitted from the request do not affect this exemption. `enqueued` acknowledges provider acceptance, not delivery. From 2026-10-01 at 00:00 America/Sao_Paulo, non-template outbound Service messages include 1,000 free messages per connected number from the first to the last day of each calendar month in the connected number's configured billing time zone (UTC when no WABA time zone has been stored). Reconnecting, renewing the number subscription or resetting organization tiers does not replenish this allowance. Each additional Service message costs BRL 0.09, with no terminal volume cap. Only events from this activation onwards consume that allowance. Insufficient eligible balance rejects the send with the existing 402 insufficient-balance response before provider delivery. Sandbox and template category pricing are unchanged. Sandbox media accepts text, mimeType, filename and voice companions. Sandbox responses are enqueued. Sandbox delivery statuses are scoped to the current sandbox connection. After disconnect/reconnect, late statuses for the previous connection are not delivered to the new connection webhooks. Public message sends may transfer active/awaiting_human sessions and authorize session billing; typing/read controls do not persist messages. HTTP validation/authorization/wallet errors use ApiErrorResponse; HTTP 200 status:error is a provider submission failure. WhatsApp provider authentication, including UT/UAT renewal on migrated connections, is managed by the Hub. API clients continue using their Application x-api-key; provider token changes do not change channel identifiers, message payloads or webhook bindings.