Publish a Realtime event
POST
/v1/realtime/apps/{realtime_app_id}/events
const result = await bird.realtime.publish("rap_01krdgeqcxet5s7t44vh8rt9mg", {
event: "order.updated",
channels: ["orders", "presence-lobby"],
data: { order_id: "ord_123", status: "shipped" },
});
console.log(result.data?.length); // one entry per channelresult = client.realtime.publish(
"rap_01krdgeqcxet5s7t44vh8rt9mg",
event="order.updated",
channels=["orders", "presence-lobby"],
data={"order_id": "ord_123", "status": "shipped"},
)
print(result.data)result, err := client.Realtime.Publish(context.Background(), "rap_123", bird.RealtimePublishParams{
Event: "order.created",
Channels: []string{"orders", "presence-lobby"},
Data: map[string]any{"order_id": "ord_1", "total": 4200},
})
if err != nil {
log.Fatal(err)
}
fmt.Println(result.Data)$result = $bird->realtime->publish($appId, (new RealtimePublish())
->setEvent('message.created')
->setChannels(['room-42'])
->setData(['text' => 'Hello, room!']));
echo count($result->getData() ?? []), ' channel(s)';curl -X POST "https://us1.platform.bird.com/v1/realtime/apps/{realtime_app_id}/events" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"event": "order-updated",
"channels": [
"orders",
"orders-42"
],
"exclude_connection_id": "123.4567",
"include": [
"member_count"
]
}'Publishes an event to one or more channels of a Realtime app. Listing several channels broadcasts the event to all of them in one call. Connected clients subscribed to those channels receive it in real time.
Anfrage-Nutzlast
event
string
erforderlich
The event name clients bind to. Application event names are free-form; the bird: and bird_internal: prefixes are reserved for the protocol and rejected.
channels
array of string
erforderlich
The channels to deliver the event to (up to 100 per call). Prefix with private- or presence- for authenticated channels.
data
Arbitrary JSON payload delivered as the event data — an object, array, or scalar. Cap: 10 KB serialized.
exclude_connection_id
string
Exclude this connection from delivery, to avoid echoing a change back to the client that triggered it. The value is the client's connection id, assigned when its connection is established.
include
array of string
Per-channel attributes to return alongside the publish, reflecting each channel's state at publish time (same semantics and validation errors as on the channel endpoints: member_count is presence-channels only, connection_count requires the app's connection-counting flag). Requesting attributes counts as one additional message toward usage.
Antwort-Payload
data
array of object
Per-channel attributes at publish time, present only when the request asked for them via include; one item per distinct target channel, sorted by name.
Untergeordnete Attribute anzeigen
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
erforderlich
A Realtime channel name. Only letters, digits, and _ - = @ , . ; Prefix with private- or presence- for authenticated channels.