Skip to main content

Overview

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

Multiple Output Formats

  • 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

  1. Get your API key: Visit messari.io/account/api to obtain your API key
  2. Check available datasets: Call the /bulk/v1/datasets endpoint to see which datasets you have access to
  3. 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).