A valid request URL is required to generate request examples{
"type": "store_update",
"tags": [
"Projects"
]
}WebSocket connection
Upgrades to a WebSocket connection for real-time updates. Server pushes log events, MCP log events, and store update notifications. Heartbeat pings are sent every 30 seconds.
Every message is an envelope with a type discriminator. Two carry
governance-project state:
store_updatenames the resources that changed, so a client holding a cached list can refetch it. A project create, edit, delete or member change sends{"type": "store_update", "tags": ["Projects"]}.redivision_progressreports an equal-split project recalculating every member’s share of every cap. Itsoperation_idmatches theredivision_job_idreturned by the project and member routes, and by a user deletion, so a client can follow the job it started.
The message shapes are documented as StoreUpdateMessage and
RedivisionProgressMessage; they arrive over the socket rather than as
an HTTP response body.
A valid request URL is required to generate request examples{
"type": "store_update",
"tags": [
"Projects"
]
}Authorizations
Management API authentication for /api/* endpoints. Use the Authorization header
with Bearer <token>, where <token> is one of:
- a Bifrost management API key,
- a dashboard session token issued by
POST /api/session/login, - base64 of
<admin-username>:<admin-password>(legacy equivalent ofBasicAuth).
Virtual keys (sk-bf-*) and the x-api-key header are not accepted on management APIs -
the sole exception is GET /api/governance/virtual-keys/quota, which is virtual-key-only.
Query Parameters
Single-use WebSocket ticket from POST /api/session/ws-ticket. Use this when an
Authorization header cannot be set (browser WebSocket clients).
Response
WebSocket upgrade successful
- Option 1
- Option 2
One of the server-pushed message envelopes. Listed here because the spec has nowhere else to describe a socket payload.
Was this page helpful?

