Skip to content

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/ call

Edge cache

Off

Uptime 24h

100.00%

p95

3.76s

Parameters

NameInTypeDescription
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

curl
# 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"
TypeScript · @x402/fetch
// 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);
Python · x402
# 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())
With an API key
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.

Get a free key

1,000 calls a month across every feed. Who is setting it up?

No key needed at all: agents can pay per call in USDC with x402.