---
title: "Read one evaluation dataset"
method: GET
path: "/api/v1/public/datasets/{dataset_id}"
tags: ["Offline Eval"]
---

# Read one evaluation dataset

`GET /api/v1/public/datasets/{dataset_id}`

## Request

- Base URL: `https://app.traceroot.ai`
- URL: `https://app.traceroot.ai/api/v1/public/datasets/{dataset_id}`
- Auth: HTTP bearer

Read one dataset. `current_dataset_version_id` is null until a version is published.

## Path parameters

- `dataset_id` string, required

## Query parameters

- `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

- PublicDataset: A dataset as the public API describes it. Every field is REQUIRED and nullable rather than optional: the route always emits all of them, and a default here would say the key may be absent, which is a different contract from "present and null". The shape roster compares this to the Zod side field-for-field, so the two cannot drift apart on that distinction. ``dataset_id`` is the id a CLIENT addresses the dataset by — its own ``client_dataset_id`` when it created the dataset, or the row id for one authored in the UI. ``key`` is the pre-image of that id, so a pulled dataset recovers its key when key and name differ. No case count: no dataset read computes one, and deriving it would need an N+1 over versions. It lives on a version, where it is one grouped aggregate.
  - `current_dataset_version_id` string, nullable, required
  - `dataset_id` string, required
  - `description` string, nullable, required
  - `key` string, nullable, required
  - `name` string, required
  - `updated_at` string, 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)
