> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wavix.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Register a 10DLC Campaign

> Registers a 10DLC Campaign under the 10DLC Brand identified by `brand_id`. The Brand must have a verified identity status.



## OpenAPI

````yaml https://wavix.github.io/wavix-openapi/wavix-api.yaml post /v3/10dlc/brands/{brand_id}/campaigns
openapi: 3.1.0
info:
  title: Wavix APIs
  description: >-
    Wavix provides robust APIs that let you integrate voice and text messaging
    features directly into your app. Send text, place calls, and access detailed
    reports  programmatically.
  termsOfService: https://wavix.com/terms-and-conditions
  license:
    name: MIT
    identifier: MIT
  contact:
    name: Wavix
    url: https://wavix.com
    email: support@wavix.com
  version: '1.0'
servers:
  - url: https://api.wavix.com
    description: https://api.wavix.com
    variables: {}
security:
  - bearerAuth: []
tags:
  - name: SIP trunks
    description: SIP trunks
  - name: Buy
    description: Numbers
  - name: Cart
    description: Numbers
  - name: My numbers
    description: Numbers
  - name: Billing
    description: Billing, transactions, and invoices
  - name: Profile
    description: Account profile and customer information
  - name: CDRs
    description: Call detail records and call history
  - name: Speech Analytics
    description: Call transcription and speech analytics
  - name: SMS and MMS
    description: Messaging
  - name: Number Validator
    description: Phone number validation
  - name: Link shortener
    description: Short link and click metrics
  - name: 2FA
    description: Two-factor authentication
  - name: 10DLC
    description: 10DLC Campaigns and Brands
  - name: API Keys
    description: API key management
  - name: Call webhooks
    description: Webhook configuration for call events
  - name: Call control
    description: Programmable Voice
  - name: Call streaming
    description: Real-time call audio streaming over WebSocket
  - name: Call recording
    description: Call recording
  - name: Sub-accounts
    description: Sub-account management
  - name: Voice campaigns
    description: Outbound voice campaigns
  - name: Wavix Embeddable
    description: WebRTC embeddable widget
