Hyperliquid Open Orders & Recent Order History | Surf
Inspect open and recent historical Hyperliquid account orders. Returns open and recent historical orders, account identity, as-of time, section errors and source totals. Use one Toolmu account and a shared prepaid balance across available Tools. Pay per use; no separate supplier subscription is required. The current execution ceiling for this Tool is 0.0288 Toolmu credits per call. This is a maximum, not the settled charge. Before execution, get the current Tool contract and check availability, the latest maximumCredits, your balance and budget. Supplier response credits_used, when present, describes supplier API credits and is not the Toolmu customer charge.
Up to 0.0288 credits / call
The final charge is based on confirmed usage. Unused reserved credits return to your available balance.
Surf
Hyperliquid Open Orders & Recent Order History | Surf
Inspect open and recent historical Hyperliquid account orders. Returns open and recent historical orders, account identity, as-of time, section errors and source totals. Use one Toolmu account and a shared prepaid balance across available Tools. Pay per use; no separate supplier subscription is required. The current execution ceiling for this Tool is 0.0288 Toolmu credits per call. This is a maximum, not the settled charge. Before execution, get the current Tool contract and check availability, the latest maximumCredits, your balance and budget. Supplier response credits_used, when present, describes supplier API credits and is not the Toolmu customer charge.
You receive
Returns open and recent historical orders, account identity, as-of time, section errors and source totals. open_total and historical_total are reported before response truncation. Keep the displayed subset distinct from those totals.
Start with your task
Find the Hyperliquid account in [a public account page link or readable name, such as vitalik.eth] and show its open and recent orders. If it could refer to more than one account, ask me to choose. Include the reported time of the data.
Inputs & outputs
Inspect the current inputs, availability, and maximum charge before starting.
Input schema
Input schema
Field / Path
Type
Requirement
Meaning
queryParamsqueryParams
object
Required
Required fields
address
addressqueryParams.address
string
Required
Wallet address: a 0x EVM address or an ENS name (e.g. vitalik.eth). Solana addresses are not supported.
Minimum length
1
open_limitqueryParams.open_limit
integer
Optional
Max open orders returned (market makers can hold 1500+; open_total reports the pre-truncation count). Defaults to 500.
Default
500
Minimum
1
Maximum
2000
historical_limitqueryParams.historical_limit
integer
Optional
Max terminal orders returned, newest first (the upstream feed holds ~1000 post-collapse; historical_total reports the pre-truncation count). Defaults to 200.
Default
200
Minimum
1
Maximum
2000
View raw JSON
{
"type": "object",
"required": [
"queryParams"
],
"properties": {
"queryParams": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"address"
],
"~standard": {
"vendor": "zod",
"version": 1,
"jsonSchema": {}
},
"properties": {
"address": {
"type": "string",
"minLength": 1,
"description": "Wallet address: a 0x EVM address or an ENS name (e.g. vitalik.eth). Solana addresses are not supported."
},
"open_limit": {
"type": "integer",
"default": 500,
"maximum": 2000,
"minimum": 1,
"description": "Max open orders returned (market makers can hold 1500+; open_total reports the pre-truncation count). Defaults to 500."
},
"historical_limit": {
"type": "integer",
"default": 200,
"maximum": 2000,
"minimum": 1,
"description": "Max terminal orders returned, newest first (the upstream feed holds ~1000 post-collapse; historical_total reports the pre-truncation count). Defaults to 200."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
Result schema
Output fields have not been documented yet.
Additional notes
Inspect open and recent historical Hyperliquid account orders
How to use this Tool
Use the deployed input fields below. Required fields must be supplied; optional filters narrow the result.
queryParams.address (Required): Wallet address: a 0x EVM address or an ENS name (e.g. vitalik.eth). Solana addresses are not supported.
queryParams.open_limit (Optional): Max open orders returned (market makers can hold 1500+; open_total reports the pre-truncation count). Defaults to 500.
queryParams.historical_limit (Optional): Max terminal orders returned, newest first (the upstream feed holds ~1000 post-collapse; historical_total reports the pre-truncation count). Defaults to 200.
What this Tool returns
Returns open and recent historical orders, account identity, as-of time, section errors and source totals.
Response fields and how to read them
The table follows the official response contract, including nested fields and useful response metadata. [] denotes an array item. Required means required within its parent object, not that a conditional parent always exists. A nullable type permits null; an optional field can be absent. Use the documented conditions below to distinguish missing, empty and zero values. Units and reporting windows apply only where explicitly documented.
Field, type and presence
Meaning and conditions
data.address
string; Required within parent
Wallet address (lowercased)
data.as_of
integer; Required within parent; format: int64
When the order sections were fetched upstream (Unix seconds) — the data's age, which for a cached response predates the response time by up to the cache TTL
data.errors
array | null; Optional within parent
Sections whose fetch failed (open, historical); omitted when everything succeeded
data.errors.[].reason
string; Required within parent
Short reason for the failure
data.errors.[].section
string; Required within parent
Section that failed: perp, spot, vaults, staking, or pricing (the HYPE-mark lookup that values total_value_usd)
data.historical
array | null; Required within parent
Recent terminal orders (filled / canceled / rejected, newest status first), truncated to historical_limit
data.historical.[].is_position_tpsl
boolean; Required within parent
true when this was a position-level TP/SL
data.historical.[].is_trigger
boolean; Required within parent
true for stop / take-profit (trigger) orders
data.historical.[].limit_price
number; Required within parent; format: double
Limit price, USD
data.historical.[].market_type
string; Required within parent
perp or spot. Spot orders carry @index symbols and belong to the spot book, not the perp surfaces.
data.historical.[].order_id
integer; Required within parent; format: int64
Order id (oid)
data.historical.[].order_type
string; Required within parent
Order type (Limit, Stop Market, …)
data.historical.[].original_size
number; Required within parent; format: double
Original size when placed (token units)
data.historical.[].placed_time
integer; Required within parent; format: int64
When the order was placed (Unix seconds)
data.historical.[].reduce_only
boolean; Required within parent
true when the order could only reduce the position
data.historical.[].side
string; Required within parent
buy or sell
data.historical.[].size
number; Required within parent; format: double
Remaining size at the terminal state (token units)
data.historical.[].status
string; Required within parent
Terminal status: filled, canceled, rejected, …
data.historical.[].status_time
integer; Required within parent; format: int64
When the order reached this status (Unix seconds)
data.historical.[].symbol
string; Required within parent
Market id. Perp orders use the coin name (BTC, xyz:GOLD); SPOT orders use a raw spot-pair index (@107) — see market_type.
data.historical.[].trigger_condition
string; Required within parent
Human-readable trigger condition (empty for plain limit orders)
data.historical.[].trigger_price
number; Required within parent; format: double
Trigger price for stop/take-profit orders, USD (0 when not a trigger)
data.historical_total
integer; Required within parent; format: int64
Total terminal orders before historical_limit truncation — greater than len(historical) means the list was cut
data.open
array | null; Required within parent
Live resting orders (stops / take-profits / limits), truncated to open_limit
data.open.[].is_position_tpsl
boolean; Required within parent
true when this is a position-level TP/SL
data.open.[].is_trigger
boolean; Required within parent
true for stop / take-profit (trigger) orders
data.open.[].limit_price
number; Required within parent; format: double
Limit price, USD
data.open.[].market_type
string; Required within parent
perp or spot. Spot orders carry @index symbols and belong to the spot book, not the perp surfaces.
data.open.[].order_id
integer; Required within parent; format: int64
Order id (oid)
data.open.[].order_type
string; Required within parent
Order type (Limit, Stop Market, …)
data.open.[].original_size
number; Required within parent; format: double
Original size when placed (token units)
data.open.[].reduce_only
boolean; Required within parent
true when the order can only reduce the position
data.open.[].side
string; Required within parent
buy or sell
data.open.[].size
number; Required within parent; format: double
Remaining size (token units)
data.open.[].symbol
string; Required within parent
Market id. Perp orders use the coin name (BTC, xyz:GOLD); SPOT orders use a raw spot-pair index (@107) that does not join to /positions, /trades, or /fills — see market_type.
data.open.[].timestamp
integer; Required within parent; format: int64
When the order was placed (Unix seconds)
data.open.[].trigger_condition
string; Required within parent
Human-readable trigger condition (empty for plain limit orders)
data.open.[].trigger_price
number; Required within parent; format: double
Trigger price for stop/take-profit orders, USD (0 when not a trigger)
data.open_total
integer; Required within parent; format: int64
Total open orders before open_limit truncation — greater than len(open) means the list was cut
meta.cached
boolean; Required within parent
Whether this response was served from cache
meta.credits_used
integer; Required within parent; format: int64
Credits deducted for this request
meta.empty_reason
string; Optional within parent
Hint explaining why the data array is empty, when applicable
Coverage, units and freshness
open_total and historical_total are reported before response truncation. Keep the displayed subset distinct from those totals.
Inspect any returned observation time, cache status, watermark, pagination and errors using their documented meanings. A successful request alone does not establish complete coverage. Where no freshness or completeness guarantee is documented, treat it as unknown. Saved Examples are historical and viewing them does not refresh data or execute a new call.
Data source and references
Surf supplies this endpoint through its Data API. Response contract and deployed Tool inputs reviewed on 2026-10-03 against official OpenAPI v0.2.102. This is a contract review date, not a data observation time. Coverage depends on the selected endpoint and request.
Use one Toolmu account and a shared prepaid balance across available Tools. Pay per use; no separate supplier subscription is required. The current execution ceiling for this Tool is 0.0288 Toolmu credits per call. This is a maximum, not the settled charge. Before execution, get the current Tool contract and check availability, the latest maximumCredits, your balance and budget. Supplier response credits_used, when present, describes supplier API credits and is not the Toolmu customer charge.
Start with the account page
Copy a public Hyperliquid account-page link. A readable wallet name such as [vitalik.eth] also works.
Paste the link or name in the task box and write: [Show this account's open and recent orders.]
Find the Hyperliquid account in [a public account page link or readable name, such as vitalik.eth] and show its open and recent orders. If it could refer to more than one account, ask me to choose. Include the reported time of the data.
Read the result
The result separates orders that are still open from those that recently ended and includes the reported check time. If the page does not identify one account, choose the intended account before continuing.
Questions about this tool.
Inputs, results and details to know before running it.
queryParams.address (Required): Wallet address: a 0x EVM address or an ENS name (e.g. vitalik.eth). Solana addresses are not supported. queryParams.open_limit (Optional): Max open orders returned (market makers can hold 1500+; open_total reports the pre-truncation count). Defaults to 500. queryParams.historical_limit (Optional): Max terminal orders returned, newest first (the upstream feed holds ~1000 post-collapse; historical_total reports the pre-truncation count). Defaults to 200.
Returns open and recent historical orders, account identity, as-of time, section errors and source totals.
open_total and historical_total are reported before response truncation. Keep the displayed subset distinct from those totals.
Use one Toolmu account and a shared prepaid balance across available Tools. Pay per use; no separate supplier subscription is required. The current execution ceiling for this Tool is 0.0288 Toolmu credits per call. This is a maximum, not the settled charge. Before execution, get the current Tool contract and check availability, the latest maximumCredits, your balance and budget. Supplier response credits_used, when present, describes supplier API credits and is not the Toolmu customer charge.
Ask your agent to Inspect open and recent historical Hyperliquid account orders. Provide the required inputs above. If Toolmu is already connected, reuse that connection; otherwise use the setup instructions on this page. Before a paid execution, the agent must read the current Tool contract and check availability, the credit ceiling, balance, budget and your authorization. It should then execute the Tool and explain the returned fields and limitations.
Inspect any returned observation time, cache status, watermark, pagination and errors using their documented meanings. A successful request alone does not establish complete coverage. Where no freshness or completeness guarantee is documented, treat it as unknown. Saved Examples are historical and viewing them does not refresh data or execute a new call.