Skip to main content
POST
/
placeOrder
Place Order
curl --request POST \
  --url https://api.hypereth.io/v2/hyperliquid/placeOrder \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: <api-key>' \
  --data '
{
  "symbol": "<string>",
  "side": "buy",
  "type": "limit",
  "amount": "<string>",
  "price": "<string>",
  "flipPrice": "<string>",
  "clientOrderId": "<string>",
  "reduceOnly": true,
  "timeInForce": "GTC",
  "stopPrice": "<string>",
  "positionSide": "LONG",
  "orderExpiry": 123,
  "provisionOrRevert": true,
  "accountId": "<string>"
}
'
{
  "id": "1234567890",
  "clientOrderId": "0x1234567890abcdef1234567890abcdef",
  "symbol": "BTC",
  "side": "sell",
  "type": "limit",
  "status": "open",
  "price": "65000.0",
  "amount": "0.01",
  "filled": "0",
  "remaining": "0.01",
  "average": null,
  "reduceOnly": true,
  "positionSide": "SHORT",
  "createdAt": 1710000000000,
  "updatedAt": 1710000001000,
  "dexProcessedTimestamp": 1710000001000,
  "dexReceivedTimestamp": 1710000001100,
  "hyperethTimestamp": 1710000001100
}

Authorizations

X-API-KEY
string
header
required

Body

application/json
symbol
string
required

Unified market symbol

side
enum<string>
required
Available options:
buy,
sell
type
enum<string>
required

Order type. Note: flip is only available on Kuru (spot DEX).

Flip Order (Kuru only): A flip order places an initial order at price, and when filled, automatically places an opposite-side order at flipPrice. This enables automated take-profit strategies.

Available options:
limit,
market,
stop,
stop_market,
take_profit,
take_profit_market,
trailing_stop_market,
flip
amount
string
required

Order quantity.

Kuru Market Order Size Semantics (different from other platforms):

  • Market BUY: amount is in quote asset (e.g., "1" means spend 1 AUSD to buy MON)
  • Market SELL: amount is in base asset (e.g., "200" means sell 200 MON to get AUSD)
price
string

Required for limit and flip orders

flipPrice
string

Required for flip orders (Kuru only). The price at which the order flips to the opposite side after fill.

Flip Order Lifecycle (Kuru only):

  1. User places a flip order with price and flipPrice
  2. Initial order is placed at price (e.g., BUY at 0.01)
  3. When the order fills, a new order is automatically placed on the opposite side at flipPrice (e.g., SELL at 0.03)
  4. This enables automated take-profit strategies
clientOrderId
string

Custom client ID. In Hyperliquid, it is an optional 128 bit hex string. In Aster, it can only be string following the rule ^[\.A-Z\:/a-z0-9_-]{1,36}$. In LighterDex, it must fit within i64.

reduceOnly
boolean

Reduce-only flag (not supported on Kuru - spot DEX)

timeInForce
enum<string>
  • GTC: Good Till Canceled
  • IOC: Immediate or Cancel
  • FOK: Fill or Kill
  • GTX: Good Till Crossing (Post-only)
  • GTT: Good Till Time (requires orderExpiry)

Kuru-specific behavior:

  • Limit orders: Use GTX for post-only (order rejected if it would match immediately). Omit for aggressive trading (allows immediate matching).
  • Market orders: Use FOK for fill-or-kill (must fill completely or revert). Omit to allow partial fills.
Available options:
GTC,
IOC,
FOK,
GTX,
GTT
stopPrice
string

Required for stop/TP orders (not supported on Kuru - spot DEX)

positionSide
enum<string>

Position side for hedge mode (not supported on Kuru - spot DEX)

Available options:
LONG,
SHORT,
BOTH
orderExpiry
integer<int64>

Order expiry timestamp (milliseconds). Required for GTT orders

provisionOrRevert
boolean | null

Provision-or-revert flag for flip orders (Kuru only). If true, ensures atomic execution for the flip order. Defaults to true if not provided.

accountId
string | null

Account identifier for multi-account support (Kuru only). If not specified, uses the default account. Note: If the account is locked by a running strategy, the order will be rejected.

Response

200 - application/json

Order placed successfully

id
string

Exchange order ID

clientOrderId
string

Client order ID (if provided)

symbol
string

Trading symbol

side
enum<string>
Available options:
buy,
sell
type
enum<string>

Order type. Note: flip is only available on Kuru (spot DEX).

Flip Order (Kuru only): A flip order places an initial order at price, and when filled, automatically places an opposite-side order at flipPrice. This enables automated take-profit strategies.

Available options:
limit,
market,
stop,
stop_market,
take_profit,
take_profit_market,
trailing_stop_market,
flip
status
enum<string>
Available options:
open,
partial,
closed,
canceled,
expired,
rejected
price
string

Order price

amount
string

Order quantity

filled
string

Filled quantity

remaining
string

Remaining quantity

average
string | null

Average fill price

reduceOnly
boolean

Reduce-only flag

positionSide
enum<string> | null

Position side (hedge mode)

Available options:
LONG,
SHORT,
BOTH
timeInForce
enum<string>
  • GTC: Good Till Canceled
  • IOC: Immediate or Cancel
  • FOK: Fill or Kill
  • GTX: Good Till Crossing (Post-only)
  • GTT: Good Till Time (requires orderExpiry)

Kuru-specific behavior:

  • Limit orders: Use GTX for post-only (order rejected if it would match immediately). Omit for aggressive trading (allows immediate matching).
  • Market orders: Use FOK for fill-or-kill (must fill completely or revert). Omit to allow partial fills.
Available options:
GTC,
IOC,
FOK,
GTX,
GTT
stopPrice
string | null

Stop price for stop/TP orders

flipPrice
string | null

Flip price for flip orders (Kuru only). The price at which the order flips to the opposite side after fill.

createdAt
integer<int64>

Creation timestamp

updatedAt
integer<int64>

Last update timestamp

dexProcessedTimestamp
integer | null

Timestamp when the venue (DEX) processed this order book snapshot (in milliseconds)

dexReceivedTimestamp
integer | null

Timestamp when HyperETH API server received this message from the venue (in milliseconds)

hyperethTimestamp
integer

Timestamp when HyperETH API server completed all processing before returning to client (in milliseconds)