Skip to main content

New Order(TRADE)

API Description#

Send in a new order.

Method#

order.place

Request#

{    "id": "3f7df6e3-2df4-44b9-9919-d2f38f90a99a",    "method": "order.place",    "params": {        "apiKey": "HMOchcfii9ZRZnhjp2XjGXhsOBd6msAhKz9joQaWwZ7arcJTlD2hGPHQj1lGdTjR",        "positionSide": "BOTH",        "price": "43187.00",        "quantity": 0.1,        "side": "BUY",        "symbol": "BTCUSDT",        "timeInForce": "GTC",        "timestamp": 1702555533821,        "type": "LIMIT",        "signature": "0f04368b2d22aafd0ggc8809ea34297eff602272917b5f01267db4efbc1c9422"    }}

Request Weight#

0

Request Parameters#

NameTypeMandatoryDescription
symbolSTRINGYES
sideENUMYES
positionSideENUMNODefault BOTH for One-way Mode ; LONG or SHORT for Hedge Mode. It must be sent in Hedge Mode.
typeENUMYES
timeInForceENUMNO
quantityDECIMALNOCannot be sent with closePosition=true(Close-All)
reduceOnlySTRINGNO"true" or "false". default "false". Cannot be sent in Hedge Mode; cannot be sent with closePosition=true
priceDECIMALNO
newClientOrderIdSTRINGNOA unique id among open orders. Automatically generated if not sent. Can only be string following the rule: ^[\.A-Z\:/a-z0-9_-]{1,36}$
stopPriceDECIMALNOUsed with STOP/STOP_MARKET or TAKE_PROFIT/TAKE_PROFIT_MARKET orders.
closePositionSTRINGNOtrue, false;Close-All,used with STOP_MARKET or TAKE_PROFIT_MARKET.
activationPriceDECIMALNOUsed with TRAILING_STOP_MARKET orders, default as the latest price(supporting different workingType)
callbackRateDECIMALNOUsed with TRAILING_STOP_MARKET orders, min 0.1, max 5 where 1 for 1%
workingTypeENUMNOstopPrice triggered by: "MARK_PRICE", "CONTRACT_PRICE". Default "CONTRACT_PRICE"
priceProtectSTRINGNO"TRUE" or "FALSE", default "FALSE". Used with STOP/STOP_MARKET or TAKE_PROFIT/TAKE_PROFIT_MARKET orders.
newOrderRespTypeENUMNO"ACK", "RESULT", default "ACK"
recvWindowLONGNO
timestampLONGYES

Additional mandatory parameters based on type:

TypeAdditional mandatory parameters
LIMITtimeInForce, quantity, price
MARKETquantity
STOP/TAKE_PROFITquantity, price, stopPrice
STOP_MARKET/TAKE_PROFIT_MARKETstopPrice
TRAILING_STOP_MARKETcallbackRate
  • Order with type STOP, parameter timeInForce can be sent ( default GTC).

  • Order with type TAKE_PROFIT, parameter timeInForce can be sent ( default GTC).

  • Condition orders will be triggered when:

    • If parameterpriceProtectis sent as true:
      • when price reaches the stopPrice ,the difference rate between "MARK_PRICE" and "CONTRACT_PRICE" cannot be larger than the "triggerProtect" of the symbol
      • "triggerProtect" of a symbol can be got from GET /fapi/v1/exchangeInfo
    • STOP, STOP_MARKET:
      • BUY: latest price ("MARK_PRICE" or "CONTRACT_PRICE") >= stopPrice
      • SELL: latest price ("MARK_PRICE" or "CONTRACT_PRICE") <= stopPrice
    • TAKE_PROFIT, TAKE_PROFIT_MARKET:
      • BUY: latest price ("MARK_PRICE" or "CONTRACT_PRICE") <= stopPrice
      • SELL: latest price ("MARK_PRICE" or "CONTRACT_PRICE") >= stopPrice
    • TRAILING_STOP_MARKET:
      • BUY: the lowest price after order placed <= activationPrice, and the latest price >= the lowest price * (1 + callbackRate)
      • SELL: the highest price after order placed >= activationPrice, and the latest price <= the highest price * (1 - callbackRate)
  • For TRAILING_STOP_MARKET, if you got such error code.
    {"code": -2021, "msg": "Order would immediately trigger."}
    means that the parameters you send do not meet the following requirements:

    • BUY: activationPrice should be smaller than latest price.
    • SELL: activationPrice should be larger than latest price.
  • If newOrderRespType is sent as RESULT :

    • MARKET order: the final FILLED result of the order will be return directly.
    • LIMIT order with special timeInForce: the final status result of the order(FILLED or EXPIRED) will be returned directly.
  • STOP_MARKET, TAKE_PROFIT_MARKET with closePosition=true:

    • Follow the same rules for condition orders.
    • If triggered,close all current long position( if SELL) or current short position( if BUY).
    • Cannot be used with quantity paremeter
    • Cannot be used with reduceOnly parameter
    • In Hedge Mode,cannot be used with BUY orders in LONG position side. and cannot be used with SELL orders in SHORT position side

Response Example#

{    "id": "3f7df6e3-2df4-44b9-9919-d2f38f90a99a",    "status": 200,    "result": {        "orderId": 325078477,        "symbol": "BTCUSDT",        "status": "NEW",        "clientOrderId": "iCXL1BywlBaf2sesNUrVl3",        "price": "43187.00",        "avgPrice": "0.00",        "origQty": "0.100",        "executedQty": "0.000",        "cumQty": "0.000",        "cumQuote": "0.00000",        "timeInForce": "GTC",        "type": "LIMIT",        "reduceOnly": false,        "closePosition": false,        "side": "BUY",        "positionSide": "BOTH",        "stopPrice": "0.00",        "workingType": "CONTRACT_PRICE",        "priceProtect": false,        "origType": "LIMIT",        "priceMatch": "NONE",        "selfTradePreventionMode": "NONE",        "goodTillDate": 0,        "updateTime": 1702555534435    },    "rateLimits": [        {            "rateLimitType": "ORDERS",            "interval": "SECOND",            "intervalNum": 10,            "limit": 300,            "count": 1        },        {            "rateLimitType": "ORDERS",            "interval": "MINUTE",            "intervalNum": 1,            "limit": 1200,            "count": 1        },        {            "rateLimitType": "REQUEST_WEIGHT",            "interval": "MINUTE",            "intervalNum": 1,            "limit": 2400,            "count": 1        }    ]}