curl "https://api.60db.ai/agents/campaigns/CAMPAIGN_ID/recipients?status=no_answer&limit=100" \
-H "Authorization: Bearer your-api-key"
Agent Campaigns
List Campaign Recipients
The recipients of a campaign, with their status, attempts and last outcome
GET
/
agents
/
campaigns
/
{campaignId}
/
recipients
curl "https://api.60db.ai/agents/campaigns/CAMPAIGN_ID/recipients?status=no_answer&limit=100" \
-H "Authorization: Bearer your-api-key"
List the recipients of one campaign, in CSV row order. Use it for the recipient table. Each recipient links to its last call through
last_call_id.
Request
Headers
Path
Query
Response
200 OK.data is the array. pagination holds total, limit and offset.
{
"success": true,
"data": [
{
"id": "7d2a9c10-3e5b-4f8a-9b1c-2d3e4f5a6b7c",
"row_number": 2,
"phone": "+919876543210",
"variables": { "customer_name": "Asha" },
"status": "pending",
"skip_reason": null,
"attempts": 1,
"next_attempt_at": "2026-11-12T10:30:00.000Z",
"last_call_id": "6b1f0c52-4d7e-4b8a-9d3e-2a1c8e7f0a11",
"last_outcome": "no_answer",
"updated_at": "2026-11-12T10:00:31.000Z"
}
],
"pagination": { "total": 250, "limit": 50, "offset": 0 }
}
| Field | Meaning |
|---|---|
row_number | The line number in the CSV |
variables | The values sent to the agent for this recipient |
skip_reason | Set when status is skipped: invalid_number, dnc or variables_too_large |
attempts | Calls placed to this recipient so far |
next_attempt_at | When the next attempt is due. Set only while status is pending |
last_outcome | answered, no_answer, failed or null |
Errors
| Status | Code | Meaning |
|---|---|---|
| 400 | VALIDATION_ERROR | status is not a known value. field is status |
| 403 | POLICY_DENY | Your role cannot read campaigns, or the API key lacks the agents scope |
| 404 | CAMPAIGN_NOT_FOUND | No campaign with this ID in your workspace |
Example
curl "https://api.60db.ai/agents/campaigns/CAMPAIGN_ID/recipients?status=no_answer&limit=100" \
-H "Authorization: Bearer your-api-key"