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

# Assign Messaging Profile To Campaign

> This endpoint allows you to link all phone numbers associated with a Messaging Profile to a campaign. **Please note:** if you want to assign phone numbers to a campaign that you did not create with Telnyx 10DLC services, this endpoint allows that provided that you've shared the campaign with Telnyx. In this case, only provide the parameter, `tcrCampaignId`, and not `campaignId`. In all other cases (where the campaign you're assigning was created with Telnyx 10DLC services), only provide `campaignId`, not `tcrCampaignId`.



## OpenAPI

````yaml /openapi/source/external/messaging/10dlc.json post /10dlc/phoneNumberAssignmentByProfile
openapi: 3.1.0
info:
  title: Telnyx 10DLC API
  description: >-
    # Overview

    The Telnyx 10DLC API facilitates interaction with The Campaign Registry
    (TCR), allowing the creation and registration of brands and campaigns with
    TCR.


    # API Interaction

    ## Request Authorization

    Telnyx 10DLC API endpoints require authorization for each request. To
    properly authorize requests, send an Authorization header with `Bearer `
    plus your Telnyx API key as the value. See the following curl request for
    example usage:


    ```sh

    curl --location --request GET
    'https://api.telnyx.com/10dlc/example/endpoint' \ 

    --header 'Authorization: Bearer YOUR_API_KEY_GOES_HERE' \ 

    --data-raw ''

    ```


    You can obtain your API key by logging into your <a
    href="https://portal.telnyx.com">Telnyx portal account</a> and clicking the
    "API Keys" tab. From there, you can copy your desired API key for use in
    your requests, similar to the above example curl request.


    ## The 10DLC Work Flow

    1. Create a brand


    2. Apply for brand vetting


    3. Create a campaign or campaigns (associated with the created brand)


    4. Assign a phone number or phone numbers to the created campaign

    ## 10DLC Costs

    **Brands:**

    1. Brand registration: $4 one time charge


    2.  Brand vetting: $40 one time charge


    **Campaigns:**


    1. Campaign registration T-Mobile: $50 one time charge


    2. Campaign creation: first 3 month's charge upfront. After the first 3
    months, this charge will change to a once a month recurring charge (see
    charge values below, based on campaign use case)

       a. Charity Campaign Use Case: $15 upfront (first 3 months), and $5 month to month after

       b. Low Mixed Volume Campaign Use Case: $6 upfront (first 3 months), and $2 month to month after

       c. Any Other Campaign Use Case: $30 upfront (first 3 months), and $10 month to month after
    3. Phone number to campaign assignment: $0.03 one time charge for each
    assignment


    ## Frequently Asked Questions

    For frequently asked questions, visit <a
    href="https://support.telnyx.com/en/articles/3679260-frequently-asked-questions-about-10dlc">Telnyx
    10DLC FAQs</a>.
  version: '0.1'
  x-latency-category: responsive
servers:
  - url: https://api.telnyx.com/v2
    description: Version 2.0.0 of the Telnyx API
security:
  - bearerAuth: []
tags:
  - name: Brands
    description: Brand operations
  - name: Campaign
    description: Campaign operations
  - name: Phone Number Campaigns
    description: Phone number campaign assignment
  - name: Bulk Small Business
    description: >-
      Endpoints for creating and checking the status of campaigns, brands, and
      phone numbers
  - name: Bulk Phone Number Campaigns
    description: Phone number campaign bulk assignment
  - name: Callbacks
    description: Callbacks
