---
title: "List Regression Tests"
method: GET
path: "/regression/tests"
---

# List Regression Tests

`GET /regression/tests`

List regression-origin A/B tests across all organizations.

## Query parameters

- `limit` integer
- `offset` integer

## Response `200`

Successful Response

- RegressionTestListResponse — List of regression-origin A/B tests for the Regressions tab.
  - `regression_tests` ABTestDTO[], required
    - `id` string, required
    - `name` string, required
    - `branches` BranchProgress[], required
      - `branch` string, required
      - `commit_sha` string, nullable
      - `image_uri` string, nullable
      - `pr_url` string, nullable
      - `commit_url` string, nullable
      - `run_set` RunSetProgress — Progress info for a single run set.
        - `run_set_id` string, nullable
        - `total_sessions` integer
        - `completed_sessions` integer
        - `failed_sessions` integer
        - `running_sessions` integer
        - `idle_sessions` integer
        - `total_cost_usd` number, nullable
        - `sessions` SessionProgressDTO[], nullable
          - `session_id` string, required
          - `status` string, required
          - `incident_description` string, nullable
          - `created_at` string, date-time, nullable
          - `elapsed_seconds` number, nullable
          - `estimated_cost_usd` number, nullable
    - `phase` 'resolving' | 'running' | 'comparing' | 'done' | 'failed', required
    - `error_message` string, nullable
    - `job_failures` JobFailureDTO[], nullable
      - `job_name` string, required
      - `display_label` string, required
      - `error_message` string, nullable
    - `incident_progress` IncidentProgressDTO[], nullable
      - `incident_key` string, required
      - `branch_a_completed` integer
      - `branch_a_total` integer
      - `branch_a_failed` integer
      - `branch_b_completed` integer
      - `branch_b_total` integer
      - `branch_b_failed` integer
    - `comparison_config` ComparisonConfig, required — Full comparison configuration stored as JSON on the ABTest row.
      - `incident_keys` string[]
      - `custom_questions` CustomQuestion[]
        - `question` string, required
      - `custom_prompts` CustomPrompt[]
        - `description` string, required — The investigation prompt / incident description
        - `time` string, required — ISO-8601 timestamp for the incident, e.g. '2025-12-16T16:31:00+00:00'
        - `config_name` string, required — Organization config to use, e.g. 'modal', 'digital_ocean'
        - `ground_truth` string, nullable — Optional reference answer for judging this custom prompt.
      - `include_ground_truth` boolean — Whether to include ground truth in LLM judge comparison prompts.
      - `backtest_horizon` BacktestHorizonConfig
        - `enabled` boolean
        - `offset_minutes` integer
      - `thinking_mode` 'auto' | 'deep' | 'fast' | 'lightning' — Determines the investigation depth and approach. - AUTO: Use message classifier to determine RCA vs CHAT - DEEP: Force RCA (root cause analysis) investigation - FAST: Force CHAT (exploratory) investigation - LIGHTNING: Fast, tool-rich investigation with tight iteration cap. Uses the union of all tools from fast + deep configs with a speed-focused prompt.
      - `thinking_mode_a` 'auto' | 'deep' | 'fast' | 'lightning' — Determines the investigation depth and approach. - AUTO: Use message classifier to determine RCA vs CHAT - DEEP: Force RCA (root cause analysis) investigation - FAST: Force CHAT (exploratory) investigation - LIGHTNING: Fast, tool-rich investigation with tight iteration cap. Uses the union of all tools from fast + deep configs with a speed-focused prompt.
      - `thinking_mode_b` 'auto' | 'deep' | 'fast' | 'lightning' — Determines the investigation depth and approach. - AUTO: Use message classifier to determine RCA vs CHAT - DEEP: Force RCA (root cause analysis) investigation - FAST: Force CHAT (exploratory) investigation - LIGHTNING: Fast, tool-rich investigation with tight iteration cap. Uses the union of all tools from fast + deep configs with a speed-focused prompt.
      - `runs_per_incident` integer
      - `judge_rounds` integer
      - `max_parallel_pods` integer
      - `description_to_key` object — Mapping from incident_description to incident key, populated at run time.
    - `overall_winner` string, nullable
    - `executive_summary` string, nullable
    - `comparison_result_url` string, nullable
    - `total_cost_usd` number, nullable
    - `origin` 'manual' | 'regression' | 'github' — Where an A/B test was triggered from.
    - `golden_set` string, nullable
    - `mode` string, nullable
    - `pr_number` integer, nullable
    - `verdict` 'passed' | 'warn' | 'fail' — Regression test verdict, mirrors ``regression_verdict_enum``. A verdict is a regression-testing concept: pass / warn / fail against the curated golden set. Manual A/B runs (``origin='manual'``) never have a verdict — it lives on ``ab_tests`` only because that's where regression runs are persisted. Note the enum value for PASS is ``"passed"`` (not ``"pass"``) to avoid colliding with the Python keyword and to match the Postgres enum. Clients filtering on this field must use ``"passed"``.
    - `verdict_reasons` object[], nullable
    - `created_by` string, nullable
    - `created_at` string, date-time, required
    - `started_at` string, date-time, nullable
    - `completed_at` string, date-time, nullable
  - `total` integer, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/traversal/apis/fastapi.md) · [All operations](https://skmtc.net/traversal/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/traversal/fastapi/revisions/2134ebffd1ef/schema)
