Skip to main contentOverview
The Bulk API is optimized for downloading large amounts of historical data efficiently. Unlike standard API endpoints that return paginated JSON responses, the Bulk API streams data directly to files in formats optimized for data analysis and processing.
Available Endpoints
The Bulk API consists of two main endpoints:
- Get Available Datasets - Returns a catalog of all bulk datasets available based on your subscription tier, including available columns and supported granularities.
 
- Download Dataset - Downloads bulk timeseries data for a specific dataset at a given granularity in CSV or JSONL format.
 
Key Features
- CSV: Comma-separated values, ideal for Excel, pandas, and other data analysis tools
 
- JSONL: JSON Lines format, perfect for streaming data processing and loading into databases
 
Flexible Granularities
Download data at different time intervals based on your needs:
- 5m: 5-minute intervals
 
- 15m: 15-minute intervals
 
- 30m: 30-minute intervals
 
- 1h: Hourly intervals
 
- 1d: Daily intervals
 
Large Time Ranges
Download months or years of historical data in a single request, with appropriate limits to prevent excessive downloads.
Use Cases
The Bulk API is ideal for:
- Data Science & Machine Learning: Download training datasets for ML models and backtesting algorithms
 
- Historical Analysis: Analyze long-term trends and patterns across multiple assets
 
- Data Warehousing: Populate your data warehouse with comprehensive crypto market data
 
- Research: Academic research requiring large historical datasets
 
- Backtesting: Test trading strategies against extensive historical data
 
Getting Started
- Get your API key: Visit messari.io/account/api to obtain your API key
 
- Check available datasets: Call the 
/bulk/v1/datasets endpoint to see which datasets you have access to 
- Download data: Use the dataset download endpoint with your desired parameters
 
Rate Limits & Best Practices
- The Bulk API has concurrency limits to ensure system stability
 
- Downloads are limited by time range based on granularity to prevent excessive data transfer
 
- For very large datasets, consider breaking requests into smaller time ranges
 
- Downloaded files are gzip-compressed when supported by your client to reduce transfer time
 
Authentication
All Bulk API requests require authentication via the x-messari-api-key header. Access to specific datasets depends on your subscription tier (FREE, PROFESSIONAL, or ENTERPRISE).