Guides / Orderbook History

ETH Orderbook History — Kalshi & Polymarket Up/Down Markets (5m–24h)

ETH Up/Down orderbook history is the record of what the book actually looked like — every price level and its size, on both sides, timestamped — for Ethereum's Up/Down markets on Kalshi and Polymarket. Last-price series tell you where a market ended up. Orderbook history tells you whether you could have traded there, at what size, and at what cost. Those are different questions, and only the second one is answerable from depth data.

Intervals covered

ProbSights indexes ETH Up/Down across all five contract intervals, so the same query shape works whether you are testing a 5-minute scalp or a daily directional view.

Contract intervalWhat it means for ETH Up/Down
5mResolves every 5 minutes. Thinnest books; spread is usually the dominant cost.
15mResolves every 15 minutes. Enough depth to test size without moving the book much.
1hHourly resolution. The most consistently quoted interval across both venues.
4hFour-hour resolution. Slower drift, fewer independent observations per day.
24hDaily resolution. Closest to a directional bet; overnight gaps matter most here.

Contract interval vs. snapshot granularity

These are two different things, and mixing them up is the usual reason a backtest looks wrong. The contract interval (5m through 24h) is a property of the market itself — how often that series resolves. The snapshot granularity is how often ProbSights recorded the book, set with the granularity query parameter, which accepts 1m or 5m. A 24h contract sampled at 1m gives you roughly 1,440 snapshots across its life; a 5m contract sampled at 5m gives you a handful. Pick the granularity from the resolution your strategy needs, not from the contract interval.

What a snapshot contains

Both venues are normalized, but they quote differently and the response keeps that distinction rather than flattening it into a lossy common shape. Polymarket snapshots carry bids and asks; Kalshi's carry yes_bids and no_bids, because a Kalshi No bid is the other side of the Yes book.

FieldMeaning
market_idNormalized market identifier, stable across venues
timestampUnix seconds the snapshot was taken
bids / asksPolymarket: arrays of { price, size } levels
yes_bids / no_bidsKalshi: arrays of { price, size } levels
best_bid / best_askTop of book (Polymarket)
best_yes_bid / best_yes_askTop of book (Kalshi)
midMidpoint between best bid and best ask
spreadBest ask minus best bid, in cents

Querying it

Find the market you want with search (or /api/v1/search/markets?coin=ETH), then pull its book history:

GET /api/v1/historical/polymarket/orderbook
      ?market_id=<market_id>
      &granularity=1m
      &start_time=1737331200
      &end_time=1737417600
      &limit=1000

Swap polymarket for kalshi to read the same window from the other venue. start_time and end_time are Unix seconds. Responses come back as { snapshots, pagination }; when pagination.has_more is true, pass pagination.pagination_key back as pagination_key to continue. Do not page by bumping timestamps — snapshots can share a second, and you will silently drop or double-count rows.

What the depth is actually good for

Access

Free accounts get 1m and 5m orderbook charts in the historical data tool. ETH Up/Down history across 5m–24h intervals is on the Pro plan; adding Kalshi alongside Polymarket with a 60-day window is Builder.

Related

Related guides

Data from Kalshi and Polymarket. Search live API docs Pricing