Skip to main content

Request

// Limit Order
{
  "message": "createOrder",
  "content": {
    "clientRequestId": "0835bf3e-4a20-41f0-908d-8213f2b7a285",
    "price": "2000.90",
    "quantity": "1.00",
    "orderType": "buy",
    "tradeType": "limit",
    "postOnly": false
  }
}
// Market Order
{
  "message": "createOrder",
  "content": {
    "clientRequestId": "0835bf3e-4a20-41f0-908d-8213f2b7a285",
    "price": "2000.90",
    "quantity": "1.00",
    "orderType": "buy",
    "tradeType": "market",
    "maxSlippage": "0.02"
  }
}
FieldTypeRequiredDescription
messagestringYescreateOrder
content.clientRequestIdstringNoClient-generated UUID for correlation
content.pricestringYesLimit price; for market orders, expected price
content.quantitystringYesOrder quantity
content.orderTypestringYesOrder side: buy or sell
content.tradeTypestringYesOrder type: limit or market
content.postOnlybooleanNoMaker-only creation flag
content.maxSlippagestringNoMarket-only; 0 - 1 inclusive. 0 acts as IOC

Response — Acknowledgment

{
  "resultType": "createOrder",
  "data": {
    "statusCode": 202,
    "body": "order created, pending acceptance",
    "order": {
      "market": "ETH-USD",
      "orderId": "01HZ5J70FCBNJAS7TVPVB4GAAG",
      "orderType": "buy",
      "tradeType": "limit",
      "price": "3600",
      "quantity": "1",
      "filledQuantity": "0",
      "leverage": "1",
      "createdAt": 1746642892940,
      "updatedAt": 1746642892940,
      "orderStatus": "pending",
      "clientRequestId": "0835bf3e-4a20-41f0-908d-8213f2b7a285",
      "postOnly": true
    },
    "clientRequestId": "0835bf3e-4a20-41f0-908d-8213f2b7a285",
    "apiQuotaUsed": 1
  }
}
FieldTypeRequiredDescription
resultTypestringYescreateOrder
data.statusCodenumberYes202
data.bodystringYesStatus message
data.order.marketstringYesMarket name
data.order.orderIdstringYesUnique identifier for the order
data.order.orderTypestringYesOrder side: buy or sell
data.order.tradeTypestringYesOrder type: limit or market
data.order.pricestringYesPrice used
data.order.quantitystringYesRemaining quantity
data.order.filledQuantitystringYesFilled quantity
data.order.leveragestringYesLeverage used at order creation
data.order.createdAtnumberYesMilliseconds since epoch
data.order.updatedAtnumberYesMilliseconds since epoch
data.order.orderStatusstringYespending
data.order.clientRequestIdstringNoClient-generated UUID for correlation
data.order.postOnlybooleanYesMaker-only creation flag
data.clientRequestIdstringNoClient-generated UUID for correlation
data.apiQuotaUsednumberYesAPI quota consumed

Response — Confirmation

{
  "resultType": "createOrder",
  "data": {
    "statusCode": 200,
    "body": "order accepted",
    "order": {
      "market": "ETH-USD",
      "orderId": "01HZ5J70FCBNJAS7TVPVB4GAAG",
      "orderType": "buy",
      "tradeType": "limit",
      "price": "3600",
      "quantity": "1",
      "filledQuantity": "0",
      "leverage": "1",
      "createdAt": 1746642892940,
      "updatedAt": 1746642892940,
      "orderStatus": "active",
      "clientRequestId": "0835bf3e-4a20-41f0-908d-8213f2b7a285",
      "postOnly": true
    },
    "clientRequestId": "0835bf3e-4a20-41f0-908d-8213f2b7a285"
  }
}
FieldTypeRequiredDescription
resultTypestringYescreateOrder
data.statusCodenumberYes200
data.bodystringYesStatus message
data.order.marketstringYesMarket name
data.order.orderIdstringYesUnique identifier for the order
data.order.orderTypestringYesOrder side: buy or sell
data.order.tradeTypestringYesOrder type: limit or market
data.order.pricestringYesPrice used
data.order.quantitystringYesRemaining quantity
data.order.filledQuantitystringYesFilled quantity
data.order.leveragestringYesLeverage used at order creation
data.order.createdAtnumberYesMilliseconds since epoch
data.order.updatedAtnumberYesMilliseconds since epoch
data.order.orderStatusstringYesactive
data.order.clientRequestIdstringNoClient-generated UUID for correlation
data.order.postOnlybooleanYesMaker-only creation flag
data.clientRequestIdstringNoClient-generated UUID for correlation

