Batches
Create a batch
https://api.vaakyo.com/api/v1/batchesSchedule 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.
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_idstringrequiredat most 64 characters
agent_idstringrequiredat most 64 characters
namestringat most 120 characters
phone_columnstringdetected when empty
at most 64 characters
from_numberstringthe agent's number when empty
matches ^$|^\+?[0-9]{8,15}$
start_atstring | nullwhen to start; empty or past = now. Without an offset it is read in timezone
date-time
timezonestringdefault: "Asia/Kolkata"at most 64 characters
retryobjectShow child attributes
outcomesenum<string>[]call outcomes that are retried
max_retriesintegerdefault: 1extra attempts per contact after the first call
0 to 3
delay_minutesintegerdefault: 30wait between attempts
1 to 1440
max_concurrencyinteger | nullmost 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 | nullhours 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: 9first hour calls may start (0-23)
0 to 23
end_hourintegerdefault: 18calls are not released from this hour on (1-24)
1 to 24
webhook_urlstringreceives 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[] | nullthe 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.
detailstringWhat went wrong, in plain words.
403Your role (or an API key) lacks the permission.
detailstringWhat went wrong, in plain words.
422Validation Error
detailobject[]Show item attributes
locstring | integer[]msgstringtypestring429Over the per-key rate limit; wait for Retry-After.
detailstringWhat went wrong, in plain words.