# Get a Realtime channel

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

Returns a single channel's occupancy and optional counts. A channel appears when its first connection subscribes and disappears when its last connection leaves. An unknown or unused name returns `200 OK` with `occupied: false`.

## Code samples

**TypeScript**

```ts
const channel = await bird.realtime.channels.get("rap_01krdgeqcxet5s7t44vh8rt9mg", "presence-lobby", {
  include: ["member_count"],
});
console.log(channel.occupied, channel.member_count);
```

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

## Path parameters

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

## Query parameters

- `include` (array): Attributes to include. Repeatable. Requesting `member_count` for a non-presence channel, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400).

## Response body

- `member_count` (integer): Distinct members (presence channels only; requires `include=member_count`).
- `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.
- `occupied` (boolean, required): Whether at least one client is subscribed.

## 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)
