BetaThe V4 API is in beta — endpoints and functionality may change.
Messagesv4

List chat messages

GET/chats/{chatId}/messages

Lists messages in a chat, newest first by default. Use order=asc for oldest first.

Path parameters

chatIdRequiredstring

Unique identifier of the chat, prefixed with chat_. Returned by the List chats endpoint.

Headers

AuthorizationRequiredstring

Your API key, sent as a bearer token: Authorization: Bearer <api_key>. Editing this stays in sync with the API key box on the right.

Bearer

Query parameters

orderoptionalstring
"asc""desc"
limitoptionalinteger

Maximum number of items to return per page. Must be between 1 and 200; defaults to 50. Combine with cursor to paginate.

cursoroptionalstring

Opaque pagination cursor. Pass the next_cursor value from a previous response to fetch the next page; omit it on the first request.

Returns

dataoptionalMessage[]

Array of Message

idoptionalstring

Message id (msg_...).

chat_idoptionalstring
channel_idoptionalstring
channel_typeoptionalstring
"blooio""twilio""whatsapp""whatsapp_business""rcs_business"
protocoloptionalstring

Transport state or resolved wire service; never null. pending = accepted and dispatched, wire service not resolved yet; imessage / rcs / sms = the device-confirmed transport (iMessage blue bubble, RCS, or SMS/MMS green bubble); whatsapp = sent over WhatsApp; unknown = accepted but the transport could not be resolved before the tracking window closed (see error).

"pending""unknown""imessage""sms""rcs""whatsapp"
directionoptionalstring
"inbound""outbound"
typeoptionalstring

Content type, e.g. text, media, poll.

textoptionalstring | null
statusoptionalstring

Delivery lifecycle state: queued (accepted, awaiting dispatch), sent (handed to the channel; protocol resolves around here), delivered (delivery receipt received), read (read receipt received), failed (see error), superseded (row replaced by an idempotency retry or a poll-vote supersession). Inbound messages surface via the event feed / webhooks with received.

provider_message_idoptionalstring | null
reply_to_message_idoptionalstring | null
erroroptionalobject | null
created_atoptionalinteger
updated_atoptionalinteger
has_moreoptionalboolean
next_cursoroptionalstring | null

Response codes

200A page of messages
401Your API key is missing or invalid. Pass it as a bearer token.
404No message was found with the provided `chatId`.

Sends a live request with your values and shows the real response below. Your key is stored only in this browser.

Request
curl -X GET https://api.blooio.com/v4/chats/chat_a1b2c3d4/messages?order=desc&limit=50&cursor=string \
Response objectexample
{  "data": [    {      "id": "msg_a1b2c3d4",      "chat_id": "chat_a1b2c3d4",      "channel_id": "ch_a1b2c3d4",      "channel_type": "blooio",      "protocol": "pending",      "direction": "inbound",      "type": "string",      "text": "Hello from Blooio!",      "status": "active",      "provider_message_id": "msg_a1b2c3d4",      "reply_to_message_id": "msg_a1b2c3d4",      "error": {},      "created_at": 0,      "updated_at": 0    }  ],  "has_more": true,  "next_cursor": "string"}