---
title: "Get Eval Progress Route"
method: GET
path: "/api/v1/eval/{run_id}/progress"
tags: ["eval"]
---

# Get Eval Progress Route

`GET /api/v1/eval/{run_id}/progress`

## Request

- Base URL: `https://api.trajectory.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.trajectory.ai/api/v1/eval/{run_id}/progress`
- Auth: none declared

## Path parameters

- `run_id` string, required

## Response `200`

Successful Response

- EvalProgressResponse
  - `task_selection` EvalTaskSelection
    - `split` 'test' | 'all', required
    - `available_task_count` integer, required: Tasks in the selected scope at launch.
    - `selected_task_count` integer, required: Distinct tasks selected for execution.
    - `max_samples` integer, nullable: Explicit options.val_num_tasks, or null to run every task in the selected scope.
  - `eval_run_id` string, required: Evaluation run whose progress is returned.
  - `status` 'pending' | 'registered' | 'running' | 'completed' | 'failed' | 'cancelled'
  - `failure` AsyncFailure
    - `type` string, required: Stable category used for exception mapping.
    - `code` string, required: Stable programmatic reason for the asynchronous failure.
    - `message` string, required: Human-readable explanation for this failure occurrence.
    - `context` object: Machine-readable values specific to this failure code.
  - `terminal_rollouts` integer, required: Historical terminal attempts across executions, including failures; not logical completion progress.
  - `total_rollouts` integer, required: Rollouts the run's config schedules: its sampled tasks times the group size.
  - `remaining_rollouts` integer, nullable: Original target minus completed, scored attempts; failures remain retryable work.
  - `live` EvalLiveSummary
    - `waiting_rollouts` integer, required: Attempts waiting to execute, including startup work.
    - `running_rollouts` integer, required: Attempts executing or being stopped; completed provider work is counted separately.
    - `awaiting_result_rollouts` integer, required: Provider-terminal attempts or finished captures awaiting result reconciliation.
    - `scored_rollouts` integer, required: Completed attempts assigned an evaluation score, including zero for some ungraded endings.
    - `failed_rollouts` integer, required: Attempts that failed execution or scoring.
    - `cancelled_rollouts` integer, required: Attempts whose cancellation is complete.
    - `provisional_reward_mean` number, nullable, required: Mean of the scored attempts; null before the first score.
    - `final_reward_mean` number, nullable, required: Authoritative mean when the evaluation completed successfully.

## Changes

- **2026-10-31** `7b218d495d5c`: 1 info
  - added the optional property `remaining_rollouts` to the response with the `200` status
- **2026-10-07** `db059a2d3fb0`: 1 info
  - added the optional property `task_selection` to the response with the `200` status

[Operation history](https://skmtc.dev/trajectory/apis/trajectory-api/changes/api/v1/eval/:run_id/progress/get.md)

---

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