/v1/hyperliquid/trades/{symbol} returns the fill-level tape with the wallet behind each execution, back to April 2023 and continuous to the current hour, more than 2 billion records.
Trades route
Fill-level trade routes by venue family.
Hyperliquid REST
Core perp route family.
Why it matters
The fill tape is the right starting point for execution research, but wallet and builder attribution are response data, not server-side trades filters. Pull a bounded venue, market, and time window, paginate with cursor, and filter rows client-side. Use the corresponding export schema for large market-wide studies.What A Fill Row Carries
Each row is one execution with the context most fills APIs drop:maker_address, taker_address, order_id, and cloid appear where applicable, so a fill can be joined back to the order that produced it. Prices, sizes, and fees are decimal strings.
Fills Intent To Route Map
All four use the same
{success, data, meta} envelope, cursor pagination through meta.next_cursor, and a meta.request_id per page.
Wallet Attribution
Hyperliquid fills carryuser_address wherever the venue reports it, so the tape answers wallet-level questions directly: what one account filled in a window, whether it made or took liquidity on each execution, and what each fill did to its position. The TP/SL and order-history routes accept a user filter (the query parameter is user, not the user_address field name each record carries), which turns one wallet’s risk management and order behavior into a bounded query instead of a full-tape scan.
The user filter on order-history is order lifecycle, not fill retrieval. Use it when the question is about an order’s placed, partially filled, filled, or canceled state, not as a replacement for the fill tape.
Native userFills terminology
Native Hyperliquid userFills maps to 0xArchive trades. 0xArchive has no WebSocket channel named userFills; subscribe to the venue’s trades channel and apply client-side attribution instead.
TP/SL Lifecycle Around Fills
A take-profit or stop-loss rests as a trigger order until its price condition fires, and when it fires it becomes an ordinary fill. To follow that lifecycle, pair/v1/hyperliquid/orders/{symbol}/tpsl for the triggers with /v1/hyperliquid/trades/{symbol} for the resulting executions, joining on the order that placed the trigger. A trigger that never fired and one that fired are different events; the status field separates them.
Coverage Window
Hyperliquid trade history starts April 2023 and runs continuous to the current hour. Order-level (L4) book surfaces start March 2026. Check the exact window and any gaps for your symbols on Venue coverage and Data quality before a backtest or export depends on the output.Maker And Taker Analysis
Thecrossed flag and the fee sign make maker/taker studies a column filter instead of a reconstruction job. Count taker fills against maker fills for one wallet to classify its execution style, sum signed fees to separate cost from rebate income, and use direction with start_position to tell opening flow from closing flow inside the same window. Because every row carries the same fields, the query that classifies one wallet scales to the whole tape.
Stream Fills Live
Thetrades channel streams fills as they execute. Order events, including trigger placements and cancels, stream through l4_orders.