GET/api/v1/files
List files
Daily Parquet files for a selection, oldest first. This is the listing Downloads shows after you request a selection.
Auth required. Without sign=true the response is keys and sizes only, and it does not count toward your allowance.
Try it
Loading…
Query parameters
| Name | Notes |
|---|---|
dataset | Required. Repeat for several datasets, for example trades and bbo_1m. |
start_date / end_date | Required. YYYY-MM-DD UTC, inclusive. |
series | Series tickers. * and ? are allowed (KXBTC*). Empty means all series on your plan. |
category | Repeat to keep series in those categories. |
ticker | Market tickers. Selects the series files that hold them. |
cursor / limit | limit defaults to 500, max 1,000. Pass next_cursor back as cursor. |
sign | true adds an hour-long url on each file. New files count toward the monthly allowance. |
A dataset that is not on your plan returns 402 with code: plan_required. A range that is entirely older than your history returns code: history_limited. A mixed range is clamped to the days your plan covers.
curl
curl "https://kalshieye.com/api/v1/files?dataset=trades&start_date=2026-10-12&end_date=2026-10-12&series=KXBTC15M" \
-H "Authorization: Bearer $KALSHIEYE_API_KEY"200 response
{
"selection": {
"datasets": ["trades"],
"start_date": "2026-10-12",
"end_date": "2026-10-12",
"series": ["KXBTC15M"]
},
"total_files": 1,
"total_bytes": 842112,
"next_cursor": null,
"files": [
{
"dataset": "trades",
"date": "2026-10-12",
"series": "KXBTC15M",
"key": "flat/v1/trades/date=2026-10-12/series=KXBTC15M/trades-KXBTC15M-2026-10-12.parquet",
"path": "trades/date=2026-10-12/series=KXBTC15M/trades-KXBTC15M-2026-10-12.parquet",
"filename": "trades-KXBTC15M-2026-10-12.parquet",
"rows": 12040,
"bytes": 842112,
"sha256": "…",
"complete": true
}
]
}path is the key relative to the lake root, which is the path download scripts write on disk. complete: false means that UTC day is still being written. Column definitions are in the data dictionary.