---
title: "List training runs — whole runs per page"
method: GET
path: "/api/finetuning-jobs/runs/"
tags: ["finetuning-jobs"]
---

# List training runs — whole runs per page

`GET /api/finetuning-jobs/runs/`

## Request

- Base URL: `https://api.overmindlab.ai`
- URL: `https://api.overmindlab.ai/api/finetuning-jobs/runs/`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`
  - API key in cookie `sessionid`
  - API key in header `X-Api-Key`
  - HTTP bearer

The training history lists *runs*, not jobs: the wizard launches one job per experiment and stamps them with a shared `group_id`. Paging jobs would straddle a run across a page boundary and silently corrupt every per-run aggregate the client derives (status, progress, cost, duration, and the single-job test that picks the row's navigation target), so this pages over distinct runs and returns each one whole.

`count` is the number of matching **runs**. `results` carries one entry per run — `{run_id, group_id, jobs}` — where `run_id` is the `group_id` when there is one and the lone job's id otherwise, and `jobs` is every job of that run so client-side aggregation is always complete. Ordering applies to whole-run values before pagination. By default, the most recently created job places its run first.

Every filter of the jobs list applies (`project`, `capability`, `dataset`, `base_model`, `status`, `provider`, `group_id`, `search`).

## Query parameters

- `base_model` string
- `capability` string, uuid
- `created_after` string, date-time
- `created_before` string, date-time
- `dataset` string, uuid
- `group_id` string, uuid
- `ordering` 'status' | '-status' | 'name' | '-name' | 'models' | '-models' | 'dataset' | '-dataset' | 'duration' | '-duration' | 'credits' | '-credits' | 'created_at' | '-created_at'
- `page` integer
- `page_size` integer
- `project` string, uuid
- `provider` 'baseten' | 'modal' | 'nebius' | 'tinker' | 'together_ai'
- `search` string
- `status` 'awaiting_launch' | 'cancelled' | 'deploying' | 'failed' | 'preparing' | 'preprocessing' | 'queued' | 'running' | 'submission_unknown' | 'succeeded'

## Response `200`

- PaginatedFinetuningJobRunList
  - `count` integer, required
  - `next` string, uri, nullable
  - `previous` string, uri, nullable
  - `results` FinetuningJobRun[], required
    - `run_id` string, uuid, required
    - `group_id` string, uuid, nullable, required
    - `jobs` FinetuningJobList[], required
      - `training_contract` unknown, required
      - `native_evaluation` NativeEvaluation, required
        - `id` string, uuid, required
        - `project` string, uuid, required
        - `name` string, required
        - `request_key` string, nullable, required
        - `final_cell` string, uuid, required
        - `calibration_cell` string, uuid, nullable, required
        - `final_suite` NativeEvaluationSuite, required
          - `id` string, uuid, required
          - `version` string, required
          - `title` string, required
          - `rows` integer, required
          - `dataset_id` string, uuid, required
          - `dataset_name` string, required
          - `capability_id` string, uuid, nullable, required
          - `capability_name` string, required
        - `calibration_suite` NativeEvaluationSuite, required
          - `id` string, uuid, required
          - `version` string, required
          - `title` string, required
          - `rows` integer, required
          - `dataset_id` string, uuid, required
          - `dataset_name` string, required
          - `capability_id` string, uuid, nullable, required
          - `capability_name` string, required
        - `job` string, uuid, nullable, required
        - `state` string, required
        - `config` unknown, required
        - `calls` unknown, required
        - `calibration` unknown, required
        - `results` unknown, required
        - `error` string, required
        - `deleted_at` string, date-time, nullable, required
        - `created_at` string, date-time, required
        - `updated_at` string, date-time, required
      - `id` string, uuid, required
      - `project` string, uuid, required
      - `capability` string, uuid, nullable, required
      - `dataset` string, uuid, required
      - `eval_dataset` string, uuid, nullable, required
      - `eval_cell` string, uuid, nullable, required
      - `eval_set` string, uuid, nullable, required
      - `benchmark_models` unknown, required
      - `eval_incumbent_before` boolean, required
      - `eval_incumbent_after` boolean, required
      - `eval_model_before` boolean, required
      - `eval_model_after` boolean, required
      - `validation_enabled` boolean, required
      - `validation_split_ratio` number, double, required
      - `validation_dataset` string, uuid, nullable, required
      - `cell` string, uuid, nullable, required
      - `cell_info` object, nullable, required
      - `validation_cell` string, uuid, nullable, required
      - `split_method` 'ordered' | 'random', required: * `ordered` - Ordered * `random` - Random
      - `name` string, required
      - `use_case` string, required
      - `base_model` string, required
      - `status` 'preprocessing' | 'awaiting_launch' | 'submission_unknown' | 'queued' | 'preparing' | 'running' | 'deploying' | 'succeeded' | 'failed' | 'cancelled', required: * `preprocessing` - Preparing data * `awaiting_launch` - Awaiting launch * `submission_unknown` - Submission Unknown * `queued` - Queued * `preparing` - Preparing * `running` - Running * `deploying` - Deploying * `succeeded` - Succeeded * `failed` - Failed * `cancelled` - Cancelled
      - `group_id` string, uuid, nullable, required
      - `model_tier` 'compact' | 'small' | 'mid' | 'large', required: * `compact` - Compact * `small` - Small * `mid` - Mid * `large` - Large
      - `provider` 'together_ai' | 'nebius' | 'tinker' | 'baseten' | 'modal', required: * `together_ai` - Together Ai * `nebius` - Nebius * `tinker` - Tinker * `baseten` - Baseten * `modal` - Modal
      - `output_model_name` string, required
      - `deployed_model_id` string, uuid, nullable, required
      - `decision_job_id` string, uuid, nullable, required
      - `model_weights_location` string, required
      - `progress` unknown, required
      - `retry_count` integer, required
      - `max_retries` integer, required
      - `error_message` string, required
      - `cost_usd` string, decimal, nullable, required
      - `billed_minutes` integer, nullable, required
      - `cost_synced_at` string, date-time, nullable, required
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required
      - `started_at` string, date-time, nullable, required
      - `completed_at` string, date-time, nullable, required

---

[API](https://skmtc.dev/overmindlab/apis/overmind-api.md) - [All operations](https://skmtc.dev/overmindlab/apis/overmind-api/llms.txt) - [OpenAPI document](https://skmtc.dev/overmindlab/apis/overmind-api/revisions/0ecfd39e80c6?raw)
