---
title: "Retrieve an AutoScientist run"
method: GET
path: "/api/v1/autoscientist/{experiment_id}"
tags: ["autoscientist"]
---

# Retrieve an AutoScientist run

`GET /api/v1/autoscientist/{experiment_id}`

## Request

- The document declares no server URL.
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/adaptionlabs/apis/adaption-api/docs/api/v1/autoscientist/:experiment_id/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `experiment_id` string, required

## Response `200`

- PublicAutoScientistRunDto
  - `id` string, required: AutoScientist run id.
  - `dataset_id` string, nullable, required: Public id of the dataset the run trained on.
  - `model` string, nullable, required: Resolved base model id used, including an automatically selected model.
  - `status` 'pending' | 'running' | 'succeeded' | 'failed' | 'cancelled', required
  - `created_at` string, date-time, required
  - `completed_at` string, date-time, nullable, required: When the run reached a terminal state. Null while it is still running.
  - `iterations_completed` number, required: Number of completed iterations.
  - `max_iterations` number, required: Resolved maximum number of iterations, including the model-specific default.
  - `target_win_rate` number, required: Resolved target win rate for the AutoScientist loop, including the model-specific default.
  - `best_win_rate` number, nullable: Best win rate achieved so far.
  - `training_method` 'instruction' | 'alignment', required: The objective this run is training. Resolved at creation — a requested `alignment` is downgraded to `instruction` when the dataset is not preference pairs, so read this back to confirm what actually runs.
  - `best_hyperparams` PublicAutoScientistHyperparamsDto, required
    - `training_type` 'lora' | 'full': Training strategy override. AutoScientist optimizes this by default; set it only when strictly necessary.
    - `n_epochs` number
    - `learning_rate` number
    - `batch_size` union: Either the literal 'max' or an integer of 1 or more. The allowed range depends on the base model, the training type (LoRA or full) and the training method (DPO is often lower than SFT); a launch with a value outside it is rejected with a 400 that names the range. 'max' always fits. Defaults to 'max'.
      - 'max'
      - integer
    - `lora_r` number
    - `lora_alpha` number: Must be 1× or 2× lora_r. Only checked when you supply lora_r in the same request; otherwise it is validated against the platform default.
    - `lora_dropout` number: Dropout applied to the LoRA layers. Defaults to 0.
    - `lora_trainable_modules` string: 'all-linear' or comma-separated module list (e.g. 'q_proj,v_proj').
    - `lr_scheduler_type` 'linear' | 'cosine'
    - `min_lr_ratio` number
    - `scheduler_num_cycles` number: Number of cosine decay cycles across training. Must be greater than 0. Defaults to 0.5, a single half-cycle decay from the peak learning rate down to the floor.
    - `warmup_ratio` number
    - `max_grad_norm` number
    - `weight_decay` number: L2 penalty applied to the weights. Defaults to 0.
    - `train_on_inputs` boolean: Whether training loss is computed over the prompt tokens as well as the completion. `true` trains on the full sequence, `false` trains only on the completion. Omit to let the platform decide per example, which is the default.
    - `dpo_beta` number: Controls how much the model can deviate from the reference model. Lower = more aggressive updates toward preferred responses; higher = stays closer to reference behavior.
    - `dpo_normalize_logratios_by_length` boolean: Normalizes log ratios by sample length during DPO loss calculation. Automatically set to true when simpo_gamma > 0.
    - `rpo_alpha` number, float: RPO loss modifier: incorporates the NLL loss on selected samples with this weight. Defaults to 0.0 (standard DPO loss). Mutually exclusive with simpo_gamma — both above 0 is rejected.
    - `simpo_gamma` number, float: SimPO loss modifier: adds a margin to the loss, force-enables length normalization, and excludes reference logits. Defaults to 0.0 (off). Raise dpo_beta alongside it. Mutually exclusive with rpo_alpha — both above 0 is rejected.
  - `column_mapping` PublicTrainingColumnMappingDto, required
    - `prompt` string: Source column holding the prompt/instruction text.
    - `completion` string: Source column holding the target completion/response. Used for supervised (sft) training.
    - `reasoning_trace` string: Optional source column holding a reasoning trace to train on. Supported on instruction runs with a model whose GET /autoscientist/models entry reports `train_with_reasoning: true`; naming it with any other model on such a run is rejected.
    - `chosen` string: Source column holding the preferred response. Used for preference (dpo) training, where a row carries two completions rather than one. Pair it with `rejected`.
    - `rejected` string: Source column holding the rejected response. Pair it with `chosen`.
  - `download_available` boolean, required: True when the best trained artifact can be downloaded.
  - `error` string, nullable: Why the run failed. Null unless `status` is `failed`.

## Other responses

- `404`: Run not found or not owned by caller.

## Changes

- **2026-10-20** `7398ff1eeeba`: 1 info
  - removed the `constant` enum value from the `best_hyperparams/allOf[#/components/schemas/PublicAutoScientistHyperparamsDto]/lr_scheduler_type` response property for the response status `200`
- **2026-09-15** `f4d1edd8f3d1`: 5 breaking, 3 info
  - the `best_win_rate` response's property type changed from `object` to `number` for status `200`
  - the `completed_at` response's property type changed from `object` to `string`, and format from no format to `date-time` for status `200`
  - the `dataset_id` response's property type changed from `object` to `string` for status `200`
  - the `error` response's property type changed from `object` to `string` for status `200`
  - …4 more

[Operation history](https://skmtc.dev/adaptionlabs/apis/adaption-api/changes/api/v1/autoscientist/:experiment_id/get.md)

---

[API](https://skmtc.dev/adaptionlabs/apis/adaption-api.md) - [All operations](https://skmtc.dev/adaptionlabs/apis/adaption-api/llms.txt) - [OpenAPI document](https://skmtc.dev/adaptionlabs/apis/adaption-api/revisions/d4cf908c19a0?raw)
