Bow Chat Integration API
Authenticate, resolve an inbox and contact, create or reuse a conversation, send a message, and receive signed delivery events.
OpenAPI contractWhat the API covers
Use the Bow Chat Integration API to connect an operating system, CRM, clinic application, or workflow service to a Bow Chat workspace. The normal send path is:
- List inboxes and choose the intended sender.
- Search for the contact by your stable identifier or phone number.
- Create the contact if it does not exist.
- Read the contact's
source_idfor that inbox. - Create or reuse the account-scoped conversation.
- Send a channel-appropriate message.
- Observe
message_updatedevents until the attempt is delivered, read, or failed.
Download the OpenAPI contract.
Base URL and authentication
https://app.bow.chat/api/v1/accounts/{account_id}
Send the dedicated integration token in the api_access_token header:
curl --request GET \
--url https://app.bow.chat/api/v1/accounts/ACCOUNT_ID/inboxes \
--header 'api_access_token: BOW_CHAT_TOKEN'
Keep the token in a server-side secret store. Do not place it in browser code, a mobile app, a URL, logs, screenshots, or a shared document. Bow Chat provisions the workspace account ID and integration credential during onboarding.
Identifier contract
account_idscopes every resource to one workspace.inbox_ididentifies the sender channel.contact_idis Bow Chat's contact record.identifiershould hold the stable contact ID from your system.source_idbinds that contact to a particular inbox and must be used when creating a conversation.- Conversation API paths use the account-scoped conversation display ID returned as
id. Do not substitute an internal database ID from a webhook payload.
First request sequence
# 1. Find the patient/contact
curl --get \
--url https://app.bow.chat/api/v1/accounts/ACCOUNT_ID/contacts/search \
--header 'api_access_token: BOW_CHAT_TOKEN' \
--data-urlencode 'q=setrio-patient-84291'
# 2. If absent, create it in the sender inbox
curl --request POST \
--url https://app.bow.chat/api/v1/accounts/ACCOUNT_ID/contacts \
--header 'api_access_token: BOW_CHAT_TOKEN' \
--header 'content-type: application/json' \
--data '{"inbox_id":14001,"name":"Ana Popescu","phone_number":"+40722123456","identifier":"patient-84291"}'
Then call GET /contacts/{contact_id}/contactable_inboxes, select the intended inbox.id, and store its source_id. See Send a message.
Privacy for regulated data
Keep message content to the minimum needed for the communication. Health data is a special category of personal data under GDPR. Before production, the parties should document controller/processor roles, purpose and legal basis, retention, access, audit, incident response, and any data-location or subprocessors requirements.
The API is a transport and workspace contract; it does not choose the legal basis for a clinic's patient communication.