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

# Bulk Remove Leads from Campaign

> Removes multiple leads from the specified campaign in a single request. Each item is processed individually and per-lead results are returned. Each item must include either a `phone_number` or a `campaign_lead_id`. When both are provided, `campaign_lead_id` takes precedence.

## Authentication
All requests require an `Authorization` header using Bearer token authentication:
`Authorization: Bearer <api_key>`



## OpenAPI

````yaml DELETE /api/v2/voice-campaigns/{campaign_id}/leads/remove/bulk
openapi: 3.1.0
info:
  title: VoiceAIWrapper API
  description: >-
    REST API for managing campaigns, leads, clients, web widgets, and voice
    providers on VoiceAIWrapper.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.voiceaiwrapper.app
security:
  - bearerAuth: []
paths:
  /api/v2/voice-campaigns/{campaign_id}/leads/remove/bulk:
    delete:
      tags:
        - Leads (v2)
      summary: Bulk Remove Leads from Campaign
      description: >-
        Removes multiple leads from the specified campaign in a single request.
        Each item is processed individually and per-lead results are returned.
        Each item must include either a `phone_number` or a `campaign_lead_id`.
        When both are provided, `campaign_lead_id` takes precedence.


        ## Authentication

        All requests require an `Authorization` header using Bearer token
        authentication:

        `Authorization: Bearer <api_key>`
      operationId: bulkRemoveLeadsFromCampaignV2
      parameters:
        - name: campaign_id
          in: path
          required: true
          description: Identifier of the campaign. Required.
          schema:
            type: string
            example: camp_abc123
      requestBody:
        required: true
        description: >-
          Array of lead identifiers to remove. Each object must include
          `phone_number` or `campaign_lead_id`.
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/RemoveLeadRequest'
              minItems: 1
              example:
                - phone_number: '+14155552671'
                - campaign_lead_id: VoiceCampaignLead:42
      responses:
        '200':
          description: Bulk removal completed. Per-lead results are included in `results`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  message:
                    type: string
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        index:
                          type: integer
                          description: Zero-based position of the lead in the request array
                        phone_number:
                          type: string
                          description: Phone number from the request item, if provided
                        campaign_lead_id:
                          type: string
                          description: Campaign lead ID from the request item, if provided
                        success:
                          type: boolean
                          description: >-
                            Whether this individual lead was removed
                            successfully
                        message:
                          type: string
                          description: Result message for this lead
              example:
                status: success
                message: Bulk lead removal completed
                results:
                  - index: 0
                    phone_number: '+14155552671'
                    success: true
                    message: Lead removed successfully
                  - index: 1
                    campaign_lead_id: VoiceCampaignLead:42
                    success: false
                    message: >-
                      Lead not found with the given phone number or campaign
                      lead id
        '400':
          description: Invalid request data. Request body must be a non-empty JSON array.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              example:
                message: Body must be a non-empty list
        '401':
          description: Authentication failed. Ensure the Bearer token is present and valid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '500':
          description: Internal server error. Contact support if this persists.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              example:
                message: Internal server error
components:
  schemas:
    RemoveLeadRequest:
      type: object
      properties:
        phone_number:
          type: string
          description: >-
            Lead phone number in E.164 format. Required if campaign_lead_id is
            not provided.
          example: '+14155552671'
        campaign_lead_id:
          type: string
          description: >-
            Global ID of the campaign lead record. Required if phone_number is
            not provided.
          example: Vm9pY2VDYW1wYWlnbkxlYWQ6MTIzNA==
    ErrorMessage:
      type: object
      properties:
        message:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````