Endpoints
A run read leaves out turns an edit replaced (Dead); they stay in the run’s events.
Replaying and following events
Ask for a run with Accept: text/event-stream and the response sends a run frame with the run and its turns, then every event the run recorded, then each new event as it is recorded, until you disconnect. Each recorded event carries an SSE id: to reconnect without gaps, send the last one you received as ?after= and the replay starts with the event after it. The id is opaque, so compare it but never parse or order it. Live model text (ticker.message) is never recorded and carries no id.
curl -N "https://api.momor.ai/workflow/runs/$RUN_ID" \
-H "Authorization: Bearer $MOMOR_API_KEY" \
-H "Accept: text/event-stream"id: …
event: tool.succeeded
data: {"event":"tool.succeeded","path":"pay/…","turnId":"…","executionId":null,"invocationId":"…","waitId":null,"createdAt":"2026-10-22T09:14:03Z","payload":{…}}path says where in the workflow the event happened, from the workflow down through containers and called workflows to the operation, in lowercase. Add ?events= once per event name to receive only those.
Events worth knowing
DELETE /workflow/runs/{runId}. An ephemeral run, with all its events, is deleted after 30 minutes without activity by default. See Runs and recovery.