---
title: "Review an RL setup without reserving compute"
method: POST
path: "/v1/rl-runs/preview"
tags: ["RL"]
---

# Review an RL setup without reserving compute

`POST /v1/rl-runs/preview`

## Request

- Base URL: `/` (relative, and the document was published on a file host, not at the API’s origin)
- URL: `/v1/rl-runs/preview`
- Auth: HTTP bearer

Authenticates the caller and prepares a server-owned recipe. Preview does not create a workload or reserve compute. An unavailable estimate is not a zero cost estimate. Launchability remains subject to current billing and capacity checks at submission and provisioning.

## Request body

- RLRecipeRequest: Omitted fields use these defaults. Explicit null, unknown or repeated fields are rejected. Model, runtime and commands are selected by the recipe.
  - `recipe_id` 'reasoning-gym-leg-counting'
  - `recipe_version` '1.0.0'
  - `mode` 'evaluate' | 'train'
  - `evaluation_tasks` integer
  - `training_steps` integer
  - `max_cost_usd` number: Deprecated compatibility field. Customer spending limits are not enforced.
  - `seed` integer
  - `include_traces` boolean: Opt in to prompt, model response and verifier text in live task events.

## Response `200`

Success

- RLRunPreview
  - `recipe` RLRecipeDescriptor, required
    - `held_out_measures` string, required
    - `id` string, required
    - `version` string, required
    - `environment_id` string, required
    - `name` string, required
    - `model` string, required
    - `model_revision` string, required
    - `taskset` string, required
    - `modes` string[], required
    - `available` boolean, required
    - `unavailable_reason` string
    - `defaults` RLRecipeDefaults, required
      - `evaluation_tasks` integer, required
      - `training_steps` integer, required
      - `max_cost_usd` number: Deprecated compatibility field. Customer spending limits are not enforced.
      - `seed` integer, required
    - `limits` RLRecipeLimits, required
      - `comparison_tasks_min` integer, required
      - `evaluation_tasks_min` integer, required
      - `evaluation_tasks_max` integer, required
      - `training_steps_min` integer, required
      - `training_steps_max` integer, required
    - `outputs` RLRecipeOutput[], required
      - `name` string, required
      - `description` string, required
  - `configuration` RLRecipeRequest, required: Omitted fields use these defaults. Explicit null, unknown or repeated fields are rejected. Model, runtime and commands are selected by the recipe.
    - `recipe_id` 'reasoning-gym-leg-counting'
    - `recipe_version` '1.0.0'
    - `mode` 'evaluate' | 'train'
    - `evaluation_tasks` integer
    - `training_steps` integer
    - `max_cost_usd` number: Deprecated compatibility field. Customer spending limits are not enforced.
    - `seed` integer
    - `include_traces` boolean: Opt in to prompt, model response and verifier text in live task events.
  - `review_token` string, required: Empty when the runtime is unavailable. Otherwise submit unchanged with the reviewed configuration.
  - `phases` RLRecipePhase[], required
    - `id` 'baseline' | 'training' | 'evaluation' | 'export', required
    - `label` string, required
    - `description` string, required
  - `outputs` RLRecipeOutput[], required
    - `name` string, required
    - `description` string, required
  - `estimate` RLRunEstimate, required
    - `estimator_version` string
    - `catalog_version` string
    - `profile_version` string
    - `router_version` string
    - `provenance` string
    - `customer_price_version` string
    - `status` 'estimated' | 'partial' | 'unavailable', required
    - `reasons` string[], required
    - `valid_until` string, date-time, nullable, required
    - `execution_seconds` object, nullable, required
      - `low` number, required
      - `high` number, required
    - `completion_seconds` object, nullable, required
      - `low` number, required
      - `high` number, required
    - `compute_cost_usd` object, nullable, required
      - `low` number, required
      - `high` number, required
  - `launchable` boolean, required
  - `blocking_reasons` string[], required

## Other responses

- `default`: Error. The JSON error and message fields are stable. Additional fields may provide details. Authentication, rate limits, and transient failures apply to all operations.

## Changes

- **2026-10-01** `ba84c74aeec8`: 1 breaking, 6 info
  - the response property `recipe/defaults/max_cost_usd` became optional for the status `200`
  - the `max_cost_usd` request property default value `5` was removed
  - request property `max_cost_usd` deprecated
  - the `max_cost_usd` response's property default value `5` was removed for the status `200`
  - …3 more
- **2026-10-01** `544fef290a54`: 2 warning, 7 info
  - the `max_cost_usd` request property's max was set to `100.00`
  - the `max_cost_usd` request property's min was set to `1.00`
  - the `max_cost_usd` request property default value `5` was added
  - request property `max_cost_usd` reactivated
  - …5 more
- **2026-09-27** `dcc58d93c2cb`: 1 breaking, 6 info
  - the response property `recipe/defaults/max_cost_usd` became optional for the status `200`
  - the `max_cost_usd` request property default value `5` was removed
  - request property `max_cost_usd` deprecated
  - the `max_cost_usd` response's property default value `5` was removed for the status `200`
  - …3 more
- **2026-09-27** `90c4cb8514af`: 2 warning, 7 info
  - the `max_cost_usd` request property's max was set to `100.00`
  - the `max_cost_usd` request property's min was set to `1.00`
  - the `max_cost_usd` request property default value `5` was added
  - request property `max_cost_usd` reactivated
  - …5 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/nodus-compute/apis/nodus-infrastructure-execution-api/changes/v1/rl-runs/preview/post.md)

---

[API](https://skmtc.dev/nodus-compute/apis/nodus-infrastructure-execution-api.md) - [All operations](https://skmtc.dev/nodus-compute/apis/nodus-infrastructure-execution-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nodus-compute/apis/nodus-infrastructure-execution-api/revisions/a59210899d95?raw)
