curl -X GET "https://api.loyalty.lt/lt/sms/status/msg_abc123def456" \
-H "X-API-Key: your_api_key" \
-H "X-API-Secret: your_api_secret"
const messageId = 'msg_abc123def456';
const response = await fetch(`https://api.loyalty.lt/lt/sms/status/${messageId}`, {
headers: {
'X-API-Key': 'your_api_key',
'X-API-Secret': 'your_api_secret'
}
});
const data = await response.json();
console.log(`Status: ${data.data.status}`);
if (data.data.delivered_at) {
console.log(`Delivered at: ${data.data.delivered_at}`);
}
<?php
$messageId = 'msg_abc123def456';
$response = file_get_contents(
"https://api.loyalty.lt/lt/sms/status/$messageId",
false,
stream_context_create([
'http' => [
'method' => 'GET',
'header' => [
'X-API-Key: your_api_key',
'X-API-Secret: your_api_secret'
]
]
])
);
$result = json_decode($response, true);
echo "Status: " . $result['data']['status'];
import requests
message_id = 'msg_abc123def456'
response = requests.get(
f'https://api.loyalty.lt/lt/sms/status/{message_id}',
headers={
'X-API-Key': 'your_api_key',
'X-API-Secret': 'your_api_secret'
}
)
data = response.json()
print(f"Status: {data['data']['status']}")
{
"success": true,
"data": {
"message_id": "msg_abc123def456",
"status": "delivered",
"source": "MyBrand",
"destination": "+37061234567",
"sent_at": "2025-01-15T10:30:00Z",
"delivered_at": "2025-01-15T10:30:05Z",
"failed_at": null,
"scheduled": null,
"validity": "2025-01-16T10:30:00Z",
"cost": {
"amount": 0.0556,
"currency": "EUR"
},
"error_message": null
}
}
{
"success": true,
"data": {
"message_id": "msg_xyz789",
"status": "queued",
"source": "MyBrand",
"destination": "+37061234567",
"sent_at": null,
"delivered_at": null,
"failed_at": null,
"scheduled": "2025-01-16T08:00:00Z",
"validity": "2025-01-17T08:00:00Z",
"cost": {
"amount": 0.0556,
"currency": "EUR"
},
"error_message": null
}
}
{
"success": true,
"data": {
"message_id": "msg_failed123",
"status": "failed",
"source": "MyBrand",
"destination": "+37061234567",
"sent_at": "2025-01-15T10:30:00Z",
"delivered_at": null,
"failed_at": "2025-01-15T10:30:02Z",
"scheduled": null,
"validity": null,
"cost": {
"amount": 0.0556,
"currency": "EUR"
},
"error_message": "Number not in service"
}
}
{
"success": false,
"message": "Message not found"
}
SMS API
Get SMS Status
Get the delivery status of a sent SMS message
GET
/
{locale}
/
sms
/
status
/
{message_id}
curl -X GET "https://api.loyalty.lt/lt/sms/status/msg_abc123def456" \
-H "X-API-Key: your_api_key" \
-H "X-API-Secret: your_api_secret"
const messageId = 'msg_abc123def456';
const response = await fetch(`https://api.loyalty.lt/lt/sms/status/${messageId}`, {
headers: {
'X-API-Key': 'your_api_key',
'X-API-Secret': 'your_api_secret'
}
});
const data = await response.json();
console.log(`Status: ${data.data.status}`);
if (data.data.delivered_at) {
console.log(`Delivered at: ${data.data.delivered_at}`);
}
<?php
$messageId = 'msg_abc123def456';
$response = file_get_contents(
"https://api.loyalty.lt/lt/sms/status/$messageId",
false,
stream_context_create([
'http' => [
'method' => 'GET',
'header' => [
'X-API-Key: your_api_key',
'X-API-Secret: your_api_secret'
]
]
])
);
$result = json_decode($response, true);
echo "Status: " . $result['data']['status'];
import requests
message_id = 'msg_abc123def456'
response = requests.get(
f'https://api.loyalty.lt/lt/sms/status/{message_id}',
headers={
'X-API-Key': 'your_api_key',
'X-API-Secret': 'your_api_secret'
}
)
data = response.json()
print(f"Status: {data['data']['status']}")
{
"success": true,
"data": {
"message_id": "msg_abc123def456",
"status": "delivered",
"source": "MyBrand",
"destination": "+37061234567",
"sent_at": "2025-01-15T10:30:00Z",
"delivered_at": "2025-01-15T10:30:05Z",
"failed_at": null,
"scheduled": null,
"validity": "2025-01-16T10:30:00Z",
"cost": {
"amount": 0.0556,
"currency": "EUR"
},
"error_message": null
}
}
{
"success": true,
"data": {
"message_id": "msg_xyz789",
"status": "queued",
"source": "MyBrand",
"destination": "+37061234567",
"sent_at": null,
"delivered_at": null,
"failed_at": null,
"scheduled": "2025-01-16T08:00:00Z",
"validity": "2025-01-17T08:00:00Z",
"cost": {
"amount": 0.0556,
"currency": "EUR"
},
"error_message": null
}
}
{
"success": true,
"data": {
"message_id": "msg_failed123",
"status": "failed",
"source": "MyBrand",
"destination": "+37061234567",
"sent_at": "2025-01-15T10:30:00Z",
"delivered_at": null,
"failed_at": "2025-01-15T10:30:02Z",
"scheduled": null,
"validity": null,
"cost": {
"amount": 0.0556,
"currency": "EUR"
},
"error_message": "Number not in service"
}
}
{
"success": false,
"message": "Message not found"
}
Get SMS Status
Retrieve the current delivery status and details of a previously sent SMS message.Path Parameters
Language code (e.g.,
lt, en)Authentication
API key from Partners Portal
API secret from Partners Portal
Response
Whether the request was successful
Show data
Show data
Unique message identifier
Current delivery status:
queued, sent, delivered, failed, expiredSender name used
Recipient phone number
Timestamp when message was sent to carrier
Timestamp when message was delivered (if confirmed)
Timestamp when delivery failed (if applicable)
Scheduled delivery time (if was scheduled)
Message expiry time
Error description if delivery failed
curl -X GET "https://api.loyalty.lt/lt/sms/status/msg_abc123def456" \
-H "X-API-Key: your_api_key" \
-H "X-API-Secret: your_api_secret"
const messageId = 'msg_abc123def456';
const response = await fetch(`https://api.loyalty.lt/lt/sms/status/${messageId}`, {
headers: {
'X-API-Key': 'your_api_key',
'X-API-Secret': 'your_api_secret'
}
});
const data = await response.json();
console.log(`Status: ${data.data.status}`);
if (data.data.delivered_at) {
console.log(`Delivered at: ${data.data.delivered_at}`);
}
<?php
$messageId = 'msg_abc123def456';
$response = file_get_contents(
"https://api.loyalty.lt/lt/sms/status/$messageId",
false,
stream_context_create([
'http' => [
'method' => 'GET',
'header' => [
'X-API-Key: your_api_key',
'X-API-Secret: your_api_secret'
]
]
])
);
$result = json_decode($response, true);
echo "Status: " . $result['data']['status'];
import requests
message_id = 'msg_abc123def456'
response = requests.get(
f'https://api.loyalty.lt/lt/sms/status/{message_id}',
headers={
'X-API-Key': 'your_api_key',
'X-API-Secret': 'your_api_secret'
}
)
data = response.json()
print(f"Status: {data['data']['status']}")
{
"success": true,
"data": {
"message_id": "msg_abc123def456",
"status": "delivered",
"source": "MyBrand",
"destination": "+37061234567",
"sent_at": "2025-01-15T10:30:00Z",
"delivered_at": "2025-01-15T10:30:05Z",
"failed_at": null,
"scheduled": null,
"validity": "2025-01-16T10:30:00Z",
"cost": {
"amount": 0.0556,
"currency": "EUR"
},
"error_message": null
}
}
{
"success": true,
"data": {
"message_id": "msg_xyz789",
"status": "queued",
"source": "MyBrand",
"destination": "+37061234567",
"sent_at": null,
"delivered_at": null,
"failed_at": null,
"scheduled": "2025-01-16T08:00:00Z",
"validity": "2025-01-17T08:00:00Z",
"cost": {
"amount": 0.0556,
"currency": "EUR"
},
"error_message": null
}
}
{
"success": true,
"data": {
"message_id": "msg_failed123",
"status": "failed",
"source": "MyBrand",
"destination": "+37061234567",
"sent_at": "2025-01-15T10:30:00Z",
"delivered_at": null,
"failed_at": "2025-01-15T10:30:02Z",
"scheduled": null,
"validity": null,
"cost": {
"amount": 0.0556,
"currency": "EUR"
},
"error_message": "Number not in service"
}
}
{
"success": false,
"message": "Message not found"
}
Status Values
| Status | Description |
|---|---|
queued | Message accepted and waiting to be sent |
sent | Message sent to carrier network |
delivered | Confirmed delivered to recipient’s phone |
failed | Delivery failed (see error_message) |
expired | Message validity period expired before delivery |
Polling vs Webhooks
For real-time status updates, use webhooks instead of polling this endpoint. Set
receipt: true and receiptURL when sending the message.- Wait at least 5 seconds between requests
- Most messages are delivered within 10-30 seconds
- Stop polling after
delivered,failed, orexpiredstatus
Related Endpoints
Send SMS
Send a new SMS message
SMS Overview
Webhook setup and documentation
⌘I