Blooio API Reference
Messages

Send a message

Send a message to a chat. The chatId can be: (1) E.164 phone number, (2) email address, (3) group ID (grp_xxxx), or (4) comma-separated list of phone/email for multi-recipient chats. For multi-recipient, an unnamed group is automatically created or reused if the exact participant combination already exists. For explicit groups, the group must be linked to an existing iMessage chat.

POST
/chats/{chatId}/messages

Authorization

BearerAuth
AuthorizationBearer <token>

API key authentication. Use your API key as the bearer token.

In: header

Path Parameters

chatId*string

Chat identifier. Can be: (1) phone number in E.164 format (e.g., +15551234567), (2) email address, (3) group ID (grp_xxxx), or (4) comma-separated list of phone numbers/emails for multi-recipient group chats (e.g., +15551234567,+15559876543). All values should be URL-encoded.

Header Parameters

Idempotency-Key?string

Unique key to prevent duplicate message sends. If the same key is used again, the original message_id and status are returned.

X-From-Number?string

E.164 phone number to send from (must be assigned to your organization). Overrides automatic sender selection.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://backend.blooio.com/v2/api/chats/%2B15551234567/messages" \  -H "Content-Type: application/json" \  -d '{}'
{
  "message_id": "string",
  "message_ids": [
    "string"
  ],
  "status": "queued",
  "group_id": "string",
  "group_created": true,
  "participants": [
    "string"
  ]
}
{
  "message_id": "string",
  "message_ids": [
    "string"
  ],
  "status": "queued",
  "group_id": "string",
  "group_created": true,
  "participants": [
    "string"
  ]
}
{
  "error": "string",
  "status": 0
}
{
  "error": "string",
  "status": 0
}
{
  "error": "string",
  "status": 0
}
{
  "error": "string",
  "status": 0
}
{
  "error": "string",
  "status": 0
}