Create Campaign
Create a new outbound calling campaign
Before creating a campaign, upload your contacts CSV to get a source_url.
The time_slots field controls when Lemu is allowed to place calls. If omitted, calls can be placed at any time. The timezone field applies to all time slot windows.
{
"time_slots": [
{ "day": "monday", "start": "09:00", "end": "17:00" },
{ "day": "tuesday", "start": "09:00", "end": "17:00" }
]
}Once created, the campaign is in draft status. Call Start to begin dialing.
POST
/api/v1/campaign/createRequest body#
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | — |
workflow_id | integer | Yes | — |
source_type | string | Yes | — |
source_id | string | Yes | — |
retry_config | object | No | — |
max_concurrency | integer | No | — |
schedule_config | object | No | — |
circuit_breaker | object | No | — |
Example request body:
{
"name": "Example Name",
"workflow_id": 0,
"source_type": "string",
"source_id": "source_123",
"retry_config": {
"enabled": true,
"max_retries": 2,
"retry_delay_seconds": 120,
"retry_on_busy": true,
"retry_on_no_answer": true,
"retry_on_voicemail": true
},
"max_concurrency": 0,
"schedule_config": {
"enabled": true,
"timezone": "UTC",
"slots": [
{
"day_of_week": 0,
"start_time": "string",
"end_time": "string"
}
]
},
"circuit_breaker": {
"enabled": true,
"failure_threshold": 0.5,
"window_seconds": 120,
"min_calls_in_window": 5
}
}Responses#
200 — Successful Response
{
"id": 0,
"name": "Example Name",
"workflow_id": 0,
"workflow_name": "Example Name",
"state": "string",
"source_type": "string",
"source_id": "source_123",
"total_rows": 0,
"processed_rows": 0,
"failed_rows": 0,
"created_at": "2026-01-15T10:30:00Z",
"started_at": "2026-01-15T10:30:00Z",
"completed_at": "2026-01-15T10:30:00Z",
"retry_config": {
"enabled": true,
"max_retries": 0,
"retry_delay_seconds": 0,
"retry_on_busy": true,
"retry_on_no_answer": true,
"retry_on_voicemail": true
},
"max_concurrency": 0,
"schedule_config": {
"enabled": true,
"timezone": "string",
"slots": [
{
"day_of_week": 0,
"start_time": "string",
"end_time": "string"
}
]
},
"circuit_breaker": {
"enabled": false,
"failure_threshold": 0.5,
"window_seconds": 120,
"min_calls_in_window": 5
}
}404 — Not found
422 — Validation Error
{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}