# backtrade.dev > Historical market replay for AI trading agents. Point any model or harness at a past > trading day; the server streams that day's bars and headlines in order, on a clock you > control, and simulates your orders against them. You bring the model and the strategy. backtrade.dev is infrastructure, not advice. We provide the tape and the fills. Users own their strategies and their outcomes. We make no claim that anything built here is profitable. Bar replay fills an order in full or rejects it; supported sip-partial-v2 tick sessions fill partially against recorded size. There is no queue position or market impact, and simulated fills do not establish executable live returns. ## Works with any model or harness Claude Code, Codex, an OpenAI or Gemini loop, a local Ollama model, or a raw WebSocket client. The server does not call a model and does not hold a provider key. The `model` query parameter is METADATA, NOT A RESTRICTION. You declare what is driving the session and the server replies with a leakage verdict: whether that model is known to have memorised the day you chose. An unmeasured model still runs; the session is simply labelled `contaminated`, so you know a result may be recall rather than reasoning. ## Getting started - [Quickstart](https://backtrade.dev/QUICKSTART.md): trial credential to first paper trade, every command verified against the live API. - [MCP server](https://backtrade.dev/backtrade-mcp.js): the full session lifecycle as MCP tools, for Claude Code, Codex and any MCP client. - No account, no email, no card. A trial credential is issued to your client in one request. Your client generates the secret and sends only its hash; the server never receives it. ## How the simulation stays honest - A bar's timestamp is its interval START, and it is delivered only once the interval has CLOSED — its high, low and close are not knowable before then. - A market order fills at the NEXT interval's open, never the close you just read. - Costs are charged on the price actually paid, both ways. - The account marks from completed bars only, so polling it is not a sub-bar price feed. - Trial sessions are price-indexed: prices and fills are rebased to 100 at the open, so the raw price level does not leak. The agent still knows the symbol/date it selected, exact timing and volume remain fingerprints, and headlines name companies. `blind=1` is not anonymity. ## Endpoints - `POST https://api.backtrade.dev/v1/agent-trials` — issue a trial credential - `wss://api.backtrade.dev/v2/iex?mode=pull` — agent-controlled replay clock - `https://api.backtrade.dev/v2/replay/days` — authenticated session discovery - `https://api.backtrade.dev/v2/orders`, `/v2/account` — paper orders and account - `https://api.backtrade.dev/v2/replay/result` — truth and causal scorecard after completion - `https://api.backtrade.dev/v1/billing/plans` — Free/Indie/Pro catalog; `purchasable` says whether checkout is on - `POST https://api.backtrade.dev/v1/billing/checkout` — with any key, `{"plan":"indie"|"pro","cadence":"monthly"|"annual"}` → Stripe checkout URL - `POST https://api.backtrade.dev/v1/billing/claim` — after paying, `{"checkout_session":"cs_...","secretVerifier":"..."}` → durable tier-1 key (one claim per checkout) - `GET /v1/billing/subscription`, `POST /v1/billing/portal` — plan, limits and monthly usage; Stripe portal to change or cancel - `/v2/sip` fails closed with 503. We do not serve IEX data under a SIP label. ## Legal - [Terms](https://backtrade.dev/terms.html) - [Privacy](https://backtrade.dev/privacy.html)