LogoLogo
No-code docsResources
  • 🖥️Welcome to the Bird API Docs
  • API Access
    • Access Policies
    • Access Roles
    • API Authorization
    • Common API usage
  • Conversations API
    • API reference
      • Channel configuration
        • Get conversations configuration
        • Update conversations configuration
      • Conversations messaging
        • Create conversation message
        • List conversation messages
        • Get conversation message
        • Update conversation message
        • Delete conversation message
        • Create pre-signed upload
      • Conversations management
        • Create conversation
        • List conversations
        • Get conversation
        • Update conversation
        • Delete conversation
      • Conversation Participants
        • Add participant to conversation
        • List participants
        • Get participant by ID
        • Get participant by identifier key and value
        • Update participant by ID
        • Update participant by identifier key and value
        • Delete participant
        • List participant conversations by ID
        • List participant conversations by identifier key and value
      • Workspace settings
        • Get antispam setting
        • Update antispam setting
        • Create allow/block rule
        • Get allow/block rule
        • List allow/block rules
        • Update allow/block rule
        • Delete allow/block rule
        • Add allow/block rules in bulk
        • Get allow/block bulk upload status
      • Events
  • Collaborations API
    • API reference
      • Agent Management
      • Team Management
      • Feeds
      • Feed item activity
      • Tags
      • Automation Rules
      • Business Hours
      • Capacity Rules
      • Routing Queues
      • Skills
      • SLA Policies
      • Macros
      • Sender Profiles
      • Ticket fields
  • Channels API
    • Supported channels
      • Programmable WhatsApp
        • Sending WhatsApp messages
        • Customer service window
        • Receiving messages
        • Message interactions
        • WhatsApp ISV integration
          • Setting up your customer workspaces
            • API Access
            • Associating your Facebook solution ID and business ID with your Bird CRM Organization
            • Creating a workspace for your customer
            • Buying a number through Bird
            • Subscribing to channel created webhooks
          • WhatsApp channel onboarding
            • Setting up the WhatsApp Embedded flow
            • Install WhatsApp phone number in Bird CRM
            • Subscribe to channel webhooks
      • Programmable SMS
        • Installing an SMS channel
          • US 10DLC API Installation
          • Toll-Free Numbers Verification API
        • Sending SMS messages
        • Receiving messages
        • Twilio Exit API
          • Using Twilio PHP SDK
          • Using Twilio Go SDK
          • Using Twilio Ruby SDK
        • Sinch Exit API
      • Programmable RCS
        • Sending messages
        • Receiving messages
        • Message interactions
      • Programmable Email
        • Sending Emails
        • Receiving messages
        • Message status
        • Message interactions
      • Programmable Line
        • Sending messages
        • Receiving messages
        • Message interactions
      • Programmable Telegram
        • Sending messages
        • Receiving messages
        • Message interactions
    • Message types
      • Text
      • Images
      • Files
      • List
      • Carousel
      • Template
    • Message status and interactions
      • Message Failure Codes
      • Message Failure Sources
        • SMS Platform Extended Error Codes
    • Send batch messages
    • API reference
      • Channel Groups
      • Messaging
      • Channels management
      • Channel connectors
      • Navigators
      • Compliance Keywords Messages
      • Conversions Sharing
      • Events
    • Rate Limit
  • Voice API
    • Installing a Voice channel
    • Voice Calls API
      • Initiate an outbound call
      • List calls from a channel
      • Get a call
      • Update a call
      • Answer a call
      • Ring a call
      • Hangup a call
      • Play a message in a call
      • Say Text-To-Speech (TTS)
      • Gather DTMF from a call
      • Forward a call
      • Record a Call
      • Record a call session
      • Update a call recording
      • List call recordings of a call
      • Get a call recording
      • Get a call insights
      • Get calls log
    • Recordings API
      • List Recordings
      • Get a Recording
      • Delete a Recording
      • List recording storage metrics
    • Transcriptions API
      • Initiate a Transcription
      • List Transcriptions
      • Get a Transcription
      • Delete a Transcription
    • Voice webhooks
    • Flash Calling API
  • Verify API
    • Verify API: Quick Start
  • Contacts API
    • Tracking Contact Events
      • API Reference
        • Get configuration
        • Track events
    • API reference
      • Manage workspace contacts
        • Create a contact
        • Get a contact
        • List contacts
        • Search contact by identifier
        • Update a contact
        • Create or update a contact by identifier
        • Delete a contact
      • Manage contact identifiers
        • Create contact identifier
        • List contact identifiers
        • Delete contact identifier
      • Manage contact attribute definition
        • Create attribute definition
        • Get attribute definition
        • List attribute definitions
      • Manage contact lists
        • Create a list
        • Get a list
        • List lists
        • Update a list
        • Delete a list
        • Add contacts to a list
        • Get contact list memberships
        • List contacts in a list
        • Remove contacts from a list
      • Lookup
        • Network/Country information for a phone number
  • Numbers API
    • API reference
      • Search Available Numbers
      • Buy a Number
      • List your Numbers
      • Get Long Code Number Details
      • Manage Endpoint Subscriptions
        • Cancel Number Subscription
      • Manage Endpoint Compliance Requirements
        • List Workspace compliace Requirements
        • Get Workspace Compliace Requirements
        • Update Workspace Compliace Requirements
      • 10DLC Compliance
        • Brands - Organization
          • Create a brand
          • List all brands
          • Get a brand
          • Update a brand
          • Delete a brand
          • Create a brand vetting
        • Brands - workspace
          • Create a brand
          • List all brands
          • Get a brand
          • Update a brand
          • Delete a brand
          • Create a brand vetting
          • List brand vettings
        • Campaigns
          • Optional: acting as Reseller
          • Create a campaign
          • List all campaigns
          • Get a campaign
          • Update a campaign
          • Delete a campaign
        • TCR Enums
        • Events
      • Toll-Free Numbers Verification API
      • Long Code Numbers
      • Short Code Numbers
      • Alphanumeric Senders
      • Events
  • Know-Your-Customer (KYC) API
    • List KYC forms
    • Get KYC form
    • Create KYC form entry
    • Update KYC form entry
    • List KYC form entries
    • Get a KYC form entry details
  • Reporting API
    • API reference
      • Channel Metrics
      • Flow Run Metrics
      • Wallet Metrics
      • Campaign Metrics
      • Message Metrics
  • Accounts API
    • API reference
      • Current user
        • Change password
        • Presigned upload
        • Memberships
        • Sessions
        • Configurations
          • Groups
            • Keys
      • IAM policies
      • Organizations
        • Upload media
        • Profile
        • Workspaces
        • Users
        • Access keys
        • Organization roles
        • Organization policies
        • Teams
          • Members
        • Approvals
          • Runs
            • Reviews
        • Configurations
          • Groups
            • Keys
      • Region groups
  • Touchpoints API
    • Supported Projects
      • Whatsapp Approved Message Templates
        • Creating WhatsApp Message templates
          • Text template blocks
          • Blocks Documentation
    • API reference
      • Projects
      • Message Templates
  • Notifications API
    • API Reference
      • Webhook subscriptions
        • Create a webhook subscription
        • List available webhook events
        • Get a webhook subscription
        • List webhook subscriptions
        • Update a webhook subscription
        • Delete a webhook subscription
        • Verifying a webhook subscription
        • Webhook subscription logs
  • Knowledge Base (KB) API
    • API reference
      • Documents
      • Folders
        • Import
      • Search
      • Presigned upload
  • Email API
    • Transmissions
  • Connectivity platform migration guide
    • Channels API and Conversations API
    • Migrating conversations API actions
    • Migrating WhatsApp channels
  • Client SDKs
    • Applications
    • Contact Profiles
      • Signed Identity
    • Push notifications
      • Quick Start
      • Subscribe contacts to push notification campaigns
      • Notification Display Priority
    • Event Tracking
      • Quick Start
      • Track Events
        • App
        • Audiences
        • Conference
        • Ecommerce
        • Hospitality
        • Lists
        • Messaging
        • Payments
        • Subscription
        • Suppressions
        • Survey
        • Web
    • App Inbox
      • Quick Start
      • Usage
      • Subscribe contacts to app inbox campaigns
    • SDK Integration
      • Android SDK
        • Notification Interactions
      • Swift SDK
        • Notification Interactions
      • Web SDK
        • Quick Start
        • Usage
        • API Reference
          • IdentityManager
          • BirdSdkApi
          • BirdTracker
            • Ecommerce
            • Conference
            • Messaging
            • Suppressions
            • Subscription
            • Survey
            • Web
            • Audiences
        • Web Push Notifications
          • Notification Interactions
  • Quickstarts
    • Conversations
    • Send an SMS message
    • Send an Email message
    • Send a WhatsApp message
