---
title: "Create Campaign"
method: POST
path: "/api/v1/campaigns/"
tags: ["Campaigns"]
---

# Create Campaign

`POST /api/v1/campaigns/`

## Request

- Base URL: `http://localhost:3009`
- URL: `http://localhost:3009/api/v1/campaigns/`
- Auth: HTTP bearer

Creates an empty campaign. It starts **paused** with no sequence, so nothing sends until you add steps, publish the sequence, choose the mailboxes to send from, add leads, and resume it.

## Request body

- object
  - `name` string, required: Campaign name

## Response `201`

Default Response

- object
  - `status` integer
  - `message` string
  - `data` Campaign: A campaign runs leads through a published sequence of email and task steps. It sends only when it has a published sequence and `state` is `active`.
    - `id` string: Campaign ID (UUID)
    - `name` string: Campaign name
    - `description` string: Campaign description
    - `state` 'active' | 'paused': `active` sends on schedule; `paused` halts sending. New campaigns start paused.
    - `has_published_sequence` boolean: Whether a sequence has been published. A campaign with no published sequence never enrols leads.
    - `is_archived` boolean: Whether the campaign has been archived
    - `settings` object: Sending settings: `sending_window_start` / `sending_window_end` (HH:MM), `timezone`, `remove_on_reply`, `create_task_on_reply`, `bounce_rate_limit`.
    - `lead_schema` CampaignLeadField[]: The campaign's lead fields. Returned by Get Campaign only.
      - `name` string: Field name — the key to use in a lead object
      - `type` string: Declared field type
      - `required` boolean: Whether the field must be provided
    - `created_at` string, date-time
    - `updated_at` string, date-time

## Other responses

- `400`: Campaign name is required
- `401`: Unauthorized — missing or invalid API key
- `403`: Forbidden. `code` says which permission refused: ROLE_FORBIDDEN (your role), INSUFFICIENT_SCOPE (the API key's scopes), WORKFLOW_FORBIDDEN (no access to the workflow), KEY_WORKFLOW_FORBIDDEN (the API key's workflow restriction).
- `429`: Too Many Requests — rate limit exceeded. Check `Retry-After` header for seconds until the limit resets.

---

[API](https://skmtc.dev/floqer/apis/floqer-public-api.md) - [All operations](https://skmtc.dev/floqer/apis/floqer-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/floqer/apis/floqer-public-api/revisions/fce50dc07b20?raw)
