Why sell historical crypto data by the file?
Our backtesting archive is the durable copy of everything the live API has served: per-day Parquet files of klines, funding, liquidations and JSON snapshots, plus monthly deep-history files reaching back to 2023 for Hyperliquid. It has always been a Pro Plus feature, at $129 a month.
That price is right for a desk that pulls the whole archive. It is wrong for an agent that needs three days of BTC funding to check one hypothesis. So the archive now has a second door: /api/v1/backtesting/archives/purchase, which sells one object per call for USDC through x402.
- No key needed. The wallet pays, the response is a presigned download URL.
- Priced per file, from 0.25 USDC for one exchange, symbol and day.
- Existence is checked before you are quoted. You cannot pay for a file that is not there.
- Pro Plus keys still download free through the existing
/archives/downloadpath. Nothing changes for subscribers.
What can you buy, and what does each file cost?
data_type |
One object is | Parameters | USDC |
|---|---|---|---|
klines |
one exchange, symbol and day of candles (Parquet) | exchange, symbol, date |
0.25 |
funding |
one exchange, symbol and day of funding rates (Parquet) | exchange, symbol, date |
0.25 |
liquidations |
one symbol and day of the multi-venue liquidation tape (Parquet) | symbol, date |
0.25 |
snapshots |
one snapshot type for one day (JSON) | snapshot_type, date |
0.25 |
hl_liquidations |
one day of per-fill Hyperliquid liquidations, every coin | date |
1.00 |
daily |
one consolidated day bundle (klines or funding, one exchange) | date, bundle, exchange |
2.00 |
klines_deep |
one exchange, interval, symbol and month of candles | exchange, interval, symbol, month |
3.00 |
funding_deep |
one exchange, symbol and month of funding | exchange, symbol, month |
3.00 |
The snapshot types are the same daily JSON documents the /daily endpoint is built from: cycle regime, event regime, whale roll-ups, ETF flows and the rest, archived every day since each feed launched. That makes snapshots the cheapest way to reconstruct what the API was saying on a given day.
The deep files are where the value density is. klines_deep at 3.00 USDC buys a whole month of 1h, 4h or 1d candles for one Hyperliquid coin, back to 2023. There is no deep 1-minute history and no historical open interest, because no source exists for them; the price list is honest about what is not there.
How does an archive purchase work?
Same x402 handshake as the per-request endpoints, against a GET with query parameters. The response on settlement is a download URL, not the file itself, so the settled call is small and the data comes straight from object storage.
# 1. Ask. No key -> 402 quoting 1.00 USDC for that day's file.
curl -s "https://cryptodataapi.com/api/v1/backtesting/archives/purchase?data_type=hl_liquidations&date=2026-09-01" \
-H "User-Agent: my-backtest-agent/1.0"
import asyncio, httpx
from eth_account import Account
from x402 import x402Client
from x402.http.clients import x402_httpx_transport
from x402.mechanisms.evm.exact import register_exact_evm_client
from x402.mechanisms.evm.signers import EthAccountSigner
PURCHASE = "https://cryptodataapi.com/api/v1/backtesting/archives/purchase"
async def buy(params):
client = x402Client()
register_exact_evm_client(client, EthAccountSigner(Account.from_key(WALLET_PRIVATE_KEY)))
async with httpx.AsyncClient(transport=x402_httpx_transport(client), timeout=60,
headers={"User-Agent": "my-backtest-agent/1.0"}) as paid:
r = await paid.get(PURCHASE, params=params)
r.raise_for_status()
return r.json() # {"object", "size_bytes", "url", "expires_in": 3600, "paid": true, "invoice_number"}
async def main():
day = await buy({"data_type": "funding", "exchange": "hyperliquid",
"symbol": "BTC", "date": "2026-09-01"})
async with httpx.AsyncClient() as dl:
parquet = (await dl.get(day["url"])).content
open("btc-funding-2026-09-01.parquet", "wb").write(parquet)
asyncio.run(main())
Three things to build around:
- The URL expires in 3,600 seconds. Download inside the hour; a second purchase is a second payment.
size_bytesis in the response. Check it before the download if your worker has a memory budget.- A missing day returns 404 before any quote. Your agent should treat that as "no data", not retry with payment.
Per file vs Pro Plus: where is the break-even?
Pro Plus monthly is $129 and includes unlimited archive downloads plus the streamed snapshot endpoints. Per-file purchase is cheaper up to a fairly clear line.
| Job | Per file | Pro Plus monthly ($129) |
|---|---|---|
| 30 days of BTC funding on Hyperliquid | 30 × 0.25 = $7.50 | overkill |
| A month of 1h candles for 10 coins (deep) | 10 × 3.00 = $30.00 | overkill |
| 90 days of full-universe HL liquidations | 90 × 1.00 = $90.00 | close; Plus also gets everything else |
| 2023 to now, 1d candles, 40 coins | 40 coins × ~32 months × 3.00 ≈ $3,840 | Pro Plus, obviously |
Rule of thumb: under roughly $100 of files in a month, buy files. Above that, or if you also need the live Pro Plus endpoints, subscribe. A pass_1d_plus at 15.00 USDC is the middle option: one day of unlimited downloads without a monthly commitment.
When to buy archive files with x402
Buy by the file when the agent's history need is narrow and specific:
- Validating one signal against a few weeks of one coin's funding or candles.
- Reconstructing "what did the API say on this day" from the snapshot archive.
- Pulling the exact Hyperliquid liquidation tape for a single event day.
- Running many small independent backtest workers, each paying for just its slice.
Skip it for full-history research across the universe, or when the agent also needs the live Pro Plus surfaces. That is a Pro Plus month or a pass_1d_plus.
The catalogue of what exists is at GET /api/v1/backtesting/archives and the price list at GET /api/v1/pricing under resources. Fund a Base wallet with a dollar of USDC and the first day of BTC funding history costs a quarter.
Frequently asked questions
Can I download historical Hyperliquid data without a Pro Plus subscription?
Yes. GET /api/v1/backtesting/archives/purchase sells one archive object per call for USDC via x402, from 0.25 USDC for one exchange, symbol and day. No key is required; the response is a one-hour presigned download URL.
How much is a month of deep Hyperliquid candle history?
3.00 USDC per exchange, interval, symbol and month as Parquet (klines_deep), for 1h, 4h or 1d intervals back to 2023. Deep 1-minute history does not exist and is not sold.
What if the file I ask for does not exist?
The API checks the object exists before quoting a price, so a missing day returns 404 and nothing is charged.
Do Pro Plus subscribers still download for free?
Yes. A Pro Plus key uses /api/v1/backtesting/archives/download at no extra cost; /purchase is the keyless x402 path for everyone else.



