Server-sent events for the armed listener
workflow:readA long-lived text/event-stream carrying what the armed listener catches. Open it BEFORE or right after calling POST /api/workflows/{id}/listen — it replays nothing, so an event delivered before you connect is missed.
Wire format: standard SSE. The first frame is event: connected with {"runId":"<workflow id>"} (the channel is keyed by workflow id here, despite the field name). Subsequent frames are unnamed data: lines carrying a JSON object with a type field; the one this endpoint exists for is type: "test_event_captured", with runId (the run that was created) and triggerData (the exact captured payload — method, headers, query, body). Keep-alive comment frames arrive periodically.
This is a stream, not a JSON endpoint: it does not use the {"data": …} envelope. Errors before the stream opens do.
Authorization
bearerAuth An API token: Authorization: Bearer grt_…. Mint one in the app under Settings → Workspace → API tokens; the raw value is shown once. Scopes confine the token — see x-permission on each operation.
In: header
Path Parameters
Workflow id (UUID).
uuidResponse Body
text/event-stream
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/api/workflows/497f6eca-6276-4993-bfeb-53cbbbba6f08/listen-stream""string"