---
title: "Complete/finalize an evaluation run"
method: POST
path: "/api/v1/public/evaluation-runs/{run_id}/complete"
tags: ["Offline Eval"]
---

# Complete/finalize an evaluation run

`POST /api/v1/public/evaluation-runs/{run_id}/complete`

## Request

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

Complete/fail a run, reporting final completeness counts.

## Path parameters

- `run_id` string, required

## Request body

- CompleteRunRequest: Complete/fail a run, reporting final completeness counts.
  - `case_count` integer, nullable
  - `scored_count` integer, nullable
  - `scorer_error_count` integer, nullable
  - `scorers` ScorerRef[], nullable
    - `description` string, nullable
    - `direction` 'higher_is_better' | 'lower_is_better' | 'none', nullable
    - `emitted_metrics` EmittedMetric[], nullable
      - `direction` 'higher_is_better' | 'lower_is_better' | 'none', nullable
      - `name` string, required
      - `threshold` number, nullable
      - `value_type` 'numeric' | 'boolean' | 'categorical', nullable
    - `key` string, nullable
    - `language` 'python' | 'typescript', nullable
    - `messages` ScorerMessage[], nullable
      - `content` string, required
      - `role` string, required
    - `metadata` unknown
    - `model` string, nullable
    - `name` string, required
    - `output_type` 'score' | 'classification', nullable
    - `required_inputs` string[], nullable
    - `scorer_type` 'llm_judge' | 'code', nullable
    - `source` string, nullable
    - `threshold` number, nullable
    - `value_type` 'numeric' | 'boolean' | 'categorical', nullable
    - `version` string, required
  - `status` 'running' | 'completed' | 'completed_with_errors' | 'failed' | 'incomplete' | 'cancelled', required
  - `task_error_count` integer, nullable

## Response `200`

Successful Response

- CompleteRunResponse
  - `evaluation_run_id` string, required
  - `status` 'running' | 'completed' | 'completed_with_errors' | 'failed' | 'incomplete' | 'cancelled', required

## Other responses

- `400`: Invalid request
- `401`: Authentication failed
- `404`: Not found
- `413`: Request body too large
- `422`: Validation error
- `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)
