Skip to main content
POST
Create Batch Job

Overview

Creates a batch calling job that will automatically dial contacts from your uploaded list. The job can start immediately or be scheduled for a future time. Key Features:
  • CSV file upload (up to 10,000 contacts)
  • Automatic phone number validation (E.164 format)
  • Scheduled start with timezone support
  • Configurable retry policy
  • Two-level concurrency control

Prerequisites

Before creating a batch job:
  1. Register a phone number in Studio → Phone Numbers
  2. Assign an outbound agent to that phone number
  3. Ensure sufficient credits in your organization account
  4. Prepare CSV file with at least a phone column
The agent assigned to the phone number must use Pipeline or Realtime architecture. Text-only agents cannot make voice calls.

Request

JSON Request (Programmatic)

Request Parameters

Form/Body Fields

Contact Object

CSV Format

Your CSV file must have a phone column. Additional columns are stored as custom fields.
Phone Number Format: All phone numbers must be in E.164 format (e.g., +12025550101, +442071838750). Numbers without + or with formatting characters will be rejected.

Response

Response Fields

Status Values

Examples

Example 1: Immediate Start (CSV)

Example 2: Scheduled Start with Timezone

Example 3: Custom Fields for Personalization

Then in your Agent System Prompt, use the custom fields:

Cost Estimation

The system estimates cost based on:
  • Number of contacts
  • Agent architecture (pipeline vs realtime)
  • Average call duration (assumed 2 minutes)
Example calculation for 100 contacts:
  • Pipeline agent: ~3.50(3.50 (0.035/call)
  • Realtime agent: ~7.00(7.00 (0.07/call)
Actual costs may vary based on call duration. The estimate assumes 2-minute average calls.

Error Handling

400 Bad Request

404 Not Found

500 Internal Server Error

How It Works

Authorizations

Authorization
string
header
required

Your TalkifAI API key. Get it from Studio → Settings → API Keys.

Body

file
file
required

CSV file with contacts (must have 'phone' column)

fromPhoneNumberId
string
required

Phone number ID to call from

name
string
required

Batch job name

description
string

Optional description

concurrentCallLimit
integer
default:5
Required range: 1 <= x <= 50
maxAttempts
integer
default:3
Required range: 1 <= x <= 10
scheduledStartTime
string<date-time>

Schedule start time (ISO 8601)

timezone
string
default:UTC

IANA timezone for scheduled time

Response

Batch job created

success
boolean
Example:

true

batchJobId
string
Example:

"batch_xyz789"

totalContacts
integer
Example:

100

estimatedDuration
string
Example:

"15 minutes"

estimatedCost
string
Example:

"$3.50"

status
string
Example:

"scheduled"

scheduledStartTime
string<date-time> | null
message
string