This endpoint requires signature authentication. See our comprehensive Authentication via Signatures guide for implementation details.
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
Required parameters
-
action
(object, required) — The order action object containing:type
(string) — Must be"order"
orders
(array) — Array of order objects with:a
(number) — Asset index (see asset notation below)b
(boolean) — Is buy order (true for buy/long, false for sell/short)p
(string) — Limit price (use “0” for market orders)s
(string) — Size in units of the base assetr
(boolean) — Reduce only ordert
(object) — Order type specification:- For limit orders:
{"limit": {"tif": "Alo" | "Ioc" | "Gtc"}}
- For trigger orders:
{"trigger": {"isMarket": boolean, "triggerPx": string, "tpsl": "tp" | "sl"}}
- For limit orders:
c
(string, optional) — Client order ID (128-bit hex string)
grouping
(string) — Order grouping:"na"
|"normalTpsl"
|"positionTpsl"
builder
(object, optional) — Builder fee configuration:b
(string) — Builder address to receive feesf
(number) — Fee in tenths of a basis point
-
nonce
(number, required) — Current timestamp in milliseconds (must be recent) -
signature
(object, required) — EIP-712 signature of the action
Optional parameters
vaultAddress
(string, optional) — Address when trading on behalf of a vault or subaccountexpiresAfter
(number, optional) — Timestamp in milliseconds after which the order is rejected
Asset notation
For perpetuals, use the index from theuniverse
field in the meta response. For spot assets, use 10000 + index
where index is from spotMeta.universe
.
Example: PURR/USDC
spot has index 0 in spot metadata, so use asset 10000
.
Order types
Time in Force (TIF) for limit orders
Alo
— Add liquidity only (post-only), canceled if would immediately matchIoc
— Immediate or cancel, unfilled portion canceledGtc
— Good til canceled, rests on book until filled or canceled
Trigger orders
tp
— Take profit ordersl
— Stop loss orderisMarket
— Whether to place market order when triggeredtriggerPx
— Price at which to trigger the order
Returns
Returns an object with order placement status:status
—"ok"
if successfulresponse
— Contains order details:type
—"order"
data.statuses
— Array of status objects for each order:resting
— Order placed on book withoid
(order ID)filled
— Order immediately filled withtotalSz
,avgPx
, andoid
error
— Error message if order failed
Example request
Response examples
Successful resting order
Filled order
Error response
Use cases
- Spot and perpetual trading — Execute trades on Hyperliquid’s order books
- Algorithmic trading — Place orders programmatically with custom logic
- Risk management — Set stop-loss and take-profit orders
- Market making — Place limit orders to provide liquidity
Orders consume address-based rate limits. The
expiresAfter
field consumes 5x rate limit when orders expire due to staleness.Always ensure your system clock is synchronized. Nonce must be within a reasonable time window of the current server time or the request will be rejected.
Body
application/json
Current timestamp in milliseconds
Example:
1734567890123
EIP-712 signature of the action. REQUIRED for authentication. Must be properly signed.
Address when trading on behalf of a vault or subaccount (optional)
Example:
"0x0000000000000000000000000000000000000000"
Timestamp in milliseconds after which the order is rejected (optional)