Chatsv4

Update a chat

PATCH/chats/{chatId}

Sets chat state (open/closed) on an Apple Messages for Business chat. Chats on every other channel return 422 state_not_writable: closed reflects the customer ending an Apple Messages for Business conversation, and no other protocol has an equivalent.

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

Body parameters

JSON
stateoptionalstring

Apple Messages for Business chats only. closed blocks further sends to the chat with 409 chat_closed_by_user; an Apple Messages for Business chat also closes itself when the customer ends the conversation, and reopens when they message again.

"open""closed"

Returns

dataoptionalChat
idoptionalstring

Chat id (chat_...).

channel_idoptionalstring
channel_typeoptionalstring
"blooio""twilio""whatsapp""whatsapp_business""rcs_business""amb""sms""voice"
contact_idoptionalstring | null
identity_idoptionalstring | null
group_idoptionalstring | null
contactoptionalContactSummary | null

The person on the other side of a 1:1 chat. null in a group chat; see group.

ContactSummary
contact_idRequiredstring | null

The contact (ct_...). null when no contact record matches the identifier.

identifierRequiredstring

The contact's identifier (phone number, email, or handle).

nameRequiredstring | null

The contact's name. null when none is on file. On a webhook it is a snapshot from when the event happened; read the contact for current details.

null
groupoptionalGroupSummary | null

The group, when this is a group chat. null in a 1:1 chat.

GroupSummary
group_idRequiredstring

Group id (grp_...).

nameRequiredstring | null

The group's name. null when it has none.

null
stateoptionalstring
"open""closed""blocked""deprecated"
capabilitiesoptionalobject

What the other side of the chat has told Blooio it supports. On Apple Messages for Business, amb_capability_list is the capability-list Apple stamped on the customer's latest inbound message (QUICK, LIST, TIME, AUTH, AUTH2, FORM); prefer supported_interactive_kinds, which is derived from it.

amb_capability_listoptionalstring[]
supported_interactive_kindsoptionalstring[]

Apple Messages for Business only: the interactive.kind values the customer's device can render, so you can choose a kind before composing instead of meeting 422 amb_capability_unavailable at send time. apple_pay and imessage_app are always listed (Apple gates neither by capability). Until the customer's device has reported a capability list, every kind is listed.

window_expires_atoptionalinteger | null
last_message_atoptionalinteger | null
created_atoptionalinteger

Response codes

200Updated chat
401Your API key is missing or invalid. Pass it as a bearer token.
404No chat was found with the provided `chatId`.
422Validation failed — one or more fields in the request are invalid or missing.

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

Request
curl -X PATCH https://api.blooio.com/v4/chats/chat_a1b2c3d4 \
Body object
Response objectexample
{  "data": {    "id": "chat_a1b2c3d4",    "channel_id": "ch_a1b2c3d4",    "channel_type": "blooio",    "contact_id": "ct_a1b2c3d4",    "identity_id": "idn_a1b2c3d4",    "group_id": "grp_a1b2c3d4",    "contact": {      "contact_id": "ct_a1b2c3d4",      "identifier": "+15551234567",      "name": "Jane Doe"    },    "group": {      "group_id": "grp_a1b2c3d4",      "name": "Jane Doe"    },    "state": "open",    "capabilities": {      "amb_capability_list": [        "QUICK"      ]    },    "supported_interactive_kinds": [      "quick_reply"    ],    "window_expires_at": 0,    "last_message_at": 0,    "created_at": 0  }}