---
title: "Create 10DLC campaign"
method: POST
path: "/v1/10dlc/campaigns"
tags: ["10DLC"]
---

# Create 10DLC campaign

`POST /v1/10dlc/campaigns`

## Request

- Base URL: `https://api.zavu.dev`
- URL: `https://api.zavu.dev/v1/10dlc/campaigns`
- Auth: HTTP bearer

Create a 10DLC campaign under an existing brand. The campaign starts in draft status. Submit it for carrier review using the submit endpoint.

## Request body

- TenDlcCampaignCreateRequest
  - `brandId` string, required: ID of the brand to create this campaign under.
  - `name` string, required
  - `useCase` string, required: Campaign use case (e.g., ACCOUNT_NOTIFICATION, MARKETING, 2FA).
  - `subUseCases` string[]
  - `description` string, required
  - `sampleMessages` string[], required
  - `subscriberOptIn` boolean, required
  - `subscriberOptOut` boolean, required
  - `subscriberHelp` boolean, required
  - `numberPooling` boolean, required
  - `directLending` boolean, required
  - `embeddedLink` boolean, required
  - `embeddedPhone` boolean, required
  - `affiliateMarketing` boolean, required
  - `ageGated` boolean, required
  - `messageFlow` string
  - `helpMessage` string
  - `optInKeywords` string[]
  - `optOutKeywords` string[]

## Response `201`

Campaign created in draft status.

- TenDlcCampaignResponse
  - `campaign` TenDlcCampaign, required
    - `id` string, required
    - `brandId` string, required: ID of the brand this campaign belongs to.
    - `name` string, required
    - `useCase` string, required: Campaign use case type.
    - `subUseCases` string[], nullable
    - `description` string, required: Description of the messaging campaign.
    - `sampleMessages` string[], required: Sample messages representative of campaign content.
    - `subscriberOptIn` boolean, required
    - `subscriberOptOut` boolean, required
    - `subscriberHelp` boolean, required
    - `numberPooling` boolean, required
    - `directLending` boolean, required
    - `embeddedLink` boolean, required
    - `embeddedPhone` boolean, required
    - `affiliateMarketing` boolean, required
    - `ageGated` boolean, required
    - `messageFlow` string, nullable
    - `helpMessage` string, nullable
    - `optInKeywords` string[], nullable
    - `optOutKeywords` string[], nullable
    - `status` 'draft' | 'pending' | 'approved' | 'rejected' | 'expired' | 'failed', required: Status of a 10DLC campaign registration. - `draft`: created, not yet submitted. - `pending`: submitted, awaiting the carriers. Re-read from the carrier every 30 minutes, so it moves on its own. - `approved`: SMS to +1 numbers can go out from numbers assigned to it. The monthly fee is charged while it is approved. - `rejected`: refused by the carriers. The one-time registration fee is refunded. - `failed`: the registration did not reach the carriers. The fee is refunded. - `expired`: was approved and has lapsed.
    - `dailyLimit` integer, nullable: Daily message limit based on brand trust score.
    - `failureReason` string, nullable
    - `registrationCostCents` integer, nullable: One-time registration cost in cents.
    - `monthlyFeeCents` integer, nullable: Recurring monthly fee in cents.
    - `submittedAt` string, date-time, nullable
    - `approvedAt` string, date-time, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required

## Other responses

- `400`: Invalid request.
- `401`: Unauthorized.
- `404`: Brand not found.

## Changes

> 80 revisions in range; 1 not diffed.

- **2026-10-19** `70b974d2650a`: 2 warning
  - added the new `expired` enum value to the `campaign/status` response property for the response status `201`
  - added the new `failed` enum value to the `campaign/status` response property for the response status `201`
- **2026-03-17** `dca8af164271`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/zavudev/apis/zavu-unified-messaging-layer-api/changes/v1/10dlc/campaigns/post.md)

---

[API](https://skmtc.dev/zavudev/apis/zavu-unified-messaging-layer-api.md) - [All operations](https://skmtc.dev/zavudev/apis/zavu-unified-messaging-layer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/zavudev/apis/zavu-unified-messaging-layer-api/revisions/75bc777b0ffb?raw)
