# Spot Orders

# Place Order

POST /v1/spot/order/place

Module Type Resource Isolation Type Rate Limit
Spot Order (SPOT_ORDER) Submit (SUBMIT) Trading Pair (SYMBOL) 5

# Parameters

Name Type Required Description
symbol String Yes Trading pair, e.g., BTC/USDT
type String Yes Order type, available values: MARKET, LIMIT, STOP_LIMIT, TRIGGER_ORDER_MARKET, TRIGGER_ORDER_LIMIT
direction String Yes Trade direction, available values: BUY, SELL
amount Decimal Yes Order trading volume (for market buy order, it's the order amount in quote currency)
price Decimal No Order price (not applicable for market orders)
clientOrderId String No User-defined order ID (maximum length of 32 characters, must be unique)
stopPrice Decimal Yes Stop loss/take profit/trigger order trigger price
operator String Yes Operator for stop loss/take profit/trigger order trigger price, available values: GTE (greater than and equal), LTE (less than and equal)

Based on different typeof orders, certain parameters are mandatory:

Type Mandatory Parameters
LIMIT price
STOP_LIMIT price
TRIGGER_ORDER_MARKET stopPrice,operator
TRIGGER_ORDER_LIMIT price,stopPrice,operator

# Response Parameters

Name Type Description
orderId Long Order ID
clientOrderId String User-defined order ID (if provided)
errCode String Order rejection error code (only applicable for rejected orders)
errMsg String Order rejection error message (only applicable for rejected orders)

# Request Example

POST /v1/spot/order/place
{
  "direction": "BUY",
  "symbol": "BTC/USDT",
  "amount": "0.001",
  "price": "28660.70",
  "type": "LIMIT",
  "clientOrderId": "cc123456789"
}

# Response Example

{
  "code": "200",
  "message": "OK",
  "timestamp": "1687313243859",
  "data": {
    "orderId": "591569852347887616",
    "clientOrderId": "cc123456789"
  }
}

# Batch Order Placement

POST /v1/spot/order/batchOrders

Module Type Resource Isolation Type Rate Limit
Spot Order (SPOT_ORDER) Submit (SUBMIT) Trading Pair (SYMBOL) 5

# Parameters

Name Type Required Description
Array yes Array of parameters, a batch can contain up to 10 orders
symbol String Yes Trading pair, e.g., BTC/USDT
type String Yes Order type, available values: MARKET, LIMIT, STOP_LIMIT, TRIGGER_ORDER_MARKET, TRIGGER_ORDER_LIMIT
direction String Yes Trade direction, available values: BUY, SELL
amount Decimal Yes Order trading volume (for market buy orders, it's the order amount in quote currency)
price Decimal No Order price (not applicable for market orders)
clientOrderId String No User-defined order ID (maximum length of 32 characters, must be unique)
stopPrice Decimal Yes Stop loss/take profit/trigger order trigger price
operator String Yes Operator for stop loss/take profit/trigger order trigger price, available values: GTE (greater than and equal), LTE (less than and equal)

# Response Parameters

Name Type Description
orderId Long Order ID
clientOrderId String User-defined order ID (if provided)
errCode String Order rejection error code (only applicable for rejected orders)
errMsg String Order rejection error message (only applicable for rejected orders)

# Request Example:

POST /v1/spot/order/batchOrders
[
  {
    "amount": "0.001",
    "price": "26859.71",
    "clientOrderId": "1687265118846",
    "direction": "BUY",
    "symbol": "BTC/USDT",
    "type": "LIMIT"
  },
  {
    "amount": "10",
    "clientOrderId": "1687265118847",
    "direction": "BUY",
    "symbol": "BTC/USDT",
    "type": "MARKET"
  }
]

# Response Example

{
  "code": "200",
  "message": "OK",
  "timestamp": "1687265172519",
  "data": [
    {
      "clientOrderId": "1687265118846",
      "errCode": "AC3001",
      "errMsg": "ACCOUNT_BALANCE_INSUFFICIENT"
    },
    {
      "orderId": "591368226916577281",
      "clientOrderId": "1687265118847"
    }
  ]
}

# Cancel Order

POST /v1/spot/order/cancel

Module Type Resource Isolation Type Rate Limit
Spot Order (SPOT_ORDER) Submit (SUBMIT) Trading Pair (SYMBOL) 5

# Parameters

Name Type Required Description
symbol String Yes Trading pair, e.g., BTC/USDT
orderId Long No Order ID
clientOrderId String NO User-defined order ID

Note: Either orderId or clientOrderId must be provided. If both are provided, orderId will be prioritized.

# Response Parameters

Name Type Description
orderId Long Order ID
clientOrderId String User-defined order ID (if provided)
errCode String Order rejection error code (only applicable for rejected orders)
errMsg String Order rejection error message (only applicable for rejected orders)

# Request Example

POST /v1/spot/order/cancel
{
  "clientOrderId": "1687265118847",
  "orderId": "591368226916577281",
  "symbol": "BTC/USDT"
}

# Response Example

{
  "code": "200",
  "message": "OK",
  "timestamp": "1687265685625",
  "data": {
    "orderId": "591368226916577281",
    "clientOrderId": "1687265118847"
  }
}

# Batch Cancel Orders

POST /v1/spot/order/batchCancel

Module Type Resource Isolation Type Rate Limit
Spot Order (SPOT_ORDER) Submit (SUBMIT) Trading Pair (SYMBOL) 5

# Parameters

Name Type Required Description
symbol String Yes Trading pair, e.g., BTC/USDT
orderIds Array No Order IDs, separated by commas, (either orderIds or clientOrderIds must be provided, can only choose one, up to 50 orders). It's recommended to use orderIds for cancellation, which is faster and more stable than clientOrderIds. No more than 50 orders at a time.
clientOrderIds Array No User-defined order IDs, separated by commas, (either orderIds or clientOrderIds must be provided, can only choose one, up to 50 orders). It's recommended to use orderIds for cancellation, which is faster and more stable than clientOrderIds. No more than 50 orders at a time.

# Response Parameters

Name Type Description
orderId Long Order ID
clientOrderId String User-defined order ID (if provided)
errCode String Order rejection error code (only applicable for rejected orders)
errMsg String Order rejection error message (only applicable for rejected orders)

# Request Example

POST /v1/spot/order/batchCancel
{
  "symbol": "BTC/USDT",
  "orderIds": [
    "591568752689459201",
    "591568786239696896"
  ]
}

# Response Example

{
  "code": "200",
  "message": "OK",
  "timestamp": "1687313014619",
  "data": [
    {
      "orderId": "591568752689459201"
    },
    {
      "orderId": "591568786239696896"
    }
  ]
}

# Query Open Orders

GET /v1/spot/order/openOrders

Module Type Resource Isolation Type Rate Limit
Spot Order (SPOT_ORDER) Submit (SUBMIT) Trading Pair (SYMBOL) 5

# Parameters

Name Type Required Description
symbol String Yes Trading pair, e.g., BTC/USDT
direction String No Trade direction, available values: BUY, SELL
limit Int No Number of orders to return, maximum value is 500
types Array No Combination of order types to query, separated by commas, available values: LIMIT, STOP_LIMIT, TRIGGER_ORDER_MARKET, TRIGGER_ORDER_LIMIT

# Response Parameters

Name Type Description
symbol String Trading pair
amount Decimal Order trading volume (for market buy orders, it's the order amount in quote currency)
filledQuoteAmount Decimal Amount filled in quote currency
orderId Long Order ID
clientOrderId String User-defined order ID
frozenFee Decimal Pre-frozen fee, applicable only when fee type is GOLD_STANDARD and the trade direction is BUY
feeType String Fee type, COIN_STANDARD (buyer fee in base currency, seller fee in quote currency), GOLD_STANDARD (fees in quote currency for both buyer and seller)
type String Order type: LIMIT, STOP_LIMIT, TRIGGER_ORDER_MARKET, TRIGGER_ORDER_LIMIT
filledAmount Decimal Amount filled
operator String Operator for stop loss/take profit orders: gte (greater than and equal), lte (less than and equal)
stopPrice Decimal Trigger price for stop loss/take profit orders
price Decimal Order price (not applicable for market orders)
createdTime Long Order creation time
state String Order state: NOT_ACTIVE (not activated), ACTIVE (activated)
feeRatio Decimal Base fee rate
turnover Decimal Order turnover
direction String Trade direction: BUY or SELL
orderType String Order type: ORDINARY (normal order), STOP_LIMIT (stop loss/take profit), TRIGGER_ORDER (trigger order)

# Request Example

GET /v1/spot/order/openOrders?symbol=BTC/USDT

# Response Example

{
  "code": "200",
  "message": "OK",
  "timestamp": "1687313193523",
  "data": [
    {
      "symbol": "BTC/USDT",
      "orderId": "591569852347887616",
      "clientOrderId": "cc123456789",
      "price": "28660.7",
      "amount": "0.001",
      "turnover": "28.6607",
      "createdTime": "1687313244000",
      "type": "LIMIT",
      "direction": "BUY",
      "filledAmount": "0",
      "filledQuoteAmount": "0",
      "state": "ACTIVE",
      "feeType": "GOLD_STANDARD",
      "frozenFee": "0.0859821",
      "feeRatio": "0.003",
      "orderType": "ORDINARY"
    } 
  ]
}

# Query Historical Orders

GET /v1/spot/order/orderHistory

Module Type Resource Isolation Type Rate Limit
Spot Order (SPOT_ORDER) Submit (SUBMIT) Trading Pair (SYMBOL) 5

# Parameters

Name Type Required Description
symbol String Yes Trading pair, e.g., BTC/USDT
direction String No Trade direction, available values: BUY, SELL
limit Int No Number of orders to return, maximum value is 500
states Array No Combination of order states to query, separated by commas, available values: ENTRUSTED, ENTRUST_FAILED, COMPLETED, REVOKED
types Array No Combination of order types to query, separated by commas, available values: MARKET, LIMIT, STOP_LIMIT, TRIGGER_ORDER_MARKET, TRIGGER_ORDER_LIMIT

# Response Parameters

Name Type Description
symbol String Trading pair
amount Decimal Order trading volume (for market buy orders, it's the order amount in quote currency)
filledQuoteAmount Decimal Amount filled in quote currency
orderId Long Order ID
clientOrderId String User-defined order ID
frozenFee Decimal Pre-frozen fee, applicable only when fee type is GOLD_STANDARD and the trade direction is BUY
feeType String Fee type, COIN_STANDARD (buyer fee in base currency, seller fee in quote currency), GOLD_STANDARD (fees in quote currency for both buyer and seller)
type String Order type
filledAmount Decimal Amount filled
operator String Operator for stop loss/take profit orders: gte (greater than and equal), lte (less than and equal)
stopPrice Decimal Trigger price for stop loss/take profit orders
price Decimal Order price (not applicable for market orders)
createdTime Long Order creation time
state String Order state: ENTRUSTED (entrusted), ENTRUST_FAILED (entrustment failed), COMPLETED (completed), REVOKED (revoked)
feeRatio Decimal Base fee rate
turnover Decimal Order turnover
direction String Trade direction: BUY or SELL
orderType String Order type: ORDINARY (normal order), STOP_LIMIT (stop loss/take profit), TRIGGER_ORDER (trigger order)
canceledTime Long Time when the order was canceled
finishedTime Long Time when the order reached a terminal state, not the time of completion, includes the "revoked" state

# Request Example

GET /v1/spot/order/orderHistory?direction=BUY&limit=2&states=COMPLETED&symbol=BTC/USDT&types=LIMIT

# Response Parameters

{
  "code": "200",
  "message": "OK",
  "timestamp": "1687266305060",
  "data": [
    {
      "symbol": "BTC/USDT",
      "orderId": "591366500541050881",
      "price": "26872.1",
      "amount": "0.001",
      "turnover": "26.8721",
      "createdTime": "1687264761000",
      "type": "LIMIT",
      "direction": "BUY",
      "filledAmount": "0.001",
      "filledQuoteAmount": "26.86922",
      "state": "COMPLETED",
      "feeType": "GOLD_STANDARD",
      "frozenFee": "0.0806163",
      "feeRatio": "0.003",
      "orderType": "ORDINARY",
      "finishedTime": "1687265451000"
    },
    {
      "symbol": "BTC/USDT",
      "orderId": "585775314987450368",
      "price": "27144.82",
      "amount": "0.001",
      "turnover": "27.14482",
      "createdTime": "1685931718000",
      "type": "LIMIT",
      "direction": "BUY",
      "filledAmount": "0.001",
      "filledQuoteAmount": "27.14482",
      "state": "COMPLETED",
      "feeType": "GOLD_STANDARD",
      "frozenFee": "0.08143446",
      "feeRatio": "0.003",
      "orderType": "ORDINARY",
      "finishedTime": "1685931719000"
    }
  ]
}

# Current and Historical Trades

GET /v1/spot/order/tradeHistory

Module Type Resource Isolation Type Rate Limit
Spot Order (SPOT_ORDER) Submit (SUBMIT) Trading Pair (SYMBOL) 5

# Parameters

Name Type Request Description
symbol String Yes Trading pair, e.g., BTC/USDT
direction String No Trade direction, available values: BUY, SELL
limit Int No Number of trades to return, maximum value is 500
startTime Long No Start time for the query, in UTC time in milliseconds. Query based on trade execution time, e.g., 1687312920000
endTime Long No End time for the query, in UTC time in milliseconds. Query based on trade execution time, e.g., 1687312922000

# Response Parameters

Name Type Description
symbol String Trading pair
amount Decimal Trade volume in base currency
matchedTime Long Trade execution time
orderId Long Order ID
tradeRole String Role in the trade: TAKER, MAKER
officialReceiptsFeeRatio Decimal Actual fee collection rate
feeType String Fee type, COIN_STANDARD (buyer fee in base currency, seller fee in quote currency), GOLD_STANDARD (fees in quote currency for both buyer and seller)
feeCoin String Fee currency
price Decimal Trade price
officialReceiptsFee Decimal Actual fee collected, including rebate amount
tradeId Long Trade order ID
turnover Decimal Trade turnover in quote currency
direction String Trade direction: BUY or SELL
type String Order type: MARKET, LIMIT, STOP_LIMIT, TRIGGER_ORDER_MARKET, TRIGGER_ORDER_LIMIT

# Request Example

GET /v1/spot/order/tradeHistory?symbol=BTC/USDT

# Response Example

{
  "code": "200",
  "message": "OK",
  "timestamp": "1687315211978",
  "data": [
    {
      "symbol": "BTC/USDT",
      "orderId": "591568467350958081",
      "tradeId": "591568499638710273",
      "matchedTime": "1687312921000",
      "price": "28796.78",
      "amount": "0.001",
      "turnover": "28.79678",
      "tradeRole": "MAKER",
      "direction": "BUY",
      "officialReceiptsFeeRatio": "0.29997",
      "officialReceiptsFee": "8.63817009",
      "feeCoin": "USDT",
      "feeType": "GOLD_STANDARD",
      "type": "LIMIT"
    }
  ]
}

# Trade Details

GET /v1/spot/order/myTrades

Module Type Resource Isolation Type Rate Limit
Spot Order (SPOT_ORDER) Submit (SUBMIT) Trading Pair (SYMBOL) 5

# Parameters

Name Type Request Description
symbol String Yes Trading pair, e.g., BTC/USDT
orderId Long Yes Order ID

###Response Parameters

Name Type Description
symbol String Trading pair
amount Decimal Trade volume in base currency)
matchedTime Long Trade execution time
orderId Long Order ID
tradeRole String Role in the trade: TAKER, MAKER
officialReceiptsFeeRatio Decimal Actual fee collection rate
feeType String Fee type, COIN_STANDARD (buyer fee in base currency, seller fee in quote currency), GOLD_STANDARD (fees in quote currency for both buyer and seller)
feeCoin String Fee currency
price Decimal Trade price
officialReceiptsFee Decimal Actual fee collected, including rebate amount
tradeId Long Trade order ID
turnover Decimal Trade turnover in quote currency
direction String Trade direction: BUY or SELL
type String Order type: MARKET, LIMIT, STOP_LIMIT, TRIGGER_ORDER_MARKET, TRIGGER_ORDER_LIMIT

# Request Example

GET /v1/spot/order/myTrades?orderId=591568467350958081&symbol=BTC/USDT

# Response Example

{
  "code": "200",
  "message": "OK",
  "timestamp": "1687315331893",
  "data": [
    {
      "symbol": "BTC/USDT",
      "orderId": "591568467350958081",
      "tradeId": "591568499638710273",
      "matchedTime": "1687312921000",
      "price": "28796.78",
      "amount": "0.001",
      "turnover": "28.79678",
      "tradeRole": "MAKER",
      "direction": "BUY",
      "officialReceiptsFeeRatio": "0.29997",
      "officialReceiptsFee": "8.63817009",
      "feeCoin": "USDT",
      "feeType": "GOLD_STANDARD",
      "type": "LIMIT"
    }
  ]
}

# Get User's Current Fee Rates

GET /v1/spot/order/transactFeeRate

Module Type Resource Isolation Type Rate Limit
Spot Order (SPOT_ORDER) Submit (SUBMIT) Trading Pair (SYMBOL) 5

# Parameters

Name Type Request Description
symbol String Yes Traidng pair, eg.BTC/USDT

# Response Parameters

Name Type Description
symbol String Trading pair
makerRatio Decimal Current user's maker fee rate
takerRatio Decimal Current user's taker fee rate

# Request Example

GET /v1/spot/order/transactFeeRate?symbol=BTC/USDT

# Response Example

{
  "code": "200",
  "message": "OK",
  "timestamp": "1687309754397",
  "data": {
    "symbol": "BTC/USDT",
    "makerRatio": "0.29997",
    "takerRatio": "0.00294"
  }
}