List recipients
Returns the broadcast’s recipients in upload order, each with its template variables and per-recipient send state. Filter by status to find failures, opted-out numbers or rows still waiting to send.
curl --request GET \
--url https://api.vobiz.ai/api/v1/sms/broadcasts/{id}/recipients \
--header 'X-Auth-ID: <api-key>' \
--header 'X-Auth-Token: <api-key>'from vobiz import Vobiz
client = Vobiz(api_key="MA_XXXXXXXX", auth_token="YOUR_AUTH_TOKEN")
client.sms.broadcasts.list_recipients(
id="3f8d2a6e-5b1c-4e7f-a9d0-2c4b6e8f1a35",
)
const options = {
method: 'GET',
headers: {'X-Auth-ID': '<api-key>', 'X-Auth-Token': '<api-key>'}
};
fetch('https://api.vobiz.ai/api/v1/sms/broadcasts/{id}/recipients', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"recipients": [
{
"id": 1042,
"row": 2,
"to": "+14155550123",
"variables": {
"name": "Priya",
"amount": "$42.00"
},
"status": "sent",
"messageId": "9b2e1c40-8a3d-4f5e-9c1a-7d6b2e8f4a01",
"errorCode": "",
"errorMessage": "",
"sentAt": "2026-10-12T11:05:10Z"
},
{
"id": 1043,
"row": 3,
"to": "+14155550124",
"variables": {
"name": "Sam",
"amount": "$18.50"
},
"status": "pending",
"messageId": "",
"errorCode": "",
"errorMessage": "",
"sentAt": null
}
],
"total": 2
}Authorizations
Your Vobiz account Auth ID (MA_XXXXXXXX).
Your Vobiz account Auth Token.
Path Parameters
The broadcast's id (UUID), as returned by POST /broadcasts or GET /broadcasts. An id that is not a UUID, or that belongs to another account, returns 404 with broadcast not found.
Query Parameters
Return only recipients in this state, matched case-insensitively. pending waits to send, sending is in progress, sent and delivered track the message, failed has an errorCode, opted_out was excluded because the number opted out, and skipped was still pending when the broadcast was cancelled. Omit it to return every recipient; any other value returns 400.
pending, sending, sent, delivered, failed, opted_out, skipped Maximum number of recipients to return, from 1 to 500. Defaults to 50 when you omit it or pass 0. A value above 500 returns 400 with limit must be between 1 and 500, and a non-integer returns 400 with limit must be an integer.
1 <= x <= 500Number of recipients to skip before the page starts, for paging through results with limit. Defaults to 0. A negative value returns 400 with offset must be >= 0, and a non-integer returns 400 with offset must be an integer.
x >= 0Response
A page of recipients.
One page of a broadcast's recipients, in upload order, with the count that matches your filter.
Was this page helpful?
curl --request GET \
--url https://api.vobiz.ai/api/v1/sms/broadcasts/{id}/recipients \
--header 'X-Auth-ID: <api-key>' \
--header 'X-Auth-Token: <api-key>'from vobiz import Vobiz
client = Vobiz(api_key="MA_XXXXXXXX", auth_token="YOUR_AUTH_TOKEN")
client.sms.broadcasts.list_recipients(
id="3f8d2a6e-5b1c-4e7f-a9d0-2c4b6e8f1a35",
)
const options = {
method: 'GET',
headers: {'X-Auth-ID': '<api-key>', 'X-Auth-Token': '<api-key>'}
};
fetch('https://api.vobiz.ai/api/v1/sms/broadcasts/{id}/recipients', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"recipients": [
{
"id": 1042,
"row": 2,
"to": "+14155550123",
"variables": {
"name": "Priya",
"amount": "$42.00"
},
"status": "sent",
"messageId": "9b2e1c40-8a3d-4f5e-9c1a-7d6b2e8f4a01",
"errorCode": "",
"errorMessage": "",
"sentAt": "2026-10-12T11:05:10Z"
},
{
"id": 1043,
"row": 3,
"to": "+14155550124",
"variables": {
"name": "Sam",
"amount": "$18.50"
},
"status": "pending",
"messageId": "",
"errorCode": "",
"errorMessage": "",
"sentAt": null
}
],
"total": 2
}