---
title: "List Outbound Campaign Leads"
method: GET
path: "/v1/convai/outbound-campaigns/campaigns/{campaign_id}/leads"
tags: ["Agents Platform"]
---

# List Outbound Campaign Leads

`GET /v1/convai/outbound-campaigns/campaigns/{campaign_id}/leads`

## Request

- Base URL: `https://api.elevenlabs.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.elevenlabs.io/v1/convai/outbound-campaigns/campaigns/{campaign_id}/leads`
- Auth: none declared

List the leads of an outbound campaign, one per recipient.

## Path parameters

- `campaign_id` string, required

## Query parameters

- `page_size` integer: How many items to return at most.
- `search` string, nullable: Only leads whose ID, user ID or phone number contains this text.
- `status` 'in_progress' | 'finished', nullable: `in_progress` for leads still being called, `finished` for leads that won't be called again.
- `disposition` TerminalDisposition[], nullable: Only leads that finished in one of these ways.
- `cursor` string, nullable: Used for fetching next page. Cursor is returned in the response.

## Headers

- `xi-api-key` string, nullable: Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.

## Response `200`

Successful Response

- CampaignLeadsResponse
  - `leads` LeadView[], required
    - `lead_id` string, required
    - `recipient_id` string, nullable, required: The `id` given to this recipient when the campaign was created.
    - `phone_number` string, required: The number the lead's next call dials. It changes when the lead moves on to another listed number or the contact asks to be called on a different one.
    - `phone_numbers` string[]: The lead's listed numbers, in calling order.
    - `phone_numbers_index` integer, required: The position in `phone_numbers` of the number being called.
    - `user_id` string, required: The contact's identity: the `user_id` submitted in `conversation_initiation_client_data`, else the lead's phone number.
    - `attempt_count` integer, required: Calls placed, counted against the policy's `max_total_calls`.
    - `failure_count` integer, required: Failed calls to the current number; resets on a new number.
    - `callback_count` integer, required: Callbacks the contact asked for.
    - `redirect_count` integer, required: Times the contact asked to be called on another number.
    - `do_not_call` boolean, required: Set when the contact asked not to be called, the lead was removed, or the campaign stopped. The lead isn't called again.
    - `terminal_disposition` 'campaign_ended' | 'removed' | 'do_not_call' | 'completed' | 'cancelled' | 'suppressed' | 'attempt_ceiling_reached' | 'callback_ceiling_reached' | 'redirect_ceiling_reached' | 'permission_not_granted' | 'permission_declined' | 'permission_request_blocked' | 'permission_expired' | 'callback_time_invalid' | 'redirect_number_invalid' | 'couldnt_process', required
    - `created_at_unix` integer, nullable, required: When the lead joined the campaign; unset on older leads.
    - `updated_at_unix` integer, required
    - `dynamic_variables` object, required: The dynamic variables submitted for the lead, with secrets redacted.
    - `overrides` FlattenedConfigOverrides, required
      - `language` string, nullable
      - `first_message` string, nullable
      - `prompt` string, nullable
      - `voice_id` string, nullable
    - `delivery` LeadDeliveryView
      - `status` 'pending' | 'dispatched' | 'initiated' | 'in_progress' | 'completed' | 'failed' | 'cancelled' | 'voicemail', required
      - `stage` 'queued' | 'sent' | 'delivered' | 'read' | 'replied' | 'failed', required: The furthest the message got, or `failed` if sending it failed.
      - `sent_at_unix` integer, nullable, required
      - `delivered_at_unix` integer, nullable, required
      - `read_at_unix` integer, nullable, required
      - `replied_at_unix` integer, nullable, required
      - `failed_at_unix` integer, nullable, required
      - `error_message` string, nullable, required: Why the message failed to reach the contact.
  - `next_cursor` string, nullable, required
  - `has_more` boolean, required

## Other responses

- `422`: Validation Error

## Changes

- **2026-11-10** `49e0431bea4c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation/changes/v1/convai/outbound-campaigns/campaigns/:campaign_id/leads/get.md)

---

[API](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation.md) - [All operations](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation/llms.txt) - [OpenAPI document](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation/revisions/defd23ab2aa6?raw)
