> ## Documentation Index
> Fetch the complete documentation index at: https://traceroot.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Read one evaluation dataset

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



## OpenAPI

````yaml /api-reference/openapi.json get /api/v1/public/datasets/{dataset_id}
openapi: 3.1.0
info:
  title: TraceRoot Public API
  version: 0.1.0
servers:
  - description: TraceRoot Cloud
    url: https://app.traceroot.ai
  - description: Self-hosted
    url: '{baseUrl}'
    variables:
      baseUrl:
        default: http://localhost:8000
        description: Your TraceRoot backend URL
security: []
paths:
  /api/v1/public/datasets/{dataset_id}:
    get:
      tags:
        - Offline Eval
      summary: Read one evaluation dataset
      description: >-
        Read one dataset. `current_dataset_version_id` is null until a version
        is published.
      operationId: get_dataset
      parameters:
        - in: path
          name: dataset_id
          required: true
          schema:
            title: Dataset Id
            type: string
        - description: >-
            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.
          in: query
          name: project_id
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              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.
            title: Project Id
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicDataset'
          description: Successful Response
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Invalid request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Authentication failed
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: No access to this project
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Validation error
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Rate limit exceeded
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Authentication service unavailable
      security:
        - BearerAuth: []
components:
  schemas:
    PublicDataset:
      description: >-
        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.
      properties:
        current_dataset_version_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Current Dataset Version Id
        dataset_id:
          title: Dataset Id
          type: string
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        key:
          anyOf:
            - type: string
            - type: 'null'
          title: Key
        name:
          title: Name
          type: string
        updated_at:
          title: Updated At
          type: string
      required:
        - dataset_id
        - name
        - description
        - current_dataset_version_id
        - key
        - updated_at
      title: PublicDataset
      type: object
    ErrorResponse:
      description: >-
        The canonical public error envelope (matches the gateway's normalized
        shape).
      properties:
        detail:
          title: Detail
          type: string
      required:
        - detail
      title: ErrorResponse
      type: object
  securitySchemes:
    BearerAuth:
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.