Response — Error

{
  "resultType": "createOrder",
  "data": {
    "statusCode": 400,
    "body": "maximum open orders count of 80 reached",
    "order": {
      "market": "ETH-USD",
      "orderId": "01K9G4K19776J1CTA8YXA8AA5H",
      "orderType": "sell",
      "tradeType": "limit",
      "price": "3467",
      "quantity": "0.1",
      "filledQuantity": "0",
      "leverage": "1",
      "createdAt": 1762552022311,
      "updatedAt": 1762552022311,
      "orderStatus": "rejected",
      "clientRequestId": "2f6635e5-bdab-4fbc-8e2e-21252d2219dc",
      "postOnly": false
    },
    "error": {
      "slug": "CREATE_ORDER_ERROR",
      "code": "1000"
    },
    "apiQuotaUsed": 1,
    "clientRequestId": "2f6635e5-bdab-4fbc-8e2e-21252d2219dc"
  }
}
{
  "resultType": "createOrder",
  "data": {
    "statusCode": 403,
    "body": "user is banned from creating orders due to max open order limit, try again after 300 seconds",
    "error": {
      "slug": "FORBIDDEN",
      "code": "0004"
    },
    "apiQuotaUsed": 1,
    "retryAfterSec": 300,
    "clientRequestId": "2f6635e5-bdab-4fbc-8e2e-21252d2219dc"
  }
}
{
  "resultType": "createOrder",
  "data": {
    "statusCode": 408,
    "body": "order activation timeout, pending order rejected",
    "error": {
      "slug": "CREATE_ORDER_ERROR",
      "code": "1000"
    },
    "apiQuotaUsed": 1,
    "clientRequestId": "2f6635e5-bdab-4fbc-8e2e-21252d2219dc"
  }
}
{
  "resultType": "createOrder",
  "data": {
    "statusCode": 429,
    "body": "api call rate limit exceeded",
    "error": {
      "slug": "TOO_MANY_REQUESTS",
      "code": "0003"
    },
    "apiQuotaUsed": 10001,
    "retryAfterSec": 300,
    "clientRequestId": "2f6635e5-bdab-4fbc-8e2e-21252d2219dc"
  }
}
{
  "resultType": "createOrder",
  "data": {
    "statusCode": 500,
    "body": "Internal Server Error",
    "error": {
      "slug": "CREATE_ORDER_ERROR",
      "code": "1000"
    },
    "apiQuotaUsed": 1,
    "clientRequestId": "2f6635e5-bdab-4fbc-8e2e-21252d2219dc"
  }
}
FieldTypeRequiredDescription
resultTypestringYescreateOrder
data.statusCodenumberYesError status (400, 403, 408, 429, 500)
data.bodystringYesError description
data.order.marketstringNoMarket name
data.order.orderIdstringNoUnique identifier for the order
data.order.orderTypestringNoOrder side: buy or sell
data.order.tradeTypestringNoOrder type: limit or market
data.order.pricestringNoPrice used
data.order.quantitystringNoRemaining quantity
data.order.filledQuantitystringNoFilled quantity
data.order.leveragestringNoLeverage used at order creation
data.order.createdAtnumberNoMilliseconds since epoch
data.order.updatedAtnumberNoMilliseconds since epoch
data.order.orderStatusstringNorejected
data.order.clientRequestIdstringNoClient-generated UUID for correlation
data.order.postOnlybooleanYesMaker-only creation flag
data.error.slugstringYesError slug
data.error.codestringYesError code
data.apiQuotaUsednumberNoPresent for quota responses
data.retryAfterSecnumberNoPresent when throttled
data.clientRequestIdstringNoClient-generated UUID for correlation