---
title: "List Executions"
method: GET
path: "/v1/deployments/{deployment_id}/executions"
tags: ["deployments"]
---

# List Executions

`GET /v1/deployments/{deployment_id}/executions`

## Request

- Base URL: `https://api.usekeel.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.usekeel.io/v1/deployments/{deployment_id}/executions`
- Auth: none declared

Unified evaluation-to-execution attempt history.

Rows retain their real durable identity. An evaluation or supersede command
appears before handoff without inventing an execution_run record; once a
command is linked to an execution_run, only the real run row remains.

## Path parameters

- `deployment_id` string, required

## Query parameters

- `limit` integer
- `expand_orders` boolean
- `execution_run_id` string, nullable: If set, return only the matching execution_run (still scoped to this deployment). Used by ExecutionsTab when expanding a row to fetch its orders without re-fetching the whole list.

## Headers

- `Authorization` string, nullable
- `X-Org-Id` string, nullable

## Response `200`

Successful Response

- EnhancedExecutionResponse[]
  - `attempt_id` string, required
  - `attempt_kind` 'signal' | 'supersede' | 'execution', required
  - `execution_run_id` string, nullable
  - `supersede_command_id` string, nullable
  - `signal_run_id` string, nullable
  - `signal_status` string, nullable
  - `signal_as_of_time` string, nullable
  - `signal_error_summary` string, nullable
  - `execution_status` string, required
  - `started_at` string, nullable
  - `ended_at` string, nullable
  - `activity_at` string, nullable
  - `error_summary` string, nullable
  - `weight_count` integer
  - `order_count` integer
  - `filled_count` integer
  - `rejected_count` integer
  - `skipped_count` integer
  - `realized_pnl` number, nullable
  - `avg_slippage_bps` number, nullable
  - `avg_slippage_lane` 'SESSION_ARRIVAL_LEDGER_PRICE_ONLY'
  - `slippage_measured_sessions` integer, nullable
  - `quality_episode_count` integer, nullable
  - `quality_sealed_receipt_count` integer, nullable
  - `quality_provisional_count` integer, nullable
  - `session_outcomes` object, nullable
  - `halt` ExecutionHaltResponse: This bar hit a safety halt (Q-0909). ``detail`` is rendered SERVER-SIDE, the same discipline as ``AccountWarning.detail``: the app banner, the ``keel`` CLI and an agent over MCP all repeat one sentence about one event rather than each writing their own. Until this field existed the halted bar surfaced as the raw ``error_summary`` — ``engine sessions terminal: exs_01m0wtkz1kng3f31p4cs8b76e1=HALTED:account_invariant_halt:572`` — an internal session id and an invariant number as the user-facing text. ``event_id`` is the durable ``strategy.execution_sessions .account_halt_event_id``; it is what an operator quotes to ``/internal/v1/execution-safety/{account_id}``.
    - `event_id` integer, required
    - `session_id` string, required
    - `terminal_reason` string, nullable
    - `session_count` integer, required
    - `detail` string, required
  - `signal_meta` object, nullable
  - `execution_notices` ExecutionNoticeResponse[]
    - `kind` 'planning_omission', required
    - `symbol` string, required
    - `status` 'omitted', required
    - `reason_code` 'market_unavailable' | 'market_unavailable_at_dispatch', required
    - `message` string, required
  - `orders` OrderResponse[], nullable
    - `order_id` string, required
    - `symbol` string, required
    - `side` string, required
    - `order_type` string, required
    - `quantity` number, required
    - `limit_price` number, nullable
    - `status` string, required
    - `venue_order_id` string, nullable
    - `submit_time` string, nullable
    - `reject_reason` string, nullable
    - `skip_notional` number, nullable
    - `skip_floor` number, nullable
  - `order_dispatch` 'pending', nullable
  - `quality_summary` ExecutionQualitySummary: Server-authored compact projection of provisional or sealed evidence. Decimal values remain canonical base-10 strings. In particular, this response model must never turn exact NUMERIC values back into binary floats for the existing execution timeline. A provisional projection has no receipt identity: immutable receipt IDs and versions begin only at sealing.
    - `receipt_id` string, nullable
    - `receipt_version` integer, nullable
    - `session_id` string, required
    - `intent_rev` integer, required
    - `state` 'PROVISIONAL' | 'SEALED' | 'CORRECTED' | 'INCOMPLETE' | 'PROJECTION_MISMATCH' | 'ZERO_ACTION', required
    - `corrected` boolean, required
    - `record_origin` 'NATIVE', required
    - `target_quantity` string, required
    - `filled_at_e_quantity` string, required
    - `filled_final_quantity` string, required
    - `residual_at_e_quantity` string, required
    - `vwap_at_e` string, nullable
    - `vwap_final` string, nullable
    - `duration_ms` integer, nullable
    - `terminal_reason` string, required
    - `outcome` string, required
    - `economics_state` 'SCORED' | 'UNSCORABLE' | 'NOT_APPLICABLE', required
    - `decision_mid` string, nullable
    - `arrival_mid` string, nullable
    - `decision_filled_price_cost_reporting` string, nullable
    - `decision_fee_reporting` string, nullable
    - `decision_residual_cost_reporting` string, nullable
    - `decision_all_in_shortfall_reporting` string, nullable
    - `arrival_filled_price_cost_reporting` string, nullable
    - `arrival_fee_reporting` string, nullable
    - `arrival_residual_cost_reporting` string, nullable
    - `arrival_all_in_shortfall_reporting` string, nullable
    - `decision_bps` string, nullable
    - `arrival_bps` string, nullable
    - `fee_native_at_e` ExecutionNativeFeeTotal[], required
      - `currency` string, required
      - `amount` string, required
    - `fee_reporting_at_e` string, nullable
    - `fee_components_at_e` ExecutionNativeFeeComponents[], required
      - `currency` string, required
      - `total` string, required
      - `builder` string, required
      - `venue` string, nullable
    - `missing_fee_components` string[], required
    - `completion_at_e` string, nullable
    - `final_completion` string, nullable
    - `reporting_asset_version_id` string, required
    - `metric_version` string, required
    - `completeness` 'COMPLETE' | 'INCOMPLETE' | 'BLOCKED', required
    - `missing_reasons` string[], required
    - `markout_favorable_1s_bps` string, nullable
    - `markout_favorable_5s_bps` string, nullable
    - `markout_favorable_30s_bps` string, nullable
    - `net_capture_30s_bps` string, nullable
    - `markout_completeness` 'COMPLETE' | 'PARTIAL' | 'MISSING' | 'NOT_APPLICABLE', nullable
    - `markout_source` string, nullable
    - `interval_twap_mid` string, nullable
    - `interval_vwap_mid` string, nullable
    - `interval_twap_bps` string, nullable
    - `interval_vwap_bps` string, nullable
    - `participation_of_volume` string, nullable
    - `interval_twap_required_seconds` string, nullable
    - `interval_twap_covered_seconds` string, nullable
    - `interval_twap_max_gap_ms` integer, nullable
    - `interval_twap_edge_covered_seconds` string, nullable
    - `interval_twap_lead_carry_age_ms` integer, nullable
    - `interval_twap_tail_carry_age_ms` integer, nullable
    - `interval_twap_update_count` integer, nullable
    - `interval_vwap_print_count` integer, nullable
    - `unfilled_opportunity_cost_reporting` string, nullable
    - `unfilled_reference_mid` string, nullable
    - `unfilled_reference_window_start` string, date-time, nullable
    - `unfilled_reference_window_end` string, date-time, nullable
    - `unfilled_reference_max_gap_ms` integer, nullable
    - `unfilled_horizon_at` string, date-time, nullable
    - `unfilled_horizon_kind` string, nullable
    - `unfilled_reference_missing_reason` string, nullable
    - `decision_all_in_shortfall_ruled_horizon_reporting` string, nullable
    - `decision_benchmark_source` string, nullable
    - `decision_benchmark_venue_age_ms` integer, nullable
    - `decision_benchmark_receive_age_ms` integer, nullable
    - `arrival_benchmark_source` string, nullable
    - `arrival_benchmark_venue_age_ms` integer, nullable
    - `arrival_benchmark_receive_age_ms` integer, nullable
    - `end_benchmark_source` string, nullable
    - `end_benchmark_venue_age_ms` integer, nullable
    - `end_benchmark_receive_age_ms` integer, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/usekeel/apis/keel-api.md) · [All operations](https://skmtc.dev/usekeel/apis/keel-api/llms.txt) · [OpenAPI document](https://skmtc.dev/usekeel/apis/keel-api/revisions/3191ca10b0ab?raw)
