Use this file to discover all available pages before exploring further.
Base URL:http://data.graylayer.techAll data endpoints require an x-api-key header. Timestamps are UTC RFC 3339 (e.g. 2026-03-26T12:00:00Z). Results are always sorted ts ascending; limit truncates after sort.
List all tickers collected for an exchange. Use prefix to narrow results — useful when you know the series you want (e.g. KXBTC15M) but not every individual contract.
Get snapshot rows — full orderbook state at discrete points in time. Each row represents the complete book at that moment (not a delta). Multiple rows at the same ts represent different price levels.
Get delta rows — incremental changes to the orderbook. A positive quantity_delta means a level was added or increased; negative means it was reduced or removed. Reconstruct the full book by applying deltas to a snapshot.
sequence is the exchange-assigned sequence number for ordering events within the same timestamp. quantity_delta is a signed decimal string — negative values mean that quantity was removed from that level.
Kalshi tickers follow patterns like KXBTC-25 (event series) or KXBTC15M-26MAR281530-50 (15-minute micro contracts).
# List all Kalshi tickerscurl -H "x-api-key: your_key" \ http://data.graylayer.tech/api/kalshi/tickers# Filter to a specific seriescurl -H "x-api-key: your_key" \ "http://data.graylayer.tech/api/kalshi/tickers?prefix=KXBTC15M"# Snapshot for a short-dated BTC contractcurl -H "x-api-key: your_key" \ "http://data.graylayer.tech/api/kalshi/snapshots/KXBTC15M-26MAR281530-50?limit=50"# Deltas over a 1-hour windowcurl -H "x-api-key: your_key" \ "http://data.graylayer.tech/api/kalshi/deltas/KXBTC-25?start_ts=2026-03-26T14:00:00Z&end_ts=2026-03-26T15:00:00Z"# Full day of deltascurl -H "x-api-key: ak_prod_abc123def456" \ "http://data.graylayer.tech/api/kalshi/deltas/KXBTC-25?start_ts=2026-03-26T00:00:00Z&limit=10000"
Polymarket tickers are market slugs — lowercase hyphenated strings matching the market URL on polymarket.com.
# List all recorded Polymarket slugscurl -H "x-api-key: your_key" \ http://data.graylayer.tech/api/polymarket_us/tickers# Filter to election marketscurl -H "x-api-key: your_key" \ "http://data.graylayer.tech/api/polymarket_us/tickers?prefix=will-donald"# Latest snapshot for a marketcurl -H "x-api-key: your_key" \ "http://data.graylayer.tech/api/polymarket_us/snapshots/will-donald-trump-win-the-2024-us-presidential-election?limit=1"# Historical snapshots over a time rangecurl -H "x-api-key: your_key" \ "http://data.graylayer.tech/api/polymarket_us/snapshots/bitcoin-above-100000-on-december-31?start_ts=2026-03-01T00:00:00Z&end_ts=2026-03-02T00:00:00Z"# Orderbook deltas for a crypto marketcurl -H "x-api-key: your_key" \ "http://data.graylayer.tech/api/polymarket_us/deltas/will-bitcoin-reach-150k-in-2026?start_ts=2026-03-26T12:00:00Z&limit=500"# Deltas for a political marketcurl -H "x-api-key: ak_prod_abc123def456" \ "http://data.graylayer.tech/api/polymarket_us/deltas/will-the-us-enter-a-recession-in-2026?start_ts=2026-03-01T00:00:00Z"
To reconstruct the book at a point in time and track it forward:
Fetch a snapshot just before your target time to get the full book state
Fetch deltas starting at that snapshot’s ts to replay changes forward
Apply each delta: add quantity_delta to the existing quantity at (side, price); remove the level if quantity reaches zero
# 1. Get book state just before 14:00curl -H "x-api-key: your_key" \ "http://data.graylayer.tech/api/kalshi/snapshots/KXBTC15M-26MAR281500-50?end_ts=2026-03-26T14:00:00Z&limit=500"# 2. Replay changes from 14:00 onwardcurl -H "x-api-key: your_key" \ "http://data.graylayer.tech/api/kalshi/deltas/KXBTC15M-26MAR281500-50?start_ts=2026-03-26T14:00:00Z"