Sign in, then create a token from the API token page
TOKEN="sk_live_..."Filter by dataset, date, exchange, instrument, and symbol
curl -H "Authorization: Bearer $TOKEN" \
"https://api.quantum-edge.app/api/datasets/trade/files?exchange=binance&symbol=BTCUSDT"Use the returned downloadUrl with the same token
curl -L -H "Authorization: Bearer $TOKEN" \
"https://api.quantum-edge.app/api/download/consolidated%2Fproduction%2Fdate%3D2026-06-24%2Fhour%3D14%2Fmsg%3Dtrade%2Finst%3Dlinear_perp%2Fexch%3Dbinance%2Fsym%3DBTCUSDT%2Fhourly.parquet" \
-o hourly.parquetPublic catalog endpoints are open; files and token management require authentication
| GET /api/datasets | List available production datasets |
| GET /api/datasets/:dataset/files | List files for bbo, trade, aggtrade, liquidation, fundingrate, openinterest, kline, or ticker24h |
| GET /api/datasets/:dataset/filters | Fetch available dates and hours |
| GET /api/download/:path | Download one file or resolve a wildcard pattern |
| POST /api/tokens | Create an API token for programmatic access |
All default listings stay under consolidated/production
date=2026-06-24
hour=14
exchange=binance
instrument_type=linear_perp
symbol=BTCUSDT
limit=100Raw collection paths and non-production prefixes are not exposed by the default API routes.
List files, then fetch the first matching Parquet object
import requests
TOKEN = "sk_live_..."
API_BASE = "https://api.quantum-edge.app"
resp = requests.get(
API_BASE + "/api/datasets/trade/files",
headers={"Authorization": "Bearer " + TOKEN},
params={
"exchange": "binance",
"symbol": "BTCUSDT",
"limit": 10,
},
)
resp.raise_for_status()
file_url = resp.json()["files"][0]["downloadUrl"]
data = requests.get(
API_BASE + file_url,
headers={"Authorization": "Bearer " + TOKEN},
)
data.raise_for_status()Use a bearer token for downloads and token management
Create an API token from the dashboard, copy it once, and send it as an Authorization header.
Authorization: Bearer $TOKENDownloads are counted against the account quota shown on the usage page.