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

# List campaign contacts

> The contacts in a campaign, with their calls, last outcome, next call and stop state.

<Note>
  This endpoint is for the VIP plan only. Other plans get a `403`. See [Plan access](/api-reference/introduction#plan-access).
</Note>

The campaign's contacts come from its contact view. There is no endpoint to add one contact. Change the view, or the contact, instead.

<ParamField path="id" type="string" required>
  Campaign UUID
</ParamField>

<ParamField query="filter" type="string" default="all">
  | Filter | Contacts |
  | - | - |
  | `all` | Every contact. |
  | `callable` | Still to be called. |
  | `stopped` | Stopped for any reason. |
  | `skipped` | Could not be called: no phone, no timezone, DND, or held back by another contact rule. |
  | `awaiting_callback` | The last call ended with a callback request. Nothing calls them back for you. |
</ParamField>

<ParamField query="limit" type="integer" default="50">
  Contacts per page, 1 to 200.
</ParamField>

<ParamField query="offset" type="integer" default="0">
  Contacts to skip, up to 100,000.
</ParamField>

## Fields

| Field | What it is |
| - | - |
| `firstName`, `lastName`, `phone` | From the contact. Null when the contact was deleted after it was added. |
| `attemptsMade` | Calls this campaign placed to the contact. |
| `lastOutcome` | The outcome of the last call, like `callback_requested`. Null before the first call has one. |
| `nextAttemptAt` | When the contact is next due. Null when no call is planned. |
| `lastAttemptAt` | When the last call was placed. |
| `stoppedAt`, `stopReason` | When and why this campaign stopped calling the contact. Both null while it still can. Reasons include `no_phone`, `no_timezone`, `dnd`, `no_longer_matches_view`, `removed_by_user` and `api_stop_request`. |

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.nedzo.ai/v1/campaigns/123e4567-e89b-12d3-a456-426614174000/contacts?filter=awaiting_callback" \
      -H "Authorization: Bearer YOUR_API_KEY"
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "items": [
      {
        "contactId": "456e4567-e89b-12d3-a456-426614174000",
        "firstName": "Alice",
        "lastName": "Wong",
        "phone": "+15551230000",
        "attemptsMade": 2,
        "lastOutcome": "callback_requested",
        "nextAttemptAt": null,
        "lastAttemptAt": "2026-10-11T14:30:00Z",
        "stoppedAt": null,
        "stopReason": null
      }
    ],
    "total": 1,
    "limit": 50,
    "offset": 0,
    "hasMore": false
  }
  ```
</ResponseExample>


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