Create a Campaign
POST /campaigns
Creates a new outbound calling campaign. The campaign starts in scheduled status and begins dialing at the configured start_time (or immediately if no schedule is set and you later call the start action).
Request Body
A human-readable display name for the campaign. Shown in the dashboard and included in webhook payloads. Maximum 255 characters.
The ID of the voice script to use. Scripts are created and managed in the Neuron section of the dashboard under Scripts. You can find the script ID on the script detail page.
BCP-47 language code for the campaign. Determines the voice model and speech recognition used during calls. Examples:
hi-IN (Hindi), ta-IN (Tamil), en-IN (English — India).Array of contact objects to call. Each contact must include
phone (E.164 format, e.g. +919876543210) and name (string). You can also include any custom fields as additional key-value pairs on the contact object — they are passed into the script context at call time.Optional scheduling configuration. If omitted, the campaign can be started manually from the dashboard or via
PATCH /campaigns/{id}.Maximum number of call attempts per contact. Accepted values are
1 through 5. Contacts that are not reachable after all attempts are marked with disposition not_reachable.Number of minutes to wait between retry attempts for a contact who was not reachable. Only applies when
max_attempts is greater than 1.Example Request
cURL
Example Response
List Campaigns
GET /campaigns
Returns a paginated list of campaigns in your workspace, ordered by creation date descending.
Query Parameters
Filter by campaign status. One of:
scheduled, running, paused, completed, stopped.ISO 8601 date — return campaigns created on or after this date. Example:
2024-01-01.ISO 8601 date — return campaigns created on or before this date.
Number of results per page. Maximum
100.Number of results to skip. Use with
limit to paginate through results.Example Request
Get Campaign Details
GET /campaigns/{id}
Returns full details for a single campaign, including real-time progress counters and a breakdown of call dispositions.
Response Fields
Unique identifier for the campaign.
Campaign display name.
Current campaign status:
scheduled, running, paused, completed, or stopped.Total number of contacts in the campaign (including contacts removed via the contacts endpoint).
Number of call attempts made so far (including retries).
Number of calls where the contact answered and the conversation began.
A breakdown of outcome counts by disposition label.
ISO 8601 timestamp of when the campaign was created.
Update Campaign Status
PATCH /campaigns/{id}
Pauses, resumes, or stops a campaign that is currently running or paused. Pass an action field in the request body.
Request Body
The action to perform. One of:
pause— suspends dialing; calls already in progress are allowed to finish.resume— resumes a paused campaign.stop— permanently stops the campaign; cannot be restarted.
Example Request
Remove Contacts from a Campaign
DELETE /campaigns/{id}/contacts
Removes specific contacts from an active or scheduled campaign. Use this to apply DNC (Do Not Call) suppression after a campaign has already been created, or to remove contacts who have since converted through another channel.
Request Body
Array of phone numbers in E.164 format to remove from the campaign. Contacts who have already been called are not affected — only pending contacts are removed.
Example Request
Example Response
Contacts that were already called before this request are counted in
already_called and are not removed from the campaign record — their call data is preserved for reporting.