Create a campaign

To reduce the likelihood of rejection, ensure you are familiar with 10dlc registration examples and best practices. Specifically

  • Check this article for tips on how to write an effective Campaign description

  • Check this article on how to write an effective messageFlow

Most 10DLC rejections are caused by unclear or incomplete description and/or messageFlow

A successful request to this endpoint will mean you are charged a campaign registration fee and a three-month minimum commitment fee. If you later need to update or resubmit your brand there may be additional fees.

  • You must have created a brand that has been approved, before creating a new campaign

  • If you operate as a Reseller ensure your Reseller registration is active before using the reseller field in POST campaigns

Create campaign. A campaign can only be created for an approved brand.

To create a campaign, it is essential to ensure that the brand has already been approved. Campaigns can only be initiated under the umbrella of brands that meet this prerequisite. Once a campaign is created, it cannot begin directing traffic immediately. Instead, it must go through a formal approval process. Only after the campaign has been reviewed and approved it will be authorized to send traffic.

post

/workspaces/{workspaceId}/tcr-brands/{brandId}/campaigns

Authorizations
Path parameters
workspaceIdstring · uuidrequired

The ID for the workspace.

Example: d386a801-ee8d-4aba-a7e4-78671bd3b11e
brandIdstringrequired

A unique identifier for the brand.

Body
namestringrequired

Campaign name

usecasestring · max: 50required

A use case that best matches the purpose of the campaign.

descriptionstring · min: 40 · max: 4096required

A detailed description of what the campaign is for.

embeddedLinkboolean

Whether messages will contain links. Provide at least one sample containing a link.

embeddedPhoneboolean

Whether messages will contain phone number. Provide at least one sample containing a phone number.

numberPoolboolean

Whether a campaign will be associated with more than 50 numbers e.g. customer service use case.

ageGatedboolean

Whether a campaign contains age-gated content based on carrier/ctia guidelines.

directLendingboolean

Whether a campaign includes content related to direct lending or loan arrangements.

subscriberOptinboolean

Confirm customer opt in is collected and processed.

subscriberOptoutboolean

Confirm customer opt out is collected and processed.

subscriberHelpboolean

Confirm an info message is returned if a customer sends "HELP".

messageFlowstring · min: 40 · max: 2048required

Provide details of how the customer will opt into this campaign. If you have a live web opt-in provide the URL and ensure the page has details on the T&Cs/data collection for opting in, and how to opt out.

helpMessagestring · min: 20 · max: 255required

Help message of the campaign. A help message shall state the name of the service, contact (email or call centre), OPT IN and OPT OUT keywords.

helpKeywordsstring

A comma separated list of keywords. Support of the word HELP is the minimum requirement for requesting help/info.

optoutKeywordsstring

A comma separated list of keywords. Support of the word STOP is the minimum requirement for OPT OUT.

optinKeywordsstring

A comma separated list of keywords. Support of the word START is the minimum requirement for OPT OUT.

optinMessagestring · min: 20

Provide an example of the message that will be sent after a customer has opted in.

optoutMessagestring · min: 20

Provide an example of the message that will be sent after a customer has opted out.

resellerIdstring · uuid | nullable

UUID of the reseller associated with this campaign. The specified reseller MUST be ACTIVE.

termsAndConditionsboolean · enumrequired

Indicates the campaign follows CTIA messaging principles and best practices.

Options: true
subUsecasesstring[]

If use case is MIXED or LOW_VOLUME mixed an array of 2-5 use cases.

samplesstring[]required

Between 1-5 sample messages. If directLending, embeddedPhone, embeddedLink is true provide relevant examples.

attachmentUrlsstring[]

Up to 5 attachments.

Responses
curl -L \
  --request POST \
  --url '/workspaces/{workspaceId}/tcr-brands/{brandId}/campaigns' \
  --header 'Authorization: Bearer jwt' \
  --header 'Content-Type: application/json' \
  --data '{"name":"text","usecase":"text","description":"text","messageFlow":"text","helpMessage":"text","termsAndConditions":true,"subUsecases":[null],"samples":[null],"attachmentUrls":[null]}'
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "name": "text",
  "subscription": {
    "subscribedAt": "2025-02-21T18:02:56.341Z",
    "updatedAt": "2025-02-21T18:02:56.341Z",
    "cancelledAt": "2025-02-21T18:02:56.341Z",
    "status": "active"
  },
  "usecase": "text",
  "description": "text",
  "embeddedLink": true,
  "embeddedPhone": true,
  "numberPool": true,
  "ageGated": true,
  "directLending": true,
  "subscriberOptin": true,
  "subscriberOptout": true,
  "subscriberHelp": true,
  "messageFlow": "text",
  "helpMessage": "text",
  "helpKeywords": "text",
  "optoutKeywords": "text",
  "optinKeywords": "text",
  "optinMessage": "text",
  "optoutMessage": "text",
  "termsAndConditions": true,
  "brandId": "123e4567-e89b-12d3-a456-426614174000",
  "resellerId": "text",
  "createdAt": "2025-02-21T18:02:56.341Z",
  "updatedAt": "2025-02-21T18:02:56.341Z",
  "status": "DRAFT",
  "subUsecases": [
    "text"
  ],
  "samples": [
    "text"
  ],
  "attachments": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "status": "PENDING",
      "createdAt": "2025-02-21T18:02:56.341Z",
      "updatedAt": "2025-02-21T18:02:56.341Z",
      "filename": "attachment.txt",
      "contentType": "text/plain"
    }
  ],
  "rejection": {
    "description": "text",
    "code": "text"
  }
}

