---
title: "Preview Deploy"
method: POST
path: "/v1/deployments/preview"
tags: ["deployments"]
---

# Preview Deploy

`POST /v1/deployments/preview`

## Request

- Base URL: `https://api.usekeel.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.usekeel.io/v1/deployments/preview`
- Auth: none declared

Preview the auto-derived schedule and universe hygiene for a strategy.

## Headers

- `Authorization` string, nullable
- `X-Org-Id` string, nullable

## Request body

- DeployPreviewRequest
  - `strategy_id` string, required
  - `tranching` object, nullable: Optional tranche schedule block to preview — the same raw shape DeployLiveRequest accepts. A valid block populates the tranche_* response fields (and derived_schedule becomes the tranche cron the deploy would write); an invalid block is a 422 with the exact parse/derive reason, so the wizard can show it inline.
  - `deployment_id` string, nullable: Optional deployment to preview an UPDATE for (the Update-Live dialog). Must belong to the caller's org (404 otherwise) and reference strategy_id (422 otherwise). Its carried tranching block joins the schedule derivation exactly as update_live's re-derivation would use it, so a tranched deployment's update preview shows the tranche cron rather than a spurious anchor-cron schedule change. Block precedence: an explicit `tranching` in this request > the deployment's carried block > none.

## Response `200`

Successful Response

- DeployPreviewResponse
  - `strategy_name` string, required
  - `timeframe` string, nullable
  - `bar_offset` string, nullable
  - `derived_schedule` string, nullable
  - `schedule_description` string, nullable
  - `universe_warnings` UniverseWarning[], nullable
    - `symbol` string, required
    - `reason` 'DELISTED' | 'STALE', required
    - `detail` string, required
  - `universe_size` integer, nullable
  - `tranching_available` boolean, required
  - `maker_available` boolean, required
  - `tranche_event_times` string[], nullable
  - `tranche_schedule_description` string, nullable
  - `tranching_block` object, nullable
  - `execution_style_block` object, nullable
  - `known_issues` KnownIssueRef[], nullable
    - `id` string, required
    - `summary` string, required
  - `live_window_warnings` LiveWindowWarning[], nullable
    - `code` 'LIVE_WINDOW_SHORTER_THAN_TRADES', required
    - `message` string, required
    - `backtest_run_id` string, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/usekeel/apis/keel-api.md) · [All operations](https://skmtc.dev/usekeel/apis/keel-api/llms.txt) · [OpenAPI document](https://skmtc.dev/usekeel/apis/keel-api/revisions/3191ca10b0ab?raw)
