GET /api/v1/history Bearer
Pull stored rows for one symbol and time window.
History is request/response: send a start and end time, get rows back oldest first, then the request ends. Use it for backfills, research queries, and reconnect recovery after a live stream drops.
Large ranges are paginated by time. Responses cap at 200,000 rows. When that cap is hit, the response includes has_more: true and next_start. Pass next_start back as start to get the next page.
Parameters
| Param | Type | Description | |
|---|---|---|---|
| exchange | string | required | Venue exchange name (e.g. binance, bybit, okx, coinbase). |
| market | string | required | Market type (spot or perpetual). |
| symbol | string | required | Exchange symbol. |
| event_type | string | required | ohlcv or funding_rate. |
| start | time | required | Inclusive lower bound. ISO date, RFC3339, or Unix ms. |
| end | time | required | Exclusive upper bound. Must be after start. |
| interval | string | optional | OHLCV bars only. Default 1m. (1m, 5m, 15m, 1h, 4h, 1d) |
| limit | int | optional | Max rows per call. Default and hard cap 200,000. |
Response shape
has_more and next_start only appear when another page is available.
{
"exchange": "binance",
"market": "perpetual",
"symbol": "BTCUSDT",
"event_type": "ohlcv",
"interval": "1m",
"data": [
{"open_time": 1704067200000, "open": 42100, "high": 42300, ...}
],
"count": 1440,
"has_more": true,
"next_start": "2024-01-02T00:00:00Z"
}Try it
import requests params = { "exchange": "binance", "market": "perpetual", "symbol": "BTCUSDT", "event_type": "ohlcv", "interval": "1m", "start": "2024-01-01", "end": "2024-02-01", } r = requests.get( "https://dackta.com/api/v1/history", params=params, headers={"Authorization": "Bearer YOUR_TOKEN"}, ) r.raise_for_status() print(r.json()["data"][:5])