Uploads a contact list for a campaign. Accepts a CSV file and campaign configuration as form data.
Upload a CSV file with contact data to create a campaign. This is the primary upload endpoint for the standard campaign flow: first callDocumentation Index
Fetch the complete documentation index at: https://docs.ringg.ai/llms.txt
Use this file to discover all available pages before exploring further.
POST /campaign/save, then start calls with POST /campaign/start.
list_id to start your campaign| Field | Format | Example |
|---|---|---|
| CSV File | .csv file | contacts.csv |
| Agent ID | UUID | 830f767a-397e-4b39-82ff-235cd344e2f9 |
| Campaign Name | Text | ”Q1 Sales Outreach” |
| Country Code | Phone dialing prefix | ”+91”, “+1” |
| Campaign Start Time | DD/MM/YYYY, HH:MM | 18/10/2026, 09:00 |
| Campaign End Time | DD/MM/YYYY, HH:MM | 18/10/2026, 21:00 |
| Setting | Default | Purpose |
|---|---|---|
| Remove Invalid Rows | false | Auto-remove bad data |
| Transliterate Callee Name | false | Convert to English |
campaign_start_time and campaign_end_time use the timezone in call_config.call_time.timezone. The backend expects the DD/MM/YYYY, HH:MM format and validates that the start time is in the future.@{{variable_name}}:
@{{callee_name}} becomes “John Doe”@{{company_name}} becomes “XYZ Corp”list_id. Save it because you need it to start the campaign.
list_id from the responselist_idbulk_list_id and requires status polling before calls can start.
remove_invalid_rows=true to automatically skip problematic contacts instead of failing the entire upload.(Required) Your Ringg AI API key.
"7251cb4b-3373-43a4-844c-b27a1d45e0c9"
(Required) JSON string mapping variable names to columns
{
"callee_name": "Name",
"company_name": "Company"
}
(Required) Unique identifier for the agent
"830f767a-397e-4b39-82ff-235cd344e2f9"
(Required) JSON string of call configuration
{
"idle_timeout_warning": 10,
"max_call_length": 300
}
(Required) Phone number country code (e.g., +91 for India, +1 for US)
"+91"
(Required) Start time for the campaign (DD/MM/YYYY, HH:MM format)
"18/10/2025, 09:00"
(Required) End time for the campaign (DD/MM/YYYY, HH:MM format)
"18/10/2025, 21:05"
(Required) Name of the campaign.
"Q1 Sales Campaign"
(Required) CSV file containing the contact list.
(Optional) Auto-remove invalid rows from CSV
false
(Optional) Transliterate callee names to the agent's language
false
Contact list uploaded and campaign saved successfully.
"Contacts imported successfully!"
ID of the created campaign list
"123e4567-e89b-12d3-a456-426614174000"
Array of custom variables for each contact
[
{
"callee_name": "John Doe",
"company_name": "XYZ Corp",
"mobile_number": "+1234567890"
}
]
Total number of rows in uploaded CSV
100
Number of successfully processed rows
98
Number of rows that failed validation
2