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

# Deregister a campaign

> Withdraws a registered campaign from the US 10DLC registry and returns the campaign.



## OpenAPI

````yaml openapi-sms.yaml POST /10dlc/campaigns/{id}/deregister
openapi: 3.0.3
info:
  title: Vobiz Messaging API
  description: >
    Send and receive SMS, MMS and RCS messages, buy messaging numbers, register
    for

    US 10DLC and toll-free, run broadcasts, manage conversations, opt-outs and
    webhooks.


    **Base URL:** `https://api.vobiz.ai/api/v1/sms`


    **Authentication:** every request needs the `X-Auth-ID` and `X-Auth-Token`
    headers.

    The account is taken from your credentials; you never put an account ID in a
    path or body.

    Field names in this API are camelCase.
  version: '1.0'
  contact:
    email: support@vobiz.ai
    url: https://vobiz.ai
servers:
  - url: https://api.vobiz.ai/api/v1/sms
    description: Production
security:
  - AuthID: []
    AuthToken: []
tags:
  - name: Messages
    description: Send messages and inspect their delivery state.
  - name: Numbers
    description: >-
      Messaging-capable numbers on your account, inventory search, purchase and
      release.
  - name: Coverage
    description: Where you can send, per country.
  - name: Conversations
    description: Two-way threads between one of your numbers and a contact.
  - name: Opt-outs
    description: Numbers that must not receive messages on a channel.
  - name: Webhooks
    description: Subscriptions that deliver message and broadcast events to your server.
  - name: Broadcasts
    description: Bulk sends from an uploaded recipient list.
  - name: RCS Senders
    description: RCS sender (agent) identities and their message templates.
  - name: 10DLC Brands
    description: US 10DLC brand registration.
  - name: 10DLC Campaigns
    description: US 10DLC campaigns, toll-free verification and supporting documents.
