---
title: "List the project's evaluation runs"
method: GET
path: "/api/v1/public/evaluation-runs"
tags: ["Offline Eval"]
---

# List the project's evaluation runs

`GET /api/v1/public/evaluation-runs`

## Request

- Base URL: `https://app.traceroot.ai`
- URL: `https://app.traceroot.ai/api/v1/public/evaluation-runs`
- Auth: HTTP bearer

List evaluation runs, newest first, optionally one evaluation's or one status's.

Identity and status only: a run's counts and per-scorer means come from `read_run`, so
listing stays one query however many runs a page holds. `next_cursor` is null on the
last page.

## Query parameters

- `limit` integer: Runs per page
- `cursor` string, nullable: Opaque cursor from a previous page
- `evaluation_id` string, nullable: Only this evaluation's runs
- `status` 'running' | 'completed' | 'completed_with_errors' | 'failed' | 'incomplete' | 'cancelled', nullable: Only runs in this status
- `project_id` string, nullable: Target project for the request. Required when authenticating with a user session token (a user credential is only meaningful scoped to a project); for an API key it is optional and, if given, must match the key's project.

## Response `200`

Successful Response

- ListEvaluationRunsResponse
  - `next_cursor` string, nullable, required
  - `runs` PublicEvaluationRun[], required
    - `candidate_version` string, required
    - `completed_at` string, nullable, required
    - `dataset_id` string, required
    - `dataset_version_id` string, required
    - `environment` string, required
    - `evaluation_id` string, required
    - `evaluation_key` string, required
    - `evaluation_name` string, required
    - `evaluation_run_id` string, required
    - `run_number` integer, required
    - `started_at` string, required
    - `status` 'running' | 'completed' | 'completed_with_errors' | 'failed' | 'incomplete' | 'cancelled', required

## Other responses

- `400`: Invalid request
- `401`: Authentication failed
- `403`: No access to this project
- `404`: Not found
- `422`: Validation error
- `429`: Rate limit exceeded
- `503`: Authentication service unavailable

---

[API](https://skmtc.dev/traceroot/apis/traceroot-public-api.md) - [All operations](https://skmtc.dev/traceroot/apis/traceroot-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/traceroot/apis/traceroot-public-api/revisions/ce6aef96c0d6?raw)
