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

# Create a campaign

`POST /campaigns`

Creates a campaign in a workspace. `description` is supplied as plain text and stored as rich text. Subject to the workspace campaign plan limit.

## Request body

- object
  - `workspaceId` string, required
  - `name` string, required
  - `status` 'active' | 'archived' | 'paused' | 'planned' | 'completed'
  - `icon` 'star' | 'bulb' | 'calendar' | 'apple' | 'gift' | 'christmasTree' | 'glass' | 'eggCracked' | 'archive' | 'ghost' | 'cross' | 'candle' | 'home' | 'briefcase' | 'school' | 'camera' | 'bike' | 'bell' | 'barbell' | 'barrier' | 'paint' | 'bolt' | 'heart' | 'babyCarriage' | 'trophy' | 'award' | 'paw' | 'bone' | 'creditCard' | 'discount' | 'shield' | 'tag' | 'thumbUp' | 'thumbDown' | 'umbrella' | 'flag' | 'sun' | 'campfire' | 'seeding' | 'leaf' | 'cherry' | 'macro' | 'clover' | 'pumpkin' | 'flame' | 'cactus' | 'globe' | 'stack' | 'basketball' | 'baseball' | 'ball' | 'gasPump' | 'car' | 'balloon' | 'mug' | 'location' | 'analyze' | 'chartPie' | 'chartDots' | 'cards' | 'mail' | 'headphones' | 'microphone' | 'key'
  - `color` string
  - `startedAt` string, date-time
  - `endedAt` string, date-time
  - `description` string
  - `links` object[]
    - `url` string, required
    - `title` string

## Response `201`

Campaign created

- object
  - `data` object, required
    - `id` string, required
    - `workspaceId` string, required
    - `name` string, required
    - `status` 'active' | 'archived' | 'paused' | 'planned' | 'completed', required
    - `icon` 'star' | 'bulb' | 'calendar' | 'apple' | 'gift' | 'christmasTree' | 'glass' | 'eggCracked' | 'archive' | 'ghost' | 'cross' | 'candle' | 'home' | 'briefcase' | 'school' | 'camera' | 'bike' | 'bell' | 'barbell' | 'barrier' | 'paint' | 'bolt' | 'heart' | 'babyCarriage' | 'trophy' | 'award' | 'paw' | 'bone' | 'creditCard' | 'discount' | 'shield' | 'tag' | 'thumbUp' | 'thumbDown' | 'umbrella' | 'flag' | 'sun' | 'campfire' | 'seeding' | 'leaf' | 'cherry' | 'macro' | 'clover' | 'pumpkin' | 'flame' | 'cactus' | 'globe' | 'stack' | 'basketball' | 'baseball' | 'ball' | 'gasPump' | 'car' | 'balloon' | 'mug' | 'location' | 'analyze' | 'chartPie' | 'chartDots' | 'cards' | 'mail' | 'headphones' | 'microphone' | 'key', required
    - `color` string, required
    - `startedAt` string, date-time, nullable, required
    - `endedAt` string, date-time, nullable, required
    - `description` string
    - `links` object[], required
      - `url` string, required
      - `title` string, nullable, required
    - `createdAt` string, date-time, required

## Other responses

- `400` — Validation error
- `401` — Unauthorized
- `403` — Campaign limit reached or insufficient permissions
- `429` — Rate limit exceeded
- `500` — Internal server error

---

[API](https://skmtc.net/planable/apis/planable-public-api.md) · [All operations](https://skmtc.net/planable/apis/planable-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/planable/planable-public-api/revisions/e91a4f756dfe/schema)
