Skip to main content
Backtesting is an add-on with its own API key. How far back a backtest can start depends on how the add-on is billed: The lookback rolls forward every day. It applies to start only: once a backtest starts inside your lookback it can run up to today. A start earlier than your lookback is refused before the backtest runs:
Every response carries your earliest allowed start in a header, so code can set it rather than hard-code it:

Rate limit

Each backtest key may start 10 backtests per minute. Past that you get 429 with a Retry-After header. The limit is separate from your volatility data key.

Run time

A strategy that looks once a day typically returns in a few seconds, even over the full five years of history. Each run has a hard limit of 120 seconds inside the engine. The settings that cost the most time are:
  • clock.decision_hour_utc: null, which looks every hour instead of once a day and loads about 24 times as much data. Keep hourly runs to a few months.
  • structure.expiry.by: "listed" with a high clock.max_dte, which brings far-dated contracts into every decision. Lower max_dte to what the strategy actually trades.
Set your HTTP client’s timeout to at least 180 seconds.

Errors