paths:
  /v3/10dlc/brands/{brand_id}/campaigns:
    post:
      tags:
        - 10DLC
      summary: Register a 10DLC Campaign
      description: >-
        Registers a 10DLC Campaign under the 10DLC Brand identified by
        `brand_id`. The Brand must have a verified identity status.
      operationId: ten_dlc_brand_campaigns_create
      parameters:
        - name: brand_id
          in: path
          description: The unique ID of the 10DLC Brand.
          required: true
          style: simple
          schema:
            type: string
            example: BM20QP9
      requestBody:
        description: Attributes for the new 10DLC Campaign.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TenDLCCampaignCreateRequest'
        required: true
      responses:
        '201':
          description: Returns the registered 10DLC Campaign.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/TenDLCCampaign'
                  - example:
                      affiliate_marketing: false
                      age_gated: false
                      auto_renewal: false
                      brand_id: BM20QP9
                      campaign_id: CKLCK95
                      created_at: '2024-08-14T11:57:41'
                      description: Our campaign aims to …
                      direct_lending: false
                      embedded_link_sample: null
                      embedded_links: false
                      embedded_phones: false
                      feedback: null
                      help: true
                      help_keywords: help
                      help_message: >-
                        For help, please visit www.site.com. To opt-out, reply
                        STOP.
                      last_bill_date: '2024-08-14T11:57:42'
                      mock: false
                      monthly_fee: '10.0'
                      name: My first campaign
                      next_bill_date: '2024-11-14T00:00:00'
                      optin: true
                      optin_keywords: begin,start
                      optin_message: >-
                        You are now opted-in for help please reply HELP, to stop
                        please reply STOP
                      optin_workflow: Our SMS ...
                      optout: true
                      optout_keywords: stop,quit,unsubscribe
                      optout_message: >-
                        You are now opted out and will receive no further
                        messages
                      privacy_policy: https://site.com/privacy-policy
                      sample1: Your verification code is XXXXXX
                      sample2: XXXX is your verification code
                      sample3: null
                      sample4: null
                      sample5: null
                      status: APPROVED
                      terms_conditions: https://site.com/terms-and-conditions
                      updated_at: '2024-08-14T11:57:47'
                      usecase: 2FA
                      phone_numbers: []
              examples:
                default:
                  value:
                    affiliate_marketing: false
                    age_gated: false
                    auto_renewal: false
                    brand_id: BM20QP9
                    campaign_id: CKLCK95
                    created_at: '2024-08-14T11:57:41'
                    description: Our campaign aims to …
                    direct_lending: false
                    embedded_link_sample: null
                    embedded_links: false
                    embedded_phones: false
                    feedback: null
                    help: true
                    help_keywords: help
                    help_message: >-
                      For help, please visit www.site.com. To opt-out, reply
                      STOP.
                    last_bill_date: '2024-08-14T11:57:42'
                    mock: false
                    monthly_fee: '10.0'
                    name: My first campaign
                    next_bill_date: '2024-11-14T00:00:00'
                    optin: true
                    optin_keywords: begin,start
                    optin_message: >-
                      You are now opted-in for help please reply HELP, to stop
                      please reply STOP
                    optin_workflow: Our SMS ...
                    optout: true
                    optout_keywords: stop,quit,unsubscribe
                    optout_message: You are now opted out and will receive no further messages
                    privacy_policy: https://site.com/privacy-policy
                    sample1: Your verification code is XXXXXX
                    sample2: XXXX is your verification code
                    sample3: null
                    sample4: null
                    sample5: null
                    status: APPROVED
                    terms_conditions: https://site.com/terms-and-conditions
                    updated_at: '2024-08-14T11:57:47'
                    usecase: 2FA
                    phone_numbers: []
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '403':
          description: Returns when the 10DLC feature is disabled for the account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountErrorResponse'
              examples:
                success:
                  summary: Successful response
                  value:
                    success: false
                    message: Request failed. The feature is disabled for the account.
        '404':
          description: Returns when no 10DLC Brand matches `brand_id`.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/RecordNotFoundErrorResponse'
                  - example:
                      success: false
                      message: Request failed. The Brand is not found.
              examples:
                success:
                  summary: Successful response
                  value:
                    success: false
                    message: Request failed. The Brand is not found.
      deprecated: false
      security:
        - bearerAuth:
            - campaigns:write