CampaignRequest object

Field
Type
Description
Mandatory

name

string

Name of your use case

Required

useCase

A use case that best matches the purpose of the campaign

Required

subUsecases

array<useCase>

If use case is MIXED or LOW_VOLUME mixed an array of 2-5 use cases

Optional. Unless useCase is LOW_VOLUME, MIXED

description

string

A detailed description of what the campaign is for

Required

embeddedLink

boolean

Whether messages will contain links. Provide at least one sample containing a link

Required

embeddedPhone

boolean

Whether messages will contain phone number. Provide at least one sample containing a phone number

Required

numberPool

boolean

Whether a campaign will be associated with more than 50 numbers e.g. customer service use case

Required

ageGated

boolean

Whether a campaign contains age-gated content based on carrier/ctia guidelines

Required

directLending

boolean

Whether a campaign includes content related to direct lending or loan arrangements

Required

subscriberOptin

boolean

Confirm customer opt in is collected and processed

Required

subscriberOptout

boolean

Confirm customer opt out is collected and processed

Required

subscriberHelp

boolean

Confirm an info message is returned if a customer sends “HELP”

Required

samples

array<string>

Between 1-5 sample messages. If directLending, embeddedPhone, embeddedLink is true provide relevant examples

Required. At least 1 sample

messageFlow

string

Provide details of how the customer will opt into this campaign. If you have a live web opt-in provide the URL and ensure the page has details on the T&Cs/data collection for opting in, and how to opt out

Required

helpKeywords

string

A comma separated list of keywords. Support of the word HELP is the minimum requirement for requesting help/info.

Required

optoutKeywords

string

A comma separated list of keywords. Support of the word STOP is the minimum requirement for OPT OUT.

Required

optInKeywords

string

A comma separated list of keywords. Support of the word START is the minimum requirement for OPT OUT.

Optional. Required if subscriberOptin is true

helpMessage

string

Help message of the campaign. A help message shall state the name of the service, contact (email or call centre), OPT IN and OPT OUT keywords.

Required

optinMessage

string

Provide an example of the message that will be sent after a customer has opted in.

Optional. Required if subscriberOptin is true

optoutMessage

sting

Provide an example of the message that will be sent after a customer has opted out.

Required

termsAndConditions

boolean

Indicates the campaign follows CTIA messaging principles and best practices

Required

CampaignResponse object

Field

Type

Description

useCase

A use case that best matches the purpose of the campaign

subUsecases

array<useCase>

If use case is MIXED or LOW_VOLUME mixed an array of 2-5 use cases

description

string

A detailed description of what the campaign is for

embeddedLink

boolean

Whether messages will contain links. Provide at least one sample containing a link

embeddedPhone

boolean

Whether messages will contain phone number. Provide at least one sample containing a phone number

numberPool

boolean

Whether a campaign will be associated with more than 50 numbers e.g. customer service use case

ageGated

boolean

Whether a campaign contains age-gated content based on carrier/ctia guidelines

directLending

boolean

Whether a campaign includes content related to direct lending or loan arrangements

subscriberOptin

boolean

Confirm customer opt in is collected and processed

subscriberOptout

boolean

Confirm customer opt out is collected and processed

subscriberHelp

boolean

Confirm an info message is returned if a customer sends “HELP”

samples

array<string>

Between 1-5 sample messages. If directLending, embeddedPhone, embeddedLink is true provide relevant examples

messageFlow

string

Provide details of how the customer will opt into this campaign. If you have a live web opt-in provide the URL and ensure the page has details on the T&Cs/data collection for opting in, and how to opt out

helpKeywords

string

A comma separated list of keywords. Support of the word HELP is the minimum requirement for requesting help/info.

optoutKeywords

string

A comma separated list of keywords. Support of the word STOP is the minimum requirement for OPT OUT.

optInKeywords

string

A comma separated list of keywords. Support of the word START is the minimum requirement for OPT OUT.

helpMessage

string

Help message of the campaign. A help message shall state the name of the service, contact (email or call centre), OPT IN and OPT OUT keywords.

optinMessage

string

optoutMessage

sting

Provide an example of the message that will be sent after a customer has opted in.

termsAndConditions

boolean

Indicates the campaign follows CTIA messaging principles and best practices

brandId

string

Alphanumeric identifier of the brand associated with this campaign. The specified brand MUST be APPROVED.

campaignId

string

Alphanumeric identifier of the campaign

campaignStatus

Campaign status

Last updated

Was this helpful?