Messages¶
The Messages resource allows you to:
- Send messages via POST
- Collect a message’s status via GET
- Mark a message as read via PUT
Sending a Message¶
To send a message you make a POST request to the Messages resource.
The POST url is: https://api.sendhub.com/v1/messages/?username=USERNAME&api_key=APIKEY
Where:
- USERNAME - is your SendHub username.
- APIKEY - is your api key which can be found on the settings page.
You’ll also need to pass Headers and Data.
Headers:
Content-Type: application/json
Data:
For example to send the message ‘Testing’ to the contact id ‘1111’ you would POST:
{
"contacts": [
1111
],
"text": "Testing"
}
Note
You must use a valid contact id from your contacts, otherwise you will receive an error.
Therefore, to send a message through the API using cURL:
curl -H "Content-Type: application/json" -X POST --data '{"contacts" : [1111],"text" : "Testing"}' 'https://api.sendhub.com/v1/messages/?username=USERNAME&api_key=APIKEY'
If your message is accepted you’ll get a 201 Created status and a data response similar to this:
{
"acknowledgment": "Message queued for sending.",
"contacts": [
1111
],
"created_at": "2012-02-17T15:36:36.639968",
"direction": "to",
"groups": null,
"id": "25",
"resource_uri": "/api/v1/messages/25/",
"scheduled_at": null,
"sent": "2012-02-17T20:36:36.639968",
"text": "Testing",
"unread": null
}
Messages can be sent to multiple contacts and groups. Simply add additional contact and group ids to their respective lists, for example:
{
"contacts": [
1111,
1112,
1113
],
"groups": [
1000,
1001
],
"text": "Testing"
}
Messages can be sent directly to cell numbers. Please remember that unambiguous written consent is required before sending telemarkting calls or text messages. For example:
{
"contacts": ["+16505551234"],
"text": "Testing"
}
Sending a MMS Message¶
You can send MMS using the following payloads:
Send inline file with base64 encoding:
{ "contacts": [1111], "text": "Testing", "mms": { "filename": filename, "data": filedata } }
Send MMS using public url:
{ "contacts": [1111], "text": "Testing", "mms": { "filename": PUBLIC_filename, "url": PUBLIC_url } }
The MMS Messaging resource allows you to:
- Either use inline file or public url per api call.
- Only 1 file or 1 public url can be used per api call.
- DownStream carrier file size restrictions still apply.
Scheduling a Message¶
You can post messages now for sending at some future date. To do this you must pass an additional variable in your post data: scheduled_at. This must be a timestamp, including timezone, consisting of exactly 24 characters, for example: 2011-02-17T20:29:40-0800.
An example request, would be:
{
"contacts": [
1111
],
"text": "Testing Scheduling",
"scheduled_at": "2011-02-17T14:30:00-0800"
}
If your message is accepted you’ll get a 201 Created status and a data response similar to this:
{
"acknowledgment": "Message scheduled for delivery at 2011-02-17 22:30:00.",
"contacts": [
21399
],
"created_at": "2012-02-17T13:06:58.859847",
"direction": "to",
"groups": null,
"id": "30",
"resource_uri": "/api/v1/messages/30/",
"scheduled_at": "2011-02-17T22:30:00",
"sent": null,
"text": "Testing Scheduling",
"unread": null
}
Note
The acknowledgment and scheduled_at timestamps are returned in UTC.
Available Fields:
Name | Explanation |
---|---|
contacts | The list of contacts ids you’d like to send to. Max 20. |
groups | The list of groups ids you’d like to send to. Max 3. |
text | The text of the message. Max 500 chars. |
scheduled_at | If the message was scheduled, the UTC time it was scheduled. |
unread | If the message is inbound, is it unread. |
created_at | The UTC time this message was created. Read Only. |
sent | The UTC time the message was sent. Null if not yet sent. Read only. |
direction | The direction of the message. To = outbound, from = inbound. Read only. |
acknowledgment | Information on your successful message sending request. Read only. |
resource_uri | The uri for this message. Read only. |
Get Message Status¶
To get the status of a message you make a GET request to the Messages resource, with the message’s id:
https://api.sendhub.com/v1/messages/ID/?username=USERNAME&api_key=APIKEY
Where:
- ID - is the message’s id. This can be obtained from the id or resource_uri field.
If your request is accepted you’ll get a 200 Ok status and a data response similar to this:
{
"acknowledgment": "Message queued for sending.",
"contacts": [
1111
],
"created_at": "2012-02-17T15:36:36.639968",
"direction": "to",
"groups": null,
"id": "25",
"resource_uri": "/api/v1/messages/25/",
"scheduled_at": null,
"sent": "2012-02-17T20:36:37.639968",
"text": "Testing",
"unread": null
}
Mark Message as Read¶
To mark a message as read you make a PUT request to the Messages resource, with the message’s id. You may only mark a message as read, you cannot mark a message as unread.
https://api.sendhub.com/v1/messages/ID/?username=USERNAME&api_key=APIKEY
You’ll also need to pass Headers and Data.
Headers:
Content-Type: application/json
Data:
Set unread to false.
{
"unread": false
}