Skip to main content

Realtime runs

POST /v1/realtime/runs returns text/event-stream. Use it when your product needs live assistant output, tool progress, artifacts, and a terminal event.

Event format

Each event uses standard Server-Sent Events framing:
Parse the event name first, then parse the JSON data payload for that event.

Events

run.created includes the resolved model for the run:

Terminal events

Realtime runs end with either run.completed or run.failed.
If a failure happens after stream headers have been sent, the API reports it as a terminal stream event instead of a normal JSON error response.

Client notes

  • Reconnect behavior is your responsibility. If the stream disconnects, fetch the run with GET /v1/runs/{run_id} when you have a run ID.
  • Realtime runs do not support webhook_url; the terminal result is delivered through the stream.
  • Keep rendering tolerant of new event fields. Event payloads may gain additional fields over time.