REST API Introduction
The CryptoHFTData REST API gives you direct access to our cryptocurrency market data. You do not need the Python SDK. Use the REST API if you use a different programming language or if you prefer to send HTTP requests directly.
API Endpoint
Base URL: https://api.cryptohftdata.com/v1
Download Endpoint: GET /download
Versions, Errors & Rate Limits
Use the /v1 base URL for stable integrations. If we make a change that is not backward compatible, we put it in a new major path. When we retire an operation, we publish migration instructions. We also send the Deprecation, Sunset, and successor Link headers at least 180 days before we remove the operation.
A JSON error contains a human-readable error and a stable machine-readable code. Anonymous downloads have a limit of 60 requests for each 60-second window. Read the RateLimit, RateLimit-Policy, RateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset headers. If you receive HTTP 429, wait for the number of seconds in Retry-After. Then send the request again.
Data Structure & File Paths
We divide all data into one-hour parts (UTC time). We keep each part as a compressed Parquet file. Each file contains the data for one hour of one trading pair and one data type.
File Path Pattern
{exchange}/{YYYY-MM-DD}/{HH}/{symbol}_{data_type}.parquetExamples
- binance_spot/2025-08-01/20/BTCUSDT_trades.parquet
- binance_futures/2025-08-01/20/ETHUSDT_orderbook.parquet
- bybit/2025-08-01/20/BTCUSDT_liquidations.parquet
Available Data Types
Spot Markets
orderbookL2 snapshotstradesPublic tradesticker24h statistics
Futures Markets
orderbookL2 snapshotstradesPublic tradesticker24h statisticsmark_priceMark price updatesopen_interestOpen interest dataliquidationsLiquidation events
File Format
All data files are Parquet files that we compress with Zstandard (zstd). Parquet keeps data in columns. This gives efficient storage, high compression ratios and fast queries.
Decompression Necessary
Decompress the downloaded files (zstd). Then read them as Parquet files. Most programming languages have libraries for the two operations.