Powered by GitBook
On this page

Was this helpful?

  1. Numbers API
  2. API reference
  3. 10DLC Compliance
  4. Campaigns

Create a campaign

Last updated 3 months ago

Was this helpful?

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

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

  • Check 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 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

  • ensure your Reseller registration is active before using the reseller field in POST campaigns

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

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

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

array<>

array<>

this article
this article
If you operate as a Reseller
  • POSTCreate campaign. A campaign can only be created for an approved brand.
  • CampaignRequest object
  • CampaignResponse object
useCase
useCase
useCase
useCase
campaignStatus

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

post

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.

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.

subUsecasesstring[]Optional

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

descriptionstring · min: 40 · max: 4096Required

A detailed description of what the campaign is for.

embeddedLinkbooleanOptional

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

embeddedPhonebooleanOptional

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

numberPoolbooleanOptional

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

ageGatedbooleanOptional

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

directLendingbooleanOptional

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

subscriberOptinbooleanOptional

Confirm customer opt in is collected and processed.

subscriberOptoutbooleanOptional

Confirm customer opt out is collected and processed.

subscriberHelpbooleanOptional

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

samplesstring[]Required

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

attachmentUrlsstring[]Optional

Up to 5 attachments.

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.

helpKeywordsstringOptional

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

optoutKeywordsstringOptional

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

