Unified REST APITrading

Place Order

Create a new trading order

POST
/placeOrder

Authorization

ApiKeyAuth
X-API-KEY<token>

In: header

Request Body

application/json

symbol*stringrequired

Unified market symbol

marketType?enum<string>

Optional market type. Use "spot" for spot markets or "perp" for perpetual/futures markets.

Available options: spotperp
side*enum<string>required
Available options: buysell
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: limitmarketstopstop_markettake_profittake_profit_markettrailing_stop_marketflip
amount*stringrequired

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: GTCIOCFOKGTXGTT
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: LONGSHORTBOTH
orderExpiry?integer

Order expiry timestamp (milliseconds). Required for GTT orders

provisionOrRevert?booleannull

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?stringnull

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

Response Body

application/json

curl -X POST "https://api.hypereth.io/v2/hyperliquid/placeOrder" \  -H "Content-Type: application/json" \  -d '{    "symbol": "string",    "side": "buy",    "type": "limit",    "amount": "string"  }'
{
  "id": "1234567890",
  "clientOrderId": "0x1234567890abcdef1234567890abcdef",
  "symbol": "BTC",
  "marketType": "future",
  "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
}