List Recipients
Retrieve a paginated list of a campaign's recipients with per-recipient delivery and engagement status.
Recipient rows are created when a campaign is sent or scheduled (and for selected_customers audiences, when customers are picked in the EquipDash UI).
Endpointโ
GET /v1/campaigns/{id}/recipients
Authenticationโ
Requires an API key with the campaigns:read scope.
Path Parametersโ
| Parameter | Type | Description |
|---|---|---|
id | integer | The campaign ID |
Query Parametersโ
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 1 | Page number |
per_page | integer | 25 | Items per page (max 100) |
Response (200 OK)โ
{
"data": [
{
"id": 9001,
"campaign_id": 42,
"customer_id": 456,
"customer": {
"id": 456,
"first_name": "Jane",
"last_name": "Smith",
"email": "jane@example.com"
},
"status": "sent",
"sent_at": "2026-07-05T10:01:00+00:00",
"opened_at": "2026-07-05T14:22:00+00:00",
"clicked_at": null,
"error_message": null,
"created_at": "2026-07-05T10:00:00+00:00"
},
{
"id": 9002,
"campaign_id": 42,
"customer_id": 457,
"customer": {
"id": 457,
"first_name": "Tom",
"last_name": "Brown",
"email": "tom@example.com"
},
"status": "failed",
"sent_at": null,
"opened_at": null,
"clicked_at": null,
"error_message": "Mailbox unavailable",
"created_at": "2026-07-05T10:00:00+00:00"
}
],
"meta": {
"current_page": 1,
"per_page": 25,
"total": 250,
"total_pages": 10,
"request_id": "req_abc123",
"timestamp": "2026-07-20T12:00:00+00:00"
},
"links": {
"first": "https://app.equipdash.com/api/v1/campaigns/42/recipients?page=1",
"prev": null,
"next": "https://app.equipdash.com/api/v1/campaigns/42/recipients?page=2",
"last": "https://app.equipdash.com/api/v1/campaigns/42/recipients?page=10"
}
}
Response Fieldsโ
| Field | Type | Description |
|---|---|---|
id | integer | Unique recipient identifier |
campaign_id | integer | The campaign ID |
customer_id | integer | The customer ID |
customer | object|null | Customer summary (id, first_name, last_name, email) |
status | string | pending, sent, failed, or skipped |
sent_at | string|null | Delivery time (ISO 8601) |
opened_at | string|null | First open time (ISO 8601) |
clicked_at | string|null | First click time (ISO 8601) |
error_message | string|null | Failure reason (failed recipients only) |
created_at | string | ISO 8601 datetime |
Errorsโ
| Status | Code | Description |
|---|---|---|
| 401 | authentication_required | No API key provided |
| 401 | invalid_api_key | Invalid API key |
| 403 | insufficient_scope | API key lacks campaigns:read scope |
| 404 | resource_not_found | Campaign not found |
Example Requestโ
curl -X GET "https://app.equipdash.com/api/v1/campaigns/42/recipients?per_page=50" \
-H "Authorization: Bearer eqd_live_abc123xyz789..."