---
title: "Create CampaignContent"
method: POST
path: "/shop/customers/campaigns/{campaignId}/contents"
tags: ["Campaigns"]
---

# Create CampaignContent

`POST /shop/customers/campaigns/{campaignId}/contents`

Creates a new content record for the given `Campaign`.

## Request body

- object
  - `locale` string, required — The BCP 47 locale code for this content variant.
  - `subject` string — The email subject line for this content variant.
  - `content` string — The email body content in markdown.

## Response `201`

The campaign content was successfully retrieved.

- object
  - `data` CampaignContent, required — The localised content (subject line and body) for a `Campaign`. A campaign may have multiple content records — one per locale — enabling multi-language sends.
    - `id` string, uuid, required — The unique identifier of the campaign content.
    - `campaign_id` string, uuid, required — The unique identifier of the campaign.
    - `locale` string, required — The BCP 47 locale code for this content variant.
    - `subject` string, nullable, required — The email subject line for this content variant.
    - `content` string, nullable, required — The email body content for this content variant. May contain HTML.

## Other responses

- `401` — The user is unauthenticated
- `403` — The authenticated user does not have permission.
- `404` — The resource couldn't be found
- `422` — The request didn't pass validation

---

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