Skip to main content
POST
Create Campaign
Requires a Labs OAuth user access token with the super_user role and Editor or higher workspace access. API keys are not accepted for this endpoint. See authentication. Use source_type: "manual" with manual_contacts, or source_type: "csv" with the file_key returned by upload contacts as source_id. This request creates the campaign; start it separately when ready. Starting places real calls.
Replace workflow_id and the contact with your tested agent and destination. day_of_week uses 0 for Monday through 6 for Sunday. Each slot’s start must be earlier than its end. Set telephony_configuration_id to select a specific configuration. When omitted, the workspace default is used. Manual campaigns accept up to 100 contacts.

Authorizations

Authorization
string
header
required

Bandwidth Labs OAuth access token. Uses the user's selected workspace; the workspace header is not required. Do not also send an API key. Bearer-only operations may additionally require the Labs super_user role.

Body

application/json
name
string
required
Required string length: 1 - 255
source_type
enum<string>
required
Available options:
csv,
manual
workflow_id
integer
required
circuit_breaker
CircuitBreakerConfigRequest · object | null
manual_contacts
ManualCampaignContact · object[] | null
Maximum array length: 100
max_concurrency
integer | null
Required range: 1 <= x <= 100
retry_config
RetryConfigRequest · object | null
schedule_config
ScheduleConfigRequest · object | null
source_id
string | null
telephony_configuration_id
integer | null

Response

Successful Response

completed_at
string<date-time> | null
required
created_at
string<date-time>
required
failed_rows
integer
required
id
integer
required
name
string
required
processed_rows
integer
required
retry_config
RetryConfigResponse · object
required
source_id
string
required
source_type
string
required
started_at
string<date-time> | null
required
state
string
required
total_rows
integer | null
required
workflow_id
integer
required
workflow_name
string
required
circuit_breaker
CircuitBreakerConfigResponse · object | null
executed_count
integer
default:0
logs
CampaignLogEntryResponse · object[]
max_concurrency
integer | null
parent_campaign_id
integer | null
redialed_campaign_id
integer | null
schedule_config
ScheduleConfigResponse · object | null
telephony_configuration_id
integer | null
telephony_configuration_name
string | null
total_queued_count
integer
default:0