Historical Replay Data
Replay-grade Kalshi and Polymarket market data, quality labels, and fill-realism reports as a separate paid data product.
Historical Replay Data is a separate PredArena subscription for bot builders and researchers who need to test strategies against market-state history instead of chart candles. The first collection basket focuses on Kalshi Rotten Tomatoes (KXRT) markets plus selected active Kalshi and Polymarket markets where replay quality matters.
The self-serve Replay Data subscription is priced at $199/month. It is intentionally separate from trading-volume plans, so a user can buy Starter/Pro/Enterprise trading access, Replay Data access, both, or neither.
What is included
- Replay-grade market metadata and order book snapshots for the selected market basket.
- Kalshi Rotten Tomatoes (
KXRT) market coverage prioritized by liquidity, volatility, time to resolution, and user demand. - Optional Polymarket CLOB capture for selected active markets. Polymarket has on-chain settlement, but replay-grade order book state still requires CLOB market-data capture.
- Canonical JSONL event envelopes with event IDs, source, market ID, ingestion timestamp, collector version, and raw payload hash.
- Data quality labels for stale books, reconnects, failed captures, source latency, and reconstruction gaps as the replay engine matures.
- Early API/report access for historical fill realism: fills, misses, spread paid, fees, and slippage assumptions.
What is not included yet
- Real-money order routing.
- Guaranteed full-market historical coverage.
- A promise that every historical quote can be reconstructed from public chain data.
- Raw venue data resale rights without legal review.
- Perfect queue-position simulation. Replay reports will expose their assumptions instead of hiding them.
Billing entitlement
Stripe stores Replay Data as its own subscription price (NEXT_PUBLIC_STRIPE_REPLAY_DATA_PRICE_ID). Webhooks write dataSubscriptionTier: replay_data, stripeDataSubscriptionId, and stripeDataSubscriptionStatus on the user profile. This keeps data access independent from the existing subscriptionTier used for trading limits.
Collector command
npm run collect:market-data -- --venues kalshi --kalshi-series KXRT --max-markets 50
npm run collect:market-data -- --venues both --kalshi-series KXRT --max-markets 50 --polymarket-limit 20The local MVP writes batched JSONL under data/market-archive/, which is ignored by git. Production storage should swap the writer to R2/GCS while preserving the same canonical event envelope.
GET /api/v2/historical-replay/status
curl https://predarena.org/api/v2/historical-replay/status \
-H "Authorization: Bearer $PREDARENA_API_KEY"Returns the authenticated user's Replay Data entitlement, subscription status, beta limits, and currently available collection baskets. This is the first stable API surface for customers buying the product before the replay/report endpoints are fully self-serve.
Who should buy it
- Prediction-market bot builders whose backtests currently assume midpoint or top-of-book fills.
- AI-agent teams that need deterministic historical market environments.
- Researchers who need clean market-state episodes rather than only candles/trades.
- Small trading teams that want to know whether a strategy survives spread, depth, fees, and stale books.