GoRunner

Server-sent events for the armed listener

Requires scope workflow:read
GET
/api/workflows/{id}/listen-stream

A 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
AuthorizationBearer <token>

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

id*string

Workflow id (UUID).

Formatuuid

Response 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"