---
title: "Create a campaign"
method: POST
path: "/v2/campaigns"
tags: ["Campaigns"]
---

# Create a campaign

`POST /v2/campaigns`

Creates a new outbound dialing campaign.

The campaign will begin dialing contacts within the `time_start`–`time_end` window on the specified `days`. If `timezone` is omitted the organization's default timezone is used.

## Request body

- CreateCampaignRequest
  - `name` string, required
  - `type` 'outbound', required
  - `agent_uid` string, required
  - `from_number` string, required — E.164 format.
  - `contact_list_id` integer, required
  - `time_start` string, required — HH:MM format.
  - `time_end` string, required — HH:MM format.
  - `timezone` string
  - `days` CampaignDay[]

## Response `201`

Campaign created.

- CampaignResponse
  - `id` integer, required
  - `name` string, required
  - `type` 'outbound', required
  - `status` 'Running' | 'Scheduled' | 'Stopped' | 'Completed' | 'Failed' | 'Expired' | 'Paused', required
  - `agent_uid` string
  - `from_number` string
  - `contact_list_id` integer
  - `time_start` string — HH:MM (24-hour) daily window start.
  - `time_end` string — HH:MM (24-hour) daily window end.
  - `timezone` string
  - `days` CampaignDay[]
  - `created_at` string, date-time
  - `updated_at` string, date-time

## Other responses

- `400` — Validation error or invalid request body.
- `401` — Missing or invalid API key.
- `404` — The requested resource does not exist.
- `429` — Rate limit exceeded.
- `500` — Unexpected server error.

---

[API](https://skmtc.net/openmicai/apis/openmic-v1-external-api.md) · [All operations](https://skmtc.net/openmicai/apis/openmic-v1-external-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/openmicai/openmic-v1-external-api/revisions/58dc5cff0ca7/schema)
