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

# Create a campaign

`POST /v1/campaigns`

## Request

- Base URL: `https://api.call2me.app`
- URL: `https://api.call2me.app/v1/campaigns`
- Auth: HTTP bearer

Create a new outbound calling campaign. The campaign is created in `draft` status; you typically follow up with:

1. `POST /v1/campaigns/{id}/upload-csv` — bulk-add contacts from a CSV (or `POST /v1/campaigns/{id}/contacts` to add them one by one).
2. `POST /v1/campaigns/{id}/action` with `{action: "start"}` to begin dialing.

**Configuration**: `agent_id` (required), `from_number` (auto-assigned from agent's number if omitted), `max_concurrent` (parallel calls), `calls_per_minute` (rate limit), `retry_count` and `retry_delay_minutes` for failed attempts.

## Request body

- CreateCampaignRequest
  - `agent_id` string, required
  - `name` string, required
  - `description` string, nullable
  - `from_number` string, nullable
  - `max_concurrent` integer
  - `calls_per_minute` integer
  - `retry_count` integer
  - `retry_delay_minutes` integer
  - `variable_mapping` object, nullable

## Response `201`

Campaign created in draft status.

- unknown

## Other responses

- `404`: Agent not found.
- `422`: Validation Error

---

[API](https://skmtc.dev/call2me/apis/call2me-api.md) · [All operations](https://skmtc.dev/call2me/apis/call2me-api/llms.txt) · [OpenAPI document](https://skmtc.dev/call2me/apis/call2me-api/revisions/3951f9b7e47d?raw)