paths:
  /10dlc/campaigns/{id}/deregister:
    post:
      tags:
        - 10DLC Campaigns
      summary: Deregister a campaign
      description: >-
        Withdraws a registered campaign from the US 10DLC registry and returns
        the campaign. Once deregistration completes, traffic on the campaign's
        numbers is no longer covered by this registration, so move the numbers
        to another registered campaign first if you keep sending. The request
        has no body. A deregistered campaign can then be deleted with `DELETE
        /10dlc/campaigns/{id}`.
      operationId: deregister-campaign
      parameters:
        - name: id
          in: path
          required: true
          description: >-
            Campaign ID (UUID) returned by `POST /10dlc/campaigns` or `POST
            /10dlc/campaigns/toll-free`. An unknown ID, an ID from another
            account, or a value that is not a UUID returns `404` with
            `{"error":"campaign not found"}`.
          schema:
            type: string
            format: uuid
          example: 4c2a0e8d-6b4f-4d2c-b0a8-9e7c5a3f1d24
      responses:
        '200':
          description: The campaign after deregistration was requested.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Campaign'
              example:
                id: 8a7d2f10-3c4b-4e9a-b1d2-6e5f4a3b2c11
                accountId: MA_XXXXXXXX
                brandId: 5f1c3a2e-7b4d-4e8f-9a0b-1c2d3e4f5a60
                name: Example Corp account alerts
                campaignType: TEN_DIGIT_LONG_CODE
                stage: REGISTERED_PENDING_DEREGISTRATION
                useCases:
                  - ALERTS
                messageTypes:
                  - SMS
                lowVolume: true
                ageGated: false
                directLending: false
                embeddedLink: true
                embeddedPhone: false
                numbers:
                  - '14155550100'
                lastSyncedAt: '2026-10-18T09:00:00Z'
                createdAt: '2026-10-06T14:28:25Z'
                updatedAt: '2026-10-18T09:00:00Z'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: The campaign does not exist on your account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: campaign not found
        '422':
          description: >-
            The US 10DLC registry declined the request. `error` carries the
            registry's description.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TenDLCError'
              example:
                error: >-
                  registration provider rejected the request: campaign is not
                  registered
                providerError: 'registration error 403 (HTTP 403): campaign is not registered'
        '500':
          $ref: '#/components/responses/ServerError'
        '502':
          description: The US 10DLC registry did not answer. Retry the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TenDLCError'
              example:
                error: registration provider unavailable
                providerError: 'registration error 500 (HTTP 500): upstream timeout'
      x-codeSamples:
        - lang: typescript
          label: Node SDK
          source: >
            import { VobizClient } from "@vobiz/sdk";


            const client = new VobizClient({ apiKey: "MA_XXXXXXXX", authToken:
            "YOUR_AUTH_TOKEN" });


            await client.sms.campaigns.deregisterCampaign({
                id: "4c2a0e8d-6b4f-4d2c-b0a8-9e7c5a3f1d24"
            })
        - lang: python
          label: Python SDK
          source: |
            from vobiz import Vobiz

            client = Vobiz(api_key="MA_XXXXXXXX", auth_token="YOUR_AUTH_TOKEN")

            client.sms.campaigns.deregister_campaign(
                id="4c2a0e8d-6b4f-4d2c-b0a8-9e7c5a3f1d24",
            )
        - lang: go
          label: Go SDK
          source: |
            import (
                "context"

                vobiz "github.com/vobiz-ai/Vobiz-Go-SDK"
                "github.com/vobiz-ai/Vobiz-Go-SDK/client"
                "github.com/vobiz-ai/Vobiz-Go-SDK/option"
                "github.com/vobiz-ai/Vobiz-Go-SDK/sms"
            )

            c := client.NewClient(
                option.WithAPIKey("MA_XXXXXXXX"),
                option.WithAuthToken("YOUR_AUTH_TOKEN"),
            )

            request := &sms.DeregisterCampaignRequest{
                    ID: "4c2a0e8d-6b4f-4d2c-b0a8-9e7c5a3f1d24",
                }
            c.Sms.Campaigns.DeregisterCampaign(
                    context.TODO(),
                    request,
                )
        - lang: java
          label: Java SDK
          source: |
            import com.vobiz.api.VobizApiClient;

            VobizApiClient client = VobizApiClient
                .builder()
                .apiKey("MA_XXXXXXXX")
                .authToken("YOUR_AUTH_TOKEN")
                .build();

            client.sms().campaigns().deregisterCampaign(
                "4c2a0e8d-6b4f-4d2c-b0a8-9e7c5a3f1d24",
                DeregisterCampaignRequest
                    .builder()
                    .build()
            );
        - lang: ruby
          label: Ruby SDK
          source: >
            require 'vobiz'


            client = Vobiz::Client.new(api_key: 'MA_XXXXXXXX', auth_token:
            'YOUR_AUTH_TOKEN')


            client.sms.campaigns.deregister_campaign(id:
            "4c2a0e8d-6b4f-4d2c-b0a8-9e7c5a3f1d24")
        - lang: csharp
          label: C# SDK
          source: |
            using Vobiz;
            using Vobiz.Sms;

            var client = new VobizApiClient("YOUR_AUTH_TOKEN", "MA_XXXXXXXX");

            await client.Sms.Campaigns.DeregisterCampaignAsync(
                new DeregisterCampaignRequest { Id = "4c2a0e8d-6b4f-4d2c-b0a8-9e7c5a3f1d24" }
            );
        - lang: php
          label: PHP SDK
          source: >
            <?php


            require 'vendor/autoload.php';


            use Vobiz\VobizClient;


            $client = new VobizClient(apiKey: 'MA_XXXXXXXX', authToken:
            'YOUR_AUTH_TOKEN');


            $client->sms->campaigns->deregisterCampaign(
                '4c2a0e8d-6b4f-4d2c-b0a8-9e7c5a3f1d24',
            );
