Skip to content
VaakyoDocs
Navigation
Open console →

Batches

Create a batch

POST/api/v1/batches

Schedule a batch from an upload. Each valid row becomes a contact; the other columns become its user_data. Calls go through the workspace’s outbound queue inside the agent’s calling hours.

Authorization

An API key (X-API-Key or Authorization: Bearer), or a signed-in member with the calls.place permission.

X-API-KeyAuthorization: Bearercalls.place

Query parameters

timezonestringdefault: "Asia/Kolkata"

IANA time zone for every timestamp in the response (at, date, timestamp and *_at fields), as ISO 8601 with the offset. The X-Timezone header works too; the zone used comes back in the X-Timezone response header. An unknown zone is a 400.

Body application/json

upload_idstringrequired

at most 64 characters

agent_idstringrequired

at most 64 characters

namestring

at most 120 characters

phone_columnstring

detected when empty

at most 64 characters

from_numberstring

the agent's number when empty

matches ^$|^\+?[0-9]{8,15}$

start_atstring | null

when to start; empty or past = now. Without an offset it is read in timezone

date-time

timezonestringdefault: "Asia/Kolkata"

at most 64 characters

retryobject
Show child attributes
outcomesenum<string>[]

call outcomes that are retried

max_retriesintegerdefault: 1

extra attempts per contact after the first call

0 to 3

delay_minutesintegerdefault: 30

wait between attempts

1 to 1440

max_concurrencyinteger | null

most calls of this batch queued, ringing or live at once; empty = the workspace's limit. Never above the workspace's concurrency limit

1 to 1000

call_windowobject | null

hours of the day (in timezone) when contacts are released, on top of the agent's calling hours; empty = the agent's hours only

Show child attributes
start_hourintegerdefault: 9

first hour calls may start (0-23)

0 to 23

end_hourintegerdefault: 18

calls are not released from this hour on (1-24)

1 to 24

webhook_urlstring

receives the lifecycle events (call.queued ... call.completed) of this batch's calls, signed with the workspace's default signing secret

at most 500 characters

variable_columnsstring[] | null

the columns passed to the agent as call variables (user_data); empty = every column except the phone number

at most 50 items

Response

201Success.

No body.

401No credentials, or they are invalid or revoked.
detailstring

What went wrong, in plain words.

403Your role (or an API key) lacks the permission.
detailstring

What went wrong, in plain words.

422Validation Error
detailobject[]
Show item attributes
locstring | integer[]
msgstring
typestring
429Over the per-key rate limit; wait for Retry-After.
detailstring

What went wrong, in plain words.

Esc