You can only use this endpoint on the official Hyperliquid public API. It is not available through Chainstack, as the open-source node implementation does not support it yet.
info
endpoint with type: "historicalOrders"
retrieves a user’s historical orders on the Hyperliquid exchange. This endpoint provides comprehensive order history including detailed order information and final status for each order, making it essential for trade analysis, reporting, and order management.
Get your own node endpoint todayStart for free and get your app to production levels immediately. No credit card required.You can sign up with your GitHub, X, Google, or Microsoft account.
Parameters
Request body
type
(string, required) — The request type. Must be"historicalOrders"
to retrieve historical orders.user
(string, required) — Address in 42-character hexadecimal format; e.g. 0x0000000000000000000000000000000000000000.
Response
The response is an array of historical order objects, each containing detailed order information and status:Response structure
Each historical order object contains:order
— Detailed order information objectstatus
— Final order statusstatusTimestamp
— Timestamp when the status was last updated
Order details structure
Theorder
object contains comprehensive order information:
Basic order data:
coin
— Asset identifier (simple names like “BTC”, “ETH” for perpetuals; spot format like “@107” for spot trades)side
— Order side: “A” for Ask/Sell, “B” for Bid/BuylimitPx
— Limit price as a string for precisionsz
— Current order size (remaining quantity)origSz
— Original order size when placedoid
— Order ID (unique identifier)timestamp
— Order creation timestamp in milliseconds
orderType
— Order type (e.g., “Market”, “Limit”, “Stop”, “StopLimit”)tif
— Time in force (e.g., “FrontendMarket”, “Gtc”, “Ioc”, “Fok”)reduceOnly
— Boolean indicating if this is a reduce-only ordercloid
— Client order ID if provided (null if not set)
isTrigger
— Boolean indicating if this is a trigger ordertriggerCondition
— Trigger condition for conditional orderstriggerPx
— Trigger price for conditional ordersisPositionTpsl
— Boolean indicating if this is a position-level TP/SL orderchildren
— Array of child orders (for TP/SL orders)
Data limits and ordering
Response limits:- Maximum 2000 most recent historical orders
- Orders are returned in reverse chronological order (most recent first)
- Older orders beyond the 2000 limit are not accessible
- Includes orders from all states: filled, canceled, rejected, etc.
- Provides complete order lifecycle information
- Covers both active and completed orders
Order status values
Thestatus
field indicates the final state of each order:
Completed states:
filled
— Order completely executedtriggered
— Trigger order activated and converted
canceled
— Order canceled by usermarginCanceled
— Canceled due to insufficient marginvaultWithdrawalCanceled
— Canceled due to vault withdrawalopenInterestCapCanceled
— Canceled due to open interest capselfTradeCanceled
— Canceled due to self-trade preventionreduceOnlyCanceled
— Canceled reduce-only order that wouldn’t reduce positionsiblingFilledCanceled
— TP/SL canceled due to sibling order executiondelistedCanceled
— Canceled due to asset delistingliquidatedCanceled
— Canceled due to liquidationscheduledCancel
— Canceled due to scheduled cancel (dead man’s switch)
rejected
— Order rejected at placementtickRejected
— Rejected due to invalid tick priceminTradeNtlRejected
— Rejected due to minimum notional requirementperpMarginRejected
— Rejected due to insufficient marginreduceOnlyRejected
— Rejected due to reduce-only constraintsbadAloPxRejected
— Rejected due to post-only immediate matchiocCancelRejected
— IOC order rejected due to no immediate matchbadTriggerPxRejected
— Rejected due to invalid trigger pricemarketOrderNoLiquidityRejected
— Market order rejected due to insufficient liquiditypositionIncreaseAtOpenInterestCapRejected
— Rejected due to open interest cappositionFlipAtOpenInterestCapRejected
— Rejected due to position flip at OI captooAggressiveAtOpenInterestCapRejected
— Rejected due to aggressive pricing at OI capopenInterestIncreaseRejected
— Rejected due to open interest increase limitsinsufficientSpotBalanceRejected
— Rejected due to insufficient spot balanceoracleRejected
— Rejected due to price deviation from oracleperpMaxPositionRejected
— Rejected due to position size limits
open
— Order still active (rare in historical data)
Asset identification
Perpetual contracts:- Use simple asset names: “BTC”, “ETH”, “AVAX”, “SOL”
- Represent standard perpetual futures contracts
- Use indexed format: “@107”, “@1”, etc.
- Index corresponds to the spot pair position in the universe
- Some assets may have remapped names in user interfaces
Time in force (TIF) values
Common TIF values:Gtc
— Good Till Canceled (remains active until filled or canceled)Ioc
— Immediate Or Cancel (execute immediately or cancel)Fok
— Fill Or Kill (execute completely or cancel)FrontendMarket
— Market order placed through frontend interface
Example request
Shell
Example response
Use cases
Theinfo
endpoint with type: "historicalOrders"
is essential for applications that need to:
- Order history tracking: Display comprehensive order history in trading applications
- Trade analysis: Analyze historical trading patterns, order placement strategies, and execution quality
- Performance reporting: Generate trading reports and performance analytics
- Order debugging: Investigate rejected, canceled, or failed orders to improve strategies
- Compliance reporting: Maintain detailed audit trails of all trading activity
- Strategy backtesting: Use historical order data to validate and improve trading strategies
- Risk management: Review order behavior patterns and identify risk issues
- Fee analysis: Calculate historical trading costs and analyze execution patterns
- Portfolio reconciliation: Match orders against expected executions and identify discrepancies
- Automated trading systems: Review algorithmic trading performance and optimize strategies
Body
application/json
The request type. Must be 'historicalOrders' to retrieve historical orders.
Available options:
historicalOrders
Address in 42-character hexadecimal format; e.g. 0x0000000000000000000000000000000000000000.
Response
200 - application/json
Successful response with historical orders data
Current order status
Available options:
filled
, open
, canceled
, triggered
, rejected
, marginCanceled
, vaultWithdrawalCanceled
, openInterestCapCanceled
, selfTradeCanceled
, reduceOnlyCanceled
, siblingFilledCanceled
, delistedCanceled
, liquidatedCanceled
, scheduledCancel
, tickRejected
, minTradeNtlRejected
, perpMarginRejected
, reduceOnlyRejected
, badAloPxRejected
, iocCancelRejected
, badTriggerPxRejected
, marketOrderNoLiquidityRejected
, positionIncreaseAtOpenInterestCapRejected
, positionFlipAtOpenInterestCapRejected
, tooAggressiveAtOpenInterestCapRejected
, openInterestIncreaseRejected
, insufficientSpotBalanceRejected
, oracleRejected
, perpMaxPositionRejected
Timestamp when the status was last updated