components:
  schemas:
    Campaign:
      type: object
      description: >-
        A 10DLC or toll-free campaign on your account and its state at the US
        10DLC registry. Optional fields are omitted when empty, and registry
        state is refreshed when you retrieve the campaign.
      properties:
        id:
          type: string
          format: uuid
          description: >-
            Campaign ID (UUID) on your account. Use it in every
            `/10dlc/campaigns/{id}` path.
          example: 8a7d2f10-3c4b-4e9a-b1d2-6e5f4a3b2c11
        accountId:
          type: string
          example: MA_XXXXXXXX
          description: >-
            Your Vobiz account ID (`MA_...`). Always the account whose
            credentials made the request.
        brandId:
          type: string
          format: uuid
          description: >-
            ID of the brand the campaign runs under. Omitted for toll-free
            campaigns, which carry their business details themselves.
          example: 5f1c3a2e-7b4d-4e8f-9a0b-1c2d3e4f5a60
        name:
          type: string
          example: Example Corp account alerts
          description: Name you gave the campaign, for your reference.
        campaignType:
          type: string
          enum:
            - TEN_DIGIT_LONG_CODE
            - TOLL_FREE_UNIFIED_NUMBER
            - TOLL_FREE_NUMBER
            - SHORT_CODE
            - EXTERNAL_TEN_DIGIT_LONG_CODE
            - DCA2_TEN_DIGIT_LONG_CODE
            - TOLL_FREE_EXTERNALLY_VERIFIED
            - RCS_SENDER_LAUNCH
          description: >-
            Kind of campaign. `TEN_DIGIT_LONG_CODE` is a standard 10DLC campaign
            (the default on create) and `TOLL_FREE_UNIFIED_NUMBER` is a
            toll-free verification created with `POST
            /10dlc/campaigns/toll-free`. The other values are registry campaign
            types you can request on create.
        stage:
          type: string
          description: >-
            Registry lifecycle stage. A new campaign is `DRAFT`; after you
            register it, it moves through review stages such as `SUBMITTED`,
            `IN_REVIEW` or `APPEALED` and settles at `REGISTERED` or `REJECTED`.
            Other values include `REGISTERED_PENDING_UPDATE`,
            `REGISTERED_PENDING_DEREGISTRATION`, `REJECTED_EXTERNALLY`,
            `DEREGISTERED`, `ARCHIVED`, `BLOCKED`, `SUSPENDED` and `DELETED`;
            treat it as an open string.
          example: REGISTERED
        programSummary:
          type: string
          description: >-
            Description of the program as submitted to the registry. Omitted
            when not set.
        confirmationMessage:
          type: string
          description: Opt-in confirmation message as submitted. Omitted when not set.
        helpMessage:
          type: string
          description: HELP reply as submitted. Omitted when not set.
        stopMessage:
          type: string
          description: STOP reply as submitted. Omitted when not set.
        customerCarePhone:
          type: string
          example: '+14155550100'
          description: Customer care phone number, in E.164 format. Omitted when not set.
        customerCareEmail:
          type: string
          example: support@example.com
          description: Customer care email address. Omitted when not set.
        exampleMessages:
          type: array
          items:
            type: string
          description: Sample messages as submitted. Omitted when not set.
        termsAndConditionsUrl:
          type: string
          format: uri
          description: Public URL of your terms and conditions. Omitted when not set.
        privacyPolicyUrl:
          type: string
          format: uri
          description: Public URL of your privacy policy. Omitted when not set.
        useCases:
          type: array
          items:
            type: string
          example:
            - ALERTS
          description: >-
            Use-case codes as submitted, for example `ALERTS` or, on a toll-free
            campaign, `NOTIFICATIONS`. Omitted when not set.
        messageTypes:
          type: array
          items:
            type: string
          example:
            - SMS
          description: Message types as submitted, for example `SMS`. Omitted when not set.
        optIns:
          type: object
          description: >-
            Opt-in details as submitted, keyed by channel (for example `web`).
            Omitted when not set.
          additionalProperties: true
        lowVolume:
          type: boolean
          description: >-
            Whether the campaign is declared low volume. Always present; `false`
            unless you set it.
        ageGated:
          type: boolean
          description: >-
            Whether the content is restricted to adults. Always present; `false`
            unless you set it.
        directLending:
          type: boolean
          description: >-
            Whether the content relates to direct lending. Always present;
            `false` unless you set it.
        embeddedLink:
          type: boolean
          description: >-
            Whether messages contain URLs. Always present; `false` unless you
            set it.
        embeddedPhone:
          type: boolean
          description: >-
            Whether messages contain phone numbers. Always present; `false`
            unless you set it.
        numbers:
          type: array
          description: >-
            Numbers recorded on the campaign on your account. 10DLC campaigns
            store digits with country code (for example `14155550100`);
            toll-free campaigns store E.164 with a leading `+`. For the
            registry's own list use `GET /10dlc/campaigns/{id}/numbers`.
          items:
            type: string
          example:
            - '14155550100'
        rejectionReasons:
          type: object
          description: >-
            The registry's review feedback after a rejection, with keys such as
            `rejectionDate`, `rejectionReasons` and `rejectionDetails` (each
            detail has `errorCode`, `description`, `recommendedAction` and
            `rejectionCategory`). Omitted when the campaign has no feedback;
            address every point before you appeal.
          additionalProperties: true
        lastSyncedAt:
          type: string
          format: date-time
          description: >-
            When Vobiz last refreshed this record from the US 10DLC registry, in
            ISO 8601 (RFC 3339) UTC. Omitted until the first refresh.
          example: '2026-10-14T17:19:03Z'
        createdAt:
          type: string
          format: date-time
          example: '2026-10-06T14:28:25Z'
          description: >-
            When the record was created on your account, in ISO 8601 (RFC 3339)
            UTC.
        updatedAt:
          type: string
          format: date-time
          example: '2026-10-14T17:19:03Z'
          description: >-
            When the record last changed on your account, in ISO 8601 (RFC 3339)
            UTC.
    Error:
      type: object
      description: >-
        The body of every error response: a flat object with one `error` string
        that explains what went wrong. Use the HTTP status code to decide how to
        handle the error, and log `error` for diagnosis.
      required:
        - error
      properties:
        error:
          type: string
          example: 'recipient has opted out: +14155550123'
          description: >-
            Human-readable explanation of the error, for example `phoneNumber is
            required` or `recipient has opted out: +14155550123`. Branch on the
            HTTP status code rather than on this text.
    TenDLCError:
      description: >-
        Error returned when the US 10DLC registry declines or cannot process a
        request. `error` is a human-readable message you can show or log. When
        the registry answers with `400`, `404`, `409`, `422` or `429`, the same
        status is passed through with this body; `502` means the registry did
        not answer and `503` means it did not accept Vobiz's service
        credentials.
      allOf:
        - $ref: '#/components/schemas/Error'
        - type: object
          properties:
            providerError:
              type: string
              description: >-
                Opaque diagnostic string you can quote to support. Do not parse
                it.
              example: 'registration error 400 (HTTP 400): brand legalName is required'
  responses:
    Unauthorized:
      description: Missing or invalid `X-Auth-ID` / `X-Auth-Token`.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: missing or invalid credentials
    ServerError:
      description: Unexpected error. Retry with the same idempotency key where one applies.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: internal error
  securitySchemes:
    AuthID:
      type: apiKey
      in: header
      name: X-Auth-ID
      description: Your Vobiz account Auth ID (`MA_XXXXXXXX`).
    AuthToken:
      type: apiKey
      in: header
      name: X-Auth-Token
      description: Your Vobiz account Auth Token.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.