REST API
The endpoint reference for catalog queries and file delivery.
On this page
Discover available data
| GET path | Returns |
|---|---|
| /exchanges | Exchanges, markets and coverage. |
| /venues/{venue}/products | Products, formats and schema versions. |
| /venues/{venue}/instruments?q=&cursor=&limit= | Searchable instruments. |
| /availability | Complete-date retail availability backed by registered daily R2 files. |
| /datasets/{venue}:{type} | Fields and a small sample, not full archive delivery. |
| /schemas/{id} | Versioned field definitions. |
Download endpoints
Paths are relative to the API base in the examples. Authenticate with Authorization: Bearer <API key>. Follow items and nextCursor for pagination. Add Idempotency-Key when creating tasks.
| Method | Path | Purpose |
|---|---|---|
| POST | /downloads/preview | Check files, bytes and missing slices. |
| POST | /downloads/quote | Get a cost reference. |
| POST | /downloads | Create an account-owned task. |
| GET | /downloads?cursor=&limit= | Paginated task history. |
| GET | /downloads/{id} | Task status, progress and error. |
| POST | /downloads/{id}/retry | Retry a failed task. |
| GET | /downloads/{id}/files?cursor=&limit= | Paginated file manifest. |
| POST | /downloads/{id}/files/{fileId}/url | Temporary url and expiresAt. |
Request parameters
| Field | Rule |
|---|---|
| venue / product / type | A catalog market, product id and matching record family. |
| symbols | Native instrument identifiers; no per-market count limit. Use symbolMode: all in market selections to select every registered symbol. |
| from / until | Compatibility only: both bounds must be UTC midnight and cover complete past dates. Use start / end instead. |
| start / end | Inclusive past UTC dates, maximum 366 days. Each combination of market, symbol and product delivers one file per day. from / until request parameters are not supported. |
| representation / format | Supported values from the product catalog. |
| book | Orderbook only: updates, snapshot or mixed. |
| allowPartial | False by default; true explicitly skips entire incomplete UTC dates, never parts of a day. |
Preview in Python
Python
import osimport requests request = { "venue": "binance_spot", "type": "trades", "product": "trades", "symbols": ["BTCUSDT"], "representation": "normalized", "format": "parquet", "allowPartial": False, "start": "2026-10-01", "end": "2026-10-01",}response = requests.post( "/api/v1/downloads/preview", headers={"Authorization": "Bearer " + os.environ["TICKFOLD_API_KEY"]}, json=request, timeout=30,)response.raise_for_status()print(response.json())Need a hand with your data?Contact support