---
title: "Rollout History"
method: GET
path: "/rollouts/history"
tags: ["robots"]
---

# Rollout History

`GET /rollouts/history`

## Request

- Base URL: `https://api.os3robotics.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.os3robotics.com/rollouts/history`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Active rollouts plus a page of history by last change, across both kinds.

History defaults to the last 30 days. Use before for older history; X-style next_after
cursors keep tied timestamps and the two kinds in one stable order. Active rollouts stay
visible on every page. A robot_id narrows both lists to that robot of the workspace.

## Query parameters

- `workspace_id` string, uuid, required
- `robot_id` string, uuid, nullable
- `since` string, date-time, nullable
- `before` string, date-time, nullable
- `after` string, nullable
- `limit` integer

## Response `200`

Successful Response

- RolloutHistory
  - `controller` Rollout[], required
    - `stage` string, required
    - `held` string, nullable, required
    - `reason` string, nullable, required
    - `soak_s` integer, nullable, required
    - `report_timeout_s` integer, nullable, required
    - `acceptance` Acceptance, required: What judges each stage of a policy rollout: the task's success rate on the stage's first `min_attempts` autonomous attempts, which passes when its 95% Wilson lower bound is at least `min_success`.
      - `task_id` string, required
      - `contract_version` integer, required
      - `min_attempts` integer, required
      - `min_success` number, required
    - `stage_started_at` string, date-time, nullable, required
    - `stages` object[], required
    - `created_by` string, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `id` string, uuid, required
    - `release` ControllerRelease, required
      - `id` string, uuid, required
      - `version` string, required
      - `git_commit` string, required
      - `source` string, required
      - `controller_api_version` string, required
      - `wire_contract_version` string, required
      - `embodiments` string[], required
      - `note` string, nullable, required
      - `created_by` string, required
      - `created_at` string, date-time, required
    - `targets` Target[], required
      - `robot_id` string, uuid, required
      - `position` integer, required
      - `ring` string, required
      - `status` string, required
      - `from_commit` string, nullable, required
      - `reason` string, nullable, required
      - `applied_at` string, date-time, nullable, required
      - `updated_at` string, date-time, required
  - `policy` PolicyRollout[], required
    - `stage` string, required
    - `held` string, nullable, required
    - `reason` string, nullable, required
    - `soak_s` integer, nullable, required
    - `report_timeout_s` integer, nullable, required
    - `acceptance` Acceptance, required: What judges each stage of a policy rollout: the task's success rate on the stage's first `min_attempts` autonomous attempts, which passes when its 95% Wilson lower bound is at least `min_success`.
      - `task_id` string, required
      - `contract_version` integer, required
      - `min_attempts` integer, required
      - `min_success` number, required
    - `stage_started_at` string, date-time, nullable, required
    - `stages` object[], required
    - `created_by` string, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `id` string, uuid, required
    - `workspace_id` string, uuid, required
    - `model_version_id` string, uuid, required
    - `endpoint_id` string, uuid, required
    - `targets` PolicyTarget[], required
      - `robot_id` string, uuid, required
      - `position` integer, required
      - `ring` string, required
      - `status` string, required
      - `from_deployment_id` string, uuid, nullable, required
      - `from_model_version_id` string, uuid, nullable, required
      - `from_checkpoint_sha256` string, nullable, required
      - `deployment_id` string, uuid, nullable, required
      - `back_deployment_id` string, uuid, nullable, required
      - `reason` string, nullable, required
      - `applied_at` string, date-time, nullable, required
      - `updated_at` string, date-time, required
  - `next_after` string, nullable, required
  - `current_controller` Rollout, required
    - `stage` string, required
    - `held` string, nullable, required
    - `reason` string, nullable, required
    - `soak_s` integer, nullable, required
    - `report_timeout_s` integer, nullable, required
    - `acceptance` Acceptance, required: What judges each stage of a policy rollout: the task's success rate on the stage's first `min_attempts` autonomous attempts, which passes when its 95% Wilson lower bound is at least `min_success`.
      - `task_id` string, required
      - `contract_version` integer, required
      - `min_attempts` integer, required
      - `min_success` number, required
    - `stage_started_at` string, date-time, nullable, required
    - `stages` object[], required
    - `created_by` string, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `id` string, uuid, required
    - `release` ControllerRelease, required
      - `id` string, uuid, required
      - `version` string, required
      - `git_commit` string, required
      - `source` string, required
      - `controller_api_version` string, required
      - `wire_contract_version` string, required
      - `embodiments` string[], required
      - `note` string, nullable, required
      - `created_by` string, required
      - `created_at` string, date-time, required
    - `targets` Target[], required
      - `robot_id` string, uuid, required
      - `position` integer, required
      - `ring` string, required
      - `status` string, required
      - `from_commit` string, nullable, required
      - `reason` string, nullable, required
      - `applied_at` string, date-time, nullable, required
      - `updated_at` string, date-time, required

## Other responses

- `422`: Validation Error

---

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