Trading

Place limit order

Changed on

Creates a new limit order.

Set post_only to true to ensure the order only adds liquidity. If the order would immediately match an existing order, it is rejected with POST_ONLY_WOULD_CROSS and is not added to the order book.

post/orders

Request

Request body

marketstring required
side'buy' | 'sell' required
pricestring required

Limit price as a decimal string.

quantitystring required

Order quantity as a decimal string.

time_in_force'GTC' | 'IOC' | 'FOK'
post_onlyboolean

When true, the order is rejected if it would immediately match existing liquidity.

client_order_idstring

Optional idempotency key. Auto-generated if omitted.

Example request

{
  "market": "BTCZAR",
  "side": "buy",
  "price": "1020000",
  "quantity": "0.01",
  "client_order_id": "my-order-1"
}

Response

Order created successfully.

order_idstring
client_order_idstring
marketstring
side'buy' | 'sell'
type'limit' | 'market' | 'stop_limit' | 'stop_market'
pricestring nullable

Null for market orders.

quantitystring
filledstring
remainingstring
status'open' | 'partially_filled' | 'filled' | 'cancelled' | 'rejected'
time_in_force'GTC' | 'IOC' | 'FOK'
post_onlyboolean

Whether the order is restricted to adding liquidity.

created_atinteger
updated_atinteger
cancelled_atinteger nullable

Present when the order has been cancelled.

Example response

{
  "order_id": "order-001",
  "client_order_id": "my-order-1",
  "market": "BTCZAR",
  "side": "buy",
  "type": "limit",
  "price": "1020000",
  "quantity": "10000000",
  "filled": "0",
  "remaining": "10000000",
  "status": "open",
  "time_in_force": "GTC",
  "post_only": true,
  "created_at": 1710000000,
  "updated_at": 1710000001,
  "cancelled_at": 1710000100
}

Changes

    • info

      added the new optional request property

    • info

      added the optional property to the response with the status