---
title: "Preview Sweep"
method: GET
path: "/internal/evals/rollout-consistency/preview"
tags: ["internal"]
---

# Preview Sweep

`GET /internal/evals/rollout-consistency/preview`

## Request

- Base URL: `https://api.kobaltlabs.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.kobaltlabs.com/internal/evals/rollout-consistency/preview`
- Auth: none declared

What a sweep would do, without starting one.

Runs the sweep's own `gather_cohort` rather than an approximation of it: a preview that
disagreed with what the sweep gathers would be worse than none, and this is the number an
operator is agreeing to when they press the button.

## Query parameters

- `company_id` string, uuid, required
- `window_days` integer
- `config_a_key` string
- `config_b_key` string
- `file_ids` string[], nullable

## Response `200`

Successful Response

- SweepPreview: What a sweep would do, before one is started. Exists because a sweep is expensive and irreversible in the only way that matters — it writes real marketing runs into the customer's history — so the cost is stated before the button, not discovered afterwards.
  - `company_id` string, uuid, required
  - `company_name` string, required
  - `rollout_enrolled` boolean, required
  - `window_days` integer, required
  - `collateral_in_window` integer, required
  - `collateral_considered` integer, required
  - `collateral_runnable` integer, required
  - `skipped` object, required
  - `analyses_to_run` integer, required
  - `guidelines_ready` integer, required
  - `guidelines_without_library` integer, required
  - `guideline_sets` PreviewGuidelineSet[], required
    - `guideline_set_id` string, uuid, required
    - `name` string, required
    - `preset_ids` string[], required
    - `collateral_count` integer, required
    - `active_requirements` integer, required
    - `live_requirements` integer, required
  - `presets_without_sets` PresetWithoutSets[], required
    - `preset_id` string, uuid, required
    - `name` string, nullable, required
    - `collateral_count` integer, required
  - `config_a` AnalysisConfigOption, required: One configuration an operator may run a sweep under. Served from the registry rather than typed by the frontend so the two cannot disagree about what a key means — a page offering a configuration this build does not have would start a sweep the worker refuses.
    - `key` string, required
    - `label` string, required
    - `judge_model` string, required
    - `judge_temperature` number, required
  - `config_b` AnalysisConfigOption, required: One configuration an operator may run a sweep under. Served from the registry rather than typed by the frontend so the two cannot disagree about what a key means — a page offering a configuration this build does not have would start a sweep the worker refuses.
    - `key` string, required
    - `label` string, required
    - `judge_model` string, required
    - `judge_temperature` number, required
  - `max_cohort` integer, required

## Other responses

- `422`: Validation Error

## Changes

- **2026-09-08** `9fe2fb8a3631`: 2 warning, 7 info
  - added the new `config_not_honoured` enum value to the `skipped/propertyNames/` response property for the response status `200`
  - added the new `no_guideline_sets` enum value to the `skipped/propertyNames/` response property for the response status `200`
  - added the new optional `query` request parameter `config_a_key`
  - added the new optional `query` request parameter `config_b_key`
  - …5 more

[Operation history](https://skmtc.dev/kobaltlabs/apis/kobaltlabs-api/changes/internal/evals/rollout-consistency/preview/get.md)

---

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