components:
  schemas:
    TenDLCCampaignCreateRequest:
      title: TenDLCCampaignCreateRequest
      required:
        - affiliate_marketing
        - age_gated
        - auto_renewal
        - direct_lending
        - embedded_links
        - embedded_phones
        - embedded_link_sample
        - description
        - optin_workflow
        - help
        - help_keywords
        - help_message
        - optin
        - optin_keywords
        - optin_message
        - optout
        - optout_keywords
        - optout_message
        - name
        - sample1
        - sample2
        - sample3
        - sample4
        - sample5
        - mock
        - usecase
        - terms_conditions
      type: object
      additionalProperties: false
      properties:
        affiliate_marketing:
          type: boolean
          description: Indicates whether the Campaign is used for affiliate marketing.
          example: false
        age_gated:
          type: boolean
          description: Indicates whether the Campaign messages contain age-gated content.
          example: false
        auto_renewal:
          type: boolean
          description: >-
            Indicates whether the Campaign is automatically renewed at the end
            of each billing period.
          example: true
        direct_lending:
          type: boolean
          description: >-
            Indicates whether the Campaign messages contain direct lending
            content.
          example: true
        embedded_links:
          type: boolean
          description: Indicates whether the Campaign messages contain embedded links.
          example: true
        embedded_phones:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether the Campaign messages contain embedded phone
            numbers.
          example: true
        embedded_link_sample:
          type:
            - string
            - 'null'
          description: Sample of an embedded link used in Campaign messages.
        description:
          type: string
          description: Description of the Campaign and its messaging purpose.
          example: Our campaign aims to …
        optin_workflow:
          type: string
          description: >-
            Description of the workflow through which subscribers opt in to the
            Campaign.
          example: Our SMS ...
        help:
          type: boolean
          description: >-
            Indicates whether the Campaign provides a help system that
            subscribers can trigger with a keyword such as HELP or INFO.
          example: true
        help_keywords:
          type: string
          description: >-
            Comma-separated list of help keywords. Keywords are
            case-insensitive.
          example: help
        help_message:
          type: string
          description: Acknowledgement sent when a subscriber texts a help keyword.
          example: For help, please visit www.site.com. To opt out, reply STOP.
        optin:
          type: boolean
          description: >-
            Indicates whether the Campaign requires subscribers to opt in before
            receiving messages.
          example: true
        optin_keywords:
          type: string
          description: >-
            Comma-separated list of opt-in keywords. Keywords are
            case-insensitive.
          example: begin,start
        optin_message:
          type: string
          description: Acknowledgement sent when a subscriber texts an opt-in keyword.
          example: >-
            You are now opted-in for help please reply HELP, to stop please
            reply STOP
        optout:
          type: boolean
          description: >-
            Indicates whether the Campaign provides an opt-out system that
            subscribers can trigger with a keyword such as STOP or QUIT.
          example: true
        optout_keywords:
          type: string
          description: >-
            Comma-separated list of opt-out keywords. Keywords are
            case-insensitive.
          example: stop,quit,unsubscribe
        optout_message:
          type: string
          description: Acknowledgement sent when a subscriber texts an opt-out keyword.
          example: You are now opted out and will receive no further messages
        name:
          type: string
          description: Display name of the Campaign.
          example: My first campaign
        sample1:
          type: string
          description: Sample message demonstrating the content sent through the Campaign.
          example: Your verification code is XXXXXX
        sample2:
          type:
            - string
            - 'null'
          description: Sample message demonstrating the content sent through the Campaign.
        sample3:
          type:
            - string
            - 'null'
          description: Sample message demonstrating the content sent through the Campaign.
        sample4:
          type:
            - string
            - 'null'
          description: Sample message demonstrating the content sent through the Campaign.
        sample5:
          type:
            - string
            - 'null'
          description: Sample message demonstrating the content sent through the Campaign.
        mock:
          type: boolean
          description: >-
            Indicates whether the Campaign is a mock campaign used for testing.
            Mock campaigns cannot send production traffic.
          example: false
        usecase:
          type: string
          description: Registered use case for the Campaign, such as `2FA` or `MARKETING`.
          example: 2FA
        privacy_policy:
          type: string
          description: URL of the Campaign privacy policy.
          example: https://site.com/privacy-policy
        terms_conditions:
          type: string
          description: URL of the Campaign terms and conditions.
          example: https://site.com/terms-and-conditions
      example:
        affiliate_marketing: false
        age_gated: false
        auto_renewal: false
        description: Our campaign aims to …
        direct_lending: false
        embedded_link_sample: https://site.com/verify
        embedded_links: false
        embedded_phones: false
        help: true
        help_keywords: help
        help_message: For help, please visit www.site.com. To opt-out, reply STOP.
        mock: false
        name: My first campaign
        optin: true
        optin_keywords: begin,start
        optin_message: >-
          You are now opted-in for help please reply HELP, to stop please reply
          STOP
        optin_workflow: Our SMS ...
        optout: true
        optout_keywords: stop,quit,unsubscribe
        optout_message: You are now opted out and will receive no further messages
        privacy_policy: https://site.com/privacy-policy
        sample1: Your verification code is XXXXXX
        sample2: XXXX is your verification code
        sample3: Your code is XXXXXX, valid for 10 minutes
        sample4: Use code XXXXXX to confirm your login
        sample5: XXXXXX is your one-time passcode
        terms_conditions: https://site.com/terms-and-conditions
        usecase: 2FA
    TenDLCCampaign:
      title: TenDLCCampaign
      required:
        - affiliate_marketing
        - age_gated
        - auto_renewal
        - last_bill_date
        - next_bill_date
        - direct_lending
        - embedded_links
        - embedded_phones
        - embedded_link_sample
        - brand_id
        - campaign_id
        - description
        - optin_workflow
        - feedback
        - help
        - help_keywords
        - help_message
        - optin
        - optin_keywords
        - optin_message
        - optout
        - optout_keywords
        - optout_message
        - name
        - created_at
        - sample1
        - sample2
        - sample3
        - sample4
        - sample5
        - updated_at
        - mock
        - usecase
        - monthly_fee
        - terms_conditions
        - privacy_policy
        - status
        - phone_numbers
      type: object
      additionalProperties: false
      properties:
        affiliate_marketing:
          type: boolean
          description: Indicates whether the Campaign is used for affiliate marketing.
          example: false
        age_gated:
          type: boolean
          description: Indicates whether the Campaign messages contain age-gated content.
          example: false
        auto_renewal:
          type: boolean
          description: Indicates whether the Campaign should be automatically renewed.
          example: true
        last_bill_date:
          type:
            - string
            - 'null'
          description: >-
            Date and time the Campaign was last billed in ISO 8601 format.
            `null` if the Campaign has never been billed.
          example: '2024-08-14T11:57:42'
        next_bill_date:
          type:
            - string
            - 'null'
          description: >-
            Date and time the Campaign will be billed next in ISO 8601 format.
            `null` if the next billing date is not scheduled.
          example: '2024-08-14T11:57:42'
        direct_lending:
          type: boolean
          description: >-
            Indicates whether the Campaign messages contain direct lending
            content.
          example: true
        embedded_links:
          type: boolean
          description: Indicates whether the Campaign messages contain embedded links.
          example: true
        embedded_phones:
          type: boolean
          description: >-
            Indicates whether the Campaign messages contain embedded phone
            numbers.
          example: true
        embedded_link_sample:
          type:
            - string
            - 'null'
          description: Sample of an embedded link used in Campaign messages.
        brand_id:
          type: string
          description: Unique identifier of the Brand that owns the Campaign.
          example: BM20QP9
        campaign_id:
          type: string
          description: Unique identifier of the Campaign assigned by the registry.
          example: CKLCK95
        description:
          type:
            - string
            - 'null'
          description: Description of the Campaign and its messaging purpose.
          example: Our campaign aims to …
        optin_workflow:
          type:
            - string
            - 'null'
          description: >-
            Description of the workflow through which subscribers opt in to the
            Campaign.
          example: Our SMS ...
        feedback:
          type:
            - string
            - 'null'
          description: Feedback from the registry explaining the current `status`.
        help:
          type: boolean
          description: >-
            Indicates whether the campaign includes a help system (for example,
            keyword: HELP, INFO).
          example: true
        help_keywords:
          type: string
          description: >-
            Comma-separated list of help keywords. Keywords are
            case-insensitive.
          example: help
        help_message:
          type:
            - string
            - 'null'
          description: Help message sent upon receiving a help keyword.
          example: For help, please visit www.site.com. To opt out, reply STOP.
        optin:
          type: boolean
          description: Indicates whether the Campaign requires subscriber opt-in.
          example: true
        optin_keywords:
          type: string
          description: >-
            Comma-separated list of opt-in keywords. Keywords are
            case-insensitive.
          example: begin,start
        optin_message:
          type:
            - string
            - 'null'
          description: Opt-in message sent upon receiving an opt-in keyword.
          example: >-
            You are now opted-in for help please reply HELP, to stop please
            reply STOP
        optout:
          type: boolean
          description: >-
            Indicates whether the campaign includes an opt-out system (for
            example, keyword: STOP, QUIT).
          example: true
        optout_keywords:
          type: string
          description: >-
            Comma-separated list of opt-out keywords. Keywords are
            case-insensitive.
          example: stop,quit,unsubscribe
        optout_message:
          type:
            - string
            - 'null'
          description: Opt-out message sent upon receiving an opt-out keyword.
          example: You are now opted out and will receive no further messages
        name:
          type: string
          description: Display name of the Campaign.
          example: My first campaign
        created_at:
          type: string
          description: Timestamp when the Campaign was created, in ISO 8601 format.
          example: '2024-08-14T11:57:41'
        sample1:
          type:
            - string
            - 'null'
          description: Sample message demonstrating the content sent through the Campaign.
          example: Your verification code is XXXXXX
        sample2:
          type:
            - string
            - 'null'
          description: Sample message demonstrating the content sent through the Campaign.
        sample3:
          type:
            - string
            - 'null'
          description: Sample message demonstrating the content sent through the Campaign.
        sample4:
          type:
            - string
            - 'null'
          description: Sample message demonstrating the content sent through the Campaign.
        sample5:
          type:
            - string
            - 'null'
          description: Sample message demonstrating the content sent through the Campaign.
        updated_at:
          type: string
          description: Timestamp when the Campaign was last updated, in ISO 8601 format.
          example: '2024-08-14T11:57:47'
        mock:
          type: boolean
          description: >-
            Indicates whether the Campaign is a mock campaign used for testing.
            Mock campaigns cannot send production traffic.
          example: false
        usecase:
          type: string
          description: Registered use case for the Campaign, such as `2FA` or `MARKETING`.
          example: 2FA
        monthly_fee:
          type: string
          description: Recurring monthly fee charged for the Campaign, as a decimal string.
          example: '10.0'
        privacy_policy:
          type:
            - string
            - 'null'
          description: Privacy policy URL.
          example: https://site.com/privacy-policy
        terms_conditions:
          type:
            - string
            - 'null'
          description: Terms and conditions URL.
          example: https://site.com/terms-and-conditions
        status:
          type: string
          description: >-
            Current registration status of the Campaign, such as `APPROVED` or
            `PENDING`.
          example: APPROVED
        phone_numbers:
          type: array
          items:
            type: string
          description: Phone numbers assigned to the Campaign, in E.164 format.
          example:
            - '14358684439'
            - '13193337776'
            - '12673296046'
      description: >-
        Represents a 10DLC campaign registered under a Brand. A Campaign defines
        the messaging use case, opt-in and opt-out flows, and the phone numbers
        permitted to send its traffic.
      example:
        affiliate_marketing: false
        age_gated: false
        auto_renewal: false
        brand_id: BM20QP9
        campaign_id: CKLCK95
        created_at: '2024-08-14T11:57:41'
        description: Our campaign aims to …
        direct_lending: false
        embedded_link_sample: null
        embedded_links: false
        embedded_phones: false
        feedback: null
        help: true
        help_keywords: help
        help_message: For help, please visit www.site.com. To opt-out, reply STOP.
        last_bill_date: '2024-08-14T11:57:42'
        mock: false
        monthly_fee: '10.0'
        name: My first campaign
        next_bill_date: '2024-11-14T00:00:00'
        optin: true
        optin_keywords: begin,start
        optin_message: >-
          You are now opted-in for help please reply HELP, to stop please reply
          STOP
        optin_workflow: Our SMS ...
        optout: true
        optout_keywords: stop,quit,unsubscribe
        optout_message: You are now opted out and will receive no further messages
        privacy_policy: https://site.com/privacy-policy
        sample1: Your verification code is XXXXXX
        sample2: XXXX is your verification code
        sample3: null
        sample4: null
        sample5: null
        status: APPROVED
        terms_conditions: https://site.com/terms-and-conditions
        updated_at: '2024-08-14T11:57:47'
        usecase: 2FA
        phone_numbers:
          - '14358684439'
          - '13193337776'
          - '12673296046'
    AccountErrorResponse:
      title: AccountErrorResponse
      required:
        - success
        - message
      type: object
      properties:
        success:
          type: boolean
          description: Indicates whether the request was successful
          example: false
        message:
          type: string
          description: Human-readable error description
          example: Request failed. The feature is disabled for the account.
      description: The feature is disabled for the account.
    RecordNotFoundErrorResponse:
      title: RecordNotFoundErrorResponse
      required:
        - success
        - message
      type: object
      properties:
        success:
          type: boolean
          description: >-
            Indicates whether the request was successful. Always `false` for
            this error.
          example: false
        message:
          type: string
          description: Human-readable error description
          example: Record not found
      example:
        success: false
        message: Record not found
    ValidationErrorResponse:
      title: ValidationErrorResponse
      type: object
      properties:
        success:
          type: boolean
          description: >-
            Indicates whether the request was successful. Always `false` for
            this error.
          example: false
        message:
          type: string
          description: >-
            Human-readable description naming the missing or invalid request
            parameter.
          example: Missing or invalid parameter <param_name>
  responses:
    BadRequestErrorResponse:
      description: Request failed. Missing or invalid parameter <param_name>
      headers: {}
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >
        Wavix API key. Pass as `Authorization: Bearer <api_key>`. Keys support
        per-resource scopes (none / read / write). See [Restricted keys and
        scopes](https://docs.wavix.com/api-reference/authentication#restricted-keys-and-scopes).

````