---
title: "Read one dataset version and a page of its test cases"
method: GET
path: "/api/v1/public/dataset-versions/{version_id}"
tags: ["Offline Eval"]
---

# Read one dataset version and a page of its test cases

`GET /api/v1/public/dataset-versions/{version_id}`

## Request

- Base URL: `https://app.traceroot.ai`
- URL: `https://app.traceroot.ai/api/v1/public/dataset-versions/{version_id}`
- Auth: HTTP bearer

Read an immutable snapshot: the version plus its cases, whole or a page at a time.

Paging is opt-in through `limit`, because the released SDKs pull a version with one
request and never follow `next_cursor`; a default page would silently truncate them.
A version's case set is unbounded in practice, so any other caller should page.
`input`/`expected` come back as native JSON values.

## Path parameters

- `version_id` string, required

## Query parameters

- `limit` integer, nullable: Test cases per page. Omit it, with no cursor, to receive the whole version in one response, as an SDK pulling the snapshot it will run does; pass it to page.
- `cursor` string, nullable: Opaque cursor from a previous page
- `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

- GetDatasetVersionResponse: A version snapshot: the version's identity plus a PAGE of its cases.
  - `dataset_id` string, required
  - `dataset_version_id` string, required
  - `items` PublicTestCase[], required
    - `expected` unknown, required
    - `input` unknown, required
    - `metadata` unknown, required
    - `source_span_id` string, nullable, required
    - `source_trace_id` string, nullable, required
    - `test_case_id` string, required
  - `label` string, nullable, required
  - `next_cursor` string, nullable, required
  - `version_number` integer, 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)
