Skip to main content
POST
https://app.autocalls.ai/api/
/
user
/
campaign
Create campaign
curl --request POST \
  --url https://app.autocalls.ai/api/user/campaign \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "assistant_id": 123,
  "timezone": "<string>",
  "max_calls_in_parallel": 123,
  "allowed_hours_start_time": "<string>",
  "allowed_hours_end_time": "<string>",
  "allowed_days": [
    {}
  ],
  "max_retries": 123,
  "retry_interval": 123,
  "retry_on_voicemail": true,
  "retry_on_goal_incomplete": true,
  "goal_completion_variable": "<string>",
  "mark_complete_when_no_leads": true,
  "phone_number_ids": [
    {}
  ]
}
'
{
  "message": "Campaign created successfully",
  "data": {
    "id": 1,
    "name": "Product Demo Campaign",
    "status": "draft",
    "max_calls_in_parallel": 3,
    "mark_complete_when_no_leads": true,
    "allowed_hours_start_time": "09:00:00",
    "allowed_hours_end_time": "17:00:00",
    "allowed_days": [
      "monday",
      "tuesday",
      "wednesday",
      "thursday",
      "friday"
    ],
    "max_retries": 3,
    "retry_interval": 60,
    "created_at": "2026-02-23T10:00:00.000000Z",
    "updated_at": "2026-02-23T10:00:00.000000Z"
  }
}
This endpoint allows you to create a new outbound calling campaign with the specified configuration.

Request body

name
string
required
The name of the campaign. Maximum 255 characters.
assistant_id
integer
required
The ID of the assistant to use for the campaign. Must be an outbound-capable assistant.
timezone
string
Timezone identifier for the campaign (e.g., America/New_York, Europe/London). Defaults to your account timezone.
max_calls_in_parallel
integer
default:"3"
Maximum number of simultaneous calls. Minimum: 1. Maximum depends on your plan’s parallel calls limit (up to 10).
allowed_hours_start_time
string
default:"00:00"
Start of the allowed calling window in H:i format (e.g., 09:00).
allowed_hours_end_time
string
default:"23:59"
End of the allowed calling window in H:i format (e.g., 17:00).
allowed_days
array
default:"all 7 days"
Array of weekday names when calls are allowed. Valid values: monday, tuesday, wednesday, thursday, friday, saturday, sunday.
max_retries
integer
default:"3"
Maximum number of retry attempts for failed calls. Range: 1-5.
retry_interval
integer
default:"60"
Interval in minutes between retry attempts. Range: 10-4320 (up to 3 days).
retry_on_voicemail
boolean
Whether to retry calls that reached voicemail.
retry_on_goal_incomplete
boolean
Whether to retry calls where the goal was not completed.
goal_completion_variable
string
Name of a boolean variable from your assistant’s post-call schema to track goal completion. Maximum 255 characters.
mark_complete_when_no_leads
boolean
default:"true"
Whether to automatically mark the campaign as complete when there are no remaining leads to call.
phone_number_ids
array
Array of phone number IDs to use for the campaign. Each ID must be a distinct integer.

Response

message
string
Success message confirming the campaign was created
data
object
The created campaign data

Error Responses

403 Forbidden
404 Not Found
422 Validation Error
{
  "message": "Campaign created successfully",
  "data": {
    "id": 1,
    "name": "Product Demo Campaign",
    "status": "draft",
    "max_calls_in_parallel": 3,
    "mark_complete_when_no_leads": true,
    "allowed_hours_start_time": "09:00:00",
    "allowed_hours_end_time": "17:00:00",
    "allowed_days": [
      "monday",
      "tuesday",
      "wednesday",
      "thursday",
      "friday"
    ],
    "max_retries": 3,
    "retry_interval": 60,
    "created_at": "2026-02-23T10:00:00.000000Z",
    "updated_at": "2026-02-23T10:00:00.000000Z"
  }
}