> ## Documentation Index
> Fetch the complete documentation index at: https://docs.brightalk.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Batch dialing

> Understand draft, scheduling, and batch dialing control flows.

<Note>
  **Private Beta.** New organizations are enabled by default. An organization administrator must create a scoped API key in Brightalk Settings before requests can authenticate. This documentation and the OpenAPI contract define the available scope and limits.
</Note>

A Batch groups up to 1,000 unique recipients under one eligible AI voice agent and exposes aggregate execution state.

## Create a draft, then start

`POST /batches` creates `status: draft`. Creation alone never begins dialing. Provide exactly one recipient form: `contact_ids` or inline `recipients`.

`POST /batches/{batch_id}/start` is the only transition that starts or schedules a draft. It returns `202 Accepted` with the updated Batch.

## Recipient identity and limits

A Batch requires 1–1,000 unique canonical contacts. Duplicate contact IDs are rejected. Inline recipients are first resolved through the contact adoption rules; two inline identities that resolve to the same canonical contact are also duplicates.

## Schedule and calling window

An optional `schedule.start_at` sets the earliest RFC 3339 instant at which work is eligible. An optional `schedule.calling_window` defines one contiguous daily window with `time_zone`, unique `weekdays`, `start_time`, and a later `end_time`.

Once started, work is eligible only after `start_at` and inside that window. The Batch contract does not add multiple daily windows or branching; use a dashboard-managed Automation when those behaviors are needed.

## Aggregates and controls

The Batch resource reports `total_recipients` and pending, queued, in-progress, completed, failed, cancelled, answered, no-answer, and busy aggregate counts. Use `GET /batches/{batch_id}` to monitor them.

Pause stops subsequent recipient dispatch but does not promise to stop a call already in progress. Resume requeues eligible remaining recipients. Cancel stops remaining work and requests best-effort cancellation of active descendant calls. See [Status lifecycles](/en/concepts/status-lifecycle) for valid states.
