---
title: "Update a Realtime app"
method: PATCH
path: "/v1/realtime/apps/{realtime_app_id}"
tags: ["realtime-apps"]
---

# Update a Realtime app

`PATCH /v1/realtime/apps/{realtime_app_id}`

## Request

- Base URL: `https://us1.platform.bird.com`
- URL: `https://us1.platform.bird.com/v1/realtime/apps/{realtime_app_id}`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `bird_session`

Updates a Realtime app's name and configuration flags. Region is immutable; TLS is always enforced. Omitted fields are left unchanged.

## Headers

- `Idempotency-Key` string
- `X-Workspace-Id` string
- `X-Organization-Id` string

## Request body

- RealtimeAppUpdate: Mutable Realtime app fields. Omitted fields are left unchanged. Region is immutable and TLS is always enforced, so neither appears here.
  - `name` string: A label for the app, shown wherever it is listed.
  - `client_events` boolean: Allow clients to trigger events directly (client events).
  - `connection_counting` boolean: Count the connections subscribed to each channel and expose the count on channel queries.
  - `connection_count_events` boolean: Broadcast connection-count events to public and private channel subscribers. Requires `connection_counting`. Presence channels do not emit these events; use a channel query to read their connection count.
  - `watchlist_events` boolean: Tell a signed-in member when the members on their watchlist come online or go offline. The watchlist is part of the identity your backend signs at signin.
  - `authorized_connections` boolean: Require every connection to be authorized.

## Response `200`

The updated Realtime app.

- RealtimeApp
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `client_events` boolean, required: Allow clients to trigger events directly (client events).
  - `connection_counting` boolean, required: Count the connections subscribed to each channel and expose the count on channel queries.
  - `connection_count_events` boolean, required: Broadcast connection-count events to public and private channel subscribers. Requires `connection_counting`. Presence channels do not emit these events; use a channel query to read their connection count.
  - `watchlist_events` boolean, required: Tell a signed-in member when the members on their watchlist come online or go offline. The watchlist is part of the identity your backend signs at signin.
  - `authorized_connections` boolean, required: Require every connection to be authorized.
  - `id` string, required
  - `app_id` integer, required: The numeric Realtime app id. Use it together with a key and secret to initialize a Realtime client/server SDK. Immutable.
  - `name` string, required: A label for the app, shown wherever it is listed.
  - `region` 'us1' | 'eu1', required: Deployment region identifier.
  - `status` 'active' | 'suspended', required: Lifecycle state of the app. `active` apps serve connections; `suspended` apps are provisioned but reject connections.

## Other responses

- `400`: Bad request
- `401`: Authentication required
- `403`: Insufficient permissions
- `404`: Resource not found
- `422`: The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.
- `429`: Rate limit exceeded
- `500`: Internal server error
- `503`: The service is temporarily unavailable. If `Retry-After` is present, wait for that delay before retrying; otherwise, retry with exponential backoff. Reuse the same idempotency key and request when retrying a mutation.

---

[API](https://skmtc.dev/messagebird/apis/bird-api.md) · [All operations](https://skmtc.dev/messagebird/apis/bird-api/llms.txt) · [OpenAPI document](https://skmtc.dev/messagebird/apis/bird-api/revisions/3e2a50466454?raw)
