---
title: "Create A2P campaign"
method: POST
path: "/internal/telephony/a2p-campaigns"
tags: ["Telephony - A2P Campaigns"]
---

# Create A2P campaign

`POST /internal/telephony/a2p-campaigns`

Register a new A2P campaign for 10DLC messaging.

## Request body

- CreateA2PCampaign
  - `workspaceId` string, uuid, required — Workspace ID
  - `brandId` string, uuid, required — A2P Brand ID
  - `useCase` 'ACCOUNT_NOTIFICATION' | 'AGENTS_FRANCHISES' | 'CARRIER_EXEMPT' | 'CHARITY' | 'CONVERSATIONAL' | 'CUSTOMER_CARE' | 'DELIVERY_NOTIFICATION' | 'EMERGENCY' | 'FRAUD_ALERT' | 'HIGHER_EDUCATION' | 'K12_EDUCATION' | 'LOW_VOLUME' | 'MARKETING' | 'MIXED' | 'POLITICAL' | 'POLLING_VOTING' | 'PUBLIC_SERVICE_ANNOUNCEMENT' | 'SECURITY_ALERT' | 'SOCIAL' | 'SWEEPSTAKES' | 'TWO_FACTOR_AUTH', required — Campaign use case
  - `description` string, required — Campaign description
  - `sample1` string
  - `sample2` string
  - `messageFlow` string
  - `helpMessage` string
  - `helpKeywords` string
  - `optinMessage` string
  - `optinKeywords` string
  - `optoutMessage` string
  - `optoutKeywords` string
  - `subscriberOptin` boolean
  - `subscriberOptout` boolean
  - `subscriberHelp` boolean
  - `embeddedLink` boolean
  - `embeddedPhone` boolean
  - `numberPool` boolean
  - `ageGated` boolean
  - `directLending` boolean
  - `autoRenewal` boolean

## Response `201`

A2P campaign created

- A2PCampaign
  - `id` string, uuid, required — Unique identifier
  - `workspaceId` string, uuid, required — Workspace ID
  - `brandId` string, uuid, required — A2P Brand ID
  - `providerId` string, nullable, required — Provider campaign ID
  - `status` 'pending' | 'approved' | 'failed', required — Campaign status
  - `useCase` 'ACCOUNT_NOTIFICATION' | 'AGENTS_FRANCHISES' | 'CARRIER_EXEMPT' | 'CHARITY' | 'CONVERSATIONAL' | 'CUSTOMER_CARE' | 'DELIVERY_NOTIFICATION' | 'EMERGENCY' | 'FRAUD_ALERT' | 'HIGHER_EDUCATION' | 'K12_EDUCATION' | 'LOW_VOLUME' | 'MARKETING' | 'MIXED' | 'POLITICAL' | 'POLLING_VOTING' | 'PUBLIC_SERVICE_ANNOUNCEMENT' | 'SECURITY_ALERT' | 'SOCIAL' | 'SWEEPSTAKES' | 'TWO_FACTOR_AUTH', required — Campaign use case
  - `createdAt` string, date-time, required — Creation timestamp
  - `updatedAt` string, date-time, required — Last update timestamp

## Other responses

- `400` — Validation error or brand not approved
- `401` — Unauthorized
- `403` — Forbidden

---

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