Skip to content

Stream Run Sse

GET /runs/{run_id}/stream

The same frames as the socket, one-way, over ordinary HTTP.

Authentication is the Authorization header — there is no handshake frame, because there is no frame to put one in. A Last-Event-ID header from a browser’s native reconnection is honoured as after_seq: that is what putting seq on the id: line buys, and it costs the client nothing.

?replay=false opens the stream live-only, from the run’s current high-water mark (D-629), for a client that is reading the journal itself and would otherwise be handed the same backlog twice. An explicit flag rather than a sentinel cursor, because Last-Event-ID already competes for after_seq: a client asking for “from now” as after_seq=-1 would silently get its whole backlog on the first browser reconnection.

NameInTypeNotes
run_idpathstring (uuid)required—
after_seqqueryintegeroptionalDefault 0. min 0
replayquerybooleanoptionalDefault true.
StatusDescriptionBody
200Successful Response—
422Validation ErrorHTTPValidationError
Terminal window
curl -X GET https://your-deployment.example.com/runs/{run_id}/stream \
-H "Authorization: Bearer $COBRE_TOKEN"