Update a chat
/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
chatIdRequiredstringUnique identifier of the chat, prefixed with chat_. Returned by the List chats endpoint.
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.
Body parameters
JSONstateoptionalstringApple 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
dataoptionalChatidoptionalstringChat id (chat_...).
channel_idoptionalstringchannel_typeoptionalstring"blooio""twilio""whatsapp""whatsapp_business""rcs_business""amb""sms""voice"contact_idoptionalstring | nullidentity_idoptionalstring | nullgroup_idoptionalstring | nullcontactoptionalContactSummary | nullThe person on the other side of a 1:1 chat. null in a group chat; see group.
contactoptionalContactSummary | nullThe person on the other side of a 1:1 chat. null in a group chat; see group.
ContactSummary
contact_idRequiredstring | nullThe contact (ct_...). null when no contact record matches the identifier.
identifierRequiredstringThe contact's identifier (phone number, email, or handle).
nameRequiredstring | nullThe 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.
groupoptionalGroupSummary | nullThe group, when this is a group chat. null in a 1:1 chat.
groupoptionalGroupSummary | nullThe group, when this is a group chat. null in a 1:1 chat.
GroupSummary
group_idRequiredstringGroup id (grp_...).
nameRequiredstring | nullThe group's name. null when it has none.
stateoptionalstring"open""closed""blocked""deprecated"capabilitiesoptionalobjectWhat 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.
capabilitiesoptionalobjectWhat 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 | nulllast_message_atoptionalinteger | nullcreated_atoptionalintegerResponse codes
Sends a live request with your values and shows the real response below. Your key is stored only in this browser.
curl -X PATCH https://api.blooio.com/v4/chats/chat_a1b2c3d4 \{ "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 }}