Subscribe to the live-state SSE stream for an app

Server-Sent Events stream of state-changed notifications. Each event id is <server-epoch>:<rev>; the browser EventSource replays via Last-Event-ID on reconnect, and the server emits a synthetic state-changed event with source: "reconnect-resync" and result: null whenever the client's id belongs to an older epoch or claims an unseen revision. The overcapacity event is emitted (and the stream closed) when the per-app subscriber cap is reached. Heartbeats are SSE comment lines (: ping) every 15s.

Auth posture is broader than the owner endpoints: appToken, userToken, renderToken (bearer or ?t= query), or the path-scoped buildy_sse_<id> HMAC cookie minted by the /app/{id} render-bridge when a render-token rendered the page. The {} (no-auth) option in security covers the cookie path — OpenAPI cannot model a per-app cookie name as a fixed scheme.

get/app/{id}/events

Request

  • Base URL: https://charm.ing
  • URL: https://charm.ing/app/{id}/events
  • Auth: one of:
    • HTTP bearer
    • HTTP bearer
    • HTTP bearer
    • API key in query parameter t
    • none

Query parameters

tstring

URL-signed render token, equivalent to the renderToken bearer but carried in the query string for SSE connections from null-origin iframes that cannot attach Authorization headers.

Headers

Last-Event-IDstring

Last event id the client saw, in the <epoch>:<rev> form the server emits. Triggers a synthetic reconnect-resync event when the epoch differs or the rev is forward-jumped.

Response

Open SSE stream. Frames arrive as event: state-changed (or event: overcapacity) with a JSON data: payload. The stream stays open until the client disconnects, the per-app capacity cap is hit, or the server shuts down.

Changes

No recorded changes to this operation across all 1 revision of this API.