Realtime · WS
Live traffic, the instant it happens
Subscribe to the same realtime streams that power the dashboard feed — captured requests, device + settings changes, and control events — over Supabase Realtime. No polling.
import { createClient } from "@supabase/supabase-js";
const supabase = createClient("https://api.busymate.net", PUBLISHABLE_KEY, {
global: { headers: { Authorization: `Bearer ${oauthToken}` } },
});
supabase
.channel("ws:<workspace_id>")
.on("broadcast", { event: "entry" }, ({ payload }) => {
console.log("new request", payload.method, payload.url, payload.status);
})
.subscribe();Why Realtime
Build on the live feed
The dashboard is push-driven end to end. The same channels are open to your own code — react to traffic and state the moment it changes.
The entries firehose
Every captured request/response is broadcast on your workspace channel (ws:<workspace_id>) the instant it lands — the dashboard feed is just a subscriber, and so can your app be.
Table-level changes
Subscribe to postgres_changes for devices, settings, service groups, and tags to react to fan-out the moment it happens — no diffing, no refetch loops.
One token, every channel
Authenticate Realtime with the same OAuth token as REST and MCP; channels are RLS-scoped to your role, so you only ever receive what you're allowed to see.
Wire up the live stream
See the Realtime channels and payload shapes in the docs, then subscribe from your app or the in-dashboard WS explorer.