---
title: "List Realtime channels"
canonical: "https://bird.com/docs/api/reference/list-realtime-app-channels"
---

# List Realtime channels

`GET /v1/realtime/apps/{realtime_app_id}/channels`

Lists the app's currently occupied channels, optionally filtered by name prefix.

## Code samples

**TypeScript**

```ts
const { data } = await bird.realtime.channels.list("rap_01krdgeqcxet5s7t44vh8rt9mg", {
  prefix: "presence-",
  include: ["member_count"],
});
for (const channel of data) console.log(channel.name, channel.member_count);
```

Examples: [TypeScript](/docs/api/reference/list-realtime-app-channels.ts.md) · [Python](/docs/api/reference/list-realtime-app-channels.py.md) · [Go](/docs/api/reference/list-realtime-app-channels.go.md) · [PHP](/docs/api/reference/list-realtime-app-channels.php.md) · [cURL](/docs/api/reference/list-realtime-app-channels.curl.md)

## Example response `200`

```json
{
  "data": [
    {
      "name": "orders-42"
    }
  ]
}
```

## Path parameters

- `realtime_app_id` (string): ID of the Realtime app (`rap_` prefix), as returned when the app was created.

## Query parameters

- `prefix` (string): Only channels whose name starts with this prefix (for example, `presence-`).
- `include` (array): Per-channel attributes to include. Repeatable. Requesting `member_count` without a presence-channel `prefix`, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400).

## Response body

- `data` (array of object, required): The occupied channels, sorted by name.
- `data.member_count` (integer): Distinct members (presence channels only; requires `include=member_count`).
- `data.connection_count` (integer): Connections currently subscribed to this channel (requires `include=connection_count` and the app's connection-counting flag). Channel-scoped: distinct from the app-wide peak connections metric.
- `data.name` (string, required): A Realtime channel name. Only letters, digits, and _ - = @ , . ; Prefix with `private-` or `presence-` for authenticated channels, or `private-encrypted-` for channels whose payloads are end-to-end encrypted with a key only you hold.

## Related resources

- [Realtime](/realtime-api) (product)
- [Build your first integration](/learn/paths/integration) (course)
- [Send your first realtime event](/docs/get-started/send-your-first-realtime-event) (docs)

[Get an implementation brief](/learn/workspace?topic=realtime)
