Email recipients
Overview
Get a paginated list of email recipients for a campaign, with optional status filter, search, and sort.
Prerequisites
- A bearer token. Callable with Account tokens.
- The
campaignIdof the record you are targeting.
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://development-api.shoutaboutus.com |
Endpoint
GET /api/v1/campaign/{campaignId}/recipients/email
Authentication
-
Requires a bearer token in the
Authorization: Bearer <bearer-token>header. -
Who can call it: Account tokens.
-
A non-matching id returns 404
Campaign not found.
Rate limit
- No rate limit.
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
campaignId | integer | Required | Digits only. |
Query parameters
- Query:
filter(string, optional) — one ofprocessed,pending,sent,delivered,opened,clicked,unsubscribed,failed; filters by status or by presence of the matching*_attimestamp. - Query:
search_field(string, optional) — one ofemail,status,message_id,customer_name; when you omit it butsearch_valueis present, searches across email/status/message_id/customer_name. - Query:
search_value(string, optional, max 255) — LIKE-matched. - Query:
sort_field(string, optional) — one ofid,email,status,created_at,sent_at,delivered_at,opened_at,clicked_at,unsubscribed_at,failed_at,customer_name; defaults tocreated_at. - Query:
sort_by(string, optional) —asc/desc(case-insensitive); defaults todesc. - Query:
limit(integer, optional, 10–100) — page size; defaults to 10 (values below 10 are raised to 10, capped at 100). - Query:
page(integer, optional, min 1) — page number.
Response
id(int)status(string)sent_at/delivered_at/opened_at/clicked_at/unsubscribed_at/failed_at(datetime, nullable)unsubscribe_reason/failure_reason(string, nullable)metadata(object/array, nullable)created_at(datetime)email(string)message_id(string, nullable)campaign_audience_data_id(int, nullable)next_follow_up_at(datetime, nullable),follow_up_count(int),parent_id(int, nullable)audience_data(object, nullable) — included relation withid,customer_name,email,phone,is_email_valid,is_phone_valid,validation_status.
200 Success · 200
200{
"current_page": 1,
"data": [
{
"id": 123,
"status": "delivered",
"sent_at": "2026-06-15T13:45:00.000000Z",
"delivered_at": "2026-06-15T13:46:00.000000Z",
"opened_at": null,
"clicked_at": null,
"unsubscribed_at": null,
"failed_at": null,
"unsubscribe_reason": null,
"failure_reason": null,
"metadata": null,
"created_at": "2026-06-15T13:40:00.000000Z",
"email": "[email protected]",
"message_id": "abc-123",
"campaign_audience_data_id": 9,
"next_follow_up_at": null,
"follow_up_count": 0,
"parent_id": null,
"audience_data": {
"id": 9,
"customer_name": "Jane Doe",
"email": "[email protected]",
"phone": "+15551234567",
"is_email_valid": "valid",
"is_phone_valid": "valid",
"validation_status": "valid"
}
}
],
"per_page": 10,
"total": 100,
"last_page": 10
}Errors
| Status | Meaning |
|---|---|
401 | The bearer token is missing, expired or invalid |
404 | No record matches the id you sent |
422 | The request failed validation — the response names the fields |
500 | Unexpected server error |
Example request
curl --request GET \
--url "https://production-api.shoutaboutus.com/api/v1/campaign/123/recipients/email" \
--header 'Authorization: Bearer <bearer-token>' \
--header 'Accept: application/json'Updated 8 days ago
Did this page help you?
