---
title: "Get an eval run (optionally with embedded evidence)"
method: GET
path: "/v1/eval-runs/{run_id}"
tags: ["evals", "evals"]
---

# Get an eval run (optionally with embedded evidence)

`GET /v1/eval-runs/{run_id}`

Read one eval run. With no ``include`` the response is the shallow
run+scores shape (back-compat); each ``include`` token adds the matching
evidence section. Unknown tokens are ignored. Cross-org/unknown → 404.

## Path parameters

- `run_id` string, uuid, required

## Query parameters

- `include` string, nullable — comma-separated evidence to embed: session,turns,recording

## Response `200`

Successful Response

- EvalRunDetailResponse — ``EvalRunResponse`` superset; extras stay null/[]/false unless requested.
  - `id` string, uuid, required
  - `organization_id` string, uuid, required
  - `session_id` string, uuid, required
  - `evaluator_id` string, uuid, required
  - `agent_id` string, uuid, nullable
  - `channel` string, nullable
  - `status` string, required
  - `started_at` string, date-time, nullable, required
  - `finished_at` string, date-time, nullable, required
  - `error_text` string, nullable, required
  - `prompt_snapshot` string, nullable, required
  - `threshold_snapshot` number, nullable, required
  - `config_snapshot` object
  - `severity_snapshot` string, required
  - `format_snapshot` string, required
  - `is_critical_snapshot` boolean
  - `created_at` string, date-time, required
  - `scores` EvalScoreResponse[]
    - `id` string, uuid, required
    - `organization_id` string, uuid, required
    - `eval_run_id` string, uuid, required
    - `value` number, nullable, required
    - `raw_value` number, nullable, required
    - `label` string, nullable, required
    - `passed` boolean, nullable, required
    - `confidence` number, nullable, required
    - `rationale` string, nullable, required
    - `severity` string, nullable, required
    - `blocking` boolean, required
    - `evidence_observation_ids` string[]
    - `created_at` string, date-time, required
  - `session` ConversationSummary — Projection of the parent ``Conversation`` for the eval-run detail view.
    - `id` string, uuid, required
    - `channel` string, required
    - `session_type` string, required
    - `status` string, required
    - `assistant_id` string, uuid, nullable, required
    - `assistant_revision_id` string, uuid, nullable, required
    - `subject` string, nullable, required
    - `created_at` string, date-time, required
    - `last_activity_at` string, date-time, nullable, required
  - `turns` TurnView[], nullable
    - `id` string, uuid, required
    - `seq` integer, required
    - `role` string, required
    - `content` string, nullable, required
    - `tool_calls` union, required
      - object[]
      - object
    - `tool_call_id` string, nullable, required
    - `authored_by` string, required
    - `created_at` string, date-time, required
  - `turns_truncated` boolean
  - `recording` RecordingRef — Metadata-only projection of a voice ``Recording`` (no presigned URL/bytes).
    - `id` string, uuid, required
    - `kind` string, required
    - `status` string, required
    - `duration_ms` integer, nullable, required
    - `manifest_key` string, required
    - `started_at` string, date-time, required
    - `finalized_at` string, date-time, nullable, required

## Other responses

- `400` — Bad request
- `401` — Authentication required
- `404` — Resource not found
- `422` — Validation Error

---

[API](https://skmtc.net/oneloop-hq/apis/feather-api.md) · [All operations](https://skmtc.net/oneloop-hq/apis/feather-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/oneloop-hq/feather-api/versions/888bdd5c076e/schema)
