v1
latestOpenAPI 3.0.02026-08-067074272.5 KBSends a message
Sends a message through a dashboard in your Text Request account. You can optionally specify a delivery status callback URL to track the status of the message on a third-party site. If a delivery callback URL is specified, you will receive either a delivered callback, or an error callback with a status code explaining the issue. Messages are sent at the throttle rate on your dashboard. The throttle rate is defined as your 10DLC message rate, or at one message per second for non-10dlc registered dashboards.
Scheduling
There are three send modes:
| Mode | Fields to include | Response status |
|---|---|---|
| Immediate | Omit schedule_date_utc and repeat_settings | "sending" |
| One-time scheduled | schedule_date_utc only (future UTC) | "scheduled" |
| Recurring | schedule_date_utc + repeat_settings | "scheduled" |
Use the Request body examples in this endpoint for copy-paste payloads covering each repeat mode (daily, weekly with days, monthly, yearly, stop after N sends, stop on date).
See the repeat_settings schema for the full step reference table and repeat mode rules.
Scheduling is not compatible with: authvia_conversation_id, geolocation_requested, or location_callback.
Sent messages can also include Location requests. Location requests are urls sent in texts that contacts can access to send their location to Text Request. This info will be shown in their queue, but can also be sent via a callback to some third-party url.
Location requests can be done in one of two ways:
- Set geolocation_requested to true in the request body. This will add the phrase "Go to <text request url> to share your location"
- Add the tag [LocationRequest] to your message body. This tag will be replaced by the text request url.
Location requests can also have a callback that is returned when the location request is completed by the contact. This information will be sent as a POST request to the location_callback property. See the callbacks tab below for the schema of the callback.
WARNING: The location_callback property only works with the [LocationRequest] tag. If no tag exsits, even if geolocation_requested is true, the callback will not work and the send-message request will return a 400 (Bad Request) exception.
Request body
Example request
{
"body": "Don't forget the Family and Friends sale at our Toledo location on 6-15-2021 at 8:00PM!",
"sender_name": "Bill Cassidy",
"recipient_name": "Bruce Wayne",
"status_callback": "enter-url-here",
"location_callback": "enter-url-here",
"schedule_date_utc": "2023-01-12T19:19:11.8032151Z",
"repeat_settings": {
"repeat_by": "week",
"step": 1,
"times": 5,
"end_date": "2026-12-31T23:59:59Z",
"days": [
"Monday",
"Wednesday"
]
}
}Response
The message was received by Text Request and request fields were validated. For immediate sends, the message is being sent and status will be "sending". For scheduled sends, status will be "scheduled" and the message will be sent at schedule_date_utc. This does not mean that the message was successfully delivered - it is possible for a valid message to be rejected and not delivered due to a number of factors such as an invalid recipient, the destination handset being switched off, or if the message is filtered as spam by the receiving carrier. For delivery confirmation, please add a valid webhook URL for the status_callback parameter.
Example response
{
"message_id": "eb2a0cc2-5b88-468b-b3f4-926b07bcb275",
"segments_count": 2,
"status": "sending",
"schedule_date_utc": "2023-01-12T19:19:11.8032151Z"
}