Skip to Content
API access is available to organizations with a signed BAA. Request API access →
API referenceAll OAuth endpoints

OAuth endpoints

All 37 endpoints an org admin’s OAuth access token can call: the admin’s own conversations, which only OAuth reaches, and every Patient API endpoint. Each links to its full reference page, with parameters, errors, and code samples.

Base URL
https://api.bloomtext.com/v1

Send the access token as Authorization: Bearer $BLOOMTEXT_ACCESS_TOKEN. The scope column is what the admin must have approved; see Scopes.

Authorization server

Your app gets and manages tokens with these standard OAuth 2.0 URLs. They return OAuth errors, not problem details. See Connect with OAuth.

MethodURLUsed to
GEThttps://app.bloomtext.com/oauth/authorizeSend the admin to sign in and approve your app
POSThttps://app.bloomtext.com/oauth/tokenExchange a code for tokens and refresh an access token
POSThttps://app.bloomtext.com/oauth/revokeDisconnect a user
GEThttps://app.bloomtext.com/.well-known/oauth-authorization-serverDiscover the authorization server
GEThttps://api.bloomtext.com/.well-known/oauth-protected-resource/v1Discover the API as a protected resource

The admin’s own conversations

OAuth only. These reach the conversations the connected admin is in, and the organization’s staff directory.

Profile

The person who connected your app with OAuth, and the grant itself.

MethodPathEndpointScope
GET/meRetrieve the profilemessages.read

Messages

The connected person’s own messages, in team chats and patient conversations.

MethodPathEndpointScope
GET/me/messagesList messagesmessages.read
GET/me/messages/{messageId}Retrieve a messagemessages.read
POST/me/conversations/{conversationId}/messagesSend a messagemessages.write

Reactions

Emoji reactions on the connected person’s messages.

MethodPathEndpointScope
GET/me/messages/{messageId}/reactionsList reactionsmessages.read
POST/me/messages/{messageId}/reactionsAdd a reactionmessages.write
DELETE/me/messages/{messageId}/reactionsRemove a reactionmessages.write

Conversations

The connected person’s own conversations, team chats and patient conversations.

MethodPathEndpointScope
GET/me/conversationsList conversationsmessages.read
GET/me/conversations/{conversationId}Retrieve a conversationmessages.read

Participants

Staff and patients in one of the connected person’s conversations.

MethodPathEndpointScope
GET/me/conversations/{conversationId}/participantsList participantsmessages.read

Users

Staff members of the connected person’s organization.

MethodPathEndpointScope
GET/usersList usersmessages.read
GET/users/{userId}Retrieve a usermessages.read

Patient API

The same endpoints an API key calls. With OAuth, phone numbers are limited to the admin’s teams’ numbers, and messages come from the admin rather than a key.

Organization

The organization a credential belongs to.

MethodPathEndpointScope
GET/organizationRetrieve the organizationAny

Patients

Patient records, always found by patient ID, phone number, or MRN.

MethodPathEndpointScope
GET/patientsFind patientspatients.read
POST/patientsCreate a patientpatients.write
GET/patients/{patientId}Retrieve a patientpatients.read
PATCH/patients/{patientId}Update a patientpatients.write
DELETE/patients/{patientId}Delete a patientpatients.write

Patient imports

Bulk imports of patient records.

MethodPathEndpointScope
POST/patient-importsImport patientspatients.write
GET/patient-imports/{importId}Retrieve an importpatients.write

Patient messages

Messages with patients: send to a patient by ID or phone number, read patient messages by time range, and check delivery.

MethodPathEndpointScope
GET/patient-messagesList patient messagesmessages.read
POST/patient-messagesSend a message to a patientmessages.write
GET/patient-messages/{messageId}Retrieve a patient messagemessages.read

Patient conversations

Conversations with patients, one per patient and clinic phone number.

MethodPathEndpointScope
GET/patient-conversationsList patient conversationsmessages.read
GET/patient-conversations/{conversationId}Retrieve a patient conversationmessages.read

Phone numbers

The clinic phone numbers messages to patients come from, and the team each belongs to.

MethodPathEndpointScope
GET/phone-numbersList phone numbersmessages.read

Campaigns

One message sent to many patients from a clinic phone number, with per-patient delivery.

MethodPathEndpointScope
GET/campaignsList campaignsmessages.read
POST/campaignsCreate a campaignmessages.write
GET/campaigns/{campaignId}Retrieve a campaignmessages.read
PATCH/campaigns/{campaignId}Update a campaignmessages.write
DELETE/campaigns/{campaignId}Delete a campaignmessages.write
GET/campaigns/{campaignId}/recipientsList campaign recipientsmessages.read
POST/campaigns/{campaignId}/recipientsAdd campaign recipientsmessages.write
POST/campaigns/{campaignId}/recipients/removeRemove campaign recipientsmessages.write
POST/campaigns/{campaignId}/startStart a campaignmessages.write
POST/campaigns/{campaignId}/pausePause a campaignmessages.write
POST/campaigns/{campaignId}/stopStop a campaignmessages.write
Last updated on