Quickstart
Send your first iMessage with the Blooio API in under five minutes.
Blooio is a messaging API for iMessage and SMS. This guide sends your first message.
Get an API key
Create an API key in the Blooio dashboard. Keys look like bl_live_... and authenticate every request as a bearer token.
Send a message
Send a message to a chat addressed by the recipient's phone number or email. The identifier goes in the URL path, so URL-encode it (+ becomes %2B):
curl -X POST https://api.blooio.com/v2/api/chats/%2B15551234567/messages \
-H "Authorization: Bearer bl_live_..." \
-H "Content-Type: application/json" \
-d '{ "text": "Hello from Blooio!" }'Try itThe response contains the queued message with its message_id and status. Poll the message status endpoint or subscribe to a webhook to track delivery.
Receive replies
Create a webhook with webhook_type set to message to get inbound messages delivered to your server in real time.
Blooio is a multi-channel messaging API for iMessage, SMS, RCS, and WhatsApp. This guide sends your first message.
Get an API key
Create an API key in the Blooio dashboard. Keys look like bl_live_... and authenticate every request as a bearer token.
Send a message
Send directly to a recipient. Blooio chooses the sender from your API key's priority; no channel lookup is required:
curl -X POST https://api.blooio.com/v4/messages \
-H "Authorization: Bearer bl_live_..." \
-H "Content-Type: application/json" \
-d '{
"to": "+15551234567",
"content": { "type": "text", "text": "Hello from Blooio!" }
}'Try itTo constrain routing, add "from": { "type": "blooio" }. To use one exact line, use from.number; non-numbered AMB/RCS Business senders use from.sender_key. Technical ch_... IDs remain available as from.id for advanced integrations. See Channels & senders for when to use each option.
The response contains the queued message, resolved chat_id, channel_id, and routing explanation. Poll the message status endpoint or subscribe to a webhook to track delivery.
Receive replies
Create a webhook subscribed to message.received to get inbound messages and lifecycle events delivered to your server in real time.