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

# Export execution

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

## Request

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

Export full execution record for compliance and auditing.
Returns a downloadable JSON file.

## Path parameters

- `id` string, required

## Query parameters

- `format` string
- `include_input` boolean
- `include_output` boolean
- `include_policies` boolean

## Response `200`

Execution export

- ExecutionExport
  - `exported_at` string, date-time
  - `format` string
  - `execution` 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)
