executionId that the start call returns. These endpoints observe a run, end it, restart it, and manage the queue that decides when runs begin. Pause, resume and per-node controls are on the Control page, and live updates are on the Streams page.
Responses use the envelope, except the results read, which returns its object directly. For an unknown execution, or one that belongs to another session, every call answers
404. The older /api/workflow/... paths for these calls are listed under deprecated aliases.
Search runs
GET /api/executions
Finds runs across all sessions, or in one session, newest first.
Response
data: an array of hits.
The search reads each session’s history, which keeps the newest
yukta.execution-log.retained-runs runs (default 500).
Get the status of a run
GET /api/executions/{executionId}
Returns a snapshot of the run: its status and a status for every node.
Response data
GET /api/executions/{executionId} resolves a run from the execution index, which keeps a finished run for 10 minutes (yukta.tracker.cleanup-ttl). To read an older run that is still in its session’s history, use the deprecated alias GET /api/workflow/{sessionId}/status/{executionId}.
Read the result of a run
GET /api/sessions/{sessionId}/executions/{executionId}/results
Returns what the terminal nodes of the run have received so far. Use it when you want the outcome of a run without holding a stream open. To follow a run live, use the results stream.
This endpoint returns the object below directly, without the envelope.
Each event has a
kind: RESULT when a message reached a terminal node (with the message in payload), NODE_END when a terminal node finished, and EXECUTION_END as the last event. It also carries nodeId (absent on EXECUTION_END), sequence (position in the run’s stream from 0), status (on the end events), truncated (on the end events) and timestamp.
Results are kept per run for yukta.results.retention (default 1h), up to yukta.results.retained-events events per run (default 1000) and yukta.results.max-executions runs (default 200).
List pending approvals
GET /api/sessions/{sessionId}/approvals
Lists the nodes of the session that wait for a signal right now, such as an approval step, oldest first. Answer one with the signal endpoint of its run. See Approvals and signals.
Response data: an array of waits.
Stop a run
POST /api/executions/{executionId}/stop
Stops one run. To stop every active run of a workflow, use POST /api/workflow/{sessionId}/{workflowId}/stop.
Response data: executionId of the stopped run.
Restart a run
POST /api/executions/{executionId}/restart
Stops the run if it is still active and starts the workflow again with the original trigger payload. The new run gets a new id.
Response data: executionId of the new run.
Restart from a node
POST /api/executions/{executionId}/restart/{fromNodeId}
Starts a new run from one node. The nodes before it replay their last recorded output; the node and everything behind it run again. The response is the same as for a full restart.
Errors:
404 if the run is unknown or no longer restartable. 400 if the node is not in the workflow, or if the run is still active and a node before the chosen one has not finished. To restart from a node that failed, you can also use the retry endpoint.
Recover an aborted run
POST /api/executions/{executionId}/recover
Continues a run that a server restart aborted, as a new run. Nodes that finished are replayed from their recorded output and the rest run again. It needs the execution log and checkpoints to be kept on disk; see Checkpoints and resume.
Response data: executionId of the new run.
Errors: 409 if the run was not aborted, was already recovered, has no recorded start payload, its workflow changed since it started, or every node had already finished. 404 if the run or its workflow no longer exists.
Change the priority of a queued run
POST /api/executions/{executionId}/priority?priority={n}
Changes the priority of a run that waits for an execution slot. Higher values are admitted first; the run moves behind the queued runs of equal or higher priority.
Response
data: executionId.
Errors: 400 unless the run is waiting for a slot.
Change the execution limits
POST /api/scheduler/limits?maxConcurrent={n}&maxPerWorkflow={n}
Changes how many runs may execute at once on the running server. Raising a limit admits waiting starts immediately. Lowering it lets running runs finish and holds new starts back. The yukta.execution.* settings themselves are not changed. See Admission and limits.
Response
data: maxConcurrent and maxPerWorkflow as set. A supervisor that refuses the command makes the call answer 403.