---
title: "Public Export Eval Group"
method: GET
path: "/v1/eval-groups/{slug}/export"
tags: ["public-api"]
---

# Public Export Eval Group

`GET /v1/eval-groups/{slug}/export`

A full group (tasks + runs + cases) in ingest shape — replayable against the POST endpoints.

## Path parameters

- `slug` string, required

## Headers

- `authorization` string, nullable

## Response `200`

Successful Response

- EvalGroupExport — A full group in ingest shape. The export IS the sync protocol: replay `group` → each `task` → each task's `runs` against another environment's POST /v1 endpoints to reproduce the group there (runs are append-only, so replay into a clean target).
  - `group` EvalGroupUpsert, required — Idempotent upsert of an eval group by slug.
    - `slug` string, required
    - `display_name` string, required
    - `score_format` 'percent' | 'decimal' — How the viewer renders scores: "percent" (73.5%) or "decimal" (0.735, for C-index/AUC).
    - `score_aggregation` 'mean' | 'max' — How member tasks roll up into the group score: "mean" (average) or "max" (best task).
    - `baseline` number, nullable — Optional random/chance baseline in the group's own units (0.5 for C-index, 0.25 for a 4-class task). Unbounded above, like every other score here.
    - `source` string — Provenance of the group definition, e.g. "github:<org>/<repo>" when kept in sync from a customer repo. Empty = leave the stored value unchanged.
    - `sync_enabled` boolean, nullable — Whether the nightly customer-code sync may touch this group. None = leave the stored value unchanged (new groups default true).
  - `tasks` EvalTaskExport[], required
    - `task` EvalTaskUpsert, required — Idempotent upsert of a task (an Eval row) into a group by slug.
      - `slug` string, required
      - `display_name` string, required
      - `group_slug` string, required
      - `task` string, required — Task description shown on the task page
      - `criteria` object[] — Grading rubric entries ({id, question, rationale}), rendered as the task page's Verifiers card. Empty = leave the stored value unchanged.
      - `seed_data` string — Verbatim mock/seed source blocks — the task's starting world state, rendered as a collapsible card. Empty = leave the stored value unchanged.
    - `runs` EvalRunIngestOutput[], required
      - `model` string, required — Model name snapshot, e.g. wilson-v3-step200
      - `dataset_train` string — Training dataset snapshot
      - `dataset_eval` string — Eval dataset snapshot, e.g. apex-curated-eval-subset@2026-07-10
      - `variant` string — Mutation/question variant within the task, e.g. v2-polar-positive
      - `reference_label` string — Mark this run as a reference instead of a scored datapoint, e.g. "random", "SOTA", "gpt-5 baseline". Reference runs are excluded from every score rollup and the group chart draws them as dotted horizontal lines captioned with this label. Empty (default) = an ordinary scored run.
      - `input_template` string — The {vars} question template that defines the variant
      - `grading` string — How the run was graded / answer logic
      - `metric` string — Name of the headline metric overall_score normalizes
      - `output_location` string — Where the pipeline stored the raw outputs
      - `overall_score` number, required
      - `status` 'completed' | 'failed', required
      - `metrics` object
      - `started_at` string, nullable
      - `finished_at` string, nullable
      - `created_at` string, nullable — Optional original record time, preserved by export→replay syncs. The timeline falls back to it when finished_at is unset; omitted = now.
      - `source` string — Which pipeline pushed this run
      - `error` string
      - `cases` EvalRunCaseIngest[]
        - `input_preview` string
        - `response_text` string
        - `score` number, nullable
        - `scores` object
        - `trace_id` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/trainloop/apis/trainloop-api.md) · [All operations](https://skmtc.dev/trainloop/apis/trainloop-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/trainloop/trainloop-api/revisions/aedb0e4b59f8/schema)
