---
title: "List Evaluations"
method: GET
path: "/v3/evals"
tags: ["evals"]
---

# List Evaluations

`GET /v3/evals`

List your evaluations, newest first, scoped to the environment of the
API key you call with.

Each row carries the status, progress and per-configuration scorecards, so
a dashboard or agent can show where every evaluation stands without
fetching each one. Per-case results and stored answers stay on
GET /v3/evals/{eval_id}.

Page with `cursor` until `next_cursor` is null; there is no total count.
Evaluations still running are settled against their job before the page
returns, up to a few per page, so a finished run stops reading as running.

## Query parameters

- `collection` string, nullable
- `status` string, nullable
- `limit` integer
- `cursor` string, nullable

## Response `200`

Successful Response

- EvalListResponseV3 — A page of evaluations, newest first.
  - `count` integer, required — Rows on this page. There is no total; page until next_cursor is null.
  - `evals` EvalListRowV3[]
    - `billing` EvalBillingV3
      - `billable_units` integer, required
      - `failed_configs` string[]
      - `skipped_units` integer, required
    - `cases` integer, required
    - `cases_error` integer, required
    - `collection_name` string, required
    - `completed_at` string, nullable
    - `config_names` string[]
    - `created_at` string, required
    - `environment` string, nullable
    - `error_code` string, nullable
    - `eval_id` string, required
    - `progress` EvalProgressV3, required
      - `cases_error` integer, required
      - `cases_total` integer, required
      - `configs_failed` integer, required
      - `configs_total` integer, required
      - `elapsed_seconds` integer, required
      - `eta_seconds` integer, nullable
      - `percent` integer, required
      - `qps` number, double, nullable
      - `units_completed` integer, required
      - `units_error` integer, required
      - `units_failed` integer, required
      - `units_total` integer, required
    - `scorecards` object
    - `started_at` string, nullable
    - `status` 'pending' | 'running' | 'completed' | 'completed_with_errors' | 'failed', required
    - `units` integer, required
    - `updated_at` string, required
  - `next_cursor` string, nullable — Pass as `cursor` to continue. Null on the last page.

## Other responses

- `400` — Invalid status or cursor.
- `401` — Missing or invalid API key.
- `403` — The API key does not have query permission.
- `422` — Validation Error

## Changes

- **2026-09-24** `61a9364ad042` — 3 breaking, 1 warning, 16 info
  - the response's body type changed from no type to `object` for status `400`
  - the response's body type changed from no type to `object` for status `401`
  - the response's body type changed from no type to `object` for status `403`
  - removed the optional property `detail` from the response with the `422` status
  - …16 more
- **2026-09-17** `6ed36830de71` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/runcaptain/apis/api-reference/changes/v3/evals/get.md)

---

[API](https://skmtc.dev/runcaptain/apis/api-reference.md) · [All operations](https://skmtc.dev/runcaptain/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc.dev/runcaptain/apis/api-reference/revisions/ac61e472bb7d?raw)
