---
title: "Get execution details"
method: GET
path: "/api/v1/executions/{id}"
tags: ["Decision & Execution Replay"]
---

# Get execution details

`GET /api/v1/executions/{id}`

## Request

- Base URL: `https://orchestrator.getaxonflow.com`
- URL: `https://orchestrator.getaxonflow.com/api/v1/executions/{id}`
- Auth: none declared
- TypeScript: <https://skmtc.dev/getaxonflow/apis/axonflow-orchestrator-api/docs/api/v1/executions/:id/get.ts> (a function with typed inputs; its response is checked against the schema)

Get full execution details including summary and all steps.

## Path parameters

- `id` string, required

## Response `200`

Execution details

- Execution
  - `summary` ExecutionSummary
    - `request_id` string
    - `workflow_name` string
    - `status` 'pending' | 'running' | 'completed' | 'failed'
    - `total_steps` integer
    - `completed_steps` integer
    - `started_at` string, date-time
    - `completed_at` string, date-time
    - `duration_ms` integer
    - `total_tokens` integer
    - `total_cost_usd` number, double
    - `org_id` string
    - `tenant_id` string
    - `user_id` string
    - `error_message` string
    - `input_summary` string: Truncated, redacted summary of the workflow input — safe to display in audit listings without leaking PII or secrets. Full input is in the per-step ExecutionSnapshot records.
    - `output_summary` string: Truncated, redacted summary of the workflow's final output. Same redaction posture as `input_summary`.
  - `steps` ExecutionSnapshot[]
    - `request_id` string
    - `step_index` integer
    - `step_name` string
    - `status` 'pending' | 'running' | 'completed' | 'failed' | 'paused'
    - `started_at` string, date-time
    - `completed_at` string, date-time
    - `duration_ms` integer
    - `input` object
    - `output` object
    - `provider` string
    - `model` string
    - `tokens_in` integer
    - `tokens_out` integer
    - `cost_usd` number, double
    - `policies_checked` string[]
    - `policies_triggered` PolicyEvent[]
      - `policy_id` string
      - `policy_name` string
      - `action` 'block' | 'warn' | 'require_approval'
      - `matched` string
      - `resolution` string
    - `error_message` string
    - `retry_count` integer
    - `approval_required` boolean: True when this step gated on human approval. The pair `approved_at` + `approved_by` records when and by whom the approval was granted (or shows null on rejection).
    - `approved_at` string, date-time: When the approval-required gate was resolved. Pair with `approved_by` to compute approval latency at the step level.
    - `approved_by` string: User email of the approver. Empty when `approval_required` is false or the gate was auto-resolved.

## Other responses

- `404`: Execution not found

---

[API](https://skmtc.dev/getaxonflow/apis/axonflow-orchestrator-api.md) - [All operations](https://skmtc.dev/getaxonflow/apis/axonflow-orchestrator-api/llms.txt) - [OpenAPI document](https://skmtc.dev/getaxonflow/apis/axonflow-orchestrator-api/revisions/f408ef3ec9dd?raw)
