Skip to content
Verbatik

API reference

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.

Verbatik documentation ยท Updated November 5, 2026