Limitless Historical Data Guide cover

Limitless Historical Data: Candles, Orderbook & Trade History for Quants

Where to get Limitless Exchange historical data: candles, orderbook depth, and trade history for Base's on-chain prediction market. What the official API covers, what it doesn't, and how on-chain matching actually works.

Written by Convex Lake Research Team
· 8 min read
#limitless#historical-data#candles#orderbook#quant

Limitless is a central-limit-order-book prediction market built natively on Base, where orders match on-chain rather than off-chain with later settlement — a meaningfully different design from Polymarket's or Predict.fun's. That difference shows up directly in the data: every fill is itself a confirmed Base transaction, and the official API is built for live trading first, with historical and bulk analytics access a clear second priority.

Written for quants, researchers, and developers who want programmatic access, not a trading dashboard.

What Limitless historical data actually includes

Limitless's own developer docs (docs.limitless.exchange) organize the REST API into Authentication, Markets, Trading, System, Partner Accounts, and Portfolio. Historical prices exist, but they're listed under Trading alongside order management, not under any dedicated analytics or historical-data section — and there's no candlestick or OHLC endpoint, no bulk historical export, and no stated retention or depth limit anywhere in the official reference. That's a real, checkable gap, not an assumption.

What actually exists, pieced together from the live API and real captured data: each market runs separate Yes and No order books, not one shared book — a trade on one side needs its price read against that side's own book, not inferred from the other. Markets cover short-duration crypto Up/Down windows (hourly and daily) across BTC, ETH, BNB, DOGE, SOL, XRP, HYPE, XMR, and SUI, plus daily windows on real equities and ETFs (AMZN, GOOGL, META, TSLA, SPY, LMT, and SpaceX-linked contracts). Markets settle fully on-chain, with no liquidation risk on the exchange's side.

Limitless historical data schema. Convex Lake fields; see /docs for the current reference.

Data typeKey fieldsTypical use
Orderbookbids/asks per outcome token, price, size, timestampSlippage modeling, liquidity research
Tradestimestamp, price, size, maker/taker sideVolume analysis, execution research
Candlestimestamp, open, high, low, close, volume per marketPrice history, calibration research
Resolution metadataoutcome, resolution timestamp, oracle used (Pyth or Chainlink Data Streams, depending on market type)Calibration studies, resolution-mechanism research

Field names reflect Convex Lake's current schema at time of writing. Check convexlake.com/docs for the live reference before integrating.

Limitless's official API vs. third-party providers

The official REST API sits at api.limitless.exchange, with a WebSocket feed at wss://ws.limitless.exchange for real-time orderbook and position updates. Public endpoints — market browsing, orderbook — need no credentials; authenticated endpoints use scoped API tokens with HMAC-SHA256 request signing (legacy static API-key headers are deprecated and no longer issued). Rate limits aren't published as specific numbers; exceeding one returns an HTTP 429 with a recommendation to honor Retry-After or back off exponentially, and the docs point higher-limit requests to Limitless's own support email.

That covers live trading and real-time streaming well. It's thin on exactly what a backtest or calibration study needs: no documented bulk historical export, no candle-interval reference, no stated history depth. If your question is "give me every BTC hourly market's full price history for the last three months," the official docs don't point to a direct answer — you're left querying on-chain event logs yourself, or going through a third party.

Comparing Limitless historical data sources

Source typeAccess requirementOrderbook depthSetup effortBest for
Limitless official APIScoped API token (HMAC-signed); public endpoints need noneLive book; historical prices exist but no bulk export or candle endpointYou build storage, pagination, backfill logicTeams building directly against live trading, not historical research
On-chain subgraphs (community-run)Self-service, no Limitless accountFull depth, reconstructed from on-chain events (trades, positions, splits/merges)Requires running or querying a GraphQL indexerTeams comfortable working from raw on-chain event data
Third-party aggregatorsAccount with the providerVaries — often price/odds snapshots, not full depthMinimal, pre-builtQuick exploratory pulls, not execution-sensitive backtests
Convex LakeAPI key, self-serviceBatch and real-time orderbook snapshots, trades, candlesREST API, documented endpointsResearch spanning Limitless plus other prediction and crypto-options venues under one schema

How Limitless's on-chain matching and resolution affect the data

Limitless matches orders on-chain on Base — each fill is itself a confirmed Base transaction, not an off-chain match settled later. Base's standard block time is 2.0 seconds, though Base's Flashblocks feature streams 200ms soft preconfirmations within that window, live on mainnet. That architecture detail matters for anyone reconstructing execution timing from this data: a trade's recorded timestamp reflects on-chain confirmation, and two fills in the same block can appear to happen "simultaneously" even when they didn't.

Resolution runs through two different oracles depending on market type. Pyth Network is the primary price oracle for most of Limitless's data-feed markets. Chainlink Data Streams was added in June 2026, specifically carved out for short-duration crypto markets — which were running around 19,000 markets a week by mid-2026. Which oracle actually prices a given market depends on its duration, not a single platform-wide choice; mixing both market types into one calibration sample without tracking which resolved against which oracle conflates two different resolution processes.

Limitless's market structure: one book per outcome, not one per market