optinKeywordsstringOptional

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

optinMessagestring · min: 20Optional

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

optoutMessagestring · min: 20Optional

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

termsAndConditionsboolean · enumRequired

Indicates the campaign follows CTIA messaging principles and best practices.

Possible values:
resellerIdstring · uuid | nullableOptional

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

Responses
201
Campaign successfully created
application/json
422
Invalid campaign
application/json
post
POST /workspaces/{workspaceId}/tcr-brands/{brandId}/campaigns HTTP/1.1
Host: 
Authorization: Bearer jwt
Content-Type: application/json
Accept: */*
Content-Length: 520

{
  "name": "text",
  "usecase": "text",
  "subUsecases": [
    "text"
  ],
  "description": "text",
  "embeddedLink": true,
  "embeddedPhone": true,
  "numberPool": true,
  "ageGated": true,
  "directLending": true,
  "subscriberOptin": true,
  "subscriberOptout": true,
  "subscriberHelp": true,
  "samples": [
    "text"
  ],
  "attachmentUrls": [
    "text"
  ],
  "messageFlow": "text",
  "helpMessage": "text",
  "helpKeywords": "text",
  "optoutKeywords": "text",
  "optinKeywords": "text",
  "optinMessage": "text",
  "optoutMessage": "text",
  "termsAndConditions": true,
  "resellerId": "123e4567-e89b-12d3-a456-426614174000"
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "name": "text",
  "subscription": {
    "status": "active",
    "subscribedAt": "2025-05-09T05:25:08.135Z",
    "updatedAt": "2025-05-09T05:25:08.135Z",
    "cancelledAt": "2025-05-09T05:25:08.135Z"
  },
  "status": "DRAFT",
  "usecase": "text",
  "subUsecases": [
    "text"
  ],
  "description": "text",
  "embeddedLink": true,
  "embeddedPhone": true,
  "numberPool": true,
  "ageGated": true,
  "directLending": true,
  "subscriberOptin": true,
  "subscriberOptout": true,
  "subscriberHelp": true,
  "samples": [
    "text"
  ],
  "messageFlow": "text",
  "helpMessage": "text",
  "helpKeywords": "text",
  "optoutKeywords": "text",
  "optinKeywords": "text",
  "optinMessage": "text",
  "optoutMessage": "text",
  "termsAndConditions": true,
  "brandId": "123e4567-e89b-12d3-a456-426614174000",
  "resellerId": "text",
  "rejection": {
    "description": "text",
    "code": "text"
  },
  "attachments": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "status": "PENDING",
      "createdAt": "2025-05-09T05:25:08.135Z",
      "updatedAt": "2025-05-09T05:25:08.135Z",
      "filename": "attachment.txt",
      "mediaUrl": "https://example.com/attachment.txt",
      "contentType": "text/plain"
    }
  ],
  "createdAt": "2025-05-09T05:25:08.135Z",
  "updatedAt": "2025-05-09T05:25:08.135Z"
}
campaign registration fee