Skip to Content
API access is available to organizations with a signed BAA. Request API access →
API referenceSend a message to a patient

Send a message to a patient

POST/patient-messages

Sends a message to a patient by patient_id or phone number. With OAuth it’s sent as the connected admin, and their conversation is marked as read; with an API key it’s sent as the key, like “Reminder service”. BloomText finds the patient (or creates one for a new phone number), finds or starts the conversation on the phone number, and sends. Messages go by secure link unless channel is sms.

Scope
messages.write
Idempotent
With Idempotency-Key

Headers

Idempotency-KeyUUIDRequired

A UUID you generate for each write. Retrying with the same key returns the original result for 24 hours. Reusing a key with a different method, path, or body returns 409.

Body parameters

A message to a patient.

toRecipientRequired

Who to message. Provide exactly one of patient_id or phone.

Show child attributes
patient_idUUID

The patient to message.

phonestring

A mobile number. BloomText finds the patient with this number, or creates one.

patientPatientDetails

Details for a patient BloomText creates while sending. Ignored when the phone number matches an existing patient.

Show child attributes
first_namestring

First name.

last_namestring

Last name.

date_of_birthdate

Date of birth.

emailstring

Email address.

mrnstring

The patient’s ID in your system.

bodystringRequired

Message text, up to 1,600 characters.

channelsecure, sms

secure (the default) sends a text or email with a secure link, and the message stays in BloomText. sms sends the text itself as a regular SMS.

fromstring

The clinic phone number to send from, in E.164 format, like +15125550100. Defaults to the default number: the one set on the API key, or the admin’s own. See List phone numbers.

Returns

Returns 201 Created with the sent Message object in message, plus patient_created and conversation_created to say whether BloomText created either one.

Errors

Failed requests return application/problem+json problem details. The errors specific to this endpoint:

StatusCodeMeaning
400invalid_requestThe request is malformed, such as invalid JSON.
401invalid_tokenThe API key or access token is missing, expired, or revoked.
403insufficient_scopeThe credential doesn’t have the scope this endpoint needs.
404not_foundThe patient_id doesn’t exist in the organization, or from isn’t one of its phone numbers.
409idempotency_key_reusedThe Idempotency-Key was already used with a different request.
409idempotency_request_in_progressA request with this Idempotency-Key is still running. Retry shortly.
409ambiguous_recipientThe phone number belongs to more than one patient. candidates lists them; send again with a patient_id, or add patient.mrn.
422validation_failedA field failed validation. See field_errors.
422from_requiredThere are several phone numbers and no default. Pass from; see List phone numbers.
422no_contact_methodThe patient has no phone number for sms, or no phone or email for secure.
422patient_opted_outThe patient replied STOP to texts from this number. Send with secure by email, or wait for them to reply START.
429rate_limitedToo many requests. Retry after Retry-After seconds.
Last updated on