Create or Update 10DLC Campaign

Create a new 10DLC campaign or update an existing one. <Note> **To create a new campaign:** Omit `campaignId` — one will be generated automatically. **Before you start:** Create a [brand](/api-reference/brands/upsert) first — you'll need its `id` for the [`brand`](#request.body.brand) field. All fields are **required** unless specified otherwise, and will be validated when [submitted](/api-reference/campaigns/10-dlc/submit). **See the response for example values for each field.** </Note>

Authentication

PINNACLE-API-KEYstring
API Key authentication via header

Request

This endpoint expects an object.
autoRenewbooleanOptionalDefaults to true
Whether the campaign renews automatically.
brandstringOptional

Brand id. This identifier is a string that always begins with the prefix b_, for example: b_1234567890.

campaignIdstringOptional

Unique identifier for the campaign. This identifier is a string that always begins with the prefix dlc_, for example: dlc_1234567890.

descriptionstringOptional40-4096 characters
Description of the campaign. Explain the purpose, use case, and types of messages your campaign will send. **Example:** `This campaign allows users who have specifically opted in to interact with our chatbot for a range of automated services, including order status notifications, shipping updates, security alerts, and help desk support. Users can manage their account, receive transactional SMS prompts, and access interactive support. They may also share images, such as receipts, and receive immediate responses for support or account updates. All messages are strictly transactional or support-related, never unsolicited, and initiated only after clear user consent.`
keywordsobjectOptional
Keyword response configuration.
messageFlowstringOptional40-4096 characters

Describe your opt-in workflow. See the Opt-In Methods and Workflow section for requirements and examples.

namestringOptional
Display name of the campaign.
optionsobjectOptional
Campaign configuration options.
sampleMessageslist of stringsOptional

Example messages for the campaign. Include 1-5 messages that represent the types of messages you will send. See the Sample Messages section for requirements and examples.

useCaseobjectOptional
Use case for the campaign.

Response

Successfully created or updated DLC campaign.
autoRenewboolean
Whether the campaign renews automatically.
brandobject
Brand associated with this campaign.
campaignIdstring

Unique identifier for the campaign. This identifier is a string that always begins with the prefix dlc_, for example: dlc_1234567890.

keywordsobject
Keyword response configuration.
optionsobject
Campaign configuration options.
statusenum

Current review status of the campaign.

INCOMPLETE: Not submitted.

IN REVIEW: Being reviewed by carriers.

VERIFIED: Approved and ready to send messages.

FAILED: Issues and errors related to the campaign’s details.

Allowed values:
descriptionstring or null
Description of the campaign.
messageFlowstring or null

Describe the flow of how users will opt in to this campaign. See the Opt-In Methods and Workflow section for requirements.

namestring or null
Display name of the campaign.
sampleMessageslist of strings or null

Example messages for the campaign. See the Sample Messages section for requirements.

useCaseobject or null
Use case for the campaign.
mnoBrandTierenum or null

The MNO brand tier for T-Mobile rate limits. Tiers range from TOP (highest) to LOW (lowest), based on your brand’s vetting score.

See SMS Rate Limits for details.

Allowed values:
mnoTcrTierenum or null

The MNO TCR message class for AT&T, Verizon, and other carriers. Classes A-G are standard (based on vetting score), while T, N, and S are for special use cases.

See SMS Rate Limits for details.

Errors