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

# List All Broadcasts — ChatbotX REST API Reference

> Use GET /api/v1/broadcasts to list all broadcasts in your ChatbotX workspace, including scheduling details and contact reach counts.

Broadcasts let you send one-time messages to a targeted segment of your contacts across any connected channel. Use this endpoint to list all broadcasts in your workspace. Each broadcast record includes its name, scheduling information, associated flow, and the total number of contacts targeted.

<Info>
  **GET** `/api/v1/broadcasts`
</Info>

## Query Parameters

<ParamField query="page" type="integer">
  The page number to retrieve. Must be `1` or greater. Defaults to `1`.
</ParamField>

<ParamField query="perPage" type="integer">
  Number of broadcasts to return per page. Must be `1` or greater.
</ParamField>

## Code Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl --request GET \
    --url 'https://app.chatbotx.io/api/v1/broadcasts?page=1&perPage=20' \
    --header 'Authorization: Bearer <token>'
  ```

  ```python Python theme={null}
  import requests

  url = "https://app.chatbotx.io/api/v1/broadcasts"

  params = {"page": 1, "perPage": 20}
  headers = {"Authorization": "Bearer <token>"}

  response = requests.get(url, params=params, headers=headers)
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const options = {
    method: 'GET',
    headers: { Authorization: 'Bearer <token>' }
  };

  fetch('https://app.chatbotx.io/api/v1/broadcasts?page=1&perPage=20', options)
    .then(res => res.json())
    .then(res => console.log(res))
    .catch(err => console.error(err));
  ```
</CodeGroup>

## Response

Returns `200 OK` with a `data` array of broadcast objects.

### Response Fields

<ResponseField name="data" type="array" required>
  Array of broadcast objects.

  <Expandable title="data item fields">
    <ResponseField name="id" type="string" required>
      Unique identifier for the broadcast.
    </ResponseField>

    <ResponseField name="name" type="string" required>
      Display name of the broadcast.
    </ResponseField>

    <ResponseField name="schedulesAt" type="string" required>
      ISO 8601 timestamp indicating when the broadcast is scheduled to send.
    </ResponseField>

    <ResponseField name="contactCount" type="integer | null" required>
      The number of contacts targeted by this broadcast.
    </ResponseField>

    <ResponseField name="flowId" type="string | null">
      The ID of the flow associated with this broadcast, or `null` if no flow is linked.
    </ResponseField>

    <ResponseField name="status" type="string">
      The current status of the broadcast. One of `scheduled`, `sending`, or `sent`.
    </ResponseField>
  </Expandable>
</ResponseField>

### Example Response

```json theme={null}
{
  "data": [
    {
      "id": "brd_001",
      "name": "Black Friday Sale",
      "schedulesAt": "2024-11-29T08:00:00Z",
      "contactCount": 5240,
      "flowId": "301",
      "status": "scheduled"
    },
    {
      "id": "brd_002",
      "name": "Product Update Announcement",
      "schedulesAt": "2024-10-15T10:00:00Z",
      "contactCount": 12800,
      "flowId": null,
      "status": "sent"
    }
  ]
}
```
