> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lacy.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Create campaign

> Create a new outbound calling campaign

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

**data properties**

**id** `integer`

The ID of the created campaign

**name** `string`

The name of the campaign

**status** `string`

The status of the campaign (starts as `draft`)

**max\_calls\_in\_parallel** `integer`

Maximum number of simultaneous calls

**mark\_complete\_when\_no\_leads** `boolean`

Whether to mark the campaign as complete when there are no leads

**allowed\_hours\_start\_time** `string`

Start of the allowed calling window

**allowed\_hours\_end\_time** `string`

End of the allowed calling window

**allowed\_days** `array`

Days of the week when calls are allowed

**max\_retries** `integer`

Maximum number of retry attempts

**retry\_interval** `integer`

Interval in minutes between retries

**created\_at** `string`

Timestamp when the campaign was created

**updated\_at** `string`

Timestamp when the campaign was last updated

### Error Responses

**403 Forbidden**

**Error Response**

**message** `string`

Error message when the user has reached their plan's campaign limit

**404 Not Found**

**Error Response**

**message** `string`

Error message when the specified assistant is not found or is not an outbound assistant

**422 Validation Error**

**Error Response**

**message** `string`

Error message indicating validation failure

**errors** `object`

Detailed validation errors for each field

```json 201 Created theme={null}
{
  "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"
  }
}
```

```json 403 Forbidden theme={null}
{
  "message": "You have reached the maximum number of campaigns allowed by your plan."
}
```

```json 404 Not Found theme={null}
{
  "message": "Assistant not found or not an outbound assistant."
}
```

```json 422 Validation Error theme={null}
{
  "message": "The given data was invalid.",
  "errors": {
    "name": [
      "The name field is required."
    ],
    "assistant_id": [
      "The assistant id field is required."
    ]
  }
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.