---
title: "Submit Backtest"
method: POST
path: "/v1/backtests"
tags: ["backtests"]
---

# Submit Backtest

`POST /v1/backtests`

## 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/backtests`
- Auth: none declared

Submit a backtest -- commit-then-publish flow.

## Headers

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

## Request body

- SubmitBacktestRequest
  - `strategy_id` string, required
  - `start_date` string, nullable
  - `end_date` string, nullable
  - `engine` string
  - `backtest_config` BacktestConfig: Validated backtest financial settings with existing engine defaults. ``as_overrides`` preserves which values the caller explicitly supplied so API, database, and queue payloads can remain sparse while both execution engines resolve the same defaults from this model.
    - `init_cash` number: Starting capital, in dollars (default 10000).
    - `fees` number: Fee rate per fill, as a decimal (default 0.00045).
    - `slippage` number: Adverse slippage per fill, as a decimal (default 0.00045).
    - `leverage` number: Account margin cap (max 100). Positions are sized by the pipeline; this only bounds borrowing. Default 20.
  - `commit_id` string, nullable
  - `version` string, nullable
  - `experiment_id` string, nullable
  - `trial_id` string, nullable
  - `window_policy` 'consumed_eras' | 'price_depth'

## Response `201`

Successful Response

- BacktestResponse
  - `id` string, required
  - `strategy_id` string, required
  - `status` string, required
  - `commit_id` string, nullable
  - `sequence_number` integer, nullable
  - `commit_message` string, nullable
  - `source_hash` string, nullable
  - `data_fingerprint` string, nullable
  - `start_date` string, nullable
  - `end_date` string, nullable
  - `engine` string, nullable
  - `backtest_config` object, nullable
  - `experiment_id` string, nullable
  - `trial_id` string, nullable
  - `progress` number, nullable
  - `metrics` object, nullable
  - `queued_at` string, nullable
  - `started_at` string, nullable
  - `completed_at` string, nullable
  - `error_message` string, nullable
  - `execution_time` number, nullable
  - `cancel_requested_at` string, nullable
  - `cancelled_at` string, nullable
  - `remaining` object, nullable
  - `quota` object[], nullable
  - `warnings` object[], nullable
  - `org_id` string, nullable
  - `strategy_name` string, nullable
  - `window_policy` string, nullable
  - `coverage_notes` object[], nullable
  - `window` object, nullable

## 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)
