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

# Create batch call

> Creates a new batch call.

## Notes

* Option 1 (Send now): set `send_now=true`.
* Option 2 (Schedule call later): provide `trigger_timestamp` (send\_now can be false or omitted).
* `status="draft"` overrides execution.


## OpenAPI

````yaml post /batch-call
openapi: 3.0.3
info:
  title: Zudu API
  description: >-
    Comprehensive REST API for LiveKit Backend - Call Management, Agent
    Configuration, and Real-time Communication Services
  version: 1.0.0
  contact:
    name: Zudu AI Team
    url: https://zudu.ai
    email: support@zudu.ai
  license:
    name: Proprietary
    url: https://zudu.ai/license
servers:
  - url: https://api.zudu.ai
    description: Production (Customer-facing)
security:
  - apiKey: []
    apiSecret: []
tags:
  - name: Agent Management
    description: Create and manage AI agents
  - name: Call Data Management
    description: Call records and history
  - name: Customer API Keys
    description: Manage API keys
  - name: Post-Call Webhooks
    description: Webhook configuration
  - name: phone-number-controller
    description: Phone numbers
  - name: batch-call-controller
    description: Batch calls
  - name: MCP Server Management
    description: MCP servers
  - name: Knowledge Base Management
    description: Knowledge bases
  - name: Call Analysis
    description: Call analysis
