---
title: "Submit Campaign"
method: POST
path: "/10dlc/campaignBuilder"
tags: ["Campaign"]
---

# Submit Campaign

`POST /10dlc/campaignBuilder`

Before creating a campaign, use the [Qualify By Usecase endpoint](https://developers.telnyx.com/api-reference/campaign/qualify-by-usecase) to ensure that the brand you want to assign a new campaign to is qualified for the desired use case of that campaign. **Please note:** After campaign creation, you'll only be able to edit the campaign's sample messages. Creating a campaign will entail an upfront, non-refundable three month's cost that will depend on the campaign's use case ([see 10DLC Costs section for details](https://developers.telnyx.com/api-reference/campaign/get-campaign-cost)).

## Request body

- CampaignRequest — CampaignRequest object describes the campaign to be submitted via '/campaignBuilder/brand/{brandId}/usecase/{usecase}' operation. It is also used in operations for retrieving status of campaign request and for updating a pending request.
  - `ageGated` boolean — Age gated message content in campaign.
  - `autoRenewal` boolean — Campaign subscription auto-renewal option. If set to true, then campaign will automatically renewal at end of billing cycle.
  - `brandId` string, required — Alphanumeric identifier of the brand associated with this campaign.
  - `description` string, required — Summary description of this campaign.
  - `directLending` boolean — Direct lending or loan arrangement
  - `embeddedLink` boolean — Does message generated by the campaign include URL link in SMS?
  - `embeddedPhone` boolean — Does message generated by the campaign include phone number in SMS?
  - `helpKeywords` string — Subscriber help keywords. Multiple keywords are comma separated without space.
  - `helpMessage` string — Help message of the campaign.
  - `messageFlow` string — Message flow description.
  - `mnoIds` integer[] — Submit campaign to given list of MNOs by MNO's network ID. Default is all MNOs if no value provided.
  - `numberPool` boolean — Does campaign utilize pool of phone numbers?
  - `optinKeywords` string — Subscriber opt-in keywords. Multiple keywords are comma separated without space.
  - `optinMessage` string — Subscriber opt-in message.
  - `optoutKeywords` string — Subscriber opt-out keywords. Multiple keywords are comma separated without space.
  - `optoutMessage` string — Subscriber opt-out message.
  - `referenceId` string — Caller supplied campaign reference ID. If supplied, the value must be unique across all submitted campaigns. Can be used to prevent duplicate campaign registrations.
  - `resellerId` string — Alphanumeric identifier of the reseller that you want to associate with this campaign.
  - `sample1` string — Message sample. Some campaign tiers require 1 or more message samples.
  - `sample2` string — Message sample. Some campaign tiers require 2 or more message samples.
  - `sample3` string — Message sample. Some campaign tiers require 3 or more message samples.
  - `sample4` string — Message sample. Some campaign tiers require 4 or more message samples.
  - `sample5` string — Message sample. Some campaign tiers require 5 or more message samples.
  - `subUsecases` string[] — Campaign sub-usecases. Must be of defined valid sub-usecase types. Use `/10dlc/enum/usecase` operation to retrieve list of valid sub-usecases
  - `subscriberHelp` boolean — Does campaign responds to help keyword(s)?
  - `subscriberOptin` boolean — Does campaign require subscriber to opt-in before SMS is sent to subscriber?
  - `subscriberOptout` boolean — Does campaign support subscriber opt-out keyword(s)?
  - `tag` string[] — Tags to be set on the Campaign.
  - `termsAndConditions` boolean — Is terms and conditions accepted?
  - `privacyPolicyLink` string — Link to the campaign's privacy policy.
  - `termsAndConditionsLink` string — Link to the campaign's terms and conditions.
  - `embeddedLinkSample` string — Sample of an embedded link that will be sent to subscribers.
  - `usecase` string, required — Campaign usecase. Must be of defined valid types. Use `/10dlc/enum/usecase` operation to retrieve usecases available for given brand.
  - `webhookURL` string — Webhook to which campaign status updates are sent.
  - `webhookFailoverURL` string — Failover webhook to which campaign status updates are sent.

## Response `200`

Successful Response

- TelnyxCampaignCSP — Campaign is generated by the 10DLC registry once the corresponding campaign request is approved. Each campaign is assigned a unique identifier - **campaignId**. Once a campaign is activated, limited information is published to the NetNumber OSR service for consumption by members of the ecosystem. When a campaign is suspended(reversible) or expired(non-reversible), campaign data is deleted from the OSR service. Most attributes of campaignare immutable, including **usecase**, **vertical**, **brandId** and **cspId**.
  - `ageGated` boolean — Age gated content in campaign.
  - `autoRenewal` boolean — Campaign subscription auto-renewal status.
  - `billedDate` string — Campaign recent billed date.
  - `brandId` string, required — Unique identifier assigned to the brand.
  - `brandDisplayName` string — Display or marketing name of the brand.
  - `campaignId` string, required — Unique identifier for a campaign.
  - `tcrBrandId` string — Unique identifier assigned to the brand by the registry.
  - `tcrCampaignId` string — Unique identifier assigned to the campaign by the registry.
  - `createDate` string — Unix timestamp when campaign was created.
  - `cspId` string, required — Alphanumeric identifier of the CSP associated with this campaign.
  - `description` string, required — Summary description of this campaign.
  - `directLending` boolean
  - `embeddedLink` boolean — Does message generated by the campaign include URL link in SMS?
  - `embeddedPhone` boolean — Does message generated by the campaign include phone number in SMS?
  - `helpKeywords` string — Subscriber help keywords. Multiple keywords are comma separated without space.
  - `helpMessage` string — Help message of the campaign.
  - `messageFlow` string — Message flow description.
  - `mock` boolean, required — Campaign created from mock brand. Mocked campaign cannot be shared with an upstream CNP.
  - `nextRenewalOrExpirationDate` string — When the campaign would be due for its next renew/bill date.
  - `numberPool` boolean — Does campaign utilize pool of phone numbers?
  - `optinKeywords` string — Subscriber opt-in keywords. Multiple keywords are comma separated without space.
  - `optinMessage` string — Subscriber opt-in message.
  - `optoutKeywords` string — Subscriber opt-out keywords. Multiple keywords are comma separated without space.
  - `optoutMessage` string — Subscriber opt-out message.
  - `referenceId` string — Caller supplied campaign reference ID. If supplied, the value must be unique across all submitted campaigns. Can be used to prevent duplicate campaign registrations.
  - `resellerId` string — Alphanumeric identifier of the reseller that you want to associate with this campaign.
  - `sample1` string — Message sample. Some campaign tiers require 1 or more message samples.
  - `sample2` string — Message sample. Some campaign tiers require 2 or more message samples.
  - `sample3` string — Message sample. Some campaign tiers require 3 or more message samples.
  - `sample4` string — Message sample. Some campaign tiers require 4 or more message samples.
  - `sample5` string — Message sample. Some campaign tiers require 5 or more message samples.
  - `status` string — Current campaign status. Possible values: ACTIVE, EXPIRED. A newly created campaign defaults to ACTIVE status.
  - `subUsecases` string[], required — Campaign sub-usecases. Must be of defined valid sub-usecase types. Use `/10dlc/enum/usecase` operation to retrieve list of valid sub-usecases
  - `subscriberHelp` boolean — Does campaign responds to help keyword(s)?
  - `subscriberOptin` boolean — Does campaign require subscriber to opt-in before SMS is sent to subscriber?
  - `subscriberOptout` boolean — Does campaign support subscriber opt-out keyword(s)?
  - `termsAndConditions` boolean, required — Is terms & conditions accepted?
  - `usecase` string, required — Campaign usecase. Must be of defined valid types. Use `/10dlc/enum/usecase` operation to retrieve usecases available for given brand.
  - `vertical` string — Business/industry segment of this campaign (Deprecated). Must be of defined valid types. Use `/registry/enum/vertical` operation to retrieve verticals available for given brand, vertical combination. This field is deprecated.
  - `webhookURL` string — Webhook to which campaign status updates are sent.
  - `webhookFailoverURL` string — Failover webhook to which campaign status updates are sent.
  - `isTMobileRegistered` boolean — Indicates whether the campaign is registered with T-Mobile.
  - `isTMobileSuspended` boolean — Indicates whether the campaign is suspended with T-Mobile.
  - `isTMobileNumberPoolingEnabled` boolean — Indicates whether the campaign has a T-Mobile number pool ID associated with it.
  - `failureReasons` string — Failure reasons if campaign submission failed
  - `submissionStatus` 'CREATED' | 'FAILED' | 'PENDING' — Campaign submission status
  - `campaignStatus` 'TCR_PENDING' | 'TCR_SUSPENDED' | 'TCR_EXPIRED' | 'TCR_ACCEPTED' | 'TCR_FAILED' | 'TELNYX_ACCEPTED' | 'TELNYX_FAILED' | 'MNO_PENDING' | 'MNO_ACCEPTED' | 'MNO_REJECTED' | 'MNO_PROVISIONED' | 'MNO_PROVISIONING_FAILED' — Campaign status
  - `privacyPolicyLink` string — Link to the campaign's privacy policy.
  - `termsAndConditionsLink` string — Link to the campaign's terms and conditions.
  - `embeddedLinkSample` string — Sample of an embedded link that will be sent to subscribers.

## Other responses

- `400` — Bad Request
- `402` — Insufficient Funds
- `422` — Validation Error
- `4XX` — Generic response error

---

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