Download Archives
GET/v1/cryptodata/backtesting/archives/download
Generate pre-signed download URLs for archived files. Use ``data_type=daily`` for consolidated Parquet files (one per exchange) instead of individual per-symbol files. ``data_type=klines_deep`` (with ``interval`` 1h/4h/1d) and ``funding_deep`` serve the deep monthly cold history — one Parquet per symbol per month, reaching far past the rolling daily files: ``exchange=binance`` spot klines back to each market's listing (BTCUSDT to Aug 2017), ``exchange=hyperliquid`` 1d to its 2023 launch. For deep tiers ``start``/``end`` match the file's YYYY-MM token, so pass month-granular bounds (e.g. ``start=2019-01``).
Price
$0.01/ callEdge cache
Off
Uptime 24h
100.00%
p95
3.76s
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| start* | query | string | Start date (YYYY-MM-DD; YYYY-MM for '*_deep' tiers) |
| data_type | query | string = klines | Data type: daily, klines, funding, funding_hourly, hl_asset_ctxs, liquidations, hl_liquidations, hl_trade_flow, l4_depth, news_events, snapshots, klines_deep, or funding_deep. Use 'daily' for consolidated bundles; 'hl_liquidations' for the per-event HL liquidation tape; 'hl_trade_flow' for the 1-min HL taker buckets; 'funding_hourly' for the settled HL prints with the boundary oracle price; 'hl_asset_ctxs' for Hyperliquid's 1-minute mark / oracle / OI snapshots (one file per day, all coins, 2023-05-20 on); 'l4_depth' for 1-second exact-price band depth per coin-day (L4 reconstruction, pass symbol); '*_deep' for deep monthly cold history. |
| exchange | query | string | Exchange filter (klines/funding/daily/klines_deep/funding_deep) |
| symbol | query | string | Symbol, or snapshot type name for snapshots |
| end | query | string | End date (YYYY-MM-DD, defaults to today; YYYY-MM for '*_deep' tiers) |
| interval | query | string | Candle interval for klines_deep only: 1h, 4h, or 1d (ignored for other types). |
Code
# 1. No key, no payment: the gateway answers 402 with the price
curl -i "https://api.realtimeapi.ai/v1/cryptodata/backtesting/archives/download?start=2026-10-28"
# 2. Pay: retry with a signed x402 payment (any x402 client builds this header)
curl "https://api.realtimeapi.ai/v1/cryptodata/backtesting/archives/download?start=2026-10-28" -H "PAYMENT-SIGNATURE: $X402_PAYMENT"// npm i @x402/fetch @x402/core @x402/evm viem
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = x402Client.fromConfig({ schemes: [{ network: "eip155:8453", client: new ExactEvmScheme(privateKeyToAccount(PRIVATE_KEY)) }] });
const pay = wrapFetchWithPayment(fetch, client);
const data = await (await pay("https://api.realtimeapi.ai/v1/cryptodata/backtesting/archives/download?start=2026-10-28")).json();
console.log(data);# pip install x402 eth-account requests
from eth_account import Account
from x402.clients.requests import x402_requests
session = x402_requests(Account.from_key(PRIVATE_KEY))
print(session.get("https://api.realtimeapi.ai/v1/cryptodata/backtesting/archives/download?start=2026-10-28").json())curl "https://api.realtimeapi.ai/v1/cryptodata/backtesting/archives/download?start=2026-10-28" -H "X-API-Key: $RTAPI_KEY"Frequently asked questions
How do I get download archives from CryptoDataAPI?
Send GET https://api.realtimeapi.ai/v1/cryptodata/backtesting/archives/download. Pay $0.01 per request with x402, or send an X-API-Key header.
What does GET /backtesting/archives/download cost?
$0.01 per successful request in USDC on Base. Failed requests are never charged.
Can I call this endpoint from an MCP client?
Yes. Connect any MCP client to the RealtimeAPI server and use call_feed with this endpoint's URL, or get_quote to check the price first.