> ## Documentation Index
> Fetch the complete documentation index at: https://docs.60db.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List Campaigns

> List the outbound campaigns of your workspace, with recipient counts

List campaigns, newest first. Each campaign includes its recipient `counts`. Use [Get campaign](https://docs.60db.ai/api-reference/agents/get-campaign.md) for the limits in force.

## Request

### Headers

**Authorization** `string` *required*

Bearer token with your API key (scope `agents`)

### Query

**status** `string`

One of `draft`, `scheduled`, `running`, `paused`, `completed`, `cancelled`. `create` never returns `draft`

**q** `string`

Part of the campaign name. Not case-sensitive. Up to 100 characters

**limit** `integer` (default: 50)

1 to 100. Values outside the range are clamped

**offset** `integer` (default: 0)

Number of campaigns to skip

## Response

**200 OK**. `data` is the array. `pagination` holds `total`, `limit` and `offset`.

```json theme={null}
{
  "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

```bash cURL theme={null}
curl "https://api.60db.ai/agents/campaigns?status=running&limit=20" \
  -H "Authorization: Bearer your-api-key"
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.