Skip to main content

Executions

Executions are individual runs of a workflow. Use this resource to inspect run status, per-node spans, logs, and progress, and to pause, resume, or cancel a run.

Access it as client.executions on a Strongly client, or the same path on AsyncStrongly with await. All methods exist on both with identical signatures.

Quick start

from strongly import Strongly

client = Strongly()

# List (auto-paginates as you iterate) # filters: workflow_id, status, since, until, trigger_type
for execution in client.executions.list():
print(execution.id)

# Retrieve one by id
item = client.executions.retrieve("<id>")

Methods

Core

list

list(*, workflow_id: Optional[str] = None, status: Optional[str] = None, since: Optional[str] = None, until: Optional[str] = None, trigger_type: Optional[str] = None, limit: Optional[int] = None) -> SyncPaginator[Execution]

List workflow executions with pagination and filtering.

Args: workflow_id: Filter by parent workflow ID. status: Filter by execution status (e.g. "running", "completed", "failed"). since: ISO timestamp; only return executions created after this time. until: ISO timestamp; only return executions created before this time. trigger_type: Filter by trigger type (e.g. "manual", "api", "schedule"). limit: Maximum number of items to return (default: all matching items).

retrieve

retrieve(execution_id: str) -> Execution

Get a single execution with full details.

Lifecycle & actions

stop

stop(execution_id: str) -> Dict[str, Any]

Stop a running execution.

resume

resume(execution_id: str, *, trigger_data: Optional[Dict[str, Any]] = None) -> Dict[str, Any]

Resume a failed or paused execution.

Args: execution_id: The execution ID. trigger_data: Optional data to pass when resuming.

Other

logs

logs(execution_id: str, *, level: Optional[str] = None, limit: Optional[int] = None) -> List[ExecutionLog]

Get logs for an execution.

Args: execution_id: The execution ID. level: Optional log level filter (e.g. "error", "info"). limit: Maximum number of log entries (default 100, max 1000).

pending_inputs

pending_inputs(execution_id: str) -> List[Dict[str, Any]]

Discover pending input requests for a waiting execution.

Returns the list of inputs the execution is waiting for, including the request_id needed to call submit_input.

Args: execution_id: The execution ID.

Returns: List of pending input descriptors, each containing at minimum request_id, type, and prompt fields.

progress

progress(execution_id: str) -> ExecutionProgress

Get execution progress summary.

spans

spans(execution_id: str, *, node_id: Optional[str] = None) -> List[ExecutionSpan]

List spans (node-level trace records) for an execution.

Args: execution_id: The execution ID. node_id: Optional filter by specific node ID.

submit_input

submit_input(execution_id: str, *, request_id: str, data: Any, respondent: Optional[str] = None) -> Dict[str, Any]

Submit external input to a waiting workflow execution.

Used with the wait-for-input node: when a workflow pauses at that node, call this method to deliver the required data so the workflow can continue.

Args: execution_id: The execution ID (must be in "waiting" status). request_id: The input request ID generated by the wait-for-input node. data: The input data to deliver to the workflow. respondent: Optional identifier for who is providing the input.