---
title: "Campaign API"
description: "Create campaign drafts, control runs and read campaign statistics."
url: "https://documentation.verbatik.com/api/campaigns/"
---

# Campaign API

Create campaign drafts, control runs and read campaign statistics.

The public campaign collection is `/api/v1/workspaces/WORKSPACE_ID/campaigns`. Reading needs `campaigns:read`; creating, editing and lifecycle actions need `campaigns:write`.

## Create a draft

```bash
curl -X POST 'https://dashboard.verbatik.com/api/v1/workspaces/WORKSPACE_ID/campaigns' \
  -H "Authorization: Bearer $VERBATIK_API_KEY" \
  -H 'Content-Type: application/json' \
  --data '{"name":"Requested follow-ups","type":"standard","agentId":"AGENT_ID","contactIds":["CONTACT_ID"],"timezone":"America/New_York","language":"en","configuration":{}}'
```

POST returns `201` with `{ "data": ... }`. Campaigns are saved as drafts; setting a status field does not start calling. Configure the caller number, contact permissions, scheduling, retry policy and quiet hours in the dashboard before starting.

The collection supports GET, PATCH with `id`, and DELETE with `?id=CAMPAIGN_ID`. Types are `standard` and `auto-enroll`. A supplied contact list is bounded to 5,000 identifiers. Use a valid IANA timezone rather than relying on defaults.

## Control a campaign

POST to one of these paths:

- `/campaigns/CAMPAIGN_ID/start`
- `/campaigns/CAMPAIGN_ID/pause`
- `/campaigns/CAMPAIGN_ID/resume`
- `/campaigns/CAMPAIGN_ID/cancel`

For example:

```bash
curl -X POST 'https://dashboard.verbatik.com/api/v1/workspaces/WORKSPACE_ID/campaigns/CAMPAIGN_ID/pause' \
  -H "Authorization: Bearer $VERBATIK_API_KEY"
```

Starting a campaign is a request to place real calls. Outbound enablement, billing, consent, published agent, phone connection and workspace limits are checked. Review the configured schedule and destinations before starting.

## Read statistics

GET `/campaigns/CAMPAIGN_ID/stats` with `campaigns:read` returns `{ "data": ... }`. A paused or canceled campaign can still have a call that already began; inspect call-level results rather than assuming every in-flight effect was recalled.
