> For the complete documentation index, see [llms.txt](https://gitbook-docs.coinmetrics.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gitbook-docs.coinmetrics.io/access-our-data/data-downloader.md).

# Data Downloader

<a href="https://download.coinmetrics.io/" class="button primary" data-icon="file-arrow-down">Data Downloader</a>

The Data Downloader at [download.coinmetrics.io](https://download.coinmetrics.io/) turns a Coin Metrics API query into a file without any code. Pick a dataset, a date range, and the markets or accounts you want, and the portal streams the result to your machine as line-delimited JSON, CSV, or Apache Parquet. Log in with your API key to start.

## Get access

1. Go to [download.coinmetrics.io](https://download.coinmetrics.io/), select **Log in**, and paste your Coin Metrics API key. The portal validates it against the API and keeps it in your browser, so you log in once per browser.
2. Check that the selectors list the data you expect. The portal reads entitlements from your key, so the market and asset lists cover only what your license includes.

Any valid Coin Metrics API key works. Until you log in, the portal previews a public sample of the catalog and the download controls stay locked. Speed depends on the plan behind the key: the Download plan streams as fast as your connection allows, and other plans are throttled, with an **Upgrade** prompt in the app.

{% hint style="info" %}
If a market or asset you expect is missing from the selectors, or you want unthrottled downloads, reach out to your sales or account manager.
{% endhint %}

## Datasets Available

The portal carries fourteen datasets, a subset of what the API serves. Each arrives exactly as the API returns it, so follow a link for field definitions. Eleven cover market data, and the granularity column lists what the portal offers for downsampling.

<table data-full-width="true"><thead><tr><th>Dataset</th><th>Markets</th><th>Granularity</th></tr></thead><tbody><tr><td><a href="/market-data/market-data-overview/market-trades.md">Trades</a></td><td>spot, future, option</td><td><code>raw</code></td></tr><tr><td><a href="/market-data/market-data-overview/market-quotes.md">Quotes</a></td><td>spot, future, option</td><td><code>raw</code>, <code>1m</code>, <code>1h</code>, <code>1d</code></td></tr><tr><td><a href="/market-data/market-data-overview/market-candles.md">Candles</a></td><td>spot, future, option</td><td><code>1m</code> through <code>1d</code>, chosen as a frequency</td></tr><tr><td><a href="/market-data/market-data-overview/market-order-books.md">Order books</a></td><td>spot, future, option</td><td><code>raw</code>, <code>1m</code>, <code>1h</code>, <code>1d</code></td></tr><tr><td><a href="/market-data/market-data-overview/market-open-interest.md">Open interest</a></td><td>future</td><td><code>raw</code>, <code>1m</code>, <code>1h</code>, <code>1d</code></td></tr><tr><td><a href="/market-data/market-data-overview/market-liquidations.md">Liquidations</a></td><td>future</td><td><code>raw</code></td></tr><tr><td><a href="/market-data/market-data-overview/market-funding-rates.md">Funding rates</a></td><td>future</td><td><code>raw</code></td></tr><tr><td><a href="/market-data/market-data-overview/market-funding-rates-predicted.md">Predicted funding rates</a></td><td>future</td><td><code>raw</code></td></tr><tr><td><a href="/market-data/market-data-overview/market-contract-prices.md">Contract prices</a></td><td>option</td><td><code>raw</code>, <code>1m</code>, <code>1h</code>, <code>1d</code></td></tr><tr><td><a href="/market-data/market-data-overview/market-implied-volatility.md">Implied volatility</a></td><td>option</td><td><code>raw</code>, <code>1m</code>, <code>1h</code>, <code>1d</code></td></tr><tr><td><a href="/market-data/market-data-overview/market-greeks.md">Greeks</a></td><td>option</td><td><code>raw</code>, <code>1m</code>, <code>1h</code>, <code>1d</code></td></tr></tbody></table>

The other three cover blockchain data. You select these by account or transaction ID rather than by market, and they run as queued requests rather than direct downloads.

<table data-full-width="true"><thead><tr><th>Dataset</th><th>You supply</th><th>Point in the chain</th></tr></thead><tbody><tr><td><a href="/network-data/atlas-overview/account-balance.md">Account balances</a></td><td>Accounts</td><td>A single time, block height, or slot</td></tr><tr><td><a href="/network-data/atlas-overview/balance-updates.md">Balance updates</a></td><td>Accounts</td><td>A range of dates, heights, or slots</td></tr><tr><td><a href="/network-data/atlas-overview/transactions.md">Transactions</a></td><td>Transaction IDs</td><td>Not applicable</td></tr></tbody></table>

Datasets the portal does not carry, including asset metrics, index levels, and reference data, are available through the API, the Python client, or Cloud Delivery.

### File formats

| Format     | Where the file lands                                                                                |
| ---------- | --------------------------------------------------------------------------------------------------- |
| `.jsonl`   | Your browser's download folder, through a new tab                                                   |
| `.csv`     | A single file at the location you pick                                                              |
| `.parquet` | `part-00000.parquet`, `part-00001.parquet`, and so on, roughly 100 MB each, in a directory you pick |

JSONL streams straight from the API, so it is the fastest, and it carries every field the endpoint returns. CSV and Parquet are converted in the browser as the stream arrives, which is slower but lets you choose fields, with the required ones selected for you.

{% hint style="warning" %}
Order books are the only dataset here with nested values, the `asks` and `bids` levels, and CSV keeps just the first ten entries of one, followed by a count of what it dropped. An order book requested at 100 levels arrives with ten. Choose Parquet or JSONL when you need the full book. Every other dataset is flat, so CSV carries it complete.
{% endhint %}

{% hint style="warning" %}
CSV and Parquet are written through the File System Access API, so they need Chrome or another Chromium browser at version 86 or later. In Firefox or Safari the portal reports the API as unsupported and the download stops. JSONL works in any browser.
{% endhint %}

## Download market data

1. Open a dataset from the portal's landing page.
2. Set the start and end date. Both are UTC and default to today.
3. Select markets. Where a dataset serves more than one market class, switch between spot, future, and option first. The list offers only markets with data inside your date range, so widen the range if something you expect is missing.
4. Set the parameters the dataset exposes. Candles take a frequency. Order books take a depth: 1 for top of book, 100, 10% of mid price, 30000 for the full book, or a custom value between 2 and 29999. Where a granularity selector appears it downsamples to one record per minute, hour, or day, and runs slower than `raw` because the aggregation happens server-side.
5. Choose a file format, and for CSV or Parquet select the fields to include.
6. Select **Preview** to check the first three rows, then **Download**. Parquet has no preview. A JSONL download opens in a new tab and is handed to your browser, which tracks it from there. CSV and Parquet are written by the portal itself, which reports bytes and speed as they run and offers a **Cancel** button.

## Download blockchain account data

The three blockchain datasets run as queued requests rather than direct downloads.

1. Select an asset.
2. Add the accounts or transaction IDs the dataset takes. Enter them one at a time, paste a list, or upload a `.txt` or `.csv` file whose entries are separated by newlines, commas, semicolons, or tabs, with no header row.
3. Set the point in the chain, or the range, that the dataset takes.
4. Select **Submit Download Request**. The request appears under **Download Requests**, where the status refreshes on its own.
5. When the status reads Completed, select **Download Results**. These three datasets deliver line-delimited JSON only.

{% hint style="warning" %}
Completed results expire at the time shown in the table. The request list also lives in your browser, so logging out clears it and you cannot see your requests from another machine. Copy the job ID if you may need to follow up.
{% endhint %}

## Automate a download

Once a market data selection is complete, the **Automate downloads / API call examples** panel renders it as a runnable `curl` command and as a Python script. Both write to the same filename the browser download would produce. Copy either one, or save it as a `.sh` or `.py` file, and you have a repeatable version of the download you configured by hand. The examples carry `YOUR_API_KEY`, and a toggle substitutes the real key from your session, so treat anything copied afterward as a secret. The panel appears when the format is JSONL, and it links to the API reference for the endpoint behind your selection.

## Limits and notes

* **Keep the tab open for CSV and Parquet.** Both are converted in the page as the stream arrives, so closing the tab or navigating away ends the download and leaves a partial file. JSONL hands off to the browser instead, and finishes on its own.
* **A wide market selection can exceed the request limit.** Every selected market goes into the query string, and the API rejects a request whose URI runs past 10,000 characters. That works out to a few hundred markets, and fewer where the identifiers are long, as option market identifiers are. Split a wide selection into several downloads.
* **No cap applies to the date range.** A longer range simply takes longer, and order book depth drives file size harder than either the range or the market count. If you are unsure of the volume, run a short range first and check the size of the file it produces.
* **History depends on the market, not on the portal.** Because the market list is filtered to markets with data in your range, an empty list usually means the range predates the market rather than that the dataset is unavailable. The [coverage tool](https://coverage.coinmetrics.io/) is the authoritative source for what exists.

## Related

* [Python API Client](https://docs.coinmetrics.io/python-api-client): make the same requests in code, with paging and parallel fetching handled for you.
* [Cloud Delivery](/access-our-data/cloud-delivery.md): scheduled bulk delivery of these datasets to Amazon S3 or Snowflake.
* [API Conventions](https://docs.coinmetrics.io/api-reference/api-conventions): the parameters, formats, and paging rules the portal is built on.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://gitbook-docs.coinmetrics.io/access-our-data/data-downloader.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
