realtime-apps

Update a Realtime app

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

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

Headers

Idempotency-Keystring

Client-supplied key. On operations supporting request deduplication, a retained response is replayed for duplicate requests with the same key within the idempotency window (3 hours by default). This protection requires a workspace, organization, or staff-account scope. User-only and unscoped unauthenticated operations, streams, and operations with a separate replay contract do not use this response replay.

On a supported operation, if idempotency protection is unavailable before execution, the API returns 503 IdempotencyUnavailable (E01033) without executing this attempt. Retry with backoff using the same key and request. An operation that takes effect before its response is retained can still execute again on retry.

Two distinct 409 errors signal misuse:

  • request_in_progress (E01004): The same key is currently being processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.
  • idempotency_key_reuse (E01005): The same key has already completed against a different request body or method. Generate a new key.

Recommended key format is <event-type>/<entity-id> (for example welcome-user/usr_abc123).

X-Workspace-Idstring

Workspace context for the request. Required for dashboard authentication and master keys. Workspace keys and access tokens already identify their workspace; send that workspace or omit the header. A different one is rejected.

X-Organization-Idstring

Organization context for the request. Required for dashboard authentication. An API key or access token carries its own organization, so send either that organization or no header at all; a different one is rejected.

Request body

namestring

A label for the app, shown wherever it is listed.

client_eventsboolean

Allow clients to trigger events directly (client events).

connection_countingboolean

Count the connections subscribed to each channel and expose the count on channel queries.

connection_count_eventsboolean

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_eventsboolean

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_connectionsboolean

Require every connection to be authorized.

Example request

{
  "name": "chat-production",
  "connection_counting": true
}

Response

The updated Realtime app.

created_atstring date-time required
updated_atstring date-time required
client_eventsboolean required

Allow clients to trigger events directly (client events).

connection_countingboolean required

Count the connections subscribed to each channel and expose the count on channel queries.

connection_count_eventsboolean 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_eventsboolean 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_connectionsboolean required

Require every connection to be authorized.

idstring required
app_idinteger required

The numeric Realtime app id. Use it together with a key and secret to initialize a Realtime client/server SDK. Immutable.

namestring 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.

Example response

{
  "created_at": "2026-05-20T09:14:52Z",
  "updated_at": "2026-05-25T16:42:01Z",
  "id": "rap_01krdgeqcxet5s7t44vh8rt9mg",
  "app_id": 432557,
  "name": "chat-production",
  "region": "us1"
}

Changes

No recorded changes to this operation across all 2 revisions of this API.