Help Docs Developer Resources Messaging API Messaging API
Use these endpoints to manage a “send yourself” messaging project.
There are 2 modes in sending texts yourself: Concurrent and Fast.
Concurrent mode requires 2 API calls to send a message and all contacts must be imported beforehand:
/api/message/next
for the next contact in a project, this call makes sure only one contact is returned at any time to avoid duplicate texts and allowing many texters to send the same project at the same time./api/message/send
. This call schedules the text for delivery or returns an error if delivery is not possible.Fast mode requires only one API call and no contacts required to be imported. This mode assumes you have the list of contacts and ability to go over that list. This mode can be used if authorized only, submit a ticket to our support to enable it for your account.
In fast mode you pull a contact phone from your list and send it by using /api/message/send
.
New contacts will be created in our system automatically, for already existing contacts all tags will be honored as usual, i.e. dnd
tags will be skipped… All responses will be tagged in our system, to sync with your database use our Webhooks.
This object is used in webhooks and this API and represents a single messaging event for both incoming and outgoing texts.
cid
- account IDlogid
- unique message IDflags
- tags applied to this message including supplied tagssender
- sender of the message, user id or number, when it is equal to the phone
field this means incoming text, same as status=receivedproxy
- a proxy number that sent or received messagephone
- a contact phone number, it is unique within the account (cid)tcr_cid
- TCR campaign idsent_time
- timestamp when the message was sentupdate_time
- last status update timestamptext
- text of the message sent/receivedfile
- attachment URL for MMS messagesgroup
- a group this contact belongs to at the time the message was sentaction
- action this message was part ofstatus
- delivery status: received, delivered, undelivered, failed
status_code
- original error code we received in webhook, may not be the same as errcode, this code may be present even for delivered messageserror_text
- undelivered error explanationerror_code
- normalized error codeerror_subcode
- additional code for cases of complex errorsprice
- what we charged for this messagetracking
- our short URL used in this message, ID and domain for tracking purposescontact_flags
- a list of all contact flags currently assigned, webhooks onlycontact_source
- the contact source field, webhooks only/api/message/next
action
(String, required): Specifies the messaging action IDPOST /api/message/next
{
"action": "125"
}
{
"cid": "c_example123",
"phone": "9876543210",
"first_name": "John",
"last_name": "Doe",
"phone": "1234567890"
}
Endpoint: /api/message/send
Method: POST
Description: Sends a message to a specified contact previously retrieved with /api/message/next
request.
Request Body Parameters:
phone
(String, required): Contact phone number (must be valid)action
(String, required): Specifies the messaging action IDtext
(String, required): Message textflags
(List, optional): Additional tags to be applied to the message record, not contact.name
(String, optional) - name for new contact, if not provided new contacts will have the phone number as first namegroup
(Number, optional) - optional group id where to put new contacts, the group must existResponse:
POST /api/message/send
{
"phone": "1234567890",
"action": "125",
"text": "Hello STOP to opt out"
}
{
"cid": "c_example123",
"logid": "rl_693c81daa5bf42d58a390e791d584ed1",
"action": "125",
"text": "Hello STOP to opt out",
"sender": "u.....",
"sent_time": "04/17/2025 12:15pm EST",
"phone": "5555151505",
"group": "26",
"flags": [ "sent", "newsms" ],
"file": "http://host.com/action/c_example123/125.png",
"proxy": "2028456736",
"price": -0.14
}
/api/message/log/select
phone
- List of contact numbers separated by comma.proxy
- List of proxy numbers separated by comma.logid
- List of message ids separated by comma.flags
- List of message flags/tags.tcr_cid
- List of TCR campaign ids separated by comma.since
- message start date in milliseconds or human date/time formatbefore
- message end date in milliseconds or human date/time format_start
- Next token returned in the previous request for pagination.Example Request:
curl -u CID:KEY 'https://app.rumbleup.com/api/message/log/select?phone=5551112233'
Example Response:
{
"count": 3,
"total": 3,
"next_token": "....",
"data": [
{
"logid": "rl_693c81daa5bf42d58a390e791d584ed1",
"flags": [],
"sender": "u_......",
"proxy": "5552023344",
"phone": "5551012233",
"tcr_cid": "C1245C",
"sent_time": "04/17/2025 12:15pm EST",
"update_time": "04/17/2025 12:15pm EST",
"text": "testing messages STOP to opt out",
"price": -0.09
}
]
}