Returns at most 2000 fills per response and only the 10000 most recent fills are available
info endpoint with type: "userFillsByTime" retrieves a user’s trading fills (executed orders) within a specific time range on the Hyperliquid exchange. This endpoint provides time-filtered access to detailed trade execution data, making it ideal for historical analysis and reporting.
type (string, required) — The request type. Must be "userFillsByTime" to retrieve user fills by time range.user (string, required) — Address in 42-character hexadecimal format; e.g. 0x0000000000000000000000000000000000000000.startTime (integer, required) — Start time in milliseconds, inclusive.endTime (integer, optional) — End time in milliseconds, inclusive. Defaults to current time.aggregateByTime (boolean, optional) — When true, partial fills are combined when a crossing order gets filled by multiple different resting orders. Resting orders filled by multiple crossing orders will not be aggregated.coin — Asset identifier (simple names like “BTC”, “ETH” for perpetuals; spot format like “@107” for spot trades)px — Fill price as a string for precisionsz — Fill size (quantity traded)side — Trade side: “A” for Ask/Sell, “B” for Bid/Buytime — Fill timestamp in millisecondsoid — Order ID that generated this filltid — Unique trade IDstartPosition — Position size before this filldir — Trade direction (e.g., “Open Long”, “Close Short”, “Buy”, “Sell”)closedPnl — Realized profit/loss from this fillcrossed — Boolean indicating if this was a crossing orderfee — Trading fee paid for this fillfeeToken — Token used to pay the fee (typically “USDC”)builderFee — Builder fee (optional, only present if non-zero)hash — Transaction hash for blockchain verificationstartTime — Inclusive start timestamp in millisecondsendTime — Inclusive end timestamp (optional, defaults to current time)time field of the last returned fill as the new endTimeinfo endpoint with type: "userFillsByTime" is essential for applications that need to:
The request type. Must be "userFillsByTime" to retrieve user fills by time range.
userFillsByTime Address in 42-character hexadecimal format; e.g. 0x0000000000000000000000000000000000000000.
Start time in milliseconds, inclusive
End time in milliseconds, inclusive. Defaults to current time.
When true, partial fills are combined when a crossing order gets filled by multiple different resting orders. Resting orders filled by multiple crossing orders will not be aggregated.
Successful response with user fills data within the specified time range
Closed profit and loss for the fill
Asset symbol (e.g., 'BTC', 'ETH') for perpetuals or spot format (e.g., '@107') for spot trades
Whether this was a crossing order
Direction of the trade (e.g., 'Open Long', 'Close Short', 'Buy', 'Sell')
Transaction hash
Order ID
Fill price
Side of the trade: 'A' for Ask/Sell, 'B' for Bid/Buy
A, B Position size before this fill
Fill size
Fill timestamp in milliseconds
Trading fee paid
Token used to pay the fee (typically 'USDC')
Builder fee (optional, only present if non-zero)
Trade ID