> ## 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.

# Update a 10DLC Campaign

> Updates the 10DLC Campaign identified by `campaign_id`. Only the provided fields are changed.



## OpenAPI

````yaml https://wavix.github.io/wavix-openapi/wavix-api.yaml put /v3/10dlc/brands/{brand_id}/campaigns/{campaign_id}
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/{campaign_id}:
    put:
      tags:
        - 10DLC
      summary: Update a 10DLC Campaign
      description: >-
        Updates the 10DLC Campaign identified by `campaign_id`. Only the
        provided fields are changed.
      operationId: ten_dlc_brand_campaigns_update
      parameters:
        - name: brand_id
          in: path
          description: The unique ID of the 10DLC Brand.
          required: true
          style: simple
          schema:
            type: string
            example: BM20QP9
        - name: campaign_id
          in: path
          description: The unique ID of the 10DLC Campaign.
          required: true
          style: simple
          schema:
            type: string
            example: CKLCK95
      requestBody:
        description: >-
          Fields to update on the 10DLC Campaign. Only included fields are
          changed.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TenDLCCampaignUpdateRequest'
        required: true
      responses:
        '200':
          description: Returns the updated 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:
    TenDLCCampaignUpdateRequest:
      title: TenDLCCampaignUpdateRequest
      type: object
      additionalProperties: false
      properties:
        name:
          type: string
          description: Display name of the Campaign.
          maxLength: 120
          example: Campaign
        usecase:
          type: string
          description: >
            Registered use case for the Campaign. One of `CUSTOMER_CARE`
            (customer support messaging), `MARKETING` (promotional content),
            `ACCOUNT_NOTIFICATION` (account-related alerts), `FRAUD_ALERT`
            (fraud and suspicious-activity warnings),
            `PUBLIC_SERVICE_ANNOUNCEMENT` (public-interest notices), or
            `SECURITY_ALERT` (security-related warnings).
          enum:
            - CUSTOMER_CARE
            - MARKETING
            - ACCOUNT_NOTIFICATION
            - FRAUD_ALERT
            - PUBLIC_SERVICE_ANNOUNCEMENT
            - SECURITY_ALERT
          example: MARKETING
        description:
          type: string
          description: Description of the Campaign and its messaging purpose.
          minLength: 40
          maxLength: 4096
          example: >-
            Explain how users opt in (e.g., via website or paid ads), specify
            the message frequency, and clearly state that opting in to messages
            is optional and not required to use the service.
        embedded_links:
          type: boolean
          description: Indicates whether the Campaign messages contain embedded links.
          default: false
          example: false
        embedded_phones:
          type: boolean
          description: >-
            Indicates whether the Campaign messages contain embedded phone
            numbers.
          default: false
          example: false
        age_gated:
          type: boolean
          description: Indicates whether the Campaign messages contain age-gated content.
          default: false
          example: false
        direct_lending:
          type: boolean
          description: >-
            Indicates whether the Campaign messages contain direct lending
            content.
          default: false
          example: false
        optin:
          type: boolean
          description: >-
            Indicates whether the Campaign requires subscribers to opt in before
            receiving messages.
          default: false
          example: true
        optout:
          type: boolean
          description: >-
            Indicates whether the Campaign provides an opt-out system that
            subscribers can trigger with a keyword.
          default: false
          example: true
        help:
          type: boolean
          description: >-
            Indicates whether the Campaign provides a help system that
            subscribers can trigger with a keyword.
          default: false
          example: true
        sample1:
          type: string
          description: Sample message demonstrating the content sent through the Campaign.
          minLength: 20
          maxLength: 1024
          example: Example of message sample for campaign 1
        sample2:
          type: string
          description: Sample message demonstrating the content sent through the Campaign.
          minLength: 20
          maxLength: 1024
          example: Example of message sample for campaign 2
        sample3:
          type: string
          description: Sample message demonstrating the content sent through the Campaign.
          minLength: 20
          maxLength: 1024
          example: Example of message sample for campaign 3
        sample4:
          type: string
          description: Sample message demonstrating the content sent through the Campaign.
          minLength: 20
          maxLength: 1024
          example: Example of message sample for campaign 4
        sample5:
          type: string
          description: Sample message demonstrating the content sent through the Campaign.
          minLength: 20
          maxLength: 1024
          example: Example of message sample for campaign 5
        optin_workflow:
          type: string
          description: >-
            Description of the workflow through which subscribers opt in to the
            Campaign.
          minLength: 40
          maxLength: 4096
          example: >-
            Our SMS campaign uses a double opt-in workflow where customers reply
            START to begin
        help_message:
          type: string
          description: Acknowledgement sent when a subscriber texts a help keyword.
          minLength: 20
          maxLength: 320
          example: For help, please visit www.site.com. To opt out, reply STOP.
        optin_message:
          type: string
          description: Acknowledgement sent when a subscriber texts an opt-in keyword.
          minLength: 20
          maxLength: 320
          example: >-
            You have opted in to our campaign. Reply HELP for assistance or STOP
            to unsubscribe.
        optout_message:
          type: string
          description: Acknowledgement sent when a subscriber texts an opt-out keyword.
          minLength: 20
          maxLength: 320
          example: >-
            A comma-separated list of OPT-OUT keywords. The OPT-OUT keywords are
            case-insensitive.
        auto_renewal:
          type: boolean
          description: >-
            Indicates whether the Campaign is automatically renewed at the end
            of each billing period.
          default: true
          example: true
        optin_keywords:
          type: string
          description: >-
            Comma-separated list of opt-in keywords. Keywords are
            case-insensitive.
          maxLength: 255
          example: start,optin
        help_keywords:
          type: string
          description: >-
            Comma-separated list of help keywords. Keywords are
            case-insensitive.
          maxLength: 255
          default: HELP
          example: help
        optout_keywords:
          type: string
          description: >-
            Comma-separated list of opt-out keywords. Keywords are
            case-insensitive.
          maxLength: 255
          example: optout,discard
        terms_conditions:
          type: string
          description: URL of the Campaign terms and conditions.
          maxLength: 255
          example: https://site.com/terms-and-conditions
        privacy_policy:
          type: string
          description: URL of the Campaign privacy policy.
          maxLength: 255
          example: PROFESSIONAL
        embedded_link_sample:
          type: string
          description: Sample of an embedded link used in Campaign messages.
          maxLength: 255
          example: https://example.com
    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).

````