Create batch campaign
Calls
Create batch campaign
POST /v1/calls/batch
POST
Create batch campaign
Creates a batch campaign: queues many outbound calls under one campaign ID. Useful for appointment reminders, lead qualification, surveys.
All
With
Request
Body parameters
Recipient object
variables are automatically injected as context for the agent - you do not need {{placeholders}} in your prompt.
Calling window and timezone
Scheduled campaigns do not fire at midnight - they fire inside the calling window, in local time:- The scheduler checks every 60 seconds. A campaign that is due but outside its window stays
scheduledand is re-checked each minute - it fires within a minute of the window opening. - The window runs in this priority of timezones: campaign
timezone(if you sent one) -> the agent’s timezone ->Europe/London. - Resellers: your end-user picks their timezone in your app, you send it per campaign - their choice wins over the agent default.
- Overnight windows are supported (
window_start_minutesgreater thanwindow_end_minutes, e.g. 18:00-02:00). - No window set = the campaign fires when the date is due (legacy behaviour).
One campaign = one timezone. Calling recipients across multiple countries? Split them by region into separate campaigns, each with its own
timezone.Response
201 Created (schedule_type now launches immediately):
schedule_type: schedule the response returns status: scheduled and the campaign fires inside its window on the scheduled date.
Behaviour
- Calls are queued and processed respecting your per-key concurrent call limit
- Each recipient becomes one outbound call with its own
call_id - Failed calls are logged but do not stop the campaign
- Voicemail detection runs per call. The agent leaves a short message built from your
prompt, then ends the call withended_reason: voicemail_detected. See Voicemail detection to control or disable the message.
Errors
Error response shape
Every error follows the same shape. On a rejected batch,error.details.invalid names each bad number and why, so you can show it to your own users:
Numbers are checked against real numbering rules, not just E.164 shape.
+44745357377 looks like a UK mobile but is one digit short, so it can never connect - it is rejected here rather than accepted and lost.Launching a scheduled campaign
Aschedule_type: schedule campaign fires automatically inside its window. You can also launch it manually with Launch batch.