paths:
  /batch-call:
    post:
      tags:
        - batch-call-controller
      summary: Create batch call
      description: >-
        Creates a new batch call. Requires orgId and Content-Type:
        application/json. agent_id, name, from_number, and tasks are required.
      operationId: createBatchCall
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - agent_id
                - name
                - from_number
                - tasks
              anyOf:
                - required:
                    - send_now
                - required:
                    - trigger_timestamp
              properties:
                from_number:
                  type: string
                  description: E.164 format
                tasks:
                  type: array
                  minItems: 1
                  maxItems: 1000
                  items:
                    type: object
                    required:
                      - to_number
                    properties:
                      to_number:
                        type: string
                        description: E.164 format, unique in array
                      dynamic_variables:
                        type: object
                        description: Optional, max 5KB JSON
                      max_retries:
                        type: integer
                        description: '0-10, default: 3'
                name:
                  type: string
                  maxLength: 255
                trigger_timestamp:
                  type: integer
                  format: int64
                  description: >-
                    Unix timestamp (milliseconds). Required when scheduling
                    (send_now false or omitted).
                agent_id:
                  type: string
                  description: agent_[uuid] format
                retry_config:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                    max_attempts:
                      type: integer
                quiet_hours:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                    start_time:
                      type: string
                      description: HH:mm
                    end_time:
                      type: string
                      description: HH:mm
                    timezone:
                      type: string
                retry_rules:
                  type: array
                  items:
                    type: object
                    properties:
                      condition:
                        type: string
                      enabled:
                        type: boolean
                      retry_timing:
                        type: object
                        properties:
                          type:
                            type: string
                            enum:
                              - AT
                              - AFTER
                          time:
                            type: string
                          duration_minutes:
                            type: integer
                timezone:
                  type: string
                  description: Valid timezone, default UTC
                status:
                  type: string
                  enum:
                    - draft
                    - scheduled
                    - sent
                send_now:
                  type: boolean
                  default: false
                  description: >-
                    Set true to send immediately. Use false/omit when scheduling
                    with trigger_timestamp.
                organization_id:
                  type: string
            example:
              from_number: '+918035315547'
              name: new_batch_call_docs
              agent_id: agent_90412a2c-fb63-418f-af25-8ecc1bdcc16e
              retry_config:
                enabled: true
                max_attempts: 3
              quiet_hours:
                enabled: true
                start_time: '22:00'
                end_time: '08:00'
                timezone: Asia/Calcutta
              retry_rules:
                - condition: no_answer
                  enabled: true
                  retry_timing:
                    type: AT
                    time: '13:00'
                - condition: busy
                  enabled: true
                  retry_timing:
                    type: AT
                    time: '14:00'
                - condition: voicemail
                  enabled: true
                  retry_timing:
                    type: AFTER
                    duration_minutes: 120
              send_now: false
              tasks:
                - to_number: '+919600011957'
                  dynamic_variables:
                    order_id: '5001201'
                    name: Aswathi
                    gender: Female
                    address: Green Park Residency
                    branchname: WHITEFIELD-HUB
                    cityname: Bangalore
                    created_date: 1/5/26
                    scheduleddate: 1/10/26
                - to_number: '+919445216009'
                  dynamic_variables:
                    order_id: '5001202'
                    name: dev
                    gender: Female
                    address: Lake View Apartments
                    branchname: MADHAPUR-HUB
                    cityname: Hyderabad
                    created_date: 1/6/26
                    scheduleddate: 1/12/26
              timezone: Asia/Calcutta
              trigger_timestamp: 1771573740000
        required: true
      responses:
        '201':
          description: Batch call created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  batch_call_id:
                    type: string
                  name:
                    type: string
                  from_number:
                    type: string
                  scheduled_timestamp:
                    type: integer
                    format: int64
                  total_task_count:
                    type: integer
                  agent_id:
                    type: string
                  organization_id:
                    type: string
                  status:
                    type: string
                  error:
                    type: string
                    nullable: true
                  total:
                    type: integer
                  sent:
                    type: integer
                  picked_up:
                    type: integer
                  completed:
                    type: integer
                  timezone:
                    type: string
                  last_sent_timestamp:
                    type: integer
                    format: int64
                    nullable: true
                  tasks_url:
                    type: string
                  created_timestamp:
                    type: integer
                    format: int64
                  access_info:
                    type: object
                    properties:
                      creator_image_url:
                        type: string
                      creator_name:
                        type: string
                  is_paused:
                    type: boolean
                  paused_at:
                    type: integer
                    format: int64
                    nullable: true
              example:
                batch_call_id: batch_call_73077b8359a4478189e503a1547a9147
                name: new_batch_call_docs
                from_number: '+918035315547'
                scheduled_timestamp: 1771573740000
                total_task_count: 2
                agent_id: agent_90412a2c-fb63-418f-af25-8ecc1bdcc16e
                organization_id: org_32x5WvKzp28883DHaKC1YgEHzdE
                status: scheduled
                error: null
                total: 2
                sent: 0
                picked_up: 0
                completed: 0
                timezone: Asia/Calcutta
                last_sent_timestamp: null
                tasks_url: >-
                  https://stzuduindiav845035245154.blob.core.windows.net/5ffbe4b2-c66e-4fce-bf5f-38e755a92d87-azureml/batch-calls/batch_call_73077b8359a4478189e503a1547a9147/tasks.json
                created_timestamp: 1770882512648
                access_info:
                  creator_image_url: >-
                    https://img.clerk.com/eyJ0eXBlIjoiZGVmYXVsdCIsImlpZCI6Imluc18yeVBYYWt0S0d3VWkyN3d5R0haSHE5TVVCMlYiLCJyaWQiOiJ1c2VyXzM4TjNvRzVpT1ZlZW0yWmxwT0pTT0N6dEhKayIsImluaXRpYWxzIjoiQVYifQ
                  creator_name: Aswathi VK
                is_paused: false
                paused_at: null
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  status:
                    type: string
                  error:
                    type: string
                    nullable: true
                  data:
                    type: string
                    nullable: true
              example:
                message: Validation error
                status: error
                error: >-
                  Duplicate phone numbers found in tasks. Each phone number must
                  be unique within a batch call
                data: null
        '401':
          description: Missing required header
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  status:
                    type: string
                  error:
                    type: string
                    nullable: true
                  data:
                    type: string
                    nullable: true
              example:
                message: Missing required header
                status: error
                error: orgId header is required for this operation
                data: null
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  status:
                    type: string
                  error:
                    type: string
                    nullable: true
                  data:
                    type: string
                    nullable: true
              example:
                message: Access denied
                status: error
                error: Batch call does not belong to your organization
                data: null
        '409':
          description: State conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  status:
                    type: string
                  error:
                    type: string
                    nullable: true
                  data:
                    type: string
                    nullable: true
              example:
                message: Cannot update batch call
                status: error
                error: Cannot update running batch call
                data: null
components:
  securitySchemes:
    apiKey:
      type: apiKey
      description: API Key for MCP server and external service authentication
      name: X-API-KEY
      in: header
    apiSecret:
      type: apiKey
      description: API Secret for MCP server and external service authentication
      name: X-API-SECRET
      in: header

````