Batch-dispatch outbound calls to a voice agent
Claims up to concurrency_limit (or the optional max_legs override, whichever is lower) pending contacts under SKIP LOCKED and originates one outbound call per contact via the softswitch, connecting each answered leg to the campaign’s AI voice agent. Only valid for dispatch_mode='voice_agent' campaigns in active status. Returns 202 when every leg originated successfully, 207 when some legs failed (per-leg detail in legs), or 204 when there were no eligible contacts to claim. Requires the dialer:write scope.
Authorizations
Dashboard JWT token from Clerk
Headers
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
1 - 255Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
true, false Path Parameters
Campaign id.
Body
Optional per-invocation cap on claimed legs, 1-200. Always clamped to the campaign's own concurrency_limit.