# Channels API

> List the channels an API token can reach with the Broadcast API. An admin token gets every channel and picks one with broadcast_channel_id; a channel token gets its own channel.

Source: https://sendbroadcast.net/docs/api-channels

The Channels API lists the channels an API token can reach. Use it to find the `broadcast_channel_id` that an admin API token sends with each channel request. The `broadcast` CLI uses it for `broadcast channels` and `--channel` (see [Agents CLI](https://sendbroadcast.net/docs/agents-cli)).

## Required Permissions

None. Any valid channel token or admin API token can call it. A plugin developer token is refused (`403`). See [API Authentication](https://sendbroadcast.net/docs/api-authentication).

An admin API token does not send `broadcast_channel_id` here: the answer is the list of channels.

## List Channels

```
GET /api/v1/channels
```

```bash
curl https://your-broadcast-domain.com/api/v1/channels \
  -H "Authorization: Bearer YOUR_API_TOKEN"
```

With an admin API token, the answer has every channel, sorted by name:

```json
{
  "token_type": "admin_cross_channel",
  "channels": [
    { "id": 3, "name": "Newsletter", "slug": "newsletter", "active": true },
    { "id": 7, "name": "Product Updates", "slug": "product-updates", "active": true }
  ]
}
```

With a channel token, the answer has only the token's channel:

```json
{
  "token_type": "channel_scoped",
  "channels": [
    { "id": 3, "name": "Newsletter", "slug": "newsletter", "active": true }
  ]
}
```

| Field | Meaning |
|---|---|
| `token_type` | `admin_cross_channel` for an admin API token, `channel_scoped` for a channel token |
| `channels[].id` | The value for `broadcast_channel_id` |
| `channels[].name` | The channel name |
| `channels[].slug` | The channel slug, as in the channel's dashboard address |
| `channels[].active` | `false` for a channel that is turned off |

| Status | Meaning |
|---|---|
| `200` | The list |
| `401` | No token, or the token is not valid |
| `403` | A plugin developer token |

The endpoint is also in the API's own discovery: `GET /api/v1/prime` lists it for every token, and the MCP server has it as the tool `channels_index` (see [MCP Server](https://sendbroadcast.net/docs/agents-mcp)).
