---
title: "POST /v1/campaigns"
method: POST
path: "/v1/campaigns"
---

# POST /v1/campaigns

`POST /v1/campaigns`

## Request body

- object
  - `name` string, required
  - `from` string, required
  - `subject` string, required
  - `previewText` string
  - `contactBookId` string, required
  - `content` string
  - `html` string
  - `replyTo` union
    - string
    - string[]
  - `cc` union
    - string
    - string[]
  - `bcc` union
    - string
    - string[]
  - `sendNow` boolean
  - `scheduledAt` string — Timestamp in ISO 8601 format or natural language (e.g., 'tomorrow 9am', 'next monday 10:30')
  - `batchSize` integer

## Response `200`

Create a campaign

- object
  - `id` string, required
  - `name` string, required
  - `from` string, required
  - `subject` string, required
  - `previewText` string, nullable, required
  - `contactBookId` string, nullable, required
  - `html` string, nullable, required
  - `content` string, nullable, required
  - `status` string, required
  - `scheduledAt` string, date-time, nullable, required
  - `batchSize` integer, required
  - `batchWindowMinutes` integer, required
  - `total` integer, required
  - `sent` integer, required
  - `delivered` integer, required
  - `opened` integer, required
  - `clicked` integer, required
  - `unsubscribed` integer, required
  - `bounced` integer, required
  - `hardBounced` integer, required
  - `complained` integer, required
  - `replyTo` string[], required
  - `cc` string[], required
  - `bcc` string[], required
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required

## Changes

- **2026-07-17** `ee7832fe66a6` — 5 info
  - removed the `DRAFT` enum value from the `status` response property for the response status `200`
  - removed the `PAUSED` enum value from the `status` response property for the response status `200`
  - removed the `RUNNING` enum value from the `status` response property for the response status `200`
  - removed the `SCHEDULED` enum value from the `status` response property for the response status `200`
  - …1 more
- **2026-03-03** `8088d55e5f7c` — 5 warning
  - added the new `DRAFT` enum value to the `status` response property for the response status `200`
  - added the new `PAUSED` enum value to the `status` response property for the response status `200`
  - added the new `RUNNING` enum value to the `status` response property for the response status `200`
  - added the new `SCHEDULED` enum value to the `status` response property for the response status `200`
  - …1 more
- **2025-10-17** `36c9ecf012d2` — 1 info
  - endpoint added
- **2024-05-21** `ad91eadfd8ee` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/usesend/apis/usesend-api/changes/v1/campaigns/post.md)

---

[API](https://skmtc.dev/usesend/apis/usesend-api.md) · [All operations](https://skmtc.dev/usesend/apis/usesend-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/usesend/usesend-api/revisions/ee7832fe66a6/schema)
