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

# Create a campaign

`POST /campaigns`

Create a new campaign. A campaign is a planned sequence of activities that promotes a product or service. After creating a campaign, use [POST /campaign-products](https://carecloud.readme.io/reference/postcampaignproduct) to attach discounted products to it. See [Campaigns](https://help.crmcarecloud.com/en/campaigns-and-segmentation/e-mailing/campaigns) for details.

## Headers

- `Accept-Language` string

## Request body

- object
  - `campaign` Campaign, required — Campaign resource.
    - `idcampaign` string — The unique ID of the campaign. ⚠️ This parameter is deprecated, please use `campaign_id` instead. Please be aware this parameter can be referred in different endpoints as `campaign_id`.
    - `campaign_id` string — The unique ID of the campaign.
    - `external_id` string — The external ID of the campaign.
    - `parent_id` string — The unique ID of the parent campaign. [GET /campaigns](https://carecloud.readme.io/reference/getcampaigns)
    - `name` string, required — Name of the campaign.
    - `last_change` string — Timestamp of the last change. Format: `YYYY-MM-DD HH:MM:SS`. All times are in the local timezone.
    - `state` 0 | 1 | 2 — State of the campaign. *Possible values are: 0 - deleted / 1 - active / 2 - non active*

## Response `201`

Created

- object
  - `data` object
    - `campaign_id` string — The unique ID of the campaign.

## Other responses

- `400` — Bad input parameter. The response body's `error.error_data.invalid_params[]` array lists the parameters that caused the failure, each carrying a `reason` code. See the `BadRequestErrorBody` schema for the generic reason taxonomy. Operations with domain-specific business rules document additional reasons at the operation level.
- `401` — The client has invalid credentials or auth token.
- `403` — The client does not exist or the client tried to access an unauthorized property or resource.
- `404` — The resource was not found.
- `405` — The resource does not support the specified HTTP method.
- `429` — Too many requests - more than the resource limit.
- `500` — Server is not working as expected.
- `503` — Temporary state when the service is temporarily unavailable, overloaded or there is a maintenance window.

---

[API](https://skmtc.net/crmcarecloud/apis/rest-api-reference.md) · [All operations](https://skmtc.net/crmcarecloud/apis/rest-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/crmcarecloud/rest-api-reference/revisions/329c06dbf8d9/schema)
