---
title: "Get Strategy Experiments Lifecycle"
method: GET
path: "/v1/strategies/{strategy_id}/experiments/lifecycle"
tags: ["strategies"]
---

# Get Strategy Experiments Lifecycle

`GET /v1/strategies/{strategy_id}/experiments/lifecycle`

## 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/strategies/{strategy_id}/experiments/lifecycle`
- Auth: none declared

Experiments for a strategy, grouped by lifecycle position.

Backs the strategy-info side-panel "Experiments" section. Returns:
- `active`: at most one — the currently-selected or running experiment.
- `backlog`: queued/proposed experiments not yet selected.
- `completed`: terminal states (accepted, rejected, inconclusive,
  completed, archived, stale). Most recently decided first.

Each entry includes the latest trial summary so the frontend can render
a consolidated "completed experiment" card without a second round trip.

## Path parameters

- `strategy_id` string, required

## Headers

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

## Response `200`

Successful Response

- StrategyExperimentLifecycleResponse: Experiments for one strategy, grouped by lifecycle position. - `active`: at most one — the currently-selected or running experiment. - `backlog`: queued and proposed experiments not yet selected. - `completed`: terminal states (accepted, rejected, inconclusive, completed, archived, stale). Returned newest decision first. Each group entry includes the experiment row plus its latest trial so the UI can show outcome / metrics without a second round trip.
  - `active` ExperimentWithTrial: Experiment row enriched with its latest trial summary. Used by the lifecycle endpoint so the frontend can render one consolidated card per experiment without needing per-row trial fetches.
    - `experiment_id` string, required
    - `org_id` string, nullable
    - `strategy_id` string, required
    - `name` string, required
    - `description` string, nullable
    - `status` string, required
    - `base_commit_id` string, nullable
    - `objective_metric` string, nullable
    - `kind` string
    - `experiment_type` string, nullable
    - `hypothesis` string, nullable
    - `proposed_change` string, nullable
    - `expected_tradeoff` string, nullable
    - `success_criteria` string, nullable
    - `priority_rank` integer, nullable
    - `source_hash_at_proposal` string, nullable
    - `control_backtest_id` string, nullable
    - `control_artifact_id` string, nullable
    - `created_by_run_id` string, nullable
    - `selected_at` string, nullable
    - `decided_at` string, nullable
    - `decision` string, nullable
    - `decision_rationale` string, nullable
    - `archived_reason` string, nullable
    - `meta` object, nullable
    - `created_at` string, required
    - `updated_at` string, nullable
    - `latest_trial` ExperimentTrialResponse
      - `trial_id` string, required
      - `org_id` string, required
      - `strategy_id` string, required
      - `experiment_id` string, required
      - `trial_kind` string, required
      - `status` string, required
      - `created_by_run_id` string, nullable
      - `experiment_plan_artifact_id` string, nullable
      - `diff_artifact_id` string, nullable
      - `control_commit_id` string, nullable
      - `candidate_commit_id` string, nullable
      - `control_backtest_id` string, nullable
      - `candidate_backtest_id` string, nullable
      - `source_hash_before` string, nullable
      - `source_hash_after` string, nullable
      - `metrics_delta` object
      - `result_summary` string, nullable
      - `decision` string, nullable
      - `decision_rationale` string, nullable
      - `created_at` string, required
      - `updated_at` string, required
  - `backlog` ExperimentWithTrial[]
    - `experiment_id` string, required
    - `org_id` string, nullable
    - `strategy_id` string, required
    - `name` string, required
    - `description` string, nullable
    - `status` string, required
    - `base_commit_id` string, nullable
    - `objective_metric` string, nullable
    - `kind` string
    - `experiment_type` string, nullable
    - `hypothesis` string, nullable
    - `proposed_change` string, nullable
    - `expected_tradeoff` string, nullable
    - `success_criteria` string, nullable
    - `priority_rank` integer, nullable
    - `source_hash_at_proposal` string, nullable
    - `control_backtest_id` string, nullable
    - `control_artifact_id` string, nullable
    - `created_by_run_id` string, nullable
    - `selected_at` string, nullable
    - `decided_at` string, nullable
    - `decision` string, nullable
    - `decision_rationale` string, nullable
    - `archived_reason` string, nullable
    - `meta` object, nullable
    - `created_at` string, required
    - `updated_at` string, nullable
    - `latest_trial` ExperimentTrialResponse
      - `trial_id` string, required
      - `org_id` string, required
      - `strategy_id` string, required
      - `experiment_id` string, required
      - `trial_kind` string, required
      - `status` string, required
      - `created_by_run_id` string, nullable
      - `experiment_plan_artifact_id` string, nullable
      - `diff_artifact_id` string, nullable
      - `control_commit_id` string, nullable
      - `candidate_commit_id` string, nullable
      - `control_backtest_id` string, nullable
      - `candidate_backtest_id` string, nullable
      - `source_hash_before` string, nullable
      - `source_hash_after` string, nullable
      - `metrics_delta` object
      - `result_summary` string, nullable
      - `decision` string, nullable
      - `decision_rationale` string, nullable
      - `created_at` string, required
      - `updated_at` string, required
  - `completed` ExperimentWithTrial[]
    - `experiment_id` string, required
    - `org_id` string, nullable
    - `strategy_id` string, required
    - `name` string, required
    - `description` string, nullable
    - `status` string, required
    - `base_commit_id` string, nullable
    - `objective_metric` string, nullable
    - `kind` string
    - `experiment_type` string, nullable
    - `hypothesis` string, nullable
    - `proposed_change` string, nullable
    - `expected_tradeoff` string, nullable
    - `success_criteria` string, nullable
    - `priority_rank` integer, nullable
    - `source_hash_at_proposal` string, nullable
    - `control_backtest_id` string, nullable
    - `control_artifact_id` string, nullable
    - `created_by_run_id` string, nullable
    - `selected_at` string, nullable
    - `decided_at` string, nullable
    - `decision` string, nullable
    - `decision_rationale` string, nullable
    - `archived_reason` string, nullable
    - `meta` object, nullable
    - `created_at` string, required
    - `updated_at` string, nullable
    - `latest_trial` ExperimentTrialResponse
      - `trial_id` string, required
      - `org_id` string, required
      - `strategy_id` string, required
      - `experiment_id` string, required
      - `trial_kind` string, required
      - `status` string, required
      - `created_by_run_id` string, nullable
      - `experiment_plan_artifact_id` string, nullable
      - `diff_artifact_id` string, nullable
      - `control_commit_id` string, nullable
      - `candidate_commit_id` string, nullable
      - `control_backtest_id` string, nullable
      - `candidate_backtest_id` string, nullable
      - `source_hash_before` string, nullable
      - `source_hash_after` string, nullable
      - `metrics_delta` object
      - `result_summary` string, nullable
      - `decision` string, nullable
      - `decision_rationale` string, nullable
      - `created_at` string, required
      - `updated_at` string, required

## 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)
