How to export your full Hyperliquid trade history
Start by checking which dates each source covers. A successful download can still leave earlier activity outside the file.
What the fills API returns
Fills are trades that execute an order. Hyperliquid's userFillsByTime endpoint returns fills by time. Our history check reads forward from time zero in pages of 2,000. It removes overlapping rows by trade ID, coin and time.
Paging does not restore older fills the API has stopped returning. In our small 40-wallet sample, all 10 wallets in the $1B-and-above volume band had older fills no longer returned. Their median returned period was 36 days. The median period not returned was 378 days. See the sample and its limits.
1. Check the dates before exporting
Use the history coverage check to compare the oldest returned fill with funding history. Funding on an open position before the oldest fill shows that the fills API does not cover that earlier activity.
The record check also counts returned TWAP slices, recent funding and ledger events. Its reads are capped. Neither check promises a full history, even when it finds no gap.
2. Collect each kind of record
- Fills:
userFillsByTimesupplies the returned trades. Keep the original rows when preparing a conversion. - TWAP slices:
userTwapSliceFillsis a separate source. TWAP means time-weighted average price. These orders execute in smaller slices, and the endpoint keeps only the latest 2,000. See why TWAP slices may not appear in trade history. - Funding:
userFundingsupplies funding payments separately from fills. The first funding on a non-zero position helps show how far back trading activity goes. - Ledger:
userNonFundingLedgerUpdatessupplies events such as transfers and vault flows. A fills file does not include these events.
3. Compare historical sources
The Historical data section of Hyperliquid's docs lists a third-party full trade-history export tool. It also describes a requester-pays S3 archive of node fills. Funding and transfers are in a separate event archive.
Our method page compares the API with a third-party export for two wallets. Neither source was complete on its own. Some export rows had times cut to the second, or no fee or realized result. Some fills returned by the API had no matching export row.
Treat these as sources to compare. Do not assume a file covers every event because it is called a full-history export.
4. Review gaps before converting
PerpMatch shows the period the API returns and the earlier activity indicated by funding. It also checks whether returned fills form a continuous position history. A break is an unexplained position change. It does not identify the cause by itself.
Compare source coverage, overlapping rows and unknown amounts before importing a combined file. The free Koinly converter converts available perp fills and funding. It does not include deposits, withdrawals, transfers, vault activity, staking or spot fills.
Full-record exports and statements require accounts and open with early access. For tax preparation, read how to prepare your Hyperliquid tax records. This guide is not tax advice.
Check what your history covers
Use a public wallet address. The free checks need no account, keys or wallet signature.
Frequently asked questions
Will more API pages bring back older trades?
No. Paging reads what the API still returns. It does not restore older fills outside that returned history.
Are funding and transfers part of a fills export?
They are separate records. Funding has its own endpoint, and transfers appear in the ledger. Review them alongside the fills.
Is a third-party export enough on its own?
Not necessarily. In our tests of two wallets, neither the API nor the third-party export was complete on its own. Compare the sources and keep unknown amounts visible.