---
title: "Start Run"
method: POST
path: "/api/runs"
tags: ["runs"]
---

# Start Run

`POST /api/runs`

Start a new simulation run.

## Request body

- StartRunRequest — Request to start a new simulation run.
  - `run_mode` 'backtest' | 'live' | 'alpaca_paper' | 'alpaca_live' — 'backtest' runs historical data instantly; 'live' schedules real-time simulated paper trading; 'alpaca_paper'/'alpaca_live' use Alpaca broker
  - `simulation_date` string, date, nullable — Date to simulate trading for (single day mode)
  - `start_date` string, date, nullable — Start date for multi-day simulation
  - `end_date` string, date, nullable — End date for multi-day simulation
  - `max_concurrent_days` integer — Max concurrent day simulations for multi-day mode
  - `initial_cash_balance` number — Actual cash deposited in brokerage (per day for multi-day)
  - `leverage_multiplier` number — Intraday margin multiplier (e.g. 4x)
  - `tickers` string[] — List of ticker symbols to trade
  - `llm_providers` string[] — LLM provider(s) to use. Multiple providers run in parallel for comparison.
  - `qwen_baseline_address` string, nullable — host:port for Qwen Baseline vLLM server (required if qwen-baseline selected)
  - `qwen_trading_rl_address` string, nullable — host:port for Qwen Trading RL vLLM server (required if qwen-trading-rl selected)
  - `deepseek_address` string, nullable — host:port for DeepSeek vLLM server (required if deepseek selected)
  - `broker_account_id` string, nullable — ID of the BrokerAccount to use (required for alpaca_paper/alpaca_live modes)
  - `stop_loss_pct` number, nullable — Stop loss as % of initial cash. Liquidates all positions when breached. None or 0 to disable.
  - `best_of_n_enabled` boolean — Enable Best of N mode - run LLM N times and judge to select best response
  - `n_candidates` integer — Number of candidate responses to generate in Best of N mode
  - `analysis_interval_minutes` integer — Minutes between analysis steps
  - `market_open` string, time — Market open time (first LLM decision step)
  - `market_close` string, time — Session force-close cutoff (prompt mandate/countdown render from this)

## Response `200`

Successful Response

- StartRunResponse — Response after starting a run.
  - `runs` object, required — Map of LLM provider to run ID

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/standardsignal/apis/trading-simulation-api.md) · [All operations](https://skmtc.dev/standardsignal/apis/trading-simulation-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/standardsignal/trading-simulation-api/revisions/8f283e941dbf/schema)