paths:
  /10dlc/phoneNumberAssignmentByProfile:
    post:
      tags:
        - Bulk Phone Number Campaigns
      summary: Assign Messaging Profile To Campaign
      description: >-
        This endpoint allows you to link all phone numbers associated with a
        Messaging Profile to a campaign. **Please note:** if you want to assign
        phone numbers to a campaign that you did not create with Telnyx 10DLC
        services, this endpoint allows that provided that you've shared the
        campaign with Telnyx. In this case, only provide the parameter,
        `tcrCampaignId`, and not `campaignId`. In all other cases (where the
        campaign you're assigning was created with Telnyx 10DLC services), only
        provide `campaignId`, not `tcrCampaignId`.
      operationId: PostAssignMessagingProfileToCampaign
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssignProfileToCampaignRequest'
        required: true
      responses:
        '202':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssignProfileToCampaignResponse'
        '500':
          description: Error searching for phone numbers
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettingsDataErrorMessage'
        4XX:
          $ref: '#/components/responses/GenericErrorResponse'
      x-codeSamples:
        - lang: JavaScript
          source: >-
            import Telnyx from 'telnyx';


            const client = new Telnyx({
              apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
            });


            const response = await
            client.messaging10dlc.phoneNumberAssignmentByProfile.assign({
              messagingProfileId: '4001767e-ce0f-4cae-9d5f-0d5e636e7809',
            });


            console.log(response.messagingProfileId);
        - lang: Python
          source: >
            import os

            from telnyx import Telnyx


            client = Telnyx(
                api_key=os.environ.get("TELNYX_API_KEY"),  # This is the default and can be omitted
            )

            response =
            client.messaging_10dlc.phone_number_assignment_by_profile.assign(
                messaging_profile_id="4001767e-ce0f-4cae-9d5f-0d5e636e7809",
            )

            print(response.messaging_profile_id)
        - lang: Go
          source: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/team-telnyx/telnyx-go\"\n\t\"github.com/team-telnyx/telnyx-go/option\"\n)\n\nfunc main() {\n\tclient := telnyx.NewClient(\n\t\toption.WithAPIKey(\"My API Key\"),\n\t)\n\tresponse, err := client.Messaging10dlc.PhoneNumberAssignmentByProfile.Assign(context.TODO(), telnyx.Messaging10dlcPhoneNumberAssignmentByProfileAssignParams{\n\t\tMessagingProfileID: \"4001767e-ce0f-4cae-9d5f-0d5e636e7809\",\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", response.MessagingProfileID)\n}\n"
        - lang: Java
          source: >-
            package com.telnyx.sdk.example;


            import com.telnyx.sdk.client.TelnyxClient;

            import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;

            import
            com.telnyx.sdk.models.messaging10dlc.phonenumberassignmentbyprofile.PhoneNumberAssignmentByProfileAssignParams;

            import
            com.telnyx.sdk.models.messaging10dlc.phonenumberassignmentbyprofile.PhoneNumberAssignmentByProfileAssignResponse;


            public final class Main {
                private Main() {}

                public static void main(String[] args) {
                    TelnyxClient client = TelnyxOkHttpClient.fromEnv();

                    PhoneNumberAssignmentByProfileAssignParams params = PhoneNumberAssignmentByProfileAssignParams.builder()
                        .messagingProfileId("4001767e-ce0f-4cae-9d5f-0d5e636e7809")
                        .build();
                    PhoneNumberAssignmentByProfileAssignResponse response = client.messaging10dlc().phoneNumberAssignmentByProfile().assign(params);
                }
            }
        - lang: Ruby
          source: >-
            require "telnyx"


            telnyx = Telnyx::Client.new(api_key: "My API Key")


            response =
            telnyx.messaging_10dlc.phone_number_assignment_by_profile.assign(
              messaging_profile_id: "4001767e-ce0f-4cae-9d5f-0d5e636e7809"
            )


            puts(response)
        - lang: PHP
          source: >-
            <?php


            require_once dirname(__DIR__) . '/vendor/autoload.php';


            use Telnyx\Client;

            use Telnyx\Core\Exceptions\APIException;


            $client = new Client(apiKey: getenv('TELNYX_API_KEY') ?: 'My API
            Key');


            try {
              $response = $client->messaging10dlc->phoneNumberAssignmentByProfile->assign(
                messagingProfileID: '4001767e-ce0f-4cae-9d5f-0d5e636e7809',
                campaignID: '4b300178-131c-d902-d54e-72d90ba1620j',
                tcrCampaignID: 'CWZTFH1',
              );

              var_dump($response);
            } catch (APIException $e) {
              echo $e->getMessage();
            }
        - lang: CLI
          source: |-
            telnyx messaging-10dlc:phone-number-assignment-by-profile assign \
              --api-key 'My API Key' \
              --messaging-profile-id 4001767e-ce0f-4cae-9d5f-0d5e636e7809
components:
  schemas:
    AssignProfileToCampaignRequest:
      title: AssignProfileToCampaignRequest
      required:
        - messagingProfileId
      type: object
      properties:
        messagingProfileId:
          title: Messagingprofileid
          type: string
          description: >-
            The ID of the messaging profile that you want to link to the
            specified campaign.
          example: 4001767e-ce0f-4cae-9d5f-0d5e636e7809
        tcrCampaignId:
          title: Tcrcampaignid
          type: string
          description: >-
            The TCR ID of the shared campaign you want to link to the specified
            messaging profile (for campaigns not created using Telnyx 10DLC
            services only). If you supply this ID in the request, do not also
            include a campaignId.
          example: CWZTFH1
        campaignId:
          title: Campaignid
          type: string
          description: >-
            The ID of the campaign you want to link to the specified messaging
            profile. If you supply this ID in the request, do not also include a
            tcrCampaignId.
          example: 4b300178-131c-d902-d54e-72d90ba1620j
    AssignProfileToCampaignResponse:
      title: AssignProfileToCampaignResponse
      required:
        - messagingProfileId
        - taskId
      type: object
      properties:
        messagingProfileId:
          title: Messagingprofileid
          type: string
          description: >-
            The ID of the messaging profile that you want to link to the
            specified campaign.
          example: 4001767e-ce0f-4cae-9d5f-0d5e636e7809
        tcrCampaignId:
          title: Tcrcampaignid
          type: string
          description: >-
            The TCR ID of the shared campaign you want to link to the specified
            messaging profile (for campaigns not created using Telnyx 10DLC
            services only). If you supply this ID in the request, do not also
            include a campaignId.
          example: CWZTFH1
        campaignId:
          title: Campaignid
          type: string
          description: >-
            The ID of the campaign you want to link to the specified messaging
            profile. If you supply this ID in the request, do not also include a
            tcrCampaignId.
          example: 4b300178-131c-d902-d54e-72d90ba1620j
        taskId:
          title: Taskid
          type: string
          description: >-
            The ID of the task associated with assigning a messaging profile to
            a campaign.
          example: 667a80f8-b0a9-49d0-b9ab-a7a1bcc45086
    SettingsDataErrorMessage:
      title: SettingsDataErrorMessage
      required:
        - message
      type: object
      properties:
        message:
          title: Message
          type: string
    Errors:
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
      type: object
    Error:
      required:
        - code
        - title
      type: object
      properties:
        code:
          type: string
        title:
          type: string
        detail:
          type: string
        source:
          type: object
          properties:
            pointer:
              description: JSON pointer (RFC6901) to the offending entity.
              type: string
            parameter:
              description: Indicates which query parameter caused the error.
              type: string
  responses:
    GenericErrorResponse:
      description: Generic response error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````