---
title: "List broadcast contacts"
method: GET
path: "/v1/broadcasts/{broadcastId}/contacts"
---

# List broadcast contacts

`GET /v1/broadcasts/{broadcastId}/contacts`

## Request

- Base URL: `https://api.zavu.dev`
- URL: `https://api.zavu.dev/v1/broadcasts/{broadcastId}/contacts`
- Auth: HTTP bearer

List contacts in a broadcast with optional status filter.

## Path parameters

- `broadcastId` string, required

## Query parameters

- `status` 'pending' | 'queued' | 'sending' | 'sent' | 'delivered' | 'failed' | 'skipped': Status of a contact within a broadcast. - `pending`, `queued`, `sending`: not handed to the provider yet. - `sent`: accepted by the provider; delivery is not confirmed yet. Channels that never report delivery leave the recipient here. - `delivered`: the channel confirmed delivery to the device. A WhatsApp read receipt also counts as delivered. - `failed`: not delivered. A recipient can move from `sent` or `delivered` to `failed` when the provider reports a failure late. - `skipped`: not sent, because the recipient opted out of the channel or the broadcast was cancelled before reaching it.
- `limit` integer
- `cursor` string

## Response `200`

List of broadcast contacts.

- object
  - `items` BroadcastContact[], required
    - `id` string, required
    - `recipient` string, required
    - `recipientType` 'phone' | 'email', required
    - `status` 'pending' | 'queued' | 'sending' | 'sent' | 'delivered' | 'failed' | 'skipped', required: Status of a contact within a broadcast. - `pending`, `queued`, `sending`: not handed to the provider yet. - `sent`: accepted by the provider; delivery is not confirmed yet. Channels that never report delivery leave the recipient here. - `delivered`: the channel confirmed delivery to the device. A WhatsApp read receipt also counts as delivered. - `failed`: not delivered. A recipient can move from `sent` or `delivered` to `failed` when the provider reports a failure late. - `skipped`: not sent, because the recipient opted out of the channel or the broadcast was cancelled before reaching it.
    - `templateVariables` object
    - `templateButtonVariables` object
    - `templateHeaderVariables` object
    - `messageId` string: Associated message ID after processing.
    - `errorCode` string
    - `errorMessage` string
    - `cost` number, nullable
    - `processedAt` string, date-time
    - `createdAt` string, date-time, required
  - `nextCursor` string, nullable

## Other responses

- `400`: Invalid query parameters (`invalid_request`): an unknown `status`, `limit` outside 1-100, or a malformed `cursor`.
- `401`: Unauthorized.
- `404`: Broadcast not found.

## Changes

> 80 revisions in range; 1 not diffed.

- **2026-05-28** `fe72e5565564`: 1 info
  - added the optional property `items/items/templateHeaderVariables` to the response with the `200` status
- **2026-05-15** `3e45958691da`: 1 info
  - added the optional property `items/items/templateButtonVariables` to the response with the `200` status

[Operation history](https://skmtc.dev/zavudev/apis/zavu-unified-messaging-layer-api/changes/v1/broadcasts/:broadcastId/contacts/get.md)

---

[API](https://skmtc.dev/zavudev/apis/zavu-unified-messaging-layer-api.md) - [All operations](https://skmtc.dev/zavudev/apis/zavu-unified-messaging-layer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/zavudev/apis/zavu-unified-messaging-layer-api/revisions/75bc777b0ffb?raw)