A Limitless market isn't one order book — it's two, one for the Yes token and one for the No token, and a contract's price only means something read against its own side's book. This isn't a minor implementation detail: reconstructing a fill or simulating a trade against the wrong side's book produces a result that looks plausible but is simply wrong. Convex Lake's own research confirms this matters in practice — a prior study simulating realistic trade execution on Limitless found that getting this convention backwards for even one side of a market produced nonsensical, order-of-magnitude-wrong results before the fix (see our copytrading slippage research, which used real Limitless order-book archives for exactly this kind of reconstruction).

The same research found Limitless's hourly crypto markets have genuinely thin order books outside a liquid core: near-touch depth of a handful of shares is common in the back half of a market's life, with the next real resting liquidity sitting far out near the contract's extremes. Anyone building execution-sensitive tooling on Limitless data should expect that pattern, not assume continuous, evenly-distributed depth just because a market is listed.

Downloading and querying Limitless historical data via API

A typical query flow through Convex Lake:

  1. Get an API key. Self-service, no Base wallet or Limitless account needed. Generate one on the API Keys page and send it as x-api-key on every request.
  2. Pick a market. Requests are scoped with exchange=limitless plus a market identifier and date or timeframe.
  3. Pull the file. Download endpoints return the requested trades, orderbook, or candle file for that market and date.
  4. Store and join. Land files in your own storage and join on market ID across trades, candles, and orderbook data.

A minimal example against Convex Lake's orderbook endpoint:

curl -O -J -H "x-api-key: do_YOUR_KEY" \
  "https://api.convexlake.com/orderbook?exchange=limitless&market=<market-id>&date=2026-09-15"

Field names and exact query parameters differ slightly by endpoint. Check the API docs for the current reference before building against it.

Common research and backtesting use cases

Calibration research uses candle price history through resolution to check whether Limitless's pricing adds real information over an uninformed guess, and whether that holds equally across its Pyth- and Chainlink-resolved markets. Execution research simulates realistic order fills against real order-book depth rather than assuming a perfect fill at the midpoint — directly relevant given how thin Limitless's books can get late in a market's life. Cross-venue comparison sets Limitless's BTC/ETH/BNB pricing against Kalshi, Polymarket, and Predict.fun's equivalent short-dated crypto markets, since all four run structurally different designs on the same underlying asset. On-chain timing research looks at how Base's block time and Flashblocks preconfirmations affect the realistic latency of acting on or reacting to a trade.

Data quality pitfalls to watch for

Yes and No are separate books. Reading a trade's price against the wrong side's order book produces a plausible-looking but wrong result — confirmed directly in Convex Lake's own research before it was caught and fixed.

Thin depth late in a market's life. Near-touch liquidity can collapse to a handful of shares well before a market resolves, with the next real resting orders sitting far out near the extremes. A spread statistic or simulated fill price computed without checking actual depth can be badly misleading.

Two different oracles resolve two different market types. Mixing Pyth-resolved and Chainlink-resolved markets into one calibration sample without tracking which is which conflates a different-latency, different-source resolution process.

On-chain confirmation timing, not a trading-engine timestamp. A fill's recorded time reflects Base block confirmation. Two fills in the same block can look simultaneous even when their actual order differed.

No bulk historical export from the official API. Building a large backtest means either querying on-chain logs yourself or going through a third party — budget for that rather than expecting a single bulk download endpoint.

Glossary: key terms in Limitless historical data

CLOB (central limit order book) is Limitless's market structure: maker limit orders sit on the book until a taker order matches against them. On-chain matching means each fill is itself a confirmed blockchain transaction, not an off-chain match settled later — Limitless's design, as opposed to Predict.fun's off-chain-match/on-chain-settle model. Flashblocks are Base's 200ms soft preconfirmations, streamed within the standard 2.0-second block interval. Pyth Network and Chainlink Data Streams are Limitless's two resolution oracles, split by market duration. Calibration measures how closely a market's implied probability matches its actual resolution rate across many markets.

FAQ

Does Limitless's official API provide historical data? Not in a documented, bulk sense. Historical prices exist under the Trading endpoint group, but there's no candlestick/OHLC endpoint, no bulk export, and no stated retention limit. Third-party providers, including Convex Lake, fill that specific gap.

Do I need a Base wallet to get Limitless historical data from a third-party provider? No. That requirement applies to Limitless's own trading API (EIP-712 signatures against a Base-deployed contract) and to trading on the platform itself. A provider API key doesn't require a wallet.

Why does a market have two order books instead of one? Limitless prices Yes and No as separate tokens, each with its own book. A contract's price only means something read against its own side — reading it against the wrong book produces a plausible but incorrect result.

How are Limitless markets resolved? Depends on the market. Pyth Network is the primary oracle for most data-feed markets. Short-duration crypto markets added Chainlink Data Streams in June 2026 specifically for that use case.

How far back does Limitless historical data go? Limited by when a given provider started capturing it — the official API doesn't document a retention window, and on-chain history is only as complete as someone's indexer has captured since Limitless's own launch.

Getting started with Convex Lake's Limitless historical data

Convex Lake covers Limitless alongside Kalshi, Polymarket, Predict.fun, and Deribit under one API, batch and real-time: orderbook snapshots, trade history, candle data. One schema instead of stitching together five. See the API docs for the current endpoint reference, or get in touch for access.