Kraken’s public REST endpoints provide historical market data without authentication. This page covers what’s available, the limits per call, and how to paginate efficiently for bulk collection.Documentation Index
Fetch the complete documentation index at: https://kraken-sandbox.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Available data types
| Data type | Endpoint | Depth | Authenticated |
|---|---|---|---|
| OHLCV candles | GET /0/public/OHLC | Up to 720 candles per call | No |
| Trade ticks | GET /0/public/Trades | Up to 1000 trades per call | No |
| Order book snapshot | GET /0/public/Depth | Up to 500 levels per side | No |
| Grouped book | GET /0/public/GroupedBook | Configurable tick size | No |
| L3 order book | POST /0/private/Level3 | Full book | Yes |
OHLCV candles
TheOHLC endpoint returns candlestick data for a given interval.
| Parameter | Values | Default |
|---|---|---|
pair | Instrument name (e.g. XBTUSD) | Required |
interval | 1, 5, 15, 30, 60, 240, 1440, 10080, 21600 (minutes) | 1 |
since | Unix timestamp — return candles after this time | Oldest available |
[time, open, high, low, close, vwap, volume, count]
Pagination: use the last value from the response as the since parameter in your next call to page forward.
Depth limits:
- Maximum 720 candles per call
- Daily candles (
interval=1440): ~720 days (~2 years) per call - Minute candles (
interval=1): 720 minutes (~12 hours) per call
Trade ticks
TheTrades endpoint returns a time-ordered list of public trades.
| Parameter | Description |
|---|---|
pair | Instrument name |
since | Nanosecond timestamp — return trades after this time |
count | Max trades per call (up to 1000) |
[price, volume, time, buy/sell, market/limit, miscellaneous, trade_id]
Pagination: use last as the since value in the next call. The since value is in nanoseconds.
Rate limit note: the Trades endpoint is public and subject to IP-based rate limits. For bulk historical collection, introduce a delay between requests (100–200ms) to avoid throttling.
Order book snapshots
TheDepth endpoint returns the current order book at the time of the request. It is not a historical endpoint — it reflects the live state.
Level3 endpoint:
OrderID values, enabling reconciliation with ExecutionReport data from FIX or the executions WebSocket channel.
Futures historical data
Futures provides dedicated historical endpoints under the Futures REST API:| Data | Endpoint |
|---|---|
| OHLCV candles | GET /api/charts/v1/{tick_type}/{symbol}/{resolution} |
| Trade history (fills) | GET /derivatives/api/v3/history |
| Historical funding rates | GET /derivatives/api/v3/historicalfundingrates |
Building a backtesting dataset
A practical approach for collecting a clean historical dataset:Collect OHLCV for your timeframe
Start with daily candles to get a broad picture, then drill into minute candles for the periods you need. Use the pagination pattern above.
Augment with trade ticks for microstructure
Trade ticks give you the actual execution prices and sizes. Useful for modelling slippage and for tick-by-tick backtesting.
Validate against VWAP
Each OHLC candle includes VWAP. Cross-check your collected trade ticks against the VWAP to verify completeness and catch any pagination gaps.
Kraken does not provide a bulk historical data dump or websocket replay service. For very deep history (years of tick data) consider supplementing with third-party data providers.
Rate limits for data collection
Historical data endpoints are public but rate-limited per IP. Recommended safe intervals:| Endpoint | Safe delay between calls |
|---|---|
OHLC | 1 second |
Trades | 1–2 seconds |
Depth | 1 second |
Related guides
API comparison
FIX and WebSocket for real-time market data capture
Rate limits
IP-based rate limits for public data endpoints
WebSocket introduction
Stream live market data for forward capture alongside historical backfill