Whereby · AsyncAPI Specification
Review
Version
View Spec
View on GitHub
VideoCommunicationsReal-TimeWebRTCEmbeddedMeetingsCollaborationAsyncAPIWebhooksEvents
AsyncAPI Specification
aid: whereby:asyncapi-review
name: Whereby AsyncAPI Review
kind: review
date: '2026-05-29'
reviewer: API Evangelist
subject: Whereby public WebSocket / event-driven API surface
verdict: no-public-websocket-api
summary: >-
Whereby does not expose a documented, public WebSocket endpoint that
developers can connect to directly. Its event-driven surface is delivered
exclusively through (1) HTTP webhooks (server-to-server POST callbacks signed
with the Whereby-Signature header) and (2) SDK-side event handlers (Web
Component, Browser SDK / React, Core SDK, Assistant SDK, Android SDK, iOS
SDK, React Native, Flutter) that abstract an internal signaling and WebRTC
transport developers are not expected to address directly. Because there is
no documented wss:// endpoint, no documented WebSocket message schema, and no
documented WebSocket auth / subprotocol contract, an AsyncAPI 2.6 spec that
faithfully describes a Whereby-hosted channel cannot be produced without
fabrication. An AsyncAPI 2.6 spec was therefore NOT generated.
findings:
- id: webhooks-only
label: Realtime delivery is HTTP webhooks
detail: >-
Whereby delivers room and session lifecycle events as HTTP POST callbacks
to a developer-provided URL, not over a WebSocket channel. Deliveries
carry a Whereby-Signature header of the form
"t=<timestamp>,v1=<signature>" where the signature is an HMAC-SHA256 of
"<timestamp>.<raw JSON body>" computed with the endpoint's signing
secret. This is a request/response webhook contract, better described by
an OpenAPI callback or AsyncAPI HTTP binding, not a WebSocket binding.
documented_events:
- room.client.joined
- room.client.left
- room.client.knocked
- room.client.knockCancelled
- room.session.started
- room.session.ended
- transcription.started
- transcription.finished
- transcription.failed
- recording.finished
- assistant.requested
- id: sdk-event-handlers
label: Client realtime events are SDK-only
detail: >-
The Whereby Web Component, Browser SDK (React), Core SDK, Assistant SDK,
and native Android / iOS / React Native / Flutter SDKs surface room
lifecycle and participant events through SDK callbacks and React hooks
(for example RoomConnectionClient state in the Core SDK). The SDKs
negotiate the underlying session with Whereby's signaling and media
infrastructure on the developer's behalf. The transport is not specified
as a public WebSocket interface and is not documented with a connectable
URL or message schema.
- id: webrtc-transport
label: Media/signaling transport is WebRTC, not a public WS API
detail: >-
Whereby Embedded is built on WebRTC over Whereby's global mesh network.
Customers are expected to integrate via the Web Component, Browser SDK,
Core SDK, or native mobile SDKs, or to embed a meeting URL via iframe.
No wss:// endpoint is published for external clients to drive signaling
directly.
- id: rtmp-not-ws
label: Live streaming is RTMP, not WebSocket
detail: >-
The "Live Streaming" feature lets a room broadcast to an external RTMP
destination. RTMP is not a WebSocket-based transport and is not a public
Whereby-hosted WS endpoint that customers connect to.
pages_checked:
- url: https://docs.whereby.com/
result: Landing page describes Web Component, Browser SDK (React), Core SDK,
Android SDK, iOS SDK. No public WebSocket endpoint mentioned.
- url: https://docs.whereby.com/sitemap.md
result: Full sitemap covers Getting Started, Browser, Mobile, Integrations,
Product Features, Telehealth, API References (REST, Core SDK, Assistant
SDK, React SDK, React Native, Camera Effects), and Resources. No
WebSocket, AsyncAPI, or wss:// references.
- url: https://docs.whereby.com/llms.txt
result: No mention of public WebSocket, wss://, AsyncAPI, or socket.io.
Distinguishes webhooks (user-defined callbacks) from SDK-internal
signaling that is abstracted away from direct WebSocket access.
- url: https://docs.whereby.com/llms-full.txt
result: Full documentation export. Zero matches for "websocket", "wss://",
"asyncapi", or "socket.io" as customer-facing endpoint contracts.
- url: https://docs.whereby.com/whereby-product-features/insights-suite-and-api/webhooks
result: Confirms event delivery is HTTP POST webhooks with Whereby-Signature
HMAC-SHA256 verification. 11 documented event types across room client,
session, transcription, recording, and assistant categories.
- url: https://docs.whereby.com/reference/whereby-rest-api-reference
result: REST API at https://api.whereby.dev/v1 for meetings, rooms,
recordings, transcriptions, summaries, and insights. No WebSocket
endpoints.
recommendation: >-
Document Whereby's event-driven surface as an OpenAPI callbacks spec
(webhook receiver contract) rather than AsyncAPI. If Whereby later publishes
a public wss:// endpoint (for example for live transcription streaming, chat,
or signaling), revisit and produce an AsyncAPI 2.6 spec at that time.
artifacts_produced:
spec: null
review: asyncapi/review.yml