curl "https://api.60db.ai/agents/campaigns?status=running&limit=20" \
-H "Authorization: Bearer your-api-key"
Agent Campaigns
List Campaigns
List the outbound campaigns of your workspace, with recipient counts
GET
/
agents
/
campaigns
curl "https://api.60db.ai/agents/campaigns?status=running&limit=20" \
-H "Authorization: Bearer your-api-key"
List campaigns, newest first. Each campaign includes its recipient
counts. Use Get campaign for the limits in force.
Request
Headers
Query
Response
200 OK.data is the array. pagination holds total, limit and offset.
{
"success": true,
"data": [
{
"id": "3f1c9a2e-7b44-4d0e-9a5f-1c2d3e4f5a6b",
"name": "Spring renewals",
"agent_id": "9c2e1d7a-0b3f-4e6a-8f1d-5a7b9c0e2d44",
"agent_name": "Front desk",
"phone_line_id": "2d8e4f10-6a3b-4c9d-8e7f-0b1a2c3d4e5f",
"phone_line_name": "Main line",
"status": "running",
"pause_reason": null,
"timezone": "Asia/Kolkata",
"start_at": null,
"calling_windows": [{ "days": [1, 2, 3, 4, 5], "start": "09:00", "end": "20:00" }],
"concurrency_limit": 3,
"max_attempts": 3,
"retry_delay_secs": 1800,
"max_consecutive_failures": 10,
"consecutive_failures": 0,
"variable_mapping": { "customer_name": "name" },
"variable_defaults": { "plan": "standard" },
"counts": { "total": 250, "pending": 180, "calling": 3, "completed": 40, "no_answer": 20, "failed": 4, "skipped": 3, "cancelled": 0 },
"created_at": "2026-11-12T09:00:00.000Z",
"updated_at": "2026-11-12T10:15:00.000Z",
"started_at": "2026-11-12T09:00:02.000Z",
"completed_at": null
}
],
"pagination": { "total": 1, "limit": 50, "offset": 0 }
}
Errors
| Status | Code | Meaning |
|---|---|---|
| 400 | VALIDATION_ERROR | status is not a known value, or q is longer than 100 characters. field names it |
| 403 | POLICY_DENY | Your role cannot read campaigns, or the API key lacks the agents scope |
Example
curl "https://api.60db.ai/agents/campaigns?status=running&limit=20" \
-H "Authorization: Bearer your-api-key"