Get an SMS
Returns the details and current status of an SMS you sent through the send endpoint or any other route.
GET https://api.diarybook.com/{authKey}/v2/sms/{reference}
Request
Path parameters
| Parameter | Description |
|---|---|
authKey | Your API key. See Authentication. |
reference | Our reference for the message (beginning msg_sms_), or the senderRef you supplied when sending it. |
There is no request body.
Example request
curl "https://api.diarybook.com/YOUR_API_KEY/v2/sms/msg_sms_Xk3pR9bTq2LmZa7vN4wY"
Or by your own reference:
curl "https://api.diarybook.com/YOUR_API_KEY/v2/sms/ORDER-10482"
The simplest approach is to call the self link returned by Send an SMS.
Response
200 OK
{
"reference": "msg_sms_Xk3pR9bTq2LmZa7vN4wY",
"to": "+353871234567",
"from": "MYCOMPANY",
"text": "Your order 10482 has been dispatched and will arrive tomorrow.",
"status": "Delivered",
"size": 62,
"parts": 1,
"isUnicode": false,
"priceExTax": 0.0650,
"priceIncTax": 0.0800,
"currency": "EUR",
"country": "Ireland",
"senderRef": "ORDER-10482",
"sendDate": "2026-10-14T09:30:12Z",
"links": [
{
"href": "https://api.diarybook.com/YOUR_API_KEY/v2/sms/msg_sms_Xk3pR9bTq2LmZa7vN4wY",
"rel": "self"
}
]
}
Prices in the example are illustrative. Your own prices are on the pricing page.
| Field | Type | Description |
|---|---|---|
reference | string | Our unique reference for the message. |
to | string | The recipient’s mobile number. |
from | string | The sender ID or number the message was sent from. |
text | string | The message text. |
status | string | The message’s current status, such as Sent or Delivered, or an error code if it wasn’t sent. See Status and error codes. |
size | integer | The number of characters in text. |
parts | integer | The number of SMS parts the message was split into. See SMS message parts. |
isUnicode | boolean | true if the message was sent as Unicode because it contains characters outside the GSM 7-bit alphabet. |
priceExTax | number | The price of the message, excluding tax. |
priceIncTax | number | The price of the message, including tax. |
currency | string | The currency of the prices, for example EUR. |
country | string | The destination country, taken from the mobile number. |
senderRef | string | The senderRef you supplied when sending, or null. |
sendDate | string | UTC, ISO 8601. When the message was sent; if it hasn’t been sent yet, when it is due to be sent. |
links | array | A self link for this message. |
204 No Content
No message matches reference. The body is empty. Check the reference for typing errors; a senderRef must match exactly.
Errors
| Status | Body | Cause |
|---|---|---|
400 | Plain-text message | The request couldn’t be processed. |
401 | (empty) | The API key is missing or not recognised. |
429 | (empty) | Rate limit exceeded. See Rate limits. |
500 | A server error occurred | A problem on our side. Retry later. |
Checking delivery
Sent means the message has been passed to the mobile network; Delivered means the network has confirmed it reached the phone. A phone that’s switched off or out of coverage can leave a message at Sent until the network delivers it or gives up. See Delivery reports.
If you poll for status:
- Wait at least a minute before the first check, and lengthen the gap between later checks.
- Stop once the status is Delivered or an error code.
- Respect
429responses; polling counts against your rate limits.