Send a message
/messagesSends a message to one or more recipients on a channel. Requires channel_id. Multiple recipients on a group-capable channel (blooio/whatsapp) form a single group thread; on other channels they fan out to individual sends (max 100). Returns the message object at the top level, or a fan-out summary { data, fan_out, sent, failed }.
Headers
AuthorizationRequiredstringYour API key, sent as a bearer token: Authorization: Bearer <api_key>. Editing this stays in sync with the API key box on the right.
Idempotency-KeyoptionalstringOptional key for safe retries. Replaying the same key with an identical body returns the original result; a different body returns 409. Use a unique value (such as a UUID) per logical request.
Body parameters
JSONchannel_idRequiredstringChannel id (ch_...) to send from.
toRequiredRecipientA single recipient, a list, or a comma-separated string of identifiers.
toRequiredRecipientA single recipient, a list, or a comma-separated string of identifiers.
identifierRequiredstringcontentRequiredMessageContent
contentRequiredMessageContenttypeRequired"text"textRequiredstringreply_tooptionalstringMessage id to reply to.
effectoptionalstringiMessage screen/bubble effect (Blooio).
link_previewoptionalLinkPreview
link_previewoptionalLinkPreviewimageUrloptionalstringtitleoptionalstringdry_runoptionalbooleanValidate and route only; do not send.
Returns
idoptionalstringchat_idoptionalstringchannel_idoptionalstringchannel_typeoptionalstring"blooio""twilio""whatsapp""whatsapp_business""rcs_business""amb"protocoloptionalstring | nulldirectionoptionalstring"inbound""outbound"typeoptionalstringstatusoptionalstringerroroptionalobject | nullfallbackoptionalobjectPresent when a send could not be delivered on the requested channel and a different channel should be tried.
fallbackoptionalobjectPresent when a send could not be delivered on the requested channel and a different channel should be tried.
recommendedoptionalbooleanTrue when falling back to another channel is recommended.
reasonoptionalstringtooptionalstringRecipient identifier. Present only on per-recipient items inside a fan-out (FanOutResult) response.
dry_runoptionalbooleanwould_sendoptionalbooleanpreviewoptionalobjectResponse codes
Sends a live request with your values and shows the real response below. Your key is stored only in this browser.
curl -X POST https://api.blooio.com/v4/messages \ -H "Authorization: Bearer bl_live_..." \ -H "Idempotency-Key: string" \ -H "Content-Type: application/json" \ -d '{ "channel_id": "ch_018f7b2a-1c3d-7e4f-9a2b-0c1d2e3f4a5b", "to": { "identifier": "+15551234567" }, "content": { "type": "text", "text": "Hello from Blooio!" } }'{ "id": "obj_a1b2c3d4", "chat_id": "chat_a1b2c3d4", "channel_id": "ch_a1b2c3d4", "channel_type": "blooio", "protocol": "string", "direction": "inbound", "type": "string", "status": "active", "error": {}, "fallback": { "recommended": false, "reason": "string" }, "to": "+15551234567", "dry_run": false, "would_send": false, "preview": {}}