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
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:
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.