Navbar
简体中文

Change Log

Important Documentation Notice

Binance has launched its new API Documentation Portal. The existing GitHub API documentation is now deprecated(2024-06-17) and set to go offline in the upcoming few months following user migration; the exact date will be determined and communicated in due course.

During this transition phase, both sites will be maintained. However, any new services will only be published in the new portal moving forward.

Here's a reference table of the links for the current and new API documentation:

Functionality Current Documentation New Documentation
Spot Trading Current Documentation New Documentation
Spot Websocket API Current Documentation New Documentation
Margin Trading Current Documentation New Documentation
Derivative UM Futures Current Documentation New Documentation
Derivative CM Futures Current Documentation New Documentation
Derivative Options Current Documentation New Documentation
Derivative Portfolio Margin Current Documentation New Documentation
Wallet Current Documentation New Documentation
Sub Account Current Documentation New Documentation
Simple Earn Current Documentation New Documentation
Dual Investment Current Documentation New Documentation
Auto Invest Current Documentation New Documentation
Staking Current Documentation New Documentation
Mining Current Documentation New Documentation
Algo Trading Current Documentation New Documentation
Copy Trading Current Documentation New Documentation
Porfolio Margin Pro Current Documentation New Documentation
Fiat Current Documentation New Documentation
C2C Current Documentation New Documentation
VIP Loan Current Documentation New Documentation
Crypto Loan Current Documentation New Documentation
Pay Current Documentation New Documentation
Convert Current Documentation New Documentation
Rebate Current Documentation New Documentation
NFT Current Documentation New Documentation
Gift Card Current Documentation New Documentation

2024-07-24

REST API

WebSocket API

Deprecation Notice: - The following endpoints will be deprecated in the coming months (exact date to be announced later). Please switch to the new endpoints listed above: - REST API: - GET /fapi/v2/balance - GET /fapi/v2/account - GET /fapi/v2/positionRisk - Websocket API: - account.status - account.balance - account.position


2024-06-19


2024-05-28


2024-05-24


2024-04-19

{
    "listenKey": "3HBntNTepshgEdjIwSUIBgB9keLyOCg5qv3n6bYAtktG8ejcaW5HXz9Vx1JgIieg"
}

2024-04-09


2024-04-01

WEBSOCKET API


2024-03-11

REST


2024-02-09

Binance Future is doing Websocket Service upgrade and the upgrade impacts the following:


2024-01-24

Testnet WEBSOCKET


2024-01-08

REST


2023-12-12

WEBSOCKET


2023-11-15

REST

WEBSOCKET


2023-11-01

REST


2023-10-19

REST


2023-10-16

REST


2023-10-11

REST


2023-09-25

REST


2023-09-20

REST


2023-09-19

{
    "code": -1008,
    "msg": "Server is currently overloaded with other requests. Please try again in a few minutes."
}

2023-09-05


2023-08-31

Binance Future is doing Websocket Service upgrade and the upgrade impacts the following:


2023-08-29





2023-08-19


2023-08-14


2023-07-18

REST


2023-07-04

REST


2023-06-28

Notice:

REST


2023-06-22

Notice:

WEBSOCKET


2023-06-16

Notice:


2023-06-14

WEBSOCKET


2023-05-31

WEBSOCKET


2023-05-24

REST


2023-05-05

REST

WEBSOCKET


2023-04-17

RELEASE DATE 2023-04-18

The recvWindow check will also be performed when orders reach matching engine. The recvWindow will be checked more precisely on order placing endpoints.

{
    "code": -5028,
    "msg": "Timestamp for this request is outside of the ME recvWindow"
}

recvWindow Logic Before Release:

recvWindow Logic After Release:


2023-03-28

Referal Rebate Logic Before Release

{
  "e": "ACCOUNT_UPDATE",
  "T": 1679974782150,
  "E": 1679974782155,
  "a": {
    "B": [
      {
       "a": "USDT",
       "wb": "685.31478079",
       "cw": "677.17212454",
       "bc": "0.00258637"
      }
    ],
    "P": [],
    "m": "ADMIN_DEPOSIT"
  }
}

Referal Rebate Logic After Release


2023-03-08

RELEASE DATE 2023-03-22

Order Logic Before Release:

{
    "code": -5021,
    "msg": "Due to the order could not be filled immediately, the FOK order has been rejected. The order will not be recorded in the order history"
}

Order Logic After Release:

{
    "code": -5022,
    "msg": "Due to the order could not be executed as maker, the Post Only order will be rejected. The order will not be recorded in the order history"
}

2023-01-04

WEBSOCKET


2022-12-16

WEBSOCKET


2022-11-29

WEB SOCKET USER DATA STREAM


2022-10-13

Note: This change will be effictive on 2022-10-17

REST RATE LIMIT WEIGHT

Endpoint GET /fapi/v1/ticker/bookTicker

Weight Update:

2 for a single symbol;
5 when the symbol parameter is omitted


2022-09-22


2022-07-27

REST RATE LIMIT WEIGHT


2022-06-28

REST


2022-03-01

REST


2022-02-10

REST


2021-12-30

WEBSOCKET


2021-11-02

REST


2021-07-06

REST


2021-06-15

WEBSOCKET

REST


2021-05-06

WEBSOCKET

REST


2021-04-27

WEBSOCKET

REST


2021-04-22

WEBSOCKET


2021-03-02


2021-02-24

REST RATE LIMIT WEIGHT


2021-02-22

REST RATE LIMIT WEIGHT

REST


2021-01-26

WEB SOCKET USER DATA STREAM

REST RATE LIMIT WEIGHT

REST


2021-01-21

The regular expression rule for newClientOrderId updated as ^[\.A-Z\:/a-z0-9_-]{1,36}$


2021-01-04

REST RATE LIMIT WEIGHT


2020-12-08

WEBSOCKET

REST API

ENUM


2020-11-27


2020-11-13

WEB SOCKET STREAM


2020-11-10


2020-11-09

WEB SOCKET USER DATA STREAM

Please notice: new streamlined and optimized push rules on event ACCOUNT_UPDATE in USER-DATA-STREAM


2020-10-27

WEB SOCKET STREAM


2020-10-10

WEBSOCKET


2020-10-09


2020-09-18


2020-09-09


2020-08-14


2020-08-12


2020-07-30


2020-07-17


2020-07-02

WEBSOCKET


2020-06-15


2020-06-04


2020-06-02


2020-05-18


2020-05-18


2020-05-15


2020-05-14


2020-05-11


2020-05-06

REST

WEB SOCKET USER DATA STREAM


2020-04-25


2020-04-17


2020-04-14

WEB SOCKET STREAM


2020-04-09


2020-04-08


2020-04-06


2020-03-30

2020-02-26


2020-02-20


2020-02-17


2020-02-12


2020-02-05


2020-01-19


2020-01-17


2020-01-06


2020-01-03


2019-12-19


2019-12-18


2019-12-12


2019-11-29


2019-11-25


2019-11-15


2019-11-12


2019-11-05


2019-10-28


2019-10-25


2019-10-24


2019-10-18


2019-10-14


2019-10-11


2019-10-08


2019-09-20

General Info

testnet

SDK and Code Demonstration

Disclaimer:

Python3

SDK: To get the provided SDK for Binance Futures Connector,
please visit https://github.com/binance/binance-futures-connector-python,
or use the command below:
pip install binance-futures-connector

Java

To get the provided SDK for Binance Futures,
please visit https://github.com/binance/binance-futures-connector-java,
or use the command below:
git clone https://github.com/binance/binance-futures-connector-java.git

General API Information

HTTP Return Codes

Error Codes and Messages

The error payload is as follows:

{
  "code": -1121,
  "msg": "Invalid symbol."
}

General Information on Endpoints

LIMITS

IP Limits

Order Rate Limits

Endpoint Security Type

Security Type Description
NONE Endpoint can be accessed freely.
TRADE Endpoint requires sending a valid API-Key and signature.
USER_DATA Endpoint requires sending a valid API-Key and signature.
USER_STREAM Endpoint requires sending a valid API-Key.
MARKET_DATA Endpoint requires sending a valid API-Key.

SIGNED (TRADE and USER_DATA) Endpoint Security

Timing Security

The logic is as follows:

  if (timestamp < (serverTime + 1000) && (serverTime - timestamp) <= recvWindow){
    // process request
  } 
  else {
    // reject request
  }

Serious trading is about timing. Networks can be unstable and unreliable, which can lead to requests taking varying amounts of time to reach the servers. With recvWindow, you can specify that the request must be processed within a certain number of milliseconds or be rejected by the server.

SIGNED Endpoint Examples for POST /fapi/v1/order - HMAC Keys

Here is a step-by-step example of how to send a vaild signed payload from the Linux command line using echo, openssl, and curl.

Key Value
apiKey dbefbc809e3e83c283a984c3a1459732ea7db1360ca80c5c2c8867408d28cc83
secretKey 2b5eb11e18796d12d88f13dc27dbbd02c2cc51ff7059765ed9821957d82bb4d9
Parameter Value
symbol BTCUSDT
side BUY
type LIMIT
timeInForce GTC
quantity 1
price 9000
recvWindow 5000
timestamp 1591702613943

Example 1: As a query string

Example 1

HMAC SHA256 signature:

    $ echo -n "symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=1&price=9000&timeInForce=GTC&recvWindow=5000&timestamp=1591702613943" | openssl dgst -sha256 -hmac "2b5eb11e18796d12d88f13dc27dbbd02c2cc51ff7059765ed9821957d82bb4d9"
    (stdin)= 3c661234138461fcc7a7d8746c6558c9842d4e10870d2ecbedf7777cad694af9

curl command:


    $ curl -H "X-MBX-APIKEY: dbefbc809e3e83c283a984c3a1459732ea7db1360ca80c5c2c8867408d28cc83" -X POST 'https://fapi/binance.com/fapi/v1/order?symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=1&price=9000&timeInForce=GTC&recvWindow=5000&timestamp=1591702613943&signature= 3c661234138461fcc7a7d8746c6558c9842d4e10870d2ecbedf7777cad694af9'

Example 2: As a request body

Example 2

HMAC SHA256 signature:

    $ echo -n "symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=1&price=9000&timeInForce=GTC&recvWindow=5000&timestamp=1591702613943" | openssl dgst -sha256 -hmac "2b5eb11e18796d12d88f13dc27dbbd02c2cc51ff7059765ed9821957d82bb4d9"
    (stdin)= 3c661234138461fcc7a7d8746c6558c9842d4e10870d2ecbedf7777cad694af9

curl command:


    $ curl -H "X-MBX-APIKEY: dbefbc809e3e83c283a984c3a1459732ea7db1360ca80c5c2c8867408d28cc83" -X POST 'https://fapi/binance.com/fapi/v1/order' -d 'symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=1&price=9000&timeInForce=GTC&recvWindow=5000&timestamp=1591702613943&signature= 3c661234138461fcc7a7d8746c6558c9842d4e10870d2ecbedf7777cad694af9'

Example 3: Mixed query string and request body

Example 3

HMAC SHA256 signature:

    $ echo -n "symbol=BTCUSDT&side=BUY&type=LIMIT&timeInForce=GTCquantity=1&price=9000&recvWindow=5000&timestamp= 1591702613943" | openssl dgst -sha256 -hmac "2b5eb11e18796d12d88f13dc27dbbd02c2cc51ff7059765ed9821957d82bb4d9"
    (stdin)= f9d0ae5e813ef6ccf15c2b5a434047a0181cb5a342b903b367ca6d27a66e36f2

curl command:


    $ curl -H "X-MBX-APIKEY: dbefbc809e3e83c283a984c3a1459732ea7db1360ca80c5c2c8867408d28cc83" -X POST 'https://fapi.binance.com/fapi/v1/order?symbol=BTCUSDT&side=BUY&type=LIMIT&timeInForce=GTC' -d 'quantity=1&price=9000&recvWindow=5000&timestamp=1591702613943&signature=f9d0ae5e813ef6ccf15c2b5a434047a0181cb5a342b903b367ca6d27a66e36f2'

Note that the signature is different in example 3.
There is no & between "GTC" and "quantity=1".

SIGNED Endpoint Examples for POST /fapi/v1/order - RSA Keys

For this example, the private key will be referenced as test-prv-key.pem

Key Value
apiKey vE3BDAL1gP1UaexugRLtteaAHg3UO8Nza20uexEuW1Kh3tVwQfFHdAiyjjY428o2
Parameter Value
symbol BTCUSDT
side SELL
type MARKET
quantity 1.23
recvWindow 9999999
timestamp 1671090801999

Signature payload (with the listed parameters):

timestamp=1671090801999&recvWindow=9999999&symbol=BTCUSDT&side=SELL&type=MARKET&quantity=1.23

Step 1: Construct the payload

Arrange the list of parameters into a string. Separate each parameter with a &.

Step 2: Compute the signature:

2.1 - Encode signature payload as ASCII data.

Step 2.2

 $ echo -n 'timestamp=1671090801999&recvWindow=9999999&symbol=BTCUSDT&side=SELL&type=MARKET&quantity=1.23' | openssl dgst -keyform PEM -sha256 -sign ./test-prv-key.pem

2.2 - Sign payload using RSASSA-PKCS1-v1_5 algorithm with SHA-256 hash function.

Step 2.3

$ echo -n 'timestamp=1671090801999&recvWindow=9999999&symbol=BTCUSDT&side=SELL&type=MARKET&quantity=1.23' | openssl dgst -keyform PEM -sha256 -sign ./test-prv-key.pem | openssl enc -base64
aap36wD5loVXizxvvPI3wz9Cjqwmb3KVbxoym0XeWG1jZq8umqrnSk8H8dkLQeySjgVY91Ufs%2BBGCW%2B4sZjQEpgAfjM76riNxjlD3coGGEsPsT2lG39R%2F1q72zpDs8pYcQ4A692NgHO1zXcgScTGgdkjp%2Brp2bcddKjyz5XBrBM%3D

2.3 - Encode output as base64 string.

Step 2.4

$  echo -n 'timestamp=1671090801999&recvWindow=9999999&symbol=BTCUSDT&side=SELL&type=MARKET&quantity=1.23' | openssl dgst -keyform PEM -sha256 -sign ./test-prv-key.pem | openssl enc -base64 | tr -d '\n'
aap36wD5loVXizxvvPI3wz9Cjqwmb3KVbxoym0XeWG1jZq8umqrnSk8H8dkLQeySjgVY91Ufs%2BBGCW%2B4sZjQEpgAfjM76riNxjlD3coGGEsPsT2lG39R%2F1q72zpDs8pYcQ4A692NgHO1zXcgScTGgdkjp%2Brp2bcddKjyz5XBrBM%3D

2.4 - Delete any newlines in the signature.

Step 2.5

aap36wD5loVXizxvvPI3wz9Cjqwmb3KVbxoym0XeWG1jZq8umqrnSk8H8dkLQeySjgVY91Ufs%2BBGCW%2B4sZjQEpgAfjM76riNxjlD3coGGEsPsT2lG39R%2F1q72zpDs8pYcQ4A692NgHO1zXcgScTGgdkjp%2Brp2bcddKjyz5XBrBM%3D

2.5 - Since the signature may contain / and =, this could cause issues with sending the request. So the signature has to be URL encoded.

Step 2.6

 curl -H "X-MBX-APIKEY: vE3BDAL1gP1UaexugRLtteaAHg3UO8Nza20uexEuW1Kh3tVwQfFHdAiyjjY428o2" -X POST 'https://fapi.binance.com/fapi/v1/order?timestamp=1671090801999&recvWindow=9999999&symbol=BTCUSDT&side=SELL&type=MARKET&quantity=1.23&signature=aap36wD5loVXizxvvPI3wz9Cjqwmb3KVbxoym0XeWG1jZq8umqrnSk8H8dkLQeySjgVY91Ufs%2BBGCW%2B4sZjQEpgAfjM76riNxjlD3coGGEsPsT2lG39R%2F1q72zpDs8pYcQ4A692NgHO1zXcgScTGgdkjp%2Brp2bcddKjyz5XBrBM%3D'

2.6 - curl command

Bash script

#!/usr/bin/env bash

# Set up authentication:
apiKey="vE3BDAL1gP1UaexugRLtteaAHg3UO8Nza20uexEuW1Kh3tVwQfFHdAiyjjY428o2"   ### REPLACE THIS WITH YOUR API KEY

# Set up the request:
apiMethod="POST"
apiCall="v1/order"
apiParams="timestamp=1671090801999&recvWindow=9999999&symbol=BTCUSDT&side=SELL&type=MARKET&quantity=1.23"
function rawurlencode {
    local value="$1"
    local len=${#value}
    local encoded=""
    local pos c o
    for (( pos=0 ; pos<len ; pos++ ))
    do
        c=${value:$pos:1}
        case "$c" in
            [-_.~a-zA-Z0-9] ) o="${c}" ;;
            * )   printf -v o '%%%02x' "'$c"
        esac
        encoded+="$o"
    done
    echo "$encoded"
}
ts=$(date +%s000)
paramsWithTs="$apiParams&timestamp=$ts"
rawSignature=$(echo -n "$paramsWithTs" \
               | openssl dgst -keyform PEM -sha256 -sign ./test-prv-key.pem \  ### THIS IS YOUR PRIVATE KEY. DO NOT SHARE THIS FILE WITH ANYONE.
               | openssl enc -base64 \
               | tr -d '\n')
signature=$(rawurlencode "$rawSignature")
curl -H "X-MBX-APIKEY: $apiKey" -X $apiMethod \
    "https://fapi.binance.com/fapi/$apiCall?$paramsWithTs&signature=$signature"

A sample Bash script containing similar steps is available in the right side.


Public Endpoints Info

Terminology

ENUM definitions

Symbol type:

Contract type (contractType):

Contract status(contractStatus,status):

Order status (status):

Order types (orderTypes, type):

Order side (side):

Position side (positionSide):

Time in force (timeInForce):

Working Type (workingType)

Response Type (newOrderRespType)

Kline/Candlestick chart intervals:

m -> minutes; h -> hours; d -> days; w -> weeks; M -> months

STP MODE:

Price Match:

Rate limiters (rateLimitType)

REQUEST_WEIGHT

  {
    "rateLimitType": "REQUEST_WEIGHT",
    "interval": "MINUTE",
    "intervalNum": 1,
    "limit": 2400
  }

ORDERS

  {
    "rateLimitType": "ORDERS",
    "interval": "MINUTE",
    "intervalNum": 1,
    "limit": 1200
   }

Rate limit intervals (interval)

Filters

Filters define trading rules on a symbol or an exchange.

Symbol filters

PRICE_FILTER

/exchangeInfo format:

  {
    "filterType": "PRICE_FILTER",
    "minPrice": "0.00000100",
    "maxPrice": "100000.00000000",
    "tickSize": "0.00000100"
  }

The PRICE_FILTER defines the price rules for a symbol. There are 3 parts:

Any of the above variables can be set to 0, which disables that rule in the price filter. In order to pass the price filter, the following must be true for price/stopPrice of the enabled rules:

LOT_SIZE

/exchangeInfo format:

  {
    "filterType": "LOT_SIZE",
    "minQty": "0.00100000",
    "maxQty": "100000.00000000",
    "stepSize": "0.00100000"
  }

The LOT_SIZE filter defines the quantity (aka "lots" in auction terms) rules for a symbol. There are 3 parts:

In order to pass the lot size, the following must be true for quantity:

MARKET_LOT_SIZE

/exchangeInfo format:

  {
    "filterType": "MARKET_LOT_SIZE",
    "minQty": "0.00100000",
    "maxQty": "100000.00000000",
    "stepSize": "0.00100000"
  }

The MARKET_LOT_SIZE filter defines the quantity (aka "lots" in auction terms) rules for MARKET orders on a symbol. There are 3 parts:

In order to pass the market lot size, the following must be true for quantity:

MAX_NUM_ORDERS

/exchangeInfo format:

  {
    "filterType": "MAX_NUM_ORDERS",
    "limit": 200
  }

The MAX_NUM_ORDERS filter defines the maximum number of orders an account is allowed to have open on a symbol.

Note that both "algo" orders and normal orders are counted for this filter.

MAX_NUM_ALGO_ORDERS

/exchangeInfo format:

  {
    "filterType": "MAX_NUM_ALGO_ORDERS",
    "limit": 100
  }

The MAX_NUM_ALGO_ORDERS filter defines the maximum number of all kinds of algo orders an account is allowed to have open on a symbol.

The algo orders include STOP, STOP_MARKET, TAKE_PROFIT, TAKE_PROFIT_MARKET, and TRAILING_STOP_MARKET orders.

PERCENT_PRICE

/exchangeInfo format:

  {
    "filterType": "PERCENT_PRICE",
    "multiplierUp": "1.1500",
    "multiplierDown": "0.8500",
    "multiplierDecimal": 4
  }

The PERCENT_PRICE filter defines valid range for a price based on the mark price.

In order to pass the percent price, the following must be true for price:

MIN_NOTIONAL

/exchangeInfo format:

  {
    "filterType": "MIN_NOTIONAL",
    "notional": "5.0"
  }

The MIN_NOTIONAL filter defines the minimum notional value allowed for an order on a symbol. An order's notional value is the price * quantity. Since MARKET orders have no price, the mark price is used.


Postman Collections

There is now a Postman collection containing the API endpoints for quick and easy use.

For more information please refer to this page: Binance API Postman

WebSocket API General Info

WebSocket API Request format

Requests must be sent as JSON in text frames, one request per frame.

Example of request:

{
  "id": "9ca10e58-7452-467e-9454-f669bb9c764e",
  "method": "order.place",
  "params": {
    "apiKey": "yeqKcXjtA9Eu4Tr3nJk61UJAGzXsEmFqqfVterxpMpR4peNfqE7Zl7oans8Qj089",
    "price": "42088.0",
    "quantity": "0.1",
    "recvWindow": 5000,
    "side": "BUY",
    "signature": "996962a19802b5a09d7bc6ab1524227894533322a2f8a1f8934991689cabf8fe",
    "symbol": "BTCUSDT",
    "timeInForce": "GTC",
    "timestamp": 1705311512994,
    "type": "LIMIT"
  }
}

Request fields:

Name Type Mandatory  Description
id INT/STRING/null YES Arbitrary ID used to match responses to requests
method STRING YES Request method name
params OBJECT NO Request parameters. May be omitted if there are no parameters

   * Request id is truly arbitrary. You can use UUIDs, sequential IDs, current timestamp, etc. The server does not interpret id in any way, simply echoing it back in the response.

You can freely reuse IDs within a session. However, be careful to not send more than one request at a time with the same ID, since otherwise it might be impossible to tell the responses apart.   * Request method names may be prefixed with explicit version: e.g., "v3/order.place". * The order of params is not significant.

Response format

Responses are returned as JSON in text frames, one response per frame.

Example of successful response:

{
  "id": "43a3843a-2321-4e45-8f79-351e5c354563",
  "status": 200,
  "result": {
    "orderId": 336829446,
    "symbol": "BTCUSDT",
    "status": "NEW",
    "clientOrderId": "FqEw6cn0vDhrkmfiwLYPeo",
    "price": "42088.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": 1705385954229
  },
  "rateLimits": [
    {
      "rateLimitType": "REQUEST_WEIGHT",
      "interval": "MINUTE",
      "intervalNum": 1,
      "limit": 2400,
      "count": 1
    },
    {
      "rateLimitType": "ORDERS",
      "interval": "SECOND",
      "intervalNum": 10,
      "limit": 300,
      "count": 1
    },
    {
      "rateLimitType": "ORDERS",
      "interval": "MINUTE",
      "intervalNum": 1,
      "limit": 1200,
      "count": 0
    }
  ]
}

Example of failed response:

{
  "id": "5761b939-27b1-4948-ab87-4a372a3f6b72",
  "status": 400,
  "error": {
    "code": -1102,
    "msg": "Mandatory parameter 'quantity' was not sent, was empty/null, or malformed."
  },
  "rateLimits": [
    {
      "rateLimitType": "REQUEST_WEIGHT",
      "interval": "MINUTE",
      "intervalNum": 1,
      "limit": 2400,
      "count": 1
    },
    {
      "rateLimitType": "ORDERS",
      "interval": "SECOND",
      "intervalNum": 10,
      "limit": 300,
      "count": 1
    },
    {
      "rateLimitType": "ORDERS",
      "interval": "MINUTE",
      "intervalNum": 1,
      "limit": 1200,
      "count": 1
    }
  ]
}

Response fields:

Name Type Mandatory  Description
id INT/STRING/null YES Same as in the original request
status INT YES Response status. See status codes
result OBJECT/ARRAY YES Response content. Present if request succeeded
error OBJECT YES Error description. Present if request failed
rateLimits ARRAY NO Rate limiting status. See Rate limits

WebSocket API Rate limits

WebSocket API Authenticate after connection

You can authenticate an already established connection using session authentication requests: * session.logon - authenticate, or change the API key associated with the connection * session.status - check connection status and the current API key * session.logout - forget the API key associated with the connection

WebSocket API API key revocation

If during an active session the API key becomes invalid for any reason (e.g. IP address is not whitelisted, API key was deleted, API key doesn't have correct permissions, etc), after the next request the session will be revoked with the following error message:

{
  "id": null,
  "status": 401,
  "error": {
    "code": -2015,
    "msg": "Invalid API-key, IP, or permissions for action." 
  }
}

WebSocket API Authorize ad hoc requests

Only one API key can be authenticated with the WebSocket connection. The authenticated API key is used by default for requests that require an apiKey parameter. However, you can always specify the apiKey and signature explicitly for individual requests, overriding the authenticated API key and using a different one to authorize a specific request.

For example, you might want to authenticate your USER_DATA key to be used by default, but specify the TRADE key with an explicit signature when placing orders.

WebSocket API Authentication request

Note: Only Ed25519 keys are supported for this feature.

Log in with API key (SIGNED)

Request

{
  "id": "c174a2b1-3f51-4580-b200-8528bd237cb7",
  "method": "session.logon",
  "params": {
    "apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
    "signature": "1cf54395b336b0a9727ef27d5d98987962bc47aca6e13fe978612d0adee066ed",
    "timestamp": 1649729878532
  }
}

Response

{
  "id": "c174a2b1-3f51-4580-b200-8528bd237cb7",
  "status": 200,
  "result": {
    "apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
    "authorizedSince": 1649729878532,
    "connectedSince": 1649729873021,
    "returnRateLimits": false,
    "serverTime": 1649729878630
  }
}

Authenticate WebSocket connection using the provided API key.

After calling session.logon, you can omit apiKey and signature parameters for future requests that require them.

Note that only one API key can be authenticated. Calling session.logon multiple times changes the current authenticated API key.

Weight: 2

Method: "session.logon"

Parameters

Name Type Mandatory  Description
apiKey STRING YES
recvWindow INT NO
signature STRING YES
timestamp INT YES

Query session status

Request

{
  "id": "b50c16cd-62c9-4e29-89e4-37f10111f5bf",
  "method": "session.status"
}

Response

{
  "id": "b50c16cd-62c9-4e29-89e4-37f10111f5bf",
  "status": 200,
  "result": {
    // if the connection is not authenticated, "apiKey" and "authorizedSince" will be shown as null
    "apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
    "authorizedSince": 1649729878532,
    "connectedSince": 1649729873021,
    "returnRateLimits": false,
    "serverTime": 1649730611671
  }
}

Query the status of the WebSocket connection, inspecting which API key (if any) is used to authorize requests.

Weight: 2

Method: "session.status"

Parameters: None

Log out of the session

Request

{
  "id": "c174a2b1-3f51-4580-b200-8528bd237cb7",
  "method": "session.logout"
}

Response

{
  "id": "c174a2b1-3f51-4580-b200-8528bd237cb7",
  "status": 200,
  "result": {
    "apiKey": null,
    "authorizedSince": null,
    "connectedSince": 1649729873021,
    "returnRateLimits": false,
    "serverTime": 1649730611671
  }
}

Forget the API key previously authenticated. If the connection is not authenticated, this request does nothing.

Note that the WebSocket connection stays open after session.logout request. You can continue using the connection, but now you will have to explicitly provide the apiKey and signature parameters where needed.

Weight: 2

Method: "session.logout"

Parameters: None

SIGNED (TRADE and USER_DATA) Endpoint Security

SIGNED request example (Ed25519)

Parameter Value
symbol BTCUSDT
side SELL
type LIMIT
timeInForce GTC
quantity 1
price 0.2
timestamp 1668481559918
#!/usr/bin/env python3

import base64
import time
import json
from cryptography.hazmat.primitives.serialization import load_pem_private_key
from websocket import create_connection

# Set up authentication
API_KEY='put your own API Key here'
PRIVATE_KEY_PATH='test-prv-key.pem'

# Load the private key.
# In this example the key is expected to be stored without encryption,
# but we recommend using a strong password for improved security.
with open(PRIVATE_KEY_PATH, 'rb') as f:
    private_key = load_pem_private_key(data=f.read(),
                                       password=None)

# Set up the request parameters
params = {
    'apiKey':        API_KEY,
    'symbol':       'BTCUSDT',
    'side':         'SELL',
    'type':         'LIMIT',
    'timeInForce':  'GTC',
    'quantity':     '1.0000000',
    'price':        '0.20'
}

# Timestamp the request
timestamp = int(time.time() * 1000) # UNIX timestamp in milliseconds
params['timestamp'] = timestamp

# Sign the request
payload = '&'.join([f'{param}={value}' for param, value in sorted(params.items())])

signature = base64.b64encode(private_key.sign(payload.encode('ASCII')))
params['signature'] = signature.decode('ASCII')

# Send the request
request = {
    'id': 'my_new_order',
    'method': 'order.place',
    'params': params
}

ws = create_connection("wss://ws-fapi.binance.com/ws-fapi/v1")
ws.send(json.dumps(request))
result =  ws.recv()
ws.close()

print(result)

A sample code in Python to show how to sign the payload with an Ed25519 key is available on the right side.

Market Data Endpoints

Test Connectivity

Response:

{}

GET /fapi/v1/ping

Test connectivity to the Rest API.

Weight: 1

Parameters: NONE

Check Server Time

Response:

{
  "serverTime": 1499827319559
}

GET /fapi/v1/time

Test connectivity to the Rest API and get the current server time.

Weight: 1

Parameters: NONE

Exchange Information

Response:

{
    "exchangeFilters": [],
    "rateLimits": [
        {
            "interval": "MINUTE",
            "intervalNum": 1,
            "limit": 2400,
            "rateLimitType": "REQUEST_WEIGHT" 
        },
        {
            "interval": "MINUTE",
            "intervalNum": 1,
            "limit": 1200,
            "rateLimitType": "ORDERS"
        }
    ],
    "serverTime": 1565613908500,    // Ignore please. If you want to check current server time, please check via "GET /fapi/v1/time"
    "assets": [ // assets information
        {
            "asset": "BUSD",
            "marginAvailable": true, // whether the asset can be used as margin in Multi-Assets mode
            "autoAssetExchange": 0 // only valid for vip2-9 users
        },
        {
            "asset": "USDT",
            "marginAvailable": true,
            "autoAssetExchange": 0 //only valid for vip2-9 users
        },
        {
            "asset": "BNB",
            "marginAvailable": false,
            "autoAssetExchange": null
        }
    ],
    "symbols": [
        {
            "symbol": "BLZUSDT",
            "pair": "BLZUSDT",
            "contractType": "PERPETUAL",
            "deliveryDate": 4133404800000,
            "onboardDate": 1598252400000,
            "status": "TRADING",
            "maintMarginPercent": "2.5000",   // ignore
            "requiredMarginPercent": "5.0000",  // ignore
            "baseAsset": "BLZ", 
            "quoteAsset": "USDT",
            "marginAsset": "USDT",
            "pricePrecision": 5,    // please do not use it as tickSize
            "quantityPrecision": 0, // please do not use it as stepSize
            "baseAssetPrecision": 8,
            "quotePrecision": 8, 
            "underlyingType": "COIN",
            "underlyingSubType": ["STORAGE"],
            "settlePlan": 0,
            "triggerProtect": "0.15", // threshold for algo order with "priceProtect"
            "filters": [
                {
                    "filterType": "PRICE_FILTER",
                    "maxPrice": "300",
                    "minPrice": "0.0001", 
                    "tickSize": "0.0001"
                },
                {
                    "filterType": "LOT_SIZE", 
                    "maxQty": "10000000",
                    "minQty": "1",
                    "stepSize": "1"
                },
                {
                    "filterType": "MARKET_LOT_SIZE",
                    "maxQty": "590119",
                    "minQty": "1",
                    "stepSize": "1"
                },
                {
                    "filterType": "MAX_NUM_ORDERS",
                    "limit": 200
                },
                {
                    "filterType": "MAX_NUM_ALGO_ORDERS",
                    "limit": 100
                },
                {
                    "filterType": "MIN_NOTIONAL",
                    "notional": "5.0", 
                },
                {
                    "filterType": "PERCENT_PRICE",
                    "multiplierUp": "1.1500",
                    "multiplierDown": "0.8500",
                    "multiplierDecimal": 4
                }
            ],
            "OrderType": [
                "LIMIT",
                "MARKET",
                "STOP",
                "STOP_MARKET",
                "TAKE_PROFIT",
                "TAKE_PROFIT_MARKET",
                "TRAILING_STOP_MARKET" 
            ],
            "timeInForce": [
                "GTC", 
                "IOC", 
                "FOK", 
                "GTX" 
            ],
            "liquidationFee": "0.010000",   // liquidation fee rate
            "marketTakeBound": "0.30",  // the max price difference rate( from mark price) a market order can make
        }
    ],
    "timezone": "UTC" 
}

GET /fapi/v1/exchangeInfo

Current exchange trading rules and symbol information

Weight: 1

Parameters: NONE

Order Book

Response:

{
  "lastUpdateId": 1027024,
  "E": 1589436922972,   // Message output time
  "T": 1589436922959,   // Transaction time
  "bids": [
    [
      "4.00000000",     // PRICE
      "431.00000000"    // QTY
    ]
  ],
  "asks": [
    [
      "4.00000200",
      "12.00000000"
    ]
  ]
}

GET /fapi/v1/depth

Weight:

Adjusted based on the limit:

Limit Weight
5, 10, 20, 50 2
100 5
500 10
1000 20

Update Speed: 15ms

Parameters:

Name Type Mandatory Description
symbol STRING YES
limit INT NO Default 500; Valid limits:[5, 10, 20, 50, 100, 500, 1000]

Recent Trades List

Response:

[
  {
    "id": 28457,
    "price": "4.00000100",
    "qty": "12.00000000",
    "quoteQty": "48.00",
    "time": 1499865549590,
    "isBuyerMaker": true,
  }
]

GET /fapi/v1/trades

Get recent market trades

Weight: 5

Parameters:

Name Type Mandatory Description
symbol STRING YES
limit INT NO Default 500; max 1000.

Old Trades Lookup (MARKET_DATA)

Response:

[
  {
    "id": 28457,
    "price": "4.00000100",
    "qty": "12.00000000",
    "quoteQty": "8000.00",
    "time": 1499865549590,
    "isBuyerMaker": true,
  }
]

GET /fapi/v1/historicalTrades

Get older market historical trades.

Weight: 20

Parameters:

Name Type Mandatory Description
symbol STRING YES
limit INT NO Default 500; max 1000.
fromId LONG NO TradeId to fetch from. Default gets most recent trades.

Compressed/Aggregate Trades List

Response:

[
  {
    "a": 26129,         // Aggregate tradeId
    "p": "0.01633102",  // Price
    "q": "4.70443515",  // Quantity
    "f": 27781,         // First tradeId
    "l": 27781,         // Last tradeId
    "T": 1498793709153, // Timestamp
    "m": true,          // Was the buyer the maker?
  }
]

GET /fapi/v1/aggTrades

Get compressed, aggregate market trades. Market trades that fill in 100ms with the same price and the same taking side will have the quantity aggregated.

Weight: 20

Parameters:

Name Type Mandatory Description
symbol STRING YES
fromId LONG NO ID to get aggregate trades from INCLUSIVE.
startTime LONG NO Timestamp in ms to get aggregate trades from INCLUSIVE.
endTime LONG NO Timestamp in ms to get aggregate trades until INCLUSIVE.
limit INT NO Default 500; max 1000.

Kline/Candlestick Data

Response:

[
  [
    1499040000000,      // Open time
    "0.01634790",       // Open
    "0.80000000",       // High
    "0.01575800",       // Low
    "0.01577100",       // Close
    "148976.11427815",  // Volume
    1499644799999,      // Close time
    "2434.19055334",    // Quote asset volume
    308,                // Number of trades
    "1756.87402397",    // Taker buy base asset volume
    "28.46694368",      // Taker buy quote asset volume
    "17928899.62484339" // Ignore.
  ]
]

GET /fapi/v1/klines

Kline/candlestick bars for a symbol. Klines are uniquely identified by their open time.

Weight: based on parameter LIMIT

LIMIT weight
[1,100) 1
[100, 500) 2
[500, 1000] 5
> 1000 10

Parameters:

Name Type Mandatory Description
symbol STRING YES
interval ENUM YES
startTime LONG NO
endTime LONG NO
limit INT NO Default 500; max 1500.

Continuous Contract Kline/Candlestick Data

Response:

[
  [
    1607444700000,          // Open time
    "18879.99",             // Open
    "18900.00",             // High
    "18878.98",             // Low
    "18896.13",             // Close (or latest price)
    "492.363",              // Volume
    1607444759999,          // Close time
    "9302145.66080",        // Quote asset volume
    1874,                   // Number of trades
    "385.983",              // Taker buy volume
    "7292402.33267",        // Taker buy quote asset volume
    "0"                     // Ignore.
  ]
]

GET /fapi/v1/continuousKlines

Kline/candlestick bars for a specific contract type.

Klines are uniquely identified by their open time.

Weight: based on parameter LIMIT

LIMIT weight
[1,100) 1
[100, 500) 2
[500, 1000] 5
> 1000 10

Parameters:

Name Type Mandatory Description
pair STRING YES
contractType ENUM YES
interval ENUM YES
startTime LONG NO
endTime LONG NO
limit INT NO Default 500; max 1500.

Index Price Kline/Candlestick Data

Response:

[
  [
    1591256400000,          // Open time
    "9653.69440000",        // Open
    "9653.69640000",        // High
    "9651.38600000",        // Low
    "9651.55200000",        // Close (or latest price)
    "0  ",                  // Ignore
    1591256459999,          // Close time
    "0",                    // Ignore
    60,                     // Ignore
    "0",                    // Ignore
    "0",                    // Ignore
    "0"                     // Ignore
  ]
]

GET /fapi/v1/indexPriceKlines

Kline/candlestick bars for the index price of a pair.

Klines are uniquely identified by their open time.

Weight: based on parameter LIMIT

LIMIT weight
[1,100) 1
[100, 500) 2
[500, 1000] 5
> 1000 10

Parameters:

Name Type Mandatory Description
pair STRING YES
interval ENUM YES
startTime LONG NO
endTime LONG NO
limit INT NO Default 500; max 1500.

Mark Price Kline/Candlestick Data

Response:

[
  [
    1591256460000,          // Open time
    "9653.29201333",        // Open
    "9654.56401333",        // High
    "9653.07367333",        // Low
    "9653.07367333",        // Close (or latest price)
    "0  ",                  // Ignore
    1591256519999,          // Close time
    "0",                    // Ignore
    60,                     // Ignore
    "0",                    // Ignore
    "0",                    // Ignore
    "0"                     // Ignore
  ]
]

GET /fapi/v1/markPriceKlines

Kline/candlestick bars for the mark price of a symbol.

Klines are uniquely identified by their open time.

Weight: based on parameter LIMIT

LIMIT weight
[1,100) 1
[100, 500) 2
[500, 1000] 5
> 1000 10

Parameters:

Name Type Mandatory Description
symbol STRING YES
interval ENUM YES
startTime LONG NO
endTime LONG NO
limit INT NO Default 500; max 1500.

Premium index Kline Data

Response:

[
  [
    1691603820000,          // Open time
    "-0.00042931",          // Open
    "-0.00023641",          // High
    "-0.00059406",          // Low
    "-0.00043659",          // Close
    "0",                    // Ignore
    1691603879999,          // Close time
    "0",                    // Ignore
    12,                     // Ignore
    "0",                    // Ignore
    "0",                    // Ignore
    "0"                     // Ignore
  ]
]

GET /fapi/v1/premiumIndexKlines

Premium index kline bars of a symbol.

Klines are uniquely identified by their open time.

Weight: based on parameter LIMIT

LIMIT weight
[1,100) 1
[100, 500) 2
[500, 1000] 5
> 1000 10

Parameters:

Name Type Mandatory Description
symbol STRING YES
interval ENUM YES
startTime LONG NO
endTime LONG NO
limit INT NO Default 500; max 1500.

Mark Price

Response:

{
    "symbol": "BTCUSDT",
    "markPrice": "11793.63104562",  // mark price
    "indexPrice": "11781.80495970", // index price
    "estimatedSettlePrice": "11781.16138815", // Estimated Settle Price, only useful in the last hour before the settlement starts.
    "lastFundingRate": "0.00038246",  // This is the Latest funding rate
    "nextFundingTime": 1597392000000,
    "interestRate": "0.00010000",
    "time": 1597370495002
}

OR (when symbol not sent)

[
    {
        "symbol": "BTCUSDT",
        "markPrice": "11793.63104562",  // mark price
        "indexPrice": "11781.80495970", // index price
        "estimatedSettlePrice": "11781.16138815", // Estimated Settle Price, only useful in the last hour before the settlement starts.
        "lastFundingRate": "0.00038246",  // This is the lastest estimated funding rate
        "nextFundingTime": 1597392000000,
        "interestRate": "0.00010000",   
        "time": 1597370495002
    }
]

GET /fapi/v1/premiumIndex

Mark Price and Funding Rate

Weight: 1 with symbol; 10 without symbol

Parameters:

Name Type Mandatory Description
symbol STRING NO

Get Funding Rate History

Response:

[   
    {
        "symbol": "BTCUSDT",            
        "fundingTime": 1698768000000,   
        "fundingRate": "0.00010000",    
        "markPrice": "34287.54619963"   // mark price associated with a particular funding fee charge
    },
    {
        "symbol": "BTCUSDT",
        "fundingTime": 1698796800000,
        "fundingRate": "0.00010000",
        "markPrice": "34651.40000000"
    }
]

GET /fapi/v1/fundingRate

Rate Limit share 500/5min/IP rate limit with GET /fapi/v1/fundingInfo

Parameters:

Name Type Mandatory Description
symbol STRING NO
startTime LONG NO Timestamp in ms to get funding rate from INCLUSIVE.
endTime LONG NO Timestamp in ms to get funding rate until INCLUSIVE.
limit INT NO Default 100; max 1000

Get Funding Rate Info

Response:

[
    {
        "symbol": "BLZUSDT",
        "adjustedFundingRateCap": "0.02500000",
        "adjustedFundingRateFloor": "-0.02500000",
        "fundingIntervalHours": 8,
        "disclaimer": false   // ingore
    }
]

GET /fapi/v1/fundingInfo

rate limit share 500/5min/IP rate limit with GET /fapi/v1/fundingInfo

Query funding rate info for symbols that had FundingRateCap/ FundingRateFloor / fundingIntervalHours adjustment

24hr Ticker Price Change Statistics

Response:

{
  "symbol": "BTCUSDT",
  "priceChange": "-94.99999800",
  "priceChangePercent": "-95.960",
  "weightedAvgPrice": "0.29628482",
  "lastPrice": "4.00000200",
  "lastQty": "200.00000000",
  "openPrice": "99.00000000",
  "highPrice": "100.00000000",
  "lowPrice": "0.10000000",
  "volume": "8913.30000000",
  "quoteVolume": "15.30000000",
  "openTime": 1499783499040,
  "closeTime": 1499869899040,
  "firstId": 28385,   // First tradeId
  "lastId": 28460,    // Last tradeId
  "count": 76         // Trade count
}

OR

[
    {
        "symbol": "BTCUSDT",
        "priceChange": "-94.99999800",
        "priceChangePercent": "-95.960",
        "weightedAvgPrice": "0.29628482",
        "lastPrice": "4.00000200",
        "lastQty": "200.00000000",
        "openPrice": "99.00000000",
        "highPrice": "100.00000000",
        "lowPrice": "0.10000000",
        "volume": "8913.30000000",
        "quoteVolume": "15.30000000",
        "openTime": 1499783499040,
        "closeTime": 1499869899040,
        "firstId": 28385,   // First tradeId
        "lastId": 28460,    // Last tradeId
        "count": 76         // Trade count
    }
]

GET /fapi/v1/ticker/24hr

24 hour rolling window price change statistics.
Careful when accessing this with no symbol.

Weight:

1 for a single symbol;
40 when the symbol parameter is omitted

Update Speed: 5s

Parameters:

Name Type Mandatory Description
symbol STRING NO

Symbol Price Ticker

Response:

{
  "symbol": "BTCUSDT",
  "price": "6000.01",
  "time": 1589437530011   // Transaction time
}

OR

[
    {
        "symbol": "BTCUSDT",
        "price": "6000.01",
        "time": 1589437530011
    }
]

GET /fapi/v1/ticker/price

Latest price for a symbol or symbols.

Weight:

1 for a single symbol;
2 when the symbol parameter is omitted

Update Speed: 5s

Parameters:

Name Type Mandatory Description
symbol STRING NO

Symbol Price Ticker V2

Response:

{
  "symbol": "BTCUSDT",
  "price": "6000.01",
  "time": 1589437530011   // Transaction time
}

OR

[
    {
        "symbol": "BTCUSDT",
        "price": "6000.01",
        "time": 1589437530011
    }
]

GET /fapi/v2/ticker/price

Latest price for a symbol or symbols.

Weight:

Update Speed: real time

Parameters:

Name Type Mandatory Description
symbol STRING NO

Symbol Order Book Ticker

Response:

{
  "lastUpdateId": 1027024,
  "symbol": "BTCUSDT",
  "bidPrice": "4.00000000",
  "bidQty": "431.00000000",
  "askPrice": "4.00000200",
  "askQty": "9.00000000",
  "time": 1589437530011   // Transaction time
}

OR

[
    {
        "lastUpdateId": 1027024,
        "symbol": "BTCUSDT",
        "bidPrice": "4.00000000",
        "bidQty": "431.00000000",
        "askPrice": "4.00000200",
        "askQty": "9.00000000",
        "time": 1589437530011
    }
]

GET /fapi/v1/ticker/bookTicker

Best price/qty on the order book for a symbol or symbols.

Weight:

2 for a single symbol;
5 when the symbol parameter is omitted

Update Speed: real time

Parameters:

Name Type Mandatory Description
symbol STRING NO

Open Interest

Response:

{
    "openInterest": "10659.509", 
    "symbol": "BTCUSDT",
    "time": 1589437530011   // Transaction time
}

GET /fapi/v1/openInterest

Get present open interest of a specific symbol.

Weight:
1

Update Speed: 3s

Parameters:

Name Type Mandatory Description
symbol STRING YES

Quarterly Contract Settlement Price

Response:

[
    {
        "deliveryTime": 1695945600000,
        "deliveryPrice": 27103.00000000
    },
    {
        "deliveryTime": 1688083200000,
        "deliveryPrice": 30733.60000000
    },
    {
        "deliveryTime": 1680220800000,
        "deliveryPrice": 27814.20000000
    },
    {
        "deliveryTime": 1648166400000,
        "deliveryPrice": 44066.30000000
    }
]

GET /futures/data/delivery-price

Parameters:

Name Type Mandatory Description
pair STRING YES e.g BTCUSDT

Open Interest Statistics

Response:

[
    { 
         "symbol":"BTCUSDT",
          "sumOpenInterest":"20403.63700000",  // total open interest 
          "sumOpenInterestValue": "150570784.07809979",   // total open interest value
          "timestamp":"1583127900000"
    },
    {
         "symbol":"BTCUSDT",
         "sumOpenInterest":"20401.36700000",
         "sumOpenInterestValue":"149940752.14464448",
         "timestamp":"1583128200000"    
    },   
]

GET /futures/data/openInterestHist

Parameters:

Name Type Mandatory Description
symbol STRING YES
period ENUM YES "5m","15m","30m","1h","2h","4h","6h","12h","1d"
limit LONG NO default 30, max 500
startTime LONG NO
endTime LONG NO

Top Trader Long/Short Ratio (Accounts)

Response:

[
    { 
        "symbol":"BTCUSDT",
        "longShortRatio":"1.8105",  // long/short account num ratio of top traders
        "longAccount": "0.6442",   // long account num ratio of top traders 
        "shortAccount":"0.3558",   // long account num ratio of top traders 
        "timestamp":"1583139600000"
    }, 
    {    
        "symbol":"BTCUSDT",
        "longShortRatio":"0.5576",
        "longAccount": "0.3580", 
        "shortAccount":"0.6420",                    
        "timestamp":"1583139900000"          
    },       
]

GET /futures/data/topLongShortAccountRatio

Parameters:

Name Type Mandatory Description
symbol STRING YES
period ENUM YES "5m","15m","30m","1h","2h","4h","6h","12h","1d"
limit LONG NO default 30, max 500
startTime LONG NO
endTime LONG NO

Top Trader Long/Short Ratio (Positions)

Response:

[
    { 
        "symbol":"BTCUSDT",
        "longShortRatio":"1.4342",// long/short position ratio of top traders
        "longAccount": "0.5891", // long positions ratio of top traders
        "shortAccount":"0.4656", // short positions ratio of top traders
        "timestamp":"1583139600000"
    }, 
    {     
        "symbol":"BTCUSDT",
        "longShortRatio":"1.4337",
        "longAccount": "0.3583", 
        "shortAccount":"0.6417",                    
        "timestamp":"1583139900000"        
    },       
]

GET /futures/data/topLongShortPositionRatio

Parameters:

Name Type Mandatory Description
symbol STRING YES
period ENUM YES "5m","15m","30m","1h","2h","4h","6h","12h","1d"
limit LONG NO default 30, max 500
startTime LONG NO
endTime LONG NO

Long/Short Ratio

Response:

[
    { 
        "symbol":"BTCUSDT",  // long/short account num ratio of all traders
        "longShortRatio":"0.1960",  //long account num ratio of all traders
        "longAccount": "0.6622",   // short account num ratio of all traders
        "shortAccount":"0.3378", 
        "timestamp":"1583139600000"
    }, 
    {     
        "symbol":"BTCUSDT",
        "longShortRatio":"1.9559",
        "longAccount": "0.6617", 
        "shortAccount":"0.3382",                    
        "timestamp":"1583139900000"         
    },       
]

GET /futures/data/globalLongShortAccountRatio

Parameters:

Name Type Mandatory Description
symbol STRING YES
period ENUM YES "5m","15m","30m","1h","2h","4h","6h","12h","1d"
limit LONG NO default 30, max 500
startTime LONG NO
endTime LONG NO

Taker Buy/Sell Volume

Response:

[
    { 
        "buySellRatio":"1.5586",
        "buyVol": "387.3300", 
        "sellVol":"248.5030", 
        "timestamp":"1585614900000"
    },
    {
        "buySellRatio":"1.3104",
        "buyVol": "343.9290", 
        "sellVol":"248.5030",                   
        "timestamp":"1583139900000"                
    },       
]

GET /futures/data/takerlongshortRatio

Parameters:

Name Type Mandatory Description
symbol STRING YES
period ENUM YES "5m","15m","30m","1h","2h","4h","6h","12h","1d"
limit LONG NO default 30, max 500
startTime LONG NO
endTime LONG NO

Basis

Response:

[  
    {
        "indexPrice": "34400.15945055",
        "contractType": "PERPETUAL",
        "basisRate": "0.0004",
        "futuresPrice": "34414.10",
        "annualizedBasisRate": "",
        "basis": "13.94054945",
        "pair": "BTCUSDT",
        "timestamp": 1698742800000
    }
]

GET /futures/data/basis

Parameters:

Name Type Mandatory Description
pair STRING YES BTCUSDT
contractType ENUM YES CURRENT_QUARTER, NEXT_QUARTER, PERPETUAL
period ENUM YES "5m","15m","30m","1h","2h","4h","6h","12h","1d"
limit LONG YES Default 30,Max 500
startTime LONG NO
endTime LONG NO

Composite Index Symbol Information

Response:

[
    { 
        "symbol": "DEFIUSDT",
        "time": 1589437530011,    // Current time
        "component": "baseAsset", //Component asset
        "baseAssetList":[
            {
                "baseAsset":"BAL",
                "quoteAsset": "USDT",
                "weightInQuantity":"1.04406228",
                "weightInPercentage":"0.02783900"
            },
            {
                "baseAsset":"BAND",
                "quoteAsset": "USDT",
                "weightInQuantity":"3.53782729",
                "weightInPercentage":"0.03935200"
            }
        ]
    }
]

GET /fapi/v1/indexInfo

Weight: with symbol 1; without symbol 10

Parameters:

Name Type Mandatory Description
symbol STRING NO

Multi-Assets Mode Asset Index

Response:

{
    "symbol": "ADAUSD",
    "time": 1635740268004,
    "index": "1.92957370",
    "bidBuffer": "0.10000000", 
    "askBuffer": "0.10000000", 
    "bidRate": "1.73661633",
    "askRate": "2.12253107",
    "autoExchangeBidBuffer": "0.05000000",
    "autoExchangeAskBuffer": "0.05000000",
    "autoExchangeBidRate": "1.83309501",
    "autoExchangeAskRate": "2.02605238"
}

Or(without symbol)

[
    {
        "symbol": "ADAUSD",
        "time": 1635740268004,
        "index": "1.92957370",
        "bidBuffer": "0.10000000", 
        "askBuffer": "0.10000000", 
        "bidRate": "1.73661633",
        "askRate": "2.12253107",
        "autoExchangeBidBuffer": "0.05000000",
        "autoExchangeAskBuffer": "0.05000000",
        "autoExchangeBidRate": "1.83309501",
        "autoExchangeAskRate": "2.02605238"
    }
]

GET /fapi/v1/assetIndex

asset index for Multi-Assets mode

Weight: 1 for a single symbol; 10 when the symbol parameter is omitted

Parameters:

Name Type Mandatory Description
symbol STRING NO Asset pair

Query Index Price Constituents

Response:

{
    "symbol": "BTCUSDT",
    "time": 1697421272043,
    "constituents": [
        {
            "exchange": "binance",
            "symbol": "BTCUSDT"
        },
        {
            "exchange": "okex",
            "symbol": "BTC-USDT"
        },
        {
            "exchange": "huobi",
            "symbol": "btcusdt"
        },
        {
            "exchange": "coinbase",
            "symbol": "BTC-USDT"
        }
    ]
}

GET /fapi/v1/constituents

Query index price constituents

Weight: 2

Parameters:

Name Type Mandatory Description
symbol STRING YES symbol

Websocket Market Streams

Live Subscribing/Unsubscribing to streams

Subscribe to a stream

Response

  {
    "result": null,
    "id": 1
  }

Unsubscribe to a stream

Response

  {
    "result": null,
    "id": 312
  }

{
"method": "UNSUBSCRIBE",
"params":
[
"btcusdt@depth"
],
"id": 312
}

Listing Subscriptions

Response

  {
    "result": [
      "btcusdt@aggTrade"
    ],
    "id": 3
  }

{
"method": "LIST_SUBSCRIPTIONS",
"id": 3
}

Setting Properties

Currently, the only property can be set is to set whether combined stream payloads are enabled are not. The combined property is set to false when connecting using /ws/ ("raw streams") and true when connecting using /stream/.

Response

  {
    "result": null,
    "id": 5
  }

{
"method": "SET_PROPERTY",
"params":
[
"combined",
true
],
"id": 5
}

Retrieving Properties

Response

  {
    "result": true, // Indicates that combined is set to true.
    "id": 2
  }

{
"method": "GET_PROPERTY",
"params":
[
"combined"
],
"id": 2
}

Error Messages

Error Message Description
{"code": 0, "msg": "Unknown property"} Parameter used in the SET_PROPERTY or GET_PROPERTY was invalid
{"code": 1, "msg": "Invalid value type: expected Boolean"} Value should only be true or false
{"code": 2, "msg": "Invalid request: property name must be a string"} Property name provided was invalid
{"code": 2, "msg": "Invalid request: request ID must be an unsigned integer"} Parameter id had to be provided or the value provided in the id parameter is an unsupported type
{"code": 2, "msg": "Invalid request: unknown variant %s, expected one of SUBSCRIBE, UNSUBSCRIBE, LIST_SUBSCRIPTIONS, SET_PROPERTY, GET_PROPERTY at line 1 column 28"} Possible typo in the provided method or provided method was neither of the expected values
{"code": 2, "msg": "Invalid request: too many parameters"} Unnecessary parameters provided in the data
{"code": 2, "msg": "Invalid request: property name must be a string"} Property name was not provided
{"code": 2, "msg": "Invalid request: missing field method at line 1 column 73"} method was not provided in the data
{"code":3,"msg":"Invalid JSON: expected value at line %s column %s"} JSON data sent has incorrect syntax.

Aggregate Trade Streams

Payload:

{
  "e": "aggTrade",  // Event type
  "E": 123456789,   // Event time
  "s": "BTCUSDT",    // Symbol
  "a": 5933014,     // Aggregate trade ID
  "p": "0.001",     // Price
  "q": "100",       // Quantity
  "f": 100,         // First trade ID
  "l": 105,         // Last trade ID
  "T": 123456785,   // Trade time
  "m": true,        // Is the buyer the market maker?
}

The Aggregate Trade Streams push market trade information that is aggregated for fills with same price and taking side every 100 milliseconds.

Stream Name:
<symbol>@aggTrade

Update Speed: 100ms

Mark Price Stream

Payload:

  {
    "e": "markPriceUpdate",     // Event type
    "E": 1562305380000,         // Event time
    "s": "BTCUSDT",             // Symbol
    "p": "11794.15000000",      // Mark price
    "i": "11784.62659091",      // Index price
    "P": "11784.25641265",      // Estimated Settle Price, only useful in the last hour before the settlement starts
    "r": "0.00038167",          // Funding rate
    "T": 1562306400000          // Next funding time
  }

Mark price and funding rate for a single symbol pushed every 3 seconds or every second.

Stream Name:
<symbol>@markPrice or <symbol>@markPrice@1s

Update Speed: 3000ms or 1000ms

Mark Price Stream for All market

Payload:

[ 
  {
    "e": "markPriceUpdate",     // Event type
    "E": 1562305380000,         // Event time
    "s": "BTCUSDT",             // Symbol
    "p": "11185.87786614",      // Mark price
    "i": "11784.62659091"       // Index price
    "P": "11784.25641265",      // Estimated Settle Price, only useful in the last hour before the settlement starts
    "r": "0.00030000",          // Funding rate
    "T": 1562306400000          // Next funding time
  }
]

Mark price and funding rate for all symbols pushed every 3 seconds or every second.

Stream Name:
!markPrice@arr or !markPrice@arr@1s

Update Speed: 3000ms or 1000ms

Kline/Candlestick Streams

Payload:

{
  "e": "kline",     // Event type
  "E": 1638747660000,   // Event time
  "s": "BTCUSDT",    // Symbol
  "k": {
    "t": 1638747660000, // Kline start time
    "T": 1638747719999, // Kline close time
    "s": "BTCUSDT",  // Symbol
    "i": "1m",      // Interval
    "f": 100,       // First trade ID
    "L": 200,       // Last trade ID
    "o": "0.0010",  // Open price
    "c": "0.0020",  // Close price
    "h": "0.0025",  // High price
    "l": "0.0015",  // Low price
    "v": "1000",    // Base asset volume
    "n": 100,       // Number of trades
    "x": false,     // Is this kline closed?
    "q": "1.0000",  // Quote asset volume
    "V": "500",     // Taker buy base asset volume
    "Q": "0.500",   // Taker buy quote asset volume
    "B": "123456"   // Ignore
  }
}

The Kline/Candlestick Stream push updates to the current klines/candlestick every 250 milliseconds (if existing).

Kline/Candlestick chart intervals:

m -> minutes; h -> hours; d -> days; w -> weeks; M -> months

Stream Name:
<symbol>@kline_<interval>

Update Speed: 250ms

Continuous Contract Kline/Candlestick Streams

Payload:

{
  "e":"continuous_kline",   // Event type
  "E":1607443058651,        // Event time
  "ps":"BTCUSDT",           // Pair
  "ct":"PERPETUAL"          // Contract type
  "k":{
    "t":1607443020000,      // Kline start time
    "T":1607443079999,      // Kline close time
    "i":"1m",               // Interval
    "f":116467658886,       // First updateId
    "L":116468012423,       // Last updateId
    "o":"18787.00",         // Open price
    "c":"18804.04",         // Close price
    "h":"18804.04",         // High price
    "l":"18786.54",         // Low price
    "v":"197.664",          // volume
    "n": 543,               // Number of trades
    "x":false,              // Is this kline closed?
    "q":"3715253.19494",    // Quote asset volume
    "V":"184.769",          // Taker buy volume
    "Q":"3472925.84746",    //Taker buy quote asset volume
    "B":"0"                 // Ignore
  }
}

Contract type:

Kline/Candlestick chart intervals:

m -> minutes; h -> hours; d -> days; w -> weeks; M -> months

Stream Name:
<pair>_<contractType>@continuousKline_<interval>

Update Speed: 250ms

Individual Symbol Mini Ticker Stream

Payload:

  {
    "e": "24hrMiniTicker",  // Event type
    "E": 123456789,         // Event time
    "s": "BTCUSDT",         // Symbol
    "c": "0.0025",          // Close price
    "o": "0.0010",          // Open price
    "h": "0.0025",          // High price
    "l": "0.0010",          // Low price
    "v": "10000",           // Total traded base asset volume
    "q": "18"               // Total traded quote asset volume
  }

24hr rolling window mini-ticker statistics for a single symbol. These are NOT the statistics of the UTC day, but a 24hr rolling window from requestTime to 24hrs before.

Stream Name:
<symbol>@miniTicker

Update Speed: 500ms

All Market Mini Tickers Stream

Payload:

[  
  {
    "e": "24hrMiniTicker",  // Event type
    "E": 123456789,         // Event time
    "s": "BTCUSDT",         // Symbol
    "c": "0.0025",          // Close price
    "o": "0.0010",          // Open price
    "h": "0.0025",          // High price
    "l": "0.0010",          // Low price
    "v": "10000",           // Total traded base asset volume
    "q": "18"               // Total traded quote asset volume
  }
]

24hr rolling window mini-ticker statistics for all symbols. These are NOT the statistics of the UTC day, but a 24hr rolling window from requestTime to 24hrs before. Note that only tickers that have changed will be present in the array.

Stream Name:
!miniTicker@arr

Update Speed: 1000ms

Individual Symbol Ticker Streams

Payload:

{
  "e": "24hrTicker",  // Event type
  "E": 123456789,     // Event time
  "s": "BTCUSDT",     // Symbol
  "p": "0.0015",      // Price change
  "P": "250.00",      // Price change percent
  "w": "0.0018",      // Weighted average price
  "c": "0.0025",      // Last price
  "Q": "10",          // Last quantity
  "o": "0.0010",      // Open price
  "h": "0.0025",      // High price
  "l": "0.0010",      // Low price
  "v": "10000",       // Total traded base asset volume
  "q": "18",          // Total traded quote asset volume
  "O": 0,             // Statistics open time
  "C": 86400000,      // Statistics close time
  "F": 0,             // First trade ID
  "L": 18150,         // Last trade Id
  "n": 18151          // Total number of trades
}

24hr rolling window ticker statistics for a single symbol. These are NOT the statistics of the UTC day, but a 24hr rolling window from requestTime to 24hrs before.

Stream Name:
<symbol>@ticker

Update Speed: 2000ms

All Market Tickers Streams

Payload:

[
    {
      "e": "24hrTicker",  // Event type
      "E": 123456789,     // Event time
      "s": "BTCUSDT",     // Symbol
      "p": "0.0015",      // Price change
      "P": "250.00",      // Price change percent
      "w": "0.0018",      // Weighted average price
      "c": "0.0025",      // Last price
      "Q": "10",          // Last quantity
      "o": "0.0010",      // Open price
      "h": "0.0025",      // High price
      "l": "0.0010",      // Low price
      "v": "10000",       // Total traded base asset volume
      "q": "18",          // Total traded quote asset volume
      "O": 0,             // Statistics open time
      "C": 86400000,      // Statistics close time
      "F": 0,             // First trade ID
      "L": 18150,         // Last trade Id
      "n": 18151          // Total number of trades
    }
]

24hr rolling window ticker statistics for all symbols. These are NOT the statistics of the UTC day, but a 24hr rolling window from requestTime to 24hrs before. Note that only tickers that have changed will be present in the array.

Stream Name:
!ticker@arr

Update Speed: 1000ms

Individual Symbol Book Ticker Streams

Payload:

{
  "e":"bookTicker",         // event type
  "u":400900217,            // order book updateId
  "E": 1568014460893,       // event time
  "T": 1568014460891,       // transaction time
  "s":"BNBUSDT",            // symbol
  "b":"25.35190000",        // best bid price
  "B":"31.21000000",        // best bid qty
  "a":"25.36520000",        // best ask price
  "A":"40.66000000"         // best ask qty
}

Pushes any update to the best bid or ask's price or quantity in real-time for a specified symbol.

Stream Name: <symbol>@bookTicker

Update Speed: Real-time

All Book Tickers Stream

Payload:

{
  // Same as <symbol>@bookTicker payload
}

Pushes any update to the best bid or ask's price or quantity in real-time for all symbols.

Stream Name: !bookTicker

Update Speed: Real-time, Starting from December 20th, 2023, it will be updated every 5 seconds.

Liquidation Order Streams

Payload:

{

    "e":"forceOrder",                   // Event Type
    "E":1568014460893,                  // Event Time
    "o":{

        "s":"BTCUSDT",                   // Symbol
        "S":"SELL",                      // Side
        "o":"LIMIT",                     // Order Type
        "f":"IOC",                       // Time in Force
        "q":"0.014",                     // Original Quantity
        "p":"9910",                      // Price
        "ap":"9910",                     // Average Price
        "X":"FILLED",                    // Order Status
        "l":"0.014",                     // Order Last Filled Quantity
        "z":"0.014",                     // Order Filled Accumulated Quantity
        "T":1568014460893,              // Order Trade Time

    }

}

The Liquidation Order Snapshot Streams push force liquidation order information for specific symbol.

For each symbol,only the latest one liquidation order within 1000ms will be pushed as the snapshot. If no liquidation happens in the interval of 1000ms, no stream will be pushed.

Stream Name:  <symbol>@forceOrder

Update Speed: 1000ms

All Market Liquidation Order Streams

Payload:

{

    "e":"forceOrder",                   // Event Type
    "E":1568014460893,                  // Event Time
    "o":{

        "s":"BTCUSDT",                   // Symbol
        "S":"SELL",                      // Side
        "o":"LIMIT",                     // Order Type
        "f":"IOC",                       // Time in Force
        "q":"0.014",                     // Original Quantity
        "p":"9910",                      // Price
        "ap":"9910",                     // Average Price
        "X":"FILLED",                    // Order Status
        "l":"0.014",                     // Order Last Filled Quantity
        "z":"0.014",                     // Order Filled Accumulated Quantity
        "T":1568014460893,              // Order Trade Time

    }

}

The All Liquidation Order Snapshot Streams push force liquidation order information for all symbols in the market.

For each symbol,only the latest one liquidation order within 1000ms will be pushed as the snapshot. If no liquidation happens in the interval of 1000ms, no stream will be pushed.

Stream Name: !forceOrder@arr

Update Speed: 1000ms

Partial Book Depth Streams

Payload:

{
  "e": "depthUpdate", // Event type
  "E": 1571889248277, // Event time
  "T": 1571889248276, // Transaction time
  "s": "BTCUSDT",
  "U": 390497796,
  "u": 390497878,
  "pu": 390497794,
  "b": [          // Bids to be updated
    [
      "7403.89",  // Price Level to be
      "0.002"     // Quantity
    ],
    [
      "7403.90",
      "3.906"
    ],
    [
      "7404.00",
      "1.428"
    ],
    [
      "7404.85",
      "5.239"
    ],
    [
      "7405.43",
      "2.562"
    ]
  ],
  "a": [          // Asks to be updated
    [
      "7405.96",  // Price level to be
      "3.340"     // Quantity
    ],
    [
      "7406.63",
      "4.525"
    ],
    [
      "7407.08",
      "2.475"
    ],
    [
      "7407.15",
      "4.800"
    ],
    [
      "7407.20",
      "0.175"
    ]
  ]
}

Top bids and asks, Valid are 5, 10, or 20.

Stream Names: <symbol>@depth<levels> OR <symbol>@depth<levels>@500ms OR <symbol>@depth<levels>@100ms.

Update Speed: 250ms, 500ms or 100ms

Diff. Book Depth Streams

Payload:

{
  "e": "depthUpdate", // Event type
  "E": 123456789,     // Event time
  "T": 123456788,     // Transaction time 
  "s": "BTCUSDT",     // Symbol
  "U": 157,           // First update ID in event
  "u": 160,           // Final update ID in event
  "pu": 149,          // Final update Id in last stream(ie `u` in last stream)
  "b": [              // Bids to be updated
    [
      "0.0024",       // Price level to be updated
      "10"            // Quantity
    ]
  ],
  "a": [              // Asks to be updated
    [
      "0.0026",       // Price level to be updated
      "100"          // Quantity
    ]
  ]
}

Bids and asks, pushed every 250 milliseconds, 500 milliseconds, 100 milliseconds (if existing)

Stream Name:
<symbol>@depth OR <symbol>@depth@500ms OR <symbol>@depth@100ms

Update Speed: 250ms, 500ms, 100ms

How to manage a local order book correctly

  1. Open a stream to wss://fstream.binance.com/stream?streams=btcusdt@depth.
  2. Buffer the events you receive from the stream. For same price, latest received update covers the previous one.
  3. Get a depth snapshot from https://fapi.binance.com/fapi/v1/depth?symbol=BTCUSDT&limit=1000 .
  4. Drop any event where u is < lastUpdateId in the snapshot.
  5. The first processed event should have U <= lastUpdateId AND u >= lastUpdateId
  6. While listening to the stream, each new event's pu should be equal to the previous event's u, otherwise initialize the process from step 3.
  7. The data in each event is the absolute quantity for a price level.
  8. If the quantity is 0, remove the price level.
  9. Receiving an event that removes a price level that is not in your local order book can happen and is normal.

Composite Index Symbol Information Streams

Payload:

{
  "e":"compositeIndex",     // Event type
  "E":1602310596000,        // Event time
  "s":"DEFIUSDT",           // Symbol
  "p":"554.41604065",       // Price
  "C":"baseAsset",
  "c":[                     // Composition
    {
        "b":"BAL",          // Base asset
        "q":"USDT",         // Quote asset
        "w":"1.04884844",   // Weight in quantity
        "W":"0.01457800",   // Weight in percentage
        "i":"24.33521021"   // Index price
    },
    {
        "b":"BAND",
        "q":"USDT" ,
        "w":"3.53782729",
        "W":"0.03935200",
        "i":"7.26420084"
    }
  ]
}

Composite index information for index symbols pushed every second.

Stream Name: <symbol>@compositeIndex

Update Speed: 1000ms

Contract Info Stream

Payload:

{
    "e":"contractInfo",          // Event Type
    "E":1669356423908,           // Event Time
    "s":"IOTAUSDT",              // Symbol
    "ps":"IOTAUSDT",             // Pair
    "ct":"PERPETUAL",            // Contract type
    "dt":4133404800000,          // Delivery date time 
    "ot":1569398400000,          // onboard date time 
    "cs":"TRADING",              // Contract status 
    "bks":[
        {
            "bs":1,              // Notional bracket
            "bnf":0,             // Floor notional of this bracket
            "bnc":5000,          // Cap notional of this bracket
            "mmr":0.01,          // Maintenance ratio for this bracket
            "cf":0,              // Auxiliary number for quick calculation 
            "mi":21,             // Min leverage for this bracket
            "ma":50              // Max leverage for this bracket
        },
        {
            "bs":2,
            "bnf":5000,
            "bnc":25000,
            "mmr":0.025,
            "cf":75,
            "mi":11,
            "ma":20
        }
    ]
}

ContractInfo stream pushes when contract info updates(listing/settlement/contract bracket update). bks field only shows up when bracket gets updated.

Stream Name: !contractInfo

Update Speed: Real-time

Multi-Assets Mode Asset Index

Payload:

[
    {
      "e":"assetIndexUpdate",
      "E":1686749230000,
      "s":"ADAUSD",           // asset index symbol
      "i":"0.27462452",       // index price
      "b":"0.10000000",       // bid buffer
      "a":"0.10000000",       // ask buffer
      "B":"0.24716207",       // bid rate
      "A":"0.30208698",       // ask rate
      "q":"0.05000000",       // auto exchange bid buffer
      "g":"0.05000000",       // auto exchange ask buffer 
      "Q":"0.26089330",       // auto exchange bid rate
      "G":"0.28835575"        // auto exchange ask rate
    },
    {
      "e":"assetIndexUpdate",
      "E":1686749230000,
      "s":"USDTUSD",
      "i":"0.99987691",  
      "b":"0.00010000",
      "a":"0.00010000",
      "B":"0.99977692",
      "A":"0.99997689",
      "q":"0.00010000",
      "g":"0.00010000",
      "Q":"0.99977692",
      "G":"0.99997689"
    }
]

Asset index for multi-assets mode user

Stream Name: !assetIndex@arrOR <assetSymbol>@assetIndex

Update Speed: 1s

Account/Trades Endpoints

New Future Account Transfer

Please find details from here.

Get Future Account Transaction History List (USER_DATA)

Please find details from here.

Change Position Mode(TRADE)

Response:

{
    "code": 200,
    "msg": "success"
}

POST /fapi/v1/positionSide/dual

Change user's position mode (Hedge Mode or One-way Mode ) on EVERY symbol

Weight: 1

Parameters:

Name Type Mandatory Description
dualSidePosition STRING YES "true": Hedge Mode; "false": One-way Mode
recvWindow LONG NO
timestamp LONG YES

Get Current Position Mode(USER_DATA)

Response:

{
    "dualSidePosition": true // "true": Hedge Mode; "false": One-way Mode
}

GET /fapi/v1/positionSide/dual

Get user's position mode (Hedge Mode or One-way Mode ) on EVERY symbol

Weight: 30

Parameters:

Name Type Mandatory Description
recvWindow LONG NO
timestamp LONG YES

Change Multi-Assets Mode (TRADE)

Response:

{
    "code": 200,
    "msg": "success"
}

POST /fapi/v1/multiAssetsMargin

Change user's Multi-Assets mode (Multi-Assets Mode or Single-Asset Mode) on Every symbol

Weight: 1

Parameters:

Name Type Mandatory Description
multiAssetsMargin STRING YES "true": Multi-Assets Mode; "false": Single-Asset Mode
recvWindow LONG NO
timestamp LONG YES

Get Current Multi-Assets Mode (USER_DATA)

Response:

{
    "multiAssetsMargin": true // "true": Multi-Assets Mode; "false": Single-Asset Mode
}

GET /fapi/v1/multiAssetsMargin

Get user's Multi-Assets mode (Multi-Assets Mode or Single-Asset Mode) on Every symbol

Weight: 30

Parameters:

Name Type Mandatory Description
recvWindow LONG NO
timestamp LONG YES

Toggle BNB Burn On Futures Trade (TRADE)

Response:

{
    "code": 200,
    "msg": "success"
}

POST /fapi/v1/feeBurn (HMAC SHA256)

Change user's BNB Fee Discount (Fee Discount On or Fee Discount Off ) on EVERY symbol

Weight: 1

Parameters:

Name Type Mandatory Description
feeBurn STRING YES "true": Fee Discount On; "false": Fee Discount Off
recvWindow LONG NO
timestamp LONG YES

Get BNB Burn Status (USER_DATA)

Response:

{
    "feeBurn": true // "true": Fee Discount On; "false": Fee Discount Off
}

GET /fapi/v1/feeBurn (HMAC SHA256)

Get user's BNB Fee Discount (Fee Discount On or Fee Discount Off ) on EVERY symbol

Weight: 30

Parameters:

Name Type Mandatory Description
recvWindow LONG NO
timestamp LONG YES

New Order (TRADE)

Response:

{
    "clientOrderId": "testOrder",
    "cumQty": "0",
    "cumQuote": "0",
    "executedQty": "0",
    "orderId": 22542179,
    "avgPrice": "0.00000",
    "origQty": "10",
    "price": "0",
    "reduceOnly": false,
    "side": "BUY",
    "positionSide": "SHORT",
    "status": "NEW",
    "stopPrice": "9300",        // please ignore when order type is TRAILING_STOP_MARKET
    "closePosition": false,   // if Close-All
    "symbol": "BTCUSDT",
    "timeInForce": "GTD",
    "type": "TRAILING_STOP_MARKET",
    "origType": "TRAILING_STOP_MARKET",
    "activatePrice": "9020",    // activation price, only return with TRAILING_STOP_MARKET order
    "priceRate": "0.3",         // callback rate, only return with TRAILING_STOP_MARKET order
    "updateTime": 1566818724722,
    "workingType": "CONTRACT_PRICE",
    "priceProtect": false,      // if conditional order trigger is protected    
    "priceMatch": "NONE",              //price match mode
    "selfTradePreventionMode": "NONE", //self trading preventation mode
    "goodTillDate": 1693207680000      //order pre-set auot cancel time for TIF GTD order
}

POST /fapi/v1/order

Send in a new order.

Weight: 0

Parameters:

Name Type Mandatory Description
symbol STRING YES
side ENUM YES
positionSide ENUM NO Default BOTH for One-way Mode ; LONG or SHORT for Hedge Mode. It must be sent in Hedge Mode.
type ENUM YES
timeInForce ENUM NO
quantity DECIMAL NO Cannot be sent with closePosition=true(Close-All)
reduceOnly STRING NO "true" or "false". default "false". Cannot be sent in Hedge Mode; cannot be sent with closePosition=true
price DECIMAL NO
newClientOrderId STRING NO A unique id among open orders. Automatically generated if not sent. Can only be string following the rule: ^[\.A-Z\:/a-z0-9_-]{1,36}$
stopPrice DECIMAL NO Used with STOP/STOP_MARKET or TAKE_PROFIT/TAKE_PROFIT_MARKET orders.
closePosition STRING NO true, false;Close-All,used with STOP_MARKET or TAKE_PROFIT_MARKET.
activationPrice DECIMAL NO Used with TRAILING_STOP_MARKET orders, default as the latest price(supporting different workingType)
callbackRate DECIMAL NO Used with TRAILING_STOP_MARKET orders, min 0.1, max 10, where 1 for 1%
workingType ENUM NO stopPrice triggered by: "MARK_PRICE", "CONTRACT_PRICE". Default "CONTRACT_PRICE"
priceProtect STRING NO "TRUE" or "FALSE", default "FALSE". Used with STOP/STOP_MARKET or TAKE_PROFIT/TAKE_PROFIT_MARKET orders.
newOrderRespType ENUM NO "ACK", "RESULT", default "ACK"
priceMatch ENUM NO only avaliable for LIMIT/STOP/TAKE_PROFIT order; can be set to OPPONENT/ OPPONENT_5/ OPPONENT_10/ OPPONENT_20: /QUEUE/ QUEUE_5/ QUEUE_10/ QUEUE_20; Can't be passed together with price
selfTradePreventionMode ENUM NO NONE:No STP / EXPIRE_TAKER:expire taker order when STP triggers/ EXPIRE_MAKER:expire maker order when STP triggers/ EXPIRE_BOTH:expire both orders when STP triggers; default NONE
goodTillDate LONG NO order cancel time for timeInForce GTD, mandatory when timeInforce set to GTD; order the timestamp only retains second-level precision, ms part will be ignored; The goodTillDate timestamp must be greater than the current time plus 600 seconds and smaller than 253402300799000
recvWindow LONG NO
timestamp LONG YES

Additional mandatory parameters based on type:

Type Additional mandatory parameters
LIMIT timeInForce, quantity, price
MARKET quantity
STOP/TAKE_PROFIT quantity, price, stopPrice
STOP_MARKET/TAKE_PROFIT_MARKET stopPrice
TRAILING_STOP_MARKET quantity,callbackRate

Test Order(TRADE)

Response:

response result matches request

POST /fapi/v1/order/test

Testing order request, this order will not be submitted to matching engine

Parameters:

Please refer to POST /fapi/v1/order

Modify Order (TRADE)

Response:

{
    "orderId": 20072994037,
    "symbol": "BTCUSDT",
    "pair": "BTCUSDT",
    "status": "NEW",
    "clientOrderId": "LJ9R4QZDihCaS8UAOOLpgW",
    "price": "30005",
    "avgPrice": "0.0",
    "origQty": "1",
    "executedQty": "0",
    "cumQty": "0",
    "cumBase": "0",
    "timeInForce": "GTC",
    "type": "LIMIT",
    "reduceOnly": false,
    "closePosition": false,
    "side": "BUY",
    "positionSide": "LONG",
    "stopPrice": "0",
    "workingType": "CONTRACT_PRICE",
    "priceProtect": false,
    "origType": "LIMIT",
    "priceMatch": "NONE",              //price match mode
    "selfTradePreventionMode": "NONE", //self trading preventation mode
    "goodTillDate": 0      //order pre-set auot cancel time for TIF GTD order
    "updateTime": 1629182711600
}

PUT /fapi/v1/order

Order modify function, currently only LIMIT order modification is supported, modified orders will be reordered in the match queue

Weight: 1 on 10s order rate limit(X-MBX-ORDER-COUNT-10S); 1 on 1min order rate limit(X-MBX-ORDER-COUNT-1M); 1 on IP rate limit(x-mbx-used-weight-1m);

Parameters:

Name Type Mandatory Description
orderId LONG NO
origClientOrderId STRING NO
symbol STRING YES
side ENUM YES SELL, BUY; side needs to be same as origin order
quantity DECIMAL YES Order quantity, cannot be sent with closePosition=true
price DECIMAL YES
priceMatch ENUM NO only avaliable for LIMIT/STOP/TAKE_PROFIT order; can be set to OPPONENT/ OPPONENT_5/ OPPONENT_10/ OPPONENT_20: /QUEUE/ QUEUE_5/ QUEUE_10/ QUEUE_20; Can't be passed together with price
recvWindow LONG NO
timestamp LONG YES

Place Multiple Orders (TRADE)

Response:

[
    {
        "clientOrderId": "testOrder",
        "cumQty": "0",
        "cumQuote": "0",
        "executedQty": "0",
        "orderId": 22542179,
        "avgPrice": "0.00000",
        "origQty": "10",
        "price": "0",
        "reduceOnly": false,
        "side": "BUY",
        "positionSide": "SHORT",
        "status": "NEW",
        "stopPrice": "9300",        // please ignore when order type is TRAILING_STOP_MARKET
        "symbol": "BTCUSDT",
        "timeInForce": "GTC",
        "type": "TRAILING_STOP_MARKET",
        "origType": "TRAILING_STOP_MARKET",
        "activatePrice": "9020",    // activation price, only return with TRAILING_STOP_MARKET order
        "priceRate": "0.3",         // callback rate, only return with TRAILING_STOP_MARKET order
        "updateTime": 1566818724722,
        "workingType": "CONTRACT_PRICE",
        "priceProtect": false,            // if conditional order trigger is protected
        "priceMatch": "NONE",              //price match mode
        "selfTradePreventionMode": "NONE", //self trading preventation mode
        "goodTillDate": 0      //order pre-set auot cancel time for TIF GTD order   
    },
    {
        "code": -2022, 
        "msg": "ReduceOnly Order is rejected."
    }
]

POST /fapi/v1/batchOrders

Weight: 5 on 10s order rate limit(X-MBX-ORDER-COUNT-10S); 1 on 1min order rate limit(X-MBX-ORDER-COUNT-1M); 5 on IP rate limit(x-mbx-used-weight-1m);

Parameters:

Name Type Mandatory Description
batchOrders LIST<JSON> YES order list. Max 5 orders
recvWindow LONG NO
timestamp LONG YES

Where batchOrders is the list of order parameters in JSON

Name Type Mandatory Description
symbol STRING YES
side ENUM YES
positionSide ENUM NO Default BOTH for One-way Mode ; LONG or SHORT for Hedge Mode. It must be sent with Hedge Mode.
type ENUM YES
timeInForce ENUM NO
quantity DECIMAL YES
reduceOnly STRING NO "true" or "false". default "false".
price DECIMAL NO
newClientOrderId STRING NO A unique id among open orders. Automatically generated if not sent. Can only be string following the rule: ^[\.A-Z\:/a-z0-9_-]{1,36}$
stopPrice DECIMAL NO Used with STOP/STOP_MARKET or TAKE_PROFIT/TAKE_PROFIT_MARKET orders.
activationPrice DECIMAL NO Used with TRAILING_STOP_MARKET orders, default as the latest price(supporting different workingType)
callbackRate DECIMAL NO Used with TRAILING_STOP_MARKET orders, min 0.1, max 4 where 1 for 1%
workingType ENUM NO stopPrice triggered by: "MARK_PRICE", "CONTRACT_PRICE". Default "CONTRACT_PRICE"
priceProtect STRING NO "TRUE" or "FALSE", default "FALSE". Used with STOP/STOP_MARKET or TAKE_PROFIT/TAKE_PROFIT_MARKET orders.
newOrderRespType ENUM NO "ACK", "RESULT", default "ACK"
priceMatch ENUM NO only avaliable for LIMIT/STOP/TAKE_PROFIT order; can be set to OPPONENT/ OPPONENT_5/ OPPONENT_10/ OPPONENT_20: /QUEUE/ QUEUE_5/ QUEUE_10/ QUEUE_20; Can't be passed together with price
selfTradePreventionMode ENUM NO NONE:No STP / EXPIRE_TAKER:expire taker order when STP triggers/ EXPIRE_MAKER:expire maker order when STP triggers/ EXPIRE_BOTH:expire both orders when STP triggers
goodTillDate LONG NO order cancel time for timeInForce GTD, mandatory when timeInforce set to GTD; order the timestamp only retains second-level precision, ms part will be ignored; The goodTillDate timestamp must be greater than the current time plus 600 seconds and smaller than 253402300799000

Modify Multiple Orders (TRADE)

Response:

[
    {
        "orderId": 20072994037,
        "symbol": "BTCUSDT",
        "pair": "BTCUSDT",
        "status": "NEW",
        "clientOrderId": "LJ9R4QZDihCaS8UAOOLpgW",
        "price": "30005",
        "avgPrice": "0.0",
        "origQty": "1",
        "executedQty": "0",
        "cumQty": "0",
        "cumBase": "0",
        "timeInForce": "GTC",
        "type": "LIMIT",
        "reduceOnly": false,
        "closePosition": false,
        "side": "BUY",
        "positionSide": "LONG",
        "stopPrice": "0",
        "workingType": "CONTRACT_PRICE",
        "priceProtect": false,
        "origType": "LIMIT",
        "priceMatch": "NONE",              //price match mode
        "selfTradePreventionMode": "NONE", //self trading preventation mode
        "goodTillDate": 0      //order pre-set auot cancel time for TIF GTD order
        "updateTime": 1629182711600
    },
    {
        "code": -2022, 
        "msg": "ReduceOnly Order is rejected."
    }
]

PUT /fapi/v1/batchOrders

Weight: 5

Parameters:

Name Type Mandatory Description
batchOrders list<JSON> YES order list. Max 5 orders
recvWindow LONG NO
timestamp LONG YES

Where batchOrders is the list of order parameters in JSON

Name Type Mandatory Description
orderId LONG NO
origClientOrderId STRING NO
symbol STRING YES
side ENUM YES SELL, BUY
quantity DECIMAL YES Order quantity, cannot be sent with closePosition=true
price DECIMAL YES
priceMatch ENUM NO only avaliable for LIMIT/STOP/TAKE_PROFIT order; can be set to OPPONENT/ OPPONENT_5/ OPPONENT_10/ OPPONENT_20: /QUEUE/ QUEUE_5/ QUEUE_10/ QUEUE_20; Can't be passed together with price
recvWindow LONG NO
timestamp LONG YES

Get Order Modify History (USER_DATA)

Response:

[
    {
        "amendmentId": 5363,    // Order modification ID
        "symbol": "BTCUSDT",
        "pair": "BTCUSDT",
        "orderId": 20072994037,
        "clientOrderId": "LJ9R4QZDihCaS8UAOOLpgW",
        "time": 1629184560899,  // Order modification time
        "amendment": {
            "price": {
                "before": "30004",
                "after": "30003.2"
            },
            "origQty": {
                "before": "1",
                "after": "1"
            },
            "count": 3  // Order modification count, representing the number of times the order has been modified
        },
        "priceMatch":"QUEUE_20"
    },
    {
        "amendmentId": 5361,
        "symbol": "BTCUSDT",
        "pair": "BTCUSDT",
        "orderId": 20072994037,
        "clientOrderId": "LJ9R4QZDihCaS8UAOOLpgW",
        "time": 1629184533946,
        "amendment": {
            "price": {
                "before": "30005",
                "after": "30004"
            },
            "origQty": {
                "before": "1",
                "after": "1"
            },
            "count": 2
        },
        "priceMatch":"QUEUE_20"
    },
    {
        "amendmentId": 5325,
        "symbol": "BTCUSDT",
        "pair": "BTCUSDT",
        "orderId": 20072994037,
        "clientOrderId": "LJ9R4QZDihCaS8UAOOLpgW",
        "time": 1629182711787,
        "amendment": {
            "price": {
                "before": "30002",
                "after": "30005"
            },
            "origQty": {
                "before": "1",
                "after": "1"
            },
            "count": 1
        },
        "priceMatch":"QUEUE_20"
    }
]

GET /fapi/v1/orderAmendment

Get order modification history

Weight: 1

Parameters:

Name Type Mandatory Description
symbol STRING YES
orderId LONG NO
origClientOrderId STRING NO
startTime LONG NO Timestamp in ms to get modification history from INCLUSIVE
endTime LONG NO Timestamp in ms to get modification history until INCLUSIVE
limit INT NO Default 1000; max 1000
recvWindow LONG NO
timestamp LONG YES

Notes:

Query Order (USER_DATA)

Response:

{
    "avgPrice": "0.00000",
    "clientOrderId": "abc",
    "cumQuote": "0",
    "executedQty": "0",
    "orderId": 1917641,
    "origQty": "0.40",
    "origType": "TRAILING_STOP_MARKET",
    "price": "0",
    "reduceOnly": false,
    "side": "BUY",
    "positionSide": "SHORT",
    "status": "NEW",
    "stopPrice": "9300",                // please ignore when order type is TRAILING_STOP_MARKET
    "closePosition": false,   // if Close-All
    "symbol": "BTCUSDT",
    "time": 1579276756075,              // order time
    "timeInForce": "GTC",
    "type": "TRAILING_STOP_MARKET",
    "activatePrice": "9020",            // activation price, only return with TRAILING_STOP_MARKET order
    "priceRate": "0.3",                 // callback rate, only return with TRAILING_STOP_MARKET order
    "updateTime": 1579276756075,        // update time
    "workingType": "CONTRACT_PRICE",
    "priceProtect": false,            // if conditional order trigger is protected  
    "priceMatch": "NONE",              //price match mode
    "selfTradePreventionMode": "NONE", //self trading preventation mode
    "goodTillDate": 0                  //order pre-set auot cancel time for TIF GTD order
}

GET /fapi/v1/order

Check an order's status.

Weight: 1

Parameters:

Name Type Mandatory Description
symbol STRING YES
orderId LONG NO
origClientOrderId STRING NO
recvWindow LONG NO
timestamp LONG YES

Notes:

Cancel Order (TRADE)

Response:

{
    "clientOrderId": "myOrder1",
    "cumQty": "0",
    "cumQuote": "0",
    "executedQty": "0",
    "orderId": 283194212,
    "origQty": "11",
    "origType": "TRAILING_STOP_MARKET",
    "price": "0",
    "reduceOnly": false,
    "side": "BUY",
    "positionSide": "SHORT",
    "status": "CANCELED",
    "stopPrice": "9300",                // please ignore when order type is TRAILING_STOP_MARKET
    "closePosition": false,   // if Close-All
    "symbol": "BTCUSDT",
    "timeInForce": "GTC",
    "type": "TRAILING_STOP_MARKET",
    "activatePrice": "9020",            // activation price, only return with TRAILING_STOP_MARKET order
    "priceRate": "0.3",                 // callback rate, only return with TRAILING_STOP_MARKET order
    "updateTime": 1571110484038,
    "workingType": "CONTRACT_PRICE",
    "priceProtect": false,            // if conditional order trigger is protected  
    "priceMatch": "NONE",              //price match mode
    "selfTradePreventionMode": "NONE", //self trading preventation mode
    "goodTillDate": 0                  //order pre-set auot cancel time for TIF GTD order
}

DELETE /fapi/v1/order

Cancel an active order.

Weight: 1

Parameters:

Name Type Mandatory Description
symbol STRING YES
orderId LONG NO
origClientOrderId STRING NO
recvWindow LONG NO
timestamp LONG YES

Either orderId or origClientOrderId must be sent.

Cancel All Open Orders (TRADE)

Response:

{
    "code": 200, 
    "msg": "The operation of cancel all open order is done."
}

DELETE /fapi/v1/allOpenOrders

Weight: 1

Parameters:

Name Type Mandatory Description
symbol STRING YES
recvWindow LONG NO
timestamp LONG YES

Cancel Multiple Orders (TRADE)

Response:

[
    {
        "clientOrderId": "myOrder1",
        "cumQty": "0",
        "cumQuote": "0",
        "executedQty": "0",
        "orderId": 283194212,
        "origQty": "11",
        "origType": "TRAILING_STOP_MARKET",
        "price": "0",
        "reduceOnly": false,
        "side": "BUY",
        "positionSide": "SHORT",
        "status": "CANCELED",
        "stopPrice": "9300",                // please ignore when order type is TRAILING_STOP_MARKET
        "closePosition": false,   // if Close-All
        "symbol": "BTCUSDT",
        "timeInForce": "GTC",
        "type": "TRAILING_STOP_MARKET",
        "activatePrice": "9020",            // activation price, only return with TRAILING_STOP_MARKET order
        "priceRate": "0.3",                 // callback rate, only return with TRAILING_STOP_MARKET order
        "updateTime": 1571110484038,
        "workingType": "CONTRACT_PRICE",
        "priceProtect": false,            // if conditional order trigger is protected  
        "priceMatch": "NONE",              //price match mode
        "selfTradePreventionMode": "NONE", //self trading preventation mode
        "goodTillDate": 0                  //order pre-set auot cancel time for TIF GTD order
    },
    {
        "code": -2011,
        "msg": "Unknown order sent."
    }
]

DELETE /fapi/v1/batchOrders

Weight: 1

Parameters:

Name Type Mandatory Description
symbol STRING YES
orderIdList LIST<LONG> NO max length 10
e.g. [1234567,2345678]
origClientOrderIdList LIST<STRING> NO max length 10
e.g. ["my_id_1","my_id_2"], encode the double quotes. No space after comma.
recvWindow LONG NO
timestamp LONG YES

Either orderIdList or origClientOrderIdList must be sent.

Auto-Cancel All Open Orders (TRADE)

Response:

{
    "symbol": "BTCUSDT", 
    "countdownTime": "100000"
}

Cancel all open orders of the specified symbol at the end of the specified countdown.

POST /fapi/v1/countdownCancelAll

Weight: 10

Parameters:

Name Type Mandatory Description
symbol STRING YES
countdownTime LONG YES countdown time, 1000 for 1 second. 0 to cancel the timer
recvWindow LONG NO
timestamp LONG YES

Query Current Open Order (USER_DATA)

Response:


{
    "avgPrice": "0.00000",              
    "clientOrderId": "abc",             
    "cumQuote": "0",                        
    "executedQty": "0",                 
    "orderId": 1917641,                 
    "origQty": "0.40",                      
    "origType": "TRAILING_STOP_MARKET",
    "price": "0",
    "reduceOnly": false,
    "side": "BUY",
    "positionSide": "SHORT",
    "status": "NEW",
    "stopPrice": "9300",                // please ignore when order type is TRAILING_STOP_MARKET
    "closePosition": false,             // if Close-All
    "symbol": "BTCUSDT",
    "time": 1579276756075,              // order time
    "timeInForce": "GTC",
    "type": "TRAILING_STOP_MARKET",
    "activatePrice": "9020",            // activation price, only return with TRAILING_STOP_MARKET order
    "priceRate": "0.3",                 // callback rate, only return with TRAILING_STOP_MARKET order                       
    "updateTime": 1579276756075,        
    "workingType": "CONTRACT_PRICE",
    "priceProtect": false,            // if conditional order trigger is protected
    "priceMatch": "NONE",              //price match mode
    "selfTradePreventionMode": "NONE", //self trading preventation mode
    "goodTillDate": 0      //order pre-set auot cancel time for TIF GTD order           
}

GET /fapi/v1/openOrder

Weight: 1

Parameters:

Name Type Mandatory Description
symbol STRING YES
orderId LONG NO
origClientOrderId STRING NO
recvWindow LONG NO
timestamp LONG YES

Current All Open Orders (USER_DATA)

Response:

[
  {
    "avgPrice": "0.00000",
    "clientOrderId": "abc",
    "cumQuote": "0",
    "executedQty": "0",
    "orderId": 1917641,
    "origQty": "0.40",
    "origType": "TRAILING_STOP_MARKET",
    "price": "0",
    "reduceOnly": false,
    "side": "BUY",
    "positionSide": "SHORT",
    "status": "NEW",
    "stopPrice": "9300",                // please ignore when order type is TRAILING_STOP_MARKET
    "closePosition": false,   // if Close-All
    "symbol": "BTCUSDT",
    "time": 1579276756075,              // order time
    "timeInForce": "GTC",
    "type": "TRAILING_STOP_MARKET",
    "activatePrice": "9020",            // activation price, only return with TRAILING_STOP_MARKET order
    "priceRate": "0.3",                 // callback rate, only return with TRAILING_STOP_MARKET order
    "updateTime": 1579276756075,        // update time
    "workingType": "CONTRACT_PRICE",
    "priceProtect": false,            // if conditional order trigger is protected  
    "priceMatch": "NONE",              //price match mode
    "selfTradePreventionMode": "NONE", //self trading preventation mode
    "goodTillDate": 0      //order pre-set auot cancel time for TIF GTD order
  }
]

GET /fapi/v1/openOrders

Get all open orders on a symbol. Careful when accessing this with no symbol.

Weight: 1 for a single symbol; 40 when the symbol parameter is omitted

Parameters:

Name Type Mandatory Description
symbol STRING NO
recvWindow LONG NO
timestamp LONG YES

All Orders (USER_DATA)

Response:

[
  {
    "avgPrice": "0.00000",
    "clientOrderId": "abc",
    "cumQuote": "0",
    "executedQty": "0",
    "orderId": 1917641,
    "origQty": "0.40",
    "origType": "TRAILING_STOP_MARKET",
    "price": "0",
    "reduceOnly": false,
    "side": "BUY",
    "positionSide": "SHORT",
    "status": "NEW",
    "stopPrice": "9300",                // please ignore when order type is TRAILING_STOP_MARKET
    "closePosition": false,   // if Close-All
    "symbol": "BTCUSDT",
    "time": 1579276756075,              // order time
    "timeInForce": "GTC",
    "type": "TRAILING_STOP_MARKET",
    "activatePrice": "9020",            // activation price, only return with TRAILING_STOP_MARKET order
    "priceRate": "0.3",                 // callback rate, only return with TRAILING_STOP_MARKET order
    "updateTime": 1579276756075,        // update time
    "workingType": "CONTRACT_PRICE",
    "priceProtect": false,            // if conditional order trigger is protected  
    "priceMatch": "NONE",              //price match mode
    "selfTradePreventionMode": "NONE", //self trading preventation mode
    "goodTillDate": 0      //order pre-set auot cancel time for TIF GTD order
  }
]

GET /fapi/v1/allOrders

Get all account orders; active, canceled, or filled.

Weight: 5

Parameters:

Name Type Mandatory Description
symbol STRING YES
orderId LONG NO
startTime LONG NO
endTime LONG NO
limit INT NO Default 500; max 1000.
recvWindow LONG NO
timestamp LONG YES

Notes:

Futures Account Balance V3 (USER_DATA)

Response:

[
 {
   "accountAlias": "SgsR",              // unique account code
   "asset": "USDT",                       // asset name
   "balance": "122607.35137903",        // wallet balance
   "crossWalletBalance": "23.72469206", // crossed wallet balance
   "crossUnPnl": "0.00000000"           // unrealized profit of crossed positions
   "availableBalance": "23.72469206",   // available balance
   "maxWithdrawAmount": "23.72469206",  // maximum amount for transfer out
   "marginAvailable": true,             // whether the asset can be used as margin in Multi-Assets mode
   "updateTime": 1617939110373
 }
]

GET /fapi/v3/balance

Weight: 5

Parameters:

Name Type Mandatory Description
recvWindow LONG NO
timestamp LONG YES

Futures Account Balance V2 (USER_DATA)

Response:

[
    {
        "accountAlias": "SgsR",    // unique account code
        "asset": "USDT",    // asset name
        "balance": "122607.35137903", // wallet balance
        "crossWalletBalance": "23.72469206", // crossed wallet balance
    "crossUnPnl": "0.00000000"  // unrealized profit of crossed positions
    "availableBalance": "23.72469206",       // available balance
    "maxWithdrawAmount": "23.72469206",     // maximum amount for transfer out
    "marginAvailable": true,    // whether the asset can be used as margin in Multi-Assets mode
    "updateTime": 1617939110373
    }
]

GET /fapi/v2/balance

Weight: 5

Parameters:

Name Type Mandatory Description
recvWindow LONG NO
timestamp LONG YES

Account Information V3 (USER_DATA)

Response:

single-asset mode

{   
    "totalInitialMargin": "0.00000000",            // total initial margin required with current mark price (useless with isolated positions), only for USDT asset
    "totalMaintMargin": "0.00000000",              // total maintenance margin required, only for USDT asset
    "totalWalletBalance": "103.12345678",           // total wallet balance, only for USDT asset
    "totalUnrealizedProfit": "0.00000000",         // total unrealized profit, only for USDT asset
    "totalMarginBalance": "103.12345678",           // total margin balance, only for USDT asset
    "totalPositionInitialMargin": "0.00000000",    // initial margin required for positions with current mark price, only for USDT asset
    "totalOpenOrderInitialMargin": "0.00000000",   // initial margin required for open orders with current mark price, only for USDT asset
    "totalCrossWalletBalance": "103.12345678",      // crossed wallet balance, only for USDT asset
    "totalCrossUnPnl": "0.00000000",               // unrealized profit of crossed positions, only for USDT asset
    "availableBalance": "103.12345678",             // available balance, only for USDT asset
    "maxWithdrawAmount": "103.12345678"             // maximum amount for transfer out, only for USDT asset
    "assets": [ // For assets that are quote assets, USDT/USDC/BTC
        {
            "asset": "USDT",                        // asset name
            "walletBalance": "23.72469206",         // wallet balance
            "unrealizedProfit": "0.00000000",       // unrealized profit
            "marginBalance": "23.72469206",         // margin balance
            "maintMargin": "0.00000000",            // maintenance margin required
            "initialMargin": "0.00000000",          // total initial margin required with current mark price 
            "positionInitialMargin": "0.00000000",  // initial margin required for positions with current mark price
            "openOrderInitialMargin": "0.00000000", // initial margin required for open orders with current mark price
            "crossWalletBalance": "23.72469206",    // crossed wallet balance
            "crossUnPnl": "0.00000000"              // unrealized profit of crossed positions
            "availableBalance": "23.72469206",      // available balance
            "maxWithdrawAmount": "23.72469206",     // maximum amount for transfer out
            "updateTime": 1625474304765             // last update time 
        },   
        {
            "asset": "USDC",                        // asset name
            "walletBalance": "103.12345678",         // wallet balance
            "unrealizedProfit": "0.00000000",       // unrealized profit
            "marginBalance": "103.12345678",         // margin balance
            "maintMargin": "0.00000000",            // maintenance margin required
            "initialMargin": "0.00000000",          // total initial margin required with current mark price 
            "positionInitialMargin": "0.00000000",  // initial margin required for positions with current mark price
            "openOrderInitialMargin": "0.00000000", // initial margin required for open orders with current mark price
            "crossWalletBalance": "103.12345678",    // crossed wallet balance
            "crossUnPnl": "0.00000000"              // unrealized profit of crossed positions
            "availableBalance": "126.72469206",      // available balance
            "maxWithdrawAmount": "103.12345678",     // maximum amount for transfer out
            "updateTime": 1625474304765             // last update time 
        },    
    ],
    "positions": [  // positions of all symbols user had position/ open orders are returned
                    // only "BOTH" positions will be returned with One-way mode
                    // only "LONG" and "SHORT" positions will be returned with Hedge mode
      {
           "symbol": "BTCUSDT",   
           "positionSide": "BOTH",            // position side 
           "positionAmt": "1.000",  
           "unrealizedProfit": "0.00000000",  // unrealized profit      
           "isolatedMargin": "0.00000000",  
           "notional": "0",
           "isolatedWallet": "0",
           "initialMargin": "0",              // initial margin required with current mark price 
           "maintMargin": "0",                // maintenance margin required
           "updateTime": 0
      } 
    ]
}

OR multi-assets mode

{   
    "totalInitialMargin": "0.00000000",            // the sum of USD value of all cross positions/open order initial margin
    "totalMaintMargin": "0.00000000",              // the sum of USD value of all cross positions maintenance margin
    "totalWalletBalance": "126.72469206",          // total wallet balance in USD
    "totalUnrealizedProfit": "0.00000000",         // total unrealized profit in USD
    "totalMarginBalance": "126.72469206",          // total margin balance in USD
    "totalPositionInitialMargin": "0.00000000",    // the sum of USD value of all cross positions initial margin
    "totalOpenOrderInitialMargin": "0.00000000",   // initial margin required for open orders with current mark price in USD
    "totalCrossWalletBalance": "126.72469206",     // crossed wallet balance in USD
    "totalCrossUnPnl": "0.00000000",               // unrealized profit of crossed positions in USD
    "availableBalance": "126.72469206",            // available balance in USD
    "maxWithdrawAmount": "126.72469206"            // maximum virtual amount for transfer out in USD
    "assets": [
        {
            "asset": "USDT",                     // asset name
            "walletBalance": "23.72469206",      // wallet balance
            "unrealizedProfit": "0.00000000",    // unrealized profit
            "marginBalance": "23.72469206",      // margin balance
            "maintMargin": "0.00000000",         // maintenance margin required
            "initialMargin": "0.00000000",       // total initial margin required with current mark price 
            "positionInitialMargin": "0.00000000",    //initial margin required for positions with current mark price
            "openOrderInitialMargin": "0.00000000",   // initial margin required for open orders with current mark price
            "crossWalletBalance": "23.72469206",      // crossed wallet balance
            "crossUnPnl": "0.00000000"       // unrealized profit of crossed positions
            "availableBalance": "126.72469206",       // available balance
            "maxWithdrawAmount": "23.72469206",     // maximum amount for transfer out
            "marginAvailable": true,    // whether the asset can be used as margin in Multi-Assets mode
            "updateTime": 1625474304765 // last update time 
        },
        {
            "asset": "BUSD",            // asset name
            "walletBalance": "103.12345678",      // wallet balance
            "unrealizedProfit": "0.00000000",    // unrealized profit
            "marginBalance": "103.12345678",      // margin balance
            "maintMargin": "0.00000000",        // maintenance margin required
            "initialMargin": "0.00000000",    // total initial margin required with current mark price 
            "positionInitialMargin": "0.00000000",    //initial margin required for positions with current mark price
            "openOrderInitialMargin": "0.00000000",   // initial margin required for open orders with current mark price
            "crossWalletBalance": "103.12345678",      // crossed wallet balance
            "crossUnPnl": "0.00000000"       // unrealized profit of crossed positions
            "availableBalance": "126.72469206",       // available balance
            "maxWithdrawAmount": "103.12345678",     // maximum amount for transfer out
            "marginAvailable": true,    // whether the asset can be used as margin in Multi-Assets mode
            "updateTime": 1625474304765 // last update time
        }
    ],
    "positions": [  // positions of all symbols user had position are returned
                    // only "BOTH" positions will be returned with One-way mode
                    // only "LONG" and "SHORT" positions will be returned with Hedge mode
      {
           "symbol": "BTCUSDT",   
           "positionSide": "BOTH",            // position side 
           "positionAmt": "1.000",  
           "unrealizedProfit": "0.00000000",  // unrealized profit      
           "isolatedMargin": "0.00000000",  
           "notional": "0",
           "isolatedWallet": "0",
           "initialMargin": "0",              // initial margin required with current mark price 
           "maintMargin": "0",                // maintenance margin required
           "updateTime": 0
      } 
    ] 
}

GET /fapi/v3/account

Get current account information. User in single-asset/ multi-assets mode will see different value, see comments in response section for detail.   Weight: 5

Parameters:

Name Type Mandatory Description
recvWindow LONG NO
timestamp LONG YES

Account Information V2 (USER_DATA)

Response:

single-asset mode

{   
    "feeTier": 0,       // account commission tier 
    "feeBurn": true,        // "true": Fee Discount On; "false": Fee Discount Off
    "canTrade": true,   // if can trade
    "canDeposit": true,     // if can transfer in asset
    "canWithdraw": true,    // if can transfer out asset
    "updateTime": 0,        // reserved property, please ignore 
    "multiAssetsMargin": false,
    "tradeGroupId": -1,
    "totalInitialMargin": "0.00000000",    // total initial margin required with current mark price (useless with isolated positions), only for USDT asset
    "totalMaintMargin": "0.00000000",     // total maintenance margin required, only for USDT asset
    "totalWalletBalance": "23.72469206",     // total wallet balance, only for USDT asset
    "totalUnrealizedProfit": "0.00000000",   // total unrealized profit, only for USDT asset
    "totalMarginBalance": "23.72469206",     // total margin balance, only for USDT asset
    "totalPositionInitialMargin": "0.00000000",    // initial margin required for positions with current mark price, only for USDT asset
    "totalOpenOrderInitialMargin": "0.00000000",   // initial margin required for open orders with current mark price, only for USDT asset
    "totalCrossWalletBalance": "23.72469206",      // crossed wallet balance, only for USDT asset
    "totalCrossUnPnl": "0.00000000",      // unrealized profit of crossed positions, only for USDT asset
    "availableBalance": "23.72469206",       // available balance, only for USDT asset
    "maxWithdrawAmount": "23.72469206"     // maximum amount for transfer out, only for USDT asset
    "assets": [
        {
            "asset": "USDT",            // asset name
            "walletBalance": "23.72469206",      // wallet balance
            "unrealizedProfit": "0.00000000",    // unrealized profit
            "marginBalance": "23.72469206",      // margin balance
            "maintMargin": "0.00000000",        // maintenance margin required
            "initialMargin": "0.00000000",    // total initial margin required with current mark price 
            "positionInitialMargin": "0.00000000",    //initial margin required for positions with current mark price
            "openOrderInitialMargin": "0.00000000",   // initial margin required for open orders with current mark price
            "crossWalletBalance": "23.72469206",      // crossed wallet balance
            "crossUnPnl": "0.00000000"       // unrealized profit of crossed positions
            "availableBalance": "23.72469206",       // available balance
            "maxWithdrawAmount": "23.72469206",     // maximum amount for transfer out
            "marginAvailable": true,    // whether the asset can be used as margin in Multi-Assets mode
            "updateTime": 1625474304765 // last update time 
        },
        {
            "asset": "BUSD",            // asset name
            "walletBalance": "103.12345678",      // wallet balance
            "unrealizedProfit": "0.00000000",    // unrealized profit
            "marginBalance": "103.12345678",      // margin balance
            "maintMargin": "0.00000000",        // maintenance margin required
            "initialMargin": "0.00000000",    // total initial margin required with current mark price 
            "positionInitialMargin": "0.00000000",    //initial margin required for positions with current mark price
            "openOrderInitialMargin": "0.00000000",   // initial margin required for open orders with current mark price
            "crossWalletBalance": "103.12345678",      // crossed wallet balance
            "crossUnPnl": "0.00000000"       // unrealized profit of crossed positions
            "availableBalance": "103.12345678",       // available balance
            "maxWithdrawAmount": "103.12345678",     // maximum amount for transfer out
            "marginAvailable": true,    // whether the asset can be used as margin in Multi-Assets mode
            "updateTime": 1625474304765 // last update time
        }
    ],
    "positions": [  // positions of all symbols in the market are returned
        // only "BOTH" positions will be returned with One-way mode
        // only "LONG" and "SHORT" positions will be returned with Hedge mode
        {
            "symbol": "BTCUSDT",    // symbol name
            "initialMargin": "0",   // initial margin required with current mark price 
            "maintMargin": "0",     // maintenance margin required
            "unrealizedProfit": "0.00000000",  // unrealized profit
            "positionInitialMargin": "0",      // initial margin required for positions with current mark price
            "openOrderInitialMargin": "0",     // initial margin required for open orders with current mark price
            "leverage": "100",      // current initial leverage
            "isolated": true,       // if the position is isolated
            "entryPrice": "0.00000",    // average entry price
            "maxNotional": "250000",    // maximum available notional with current leverage
            "bidNotional": "0",  // bids notional, ignore
            "askNotional": "0",  // ask notional, ignore
            "positionSide": "BOTH",     // position side
            "positionAmt": "0",         // position amount
            "updateTime": 0           // last update time
        }
    ]
}

OR multi-assets mode

{   
    "feeTier": 0,       // account commission tier 
    "feeBurn": true,        // "true": Fee Discount On; "false": Fee Discount Off
    "canTrade": true,   // if can trade
    "canDeposit": true,     // if can transfer in asset
    "canWithdraw": true,    // if can transfer out asset
    "updateTime": 0,        // reserved property, please ignore 
    "multiAssetsMargin": true,
    "tradeGroupId": -1,
    "totalInitialMargin": "0.00000000",    // the sum of USD value of all cross positions/open order initial margin
    "totalMaintMargin": "0.00000000",     // the sum of USD value of all cross positions maintenance margin
    "totalWalletBalance": "126.72469206",     // total wallet balance in USD
    "totalUnrealizedProfit": "0.00000000",   // total unrealized profit in USD
    "totalMarginBalance": "126.72469206",     // total margin balance in USD
    "totalPositionInitialMargin": "0.00000000",    // the sum of USD value of all cross positions initial margin
    "totalOpenOrderInitialMargin": "0.00000000",   // initial margin required for open orders with current mark price in USD
    "totalCrossWalletBalance": "126.72469206",      // crossed wallet balance in USD
    "totalCrossUnPnl": "0.00000000",      // unrealized profit of crossed positions in USD
    "availableBalance": "126.72469206",       // available balance in USD
    "maxWithdrawAmount": "126.72469206"     // maximum virtual amount for transfer out in USD
    "assets": [
        {
            "asset": "USDT",            // asset name
            "walletBalance": "23.72469206",      // wallet balance
            "unrealizedProfit": "0.00000000",    // unrealized profit
            "marginBalance": "23.72469206",      // margin balance
            "maintMargin": "0.00000000",        // maintenance margin required
            "initialMargin": "0.00000000",    // total initial margin required with current mark price 
            "positionInitialMargin": "0.00000000",    //initial margin required for positions with current mark price
            "openOrderInitialMargin": "0.00000000",   // initial margin required for open orders with current mark price
            "crossWalletBalance": "23.72469206",      // crossed wallet balance
            "crossUnPnl": "0.00000000"       // unrealized profit of crossed positions
            "availableBalance": "126.72469206",       // available balance
            "maxWithdrawAmount": "23.72469206",     // maximum amount for transfer out
            "marginAvailable": true,    // whether the asset can be used as margin in Multi-Assets mode
            "updateTime": 1625474304765 // last update time 
        },
        {
            "asset": "BUSD",            // asset name
            "walletBalance": "103.12345678",      // wallet balance
            "unrealizedProfit": "0.00000000",    // unrealized profit
            "marginBalance": "103.12345678",      // margin balance
            "maintMargin": "0.00000000",        // maintenance margin required
            "initialMargin": "0.00000000",    // total initial margin required with current mark price 
            "positionInitialMargin": "0.00000000",    //initial margin required for positions with current mark price
            "openOrderInitialMargin": "0.00000000",   // initial margin required for open orders with current mark price
            "crossWalletBalance": "103.12345678",      // crossed wallet balance
            "crossUnPnl": "0.00000000"       // unrealized profit of crossed positions
            "availableBalance": "126.72469206",       // available balance
            "maxWithdrawAmount": "103.12345678",     // maximum amount for transfer out
            "marginAvailable": true,    // whether the asset can be used as margin in Multi-Assets mode
            "updateTime": 1625474304765 // last update time
        }
    ],
    "positions": [  // positions of all symbols in the market are returned
        // only "BOTH" positions will be returned with One-way mode
        // only "LONG" and "SHORT" positions will be returned with Hedge mode
        {
            "symbol": "BTCUSDT",    // symbol name
            "initialMargin": "0",   // initial margin required with current mark price 
            "maintMargin": "0",     // maintenance margin required
            "unrealizedProfit": "0.00000000",  // unrealized profit
            "positionInitialMargin": "0",      // initial margin required for positions with current mark price
            "openOrderInitialMargin": "0",     // initial margin required for open orders with current mark price
            "leverage": "100",      // current initial leverage
            "isolated": true,       // if the position is isolated
            "entryPrice": "0.00000",    // average entry price
            "breakEvenPrice": "0.0",    // average entry price
            "maxNotional": "250000",    // maximum available notional with current leverage
            "bidNotional": "0",  // bids notional, ignore
            "askNotional": "0",  // ask notional, ignore
            "positionSide": "BOTH",     // position side
            "positionAmt": "0",         // position amount
            "updateTime": 0           // last update time
        }
    ]
}

GET /fapi/v2/account

Get current account information. User in single-asset/ multi-assets mode will see different value, see comments in response section for detail.   Weight: 5

Parameters:

Name Type Mandatory Description
recvWindow LONG NO
timestamp LONG YES

Change Initial Leverage (TRADE)

Response:

{
    "leverage": 21,
    "maxNotionalValue": "1000000",
    "symbol": "BTCUSDT"
}

POST /fapi/v1/leverage

Change user's initial leverage of specific symbol market.

Weight: 1

Parameters:

Name Type Mandatory Description
symbol STRING YES
leverage INT YES target initial leverage: int from 1 to 125
recvWindow LONG NO
timestamp LONG YES

Change Margin Type (TRADE)

Response:

{
    "code": 200,
    "msg": "success"
}

POST /fapi/v1/marginType

Weight: 1

Parameters:

Name Type Mandatory Description
symbol STRING YES
marginType ENUM YES ISOLATED, CROSSED
recvWindow LONG NO
timestamp LONG YES

Modify Isolated Position Margin (TRADE)

Response:

{
    "amount": 100.0,
    "code": 200,
    "msg": "Successfully modify position margin.",
    "type": 1
}

POST /fapi/v1/positionMargin

Weight: 1

Parameters:

Name Type Mandatory Description
symbol STRING YES
positionSide ENUM NO Default BOTH for One-way Mode ; LONG or SHORT for Hedge Mode. It must be sent with Hedge Mode.
amount DECIMAL YES
type INT YES 1: Add position margin,2: Reduce position margin
recvWindow LONG NO
timestamp LONG YES

Get Position Margin Change History (TRADE)

Response:

[
    {
        "symbol": "BTCUSDT",
        "type": 1,
        "deltaType": "USER_ADJUST",
        "amount": "23.36332311",
        "asset": "USDT",
        "time": 1578047897183,
        "positionSide": "BOTH"
    },
    {
        "symbol": "BTCUSDT",
        "type": 1, 
        "deltaType": "USER_ADJUST",
        "amount": "100",
        "asset": "USDT",
        "time": 1578047900425,
        "positionSide": "LONG" 
    }
]

GET /fapi/v1/positionMargin/history

Weight: 1

Parameters:

Name Type Mandatory Description
symbol STRING YES
type INT NO 1: Add position margin,2: Reduce position margin
startTime LONG NO
endTime LONG NO Default current time if not pass
limit INT NO Default: 500
recvWindow LONG NO
timestamp LONG YES

Position Information V3 (USER_DATA)

Response:

For One-way position mode:

[
  {
        "symbol": "ADAUSDT",
        "positionSide": "BOTH",               // position side 
        "positionAmt": "30",
        "entryPrice": "0.385",
        "breakEvenPrice": "0.385077",
        "markPrice": "0.41047590",
        "unRealizedProfit": "0.76427700",     // unrealized profit  
        "liquidationPrice": "0",
        "isolatedMargin": "0",
        "notional": "12.31427700",
        "marginAsset": "USDT",
        "isolatedWallet": "0",
        "initialMargin": "0.61571385",        // initial margin required with current mark price 
        "maintMargin": "0.08004280",          // maintenance margin required
        "positionInitialMargin": "0.61571385",// initial margin required for positions with current mark price
        "openOrderInitialMargin": "0",        // initial margin required for open orders with current mark price 
        "adl": 2,
        "bidNotional": "0",                   // bids notional, ignore
        "askNotional": "0",                   // ask notional, ignore
        "updateTime": 1720736417660
  }
]

For Hedge position mode:

[
    {
        "symbol": "BTCUSDT",
        "positionAmt": "0.001",
        "entryPrice": "22185.2",
        "breakEvenPrice": "0.0",  
        "markPrice": "21123.05052574",
        "unRealizedProfit": "-1.06214947",
        "liquidationPrice": "19731.45529116",
        "leverage": "4",
        "maxNotionalValue": "100000000",
        "marginType": "cross",
        "isolatedMargin": "0.00000000",
        "isAutoAddMargin": "false",
        "positionSide": "LONG",
        "notional": "21.12305052",
        "isolatedWallet": "0",
        "updateTime": 1655217461579
    },
    {
        "symbol": "BTCUSDT",
        "positionAmt": "0.000",
        "entryPrice": "0.0",
        "breakEvenPrice": "0.0",  
        "markPrice": "21123.05052574",
        "unRealizedProfit": "0.00000000",
        "liquidationPrice": "0",
        "leverage": "4",
        "maxNotionalValue": "100000000",
        "marginType": "cross",
        "isolatedMargin": "0.00000000",
        "isAutoAddMargin": "false",
        "positionSide": "SHORT",
        "notional": "0",
        "isolatedWallet": "0",
        "updateTime": 0
    }
]

GET /fapi/v3/positionRisk

Get current position information(only symbol that has position or open orders will be returned).

Weight: 5

Parameters:

Name Type Mandatory Description
symbol STRING NO
recvWindow LONG NO
timestamp LONG YES

Note
Please use with user data stream ACCOUNT_UPDATE to meet your timeliness and accuracy needs.

Position Information V2 (USER_DATA)

Response:

For One-way position mode:

[
    {
        "entryPrice": "0.00000",
        "breakEvenPrice": "0.0",  
        "marginType": "isolated", 
        "isAutoAddMargin": "false",
        "isolatedMargin": "0.00000000", 
        "leverage": "10", 
        "liquidationPrice": "0", 
        "markPrice": "6679.50671178",   
        "maxNotionalValue": "20000000", 
        "positionAmt": "0.000",
        "notional": "0",, 
        "isolatedWallet": "0",
        "symbol": "BTCUSDT", 
        "unRealizedProfit": "0.00000000", 
        "positionSide": "BOTH",
        "updateTime": 0
    }
]

For Hedge position mode:

[
    {
        "symbol": "BTCUSDT",
        "positionAmt": "0.001",
        "entryPrice": "22185.2",
        "breakEvenPrice": "0.0",  
        "markPrice": "21123.05052574",
        "unRealizedProfit": "-1.06214947",
        "liquidationPrice": "19731.45529116",
        "leverage": "4",
        "maxNotionalValue": "100000000",
        "marginType": "cross",
        "isolatedMargin": "0.00000000",
        "isAutoAddMargin": "false",
        "positionSide": "LONG",
        "notional": "21.12305052",
        "isolatedWallet": "0",
        "updateTime": 1655217461579
    },
    {
        "symbol": "BTCUSDT",
        "positionAmt": "0.000",
        "entryPrice": "0.0",
        "breakEvenPrice": "0.0",  
        "markPrice": "21123.05052574",
        "unRealizedProfit": "0.00000000",
        "liquidationPrice": "0",
        "leverage": "4",
        "maxNotionalValue": "100000000",
        "marginType": "cross",
        "isolatedMargin": "0.00000000",
        "isAutoAddMargin": "false",
        "positionSide": "SHORT",
        "notional": "0",
        "isolatedWallet": "0",
        "updateTime": 0
    }
]

GET /fapi/v2/positionRisk

Get current position information.

Weight: 5

Parameters:

Name Type Mandatory Description
symbol STRING NO
recvWindow LONG NO
timestamp LONG YES

Note
Please use with user data stream ACCOUNT_UPDATE to meet your timeliness and accuracy needs.

Account Trade List (USER_DATA)

Response:

[
  {
    "buyer": false,
    "commission": "-0.07819010",
    "commissionAsset": "USDT",
    "id": 698759,
    "maker": false,
    "orderId": 25851813,
    "price": "7819.01",
    "qty": "0.002",
    "quoteQty": "15.63802",
    "realizedPnl": "-0.91539999",
    "side": "SELL",
    "positionSide": "SHORT",
    "symbol": "BTCUSDT",
    "time": 1569514978020
  }
]

GET /fapi/v1/userTrades

Get trades for a specific account and symbol.

Weight: 5

Parameters:

Name Type Mandatory Description
symbol STRING YES
orderId LONG NO This can only be used in combination with symbol
startTime LONG NO
endTime LONG NO
fromId LONG NO Trade id to fetch from. Default gets most recent trades.
limit INT NO Default 500; max 1000.
recvWindow LONG NO
timestamp LONG YES

Get Income History (USER_DATA)

Response:

[
    {
        "symbol": "",                   // trade symbol, if existing
        "incomeType": "TRANSFER",   // income type
        "income": "-0.37500000",  // income amount
        "asset": "USDT",                // income asset
        "info":"TRANSFER",          // extra information
        "time": 1570608000000,      
        "tranId":"9689322392",      // transaction id
        "tradeId":""                    // trade id, if existing
    },
    {
        "symbol": "BTCUSDT",
        "incomeType": "COMMISSION", 
        "income": "-0.01000000",
        "asset": "USDT",
        "info":"COMMISSION",
        "time": 1570636800000,
        "tranId":"9689322392",
        "tradeId": 2059192
    }
]

GET /fapi/v1/income

Weight: 30

Parameters:

Name Type Mandatory Description
symbol STRING NO
incomeType STRING NO TRANSFER, WELCOME_BONUS, REALIZED_PNL, FUNDING_FEE, COMMISSION, INSURANCE_CLEAR, REFERRAL_KICKBACK, COMMISSION_REBATE, API_REBATE, CONTEST_REWARD, CROSS_COLLATERAL_TRANSFER, OPTIONS_PREMIUM_FEE, OPTIONS_SETTLE_PROFIT, INTERNAL_TRANSFER, AUTO_EXCHANGE, DELIVERED_SETTELMENT, COIN_SWAP_DEPOSIT, COIN_SWAP_WITHDRAW, POSITION_LIMIT_INCREASE_FEE
startTime LONG NO Timestamp in ms to get funding from INCLUSIVE.
endTime LONG NO Timestamp in ms to get funding until INCLUSIVE.
page INT NO
limit INT NO Default 100; max 1000
recvWindow LONG NO
timestamp LONG YES

Notional and Leverage Brackets (USER_DATA)

Response:

[
    {
        "symbol": "ETHUSDT",
        "notionalCoef": 1.50,  //user symbol bracket multiplier, only appears when user's symbol bracket is adjusted 
        "brackets": [
            {
                "bracket": 1,   // Notional bracket
                "initialLeverage": 75,  // Max initial leverage for this bracket
                "notionalCap": 10000,  // Cap notional of this bracket
                "notionalFloor": 0,  // Notional threshold of this bracket 
                "maintMarginRatio": 0.0065, // Maintenance ratio for this bracket
                "cum":0 // Auxiliary number for quick calculation 

            },
        ]
    }
]

OR (if symbol sent)


{
    "symbol": "ETHUSDT",
    "notionalCoef": 1.50,
    "brackets": [
        {
            "bracket": 1,
            "initialLeverage": 75,
            "notionalCap": 10000,
            "notionalFloor": 0,
            "maintMarginRatio": 0.0065,
            "cum":0
        },
    ]
}

GET /fapi/v1/leverageBracket

Weight: 1

Parameters:

Name Type Mandatory Description
symbol STRING NO
recvWindow LONG NO
timestamp LONG YES

Position ADL Quantile Estimation (USER_DATA)

Response:

[
    {
        "symbol": "ETHUSDT", 
        "adlQuantile": 
            {
                // if the positions of the symbol are crossed margined in Hedge Mode, "LONG" and "SHORT" will be returned a same quantile value, and "HEDGE" will be returned instead of "BOTH".
                "LONG": 3,  
                "SHORT": 3, 
                "HEDGE": 0   // only a sign, ignore the value
            }
        },
    {
        "symbol": "BTCUSDT", 
        "adlQuantile": 
            {
                // for positions of the symbol are in One-way Mode or isolated margined in Hedge Mode
                "LONG": 1,  // adl quantile for "LONG" position in hedge mode
                "SHORT": 2,     // adl qauntile for "SHORT" position in hedge mode
                "BOTH": 0       // adl qunatile for position in one-way mode
            }
    }
 ]

GET /fapi/v1/adlQuantile

Weight: 5

Parameters:

Name Type Mandatory Description
symbol STRING NO
recvWindow LONG NO
timestamp LONG YES

User's Force Orders (USER_DATA)

Response:

[
  {
    "orderId": 6071832819, 
    "symbol": "BTCUSDT", 
    "status": "FILLED", 
    "clientOrderId": "autoclose-1596107620040000020", 
    "price": "10871.09", 
    "avgPrice": "10913.21000", 
    "origQty": "0.001", 
    "executedQty": "0.001", 
    "cumQuote": "10.91321", 
    "timeInForce": "IOC", 
    "type": "LIMIT", 
    "reduceOnly": false, 
    "closePosition": false, 
    "side": "SELL", 
    "positionSide": "BOTH", 
    "stopPrice": "0", 
    "workingType": "CONTRACT_PRICE", 
    "origType": "LIMIT", 
    "time": 1596107620044, 
    "updateTime": 1596107620087
  }
  {
    "orderId": 6072734303, 
    "symbol": "BTCUSDT", 
    "status": "FILLED", 
    "clientOrderId": "adl_autoclose", 
    "price": "11023.14", 
    "avgPrice": "10979.82000", 
    "origQty": "0.001", 
    "executedQty": "0.001", 
    "cumQuote": "10.97982", 
    "timeInForce": "GTC", 
    "type": "LIMIT", 
    "reduceOnly": false, 
    "closePosition": false, 
    "side": "BUY", 
    "positionSide": "SHORT", 
    "stopPrice": "0", 
    "workingType": "CONTRACT_PRICE", 
    "origType": "LIMIT", 
    "time": 1596110725059, 
    "updateTime": 1596110725071
  }
]

GET /fapi/v1/forceOrders

Weight: 20 with symbol, 50 without symbol

Parameters:

Name Type Mandatory Description
symbol STRING NO
autoCloseType ENUM NO "LIQUIDATION" for liquidation orders, "ADL" for ADL orders.
startTime LONG NO
endTime LONG NO
limit INT NO Default 50; max 100.
recvWindow LONG NO
timestamp LONG YES

Futures Trading Quantitative Rules Indicators (USER_DATA)

Response:

{
    "indicators": { // indicator: quantitative rules indicators, value: user's indicators value, triggerValue: trigger indicator value threshold of quantitative rules. 
        "BTCUSDT": [
            {
                "isLocked": true,
                "plannedRecoverTime": 1545741270000,
                "indicator": "UFR",  // Unfilled Ratio (UFR)
                "value": 0.05,  // Current value
                "triggerValue": 0.995  // Trigger value
            },
            {
                "isLocked": true,
                "plannedRecoverTime": 1545741270000,
                "indicator": "IFER",  // IOC/FOK Expiration Ratio (IFER)
                "value": 0.99,  // Current value
                "triggerValue": 0.99  // Trigger value
            },
            {
                "isLocked": true,
                "plannedRecoverTime": 1545741270000,
                "indicator": "GCR",  // GTC Cancellation Ratio (GCR)
                "value": 0.99,  // Current value
                "triggerValue": 0.99  // Trigger value
            },
            {
                "isLocked": true,
                "plannedRecoverTime": 1545741270000,
                "indicator": "DR",  // Dust Ratio (DR)
                "value": 0.99,  // Current value
                "triggerValue": 0.99  // Trigger value
            }
        ],
        "ETHUSDT": [
            {
                "isLocked": true,
                "plannedRecoverTime": 1545741270000,
                "indicator": "UFR",
                "value": 0.05,
                "triggerValue": 0.995
            },
            {
                "isLocked": true,
                "plannedRecoverTime": 1545741270000,
                "indicator": "IFER",
                "value": 0.99,
                "triggerValue": 0.99
            },
            {
                "isLocked": true,
                "plannedRecoverTime": 1545741270000,
                "indicator": "GCR",
                "value": 0.99,
                "triggerValue": 0.99
            }
            {
                "isLocked": true,
                "plannedRecoverTime": 1545741270000,
                "indicator": "DR",
                "value": 0.99,
                "triggerValue": 0.99
            }
        ]
    },
    "updateTime": 1545741270000
}

Or (account violation triggered)

{
    "indicators":{
        "ACCOUNT":[
            {
                "indicator":"TMV",  //  Too many violations under multiple symbols trigger account violation
                "value":10,
                "triggerValue":1,
                "plannedRecoverTime":1644919865000,
                "isLocked":true
            }
        ]
    },
    "updateTime":1644913304748
}

GET /fapi/v1/apiTradingStatus

Weight:

Parameters:

Name Type Mandatory Description
symbol STRING NO
recvWindow LONG NO
timestamp LONG YES

Futures Account Configuration(USER_DATA)

Response:

{   
    "feeTier": 0,               // account commission tier 
    "canTrade": true,           // if can trade
    "canDeposit": true,         // if can transfer in asset
    "canWithdraw": true,        // if can transfer out asset
    "dualSidePosition": true,
    "updateTime": 0,            // reserved property, please ignore 
    "multiAssetsMargin": false,
    "tradeGroupId": -1
}

GET /fapi/v1/accountConfig

Query account configuration

Weight: 5

Parameters:

Name Type Mandatory Description
recvWindow LONG NO
timestamp LONG YES

Symbol Configuration(USER_DATA)

Response:

{   
    "feeTier": 0,               // account commission tier 
    "canTrade": true,           // if can trade
    "canDeposit": true,         // if can transfer in asset
    "canWithdraw": true,        // if can transfer out asset
    "dualSidePosition": true,
    "updateTime": 0,            // reserved property, please ignore 
    "multiAssetsMargin": false,
    "tradeGroupId": -1
}

GET /fapi/v1/symbolConfig

Get current account symbol configuration.

Weight: 5

Parameters:

Name Type Mandatory Description
symbol STRING NO
recvWindow LONG NO
timestamp LONG YES

User Commission Rate (USER_DATA)

Response:

{
    "symbol": "BTCUSDT",
    "makerCommissionRate": "0.0002",  // 0.02%
    "takerCommissionRate": "0.0004"   // 0.04%
}

GET /fapi/v1/commissionRate

Weight: 20

Parameters:

Name Type Mandatory Description
symbol STRING YES
recvWindow LONG NO
timestamp LONG YES

Query User Rate Limit (USER_DATA)

Response:

[
  {
    "rateLimitType": "ORDERS",
    "interval": "SECOND",
    "intervalNum": 10,
    "limit": 10000,
  },
  {
    "rateLimitType": "ORDERS",
    "interval": "MINUTE",
    "intervalNum": 1,
    "limit": 20000,
  }
]

GET /fapi/v1/rateLimit/order

Weight: 1

Parameters:

Name Type Mandatory Description
recvWindow LONG NO
timestamp LONG YES

Get Download Id For Futures Transaction History (USER_DATA)

Response:

{
    "avgCostTimestampOfLast30d":7241837, // Average time taken for data download in the past 30 days
    "downloadId":"546975389218332672",
}

GET /fapi/v1/income/asyn

Weight: 1500

Parameters:

Name Type Mandatory Description
startTime LONG YES Timestamp in ms
endTime LONG YES Timestamp in ms
recvWindow LONG NO
timestamp LONG YES

Response:

{
    "downloadId":"545923594199212032",
    "status":"completed",     // Enum:completed,processing
    "url":"www.binance.com",  // The link is mapped to download id
    "notified":true,          // ignore
    "expirationTimestamp":1645009771000,  // The link would expire after this timestamp
    "isExpired":null,
}

OR (Response when server is processing)

{
    "downloadId":"545923594199212032",
    "status":"processing",
    "url":"", 
    "notified":false,
    "expirationTimestamp":-1
    "isExpired":null,

}

GET /fapi/v1/income/asyn/id

Weight: 10

Parameters:

Name Type Mandatory Description
downloadId STRING YES get by download id api
recvWindow LONG NO
timestamp LONG YES

Get Download Id For Futures Order History (USER_DATA)

Response:

{
    "avgCostTimestampOfLast30d":7241837, // Average time taken for data download in the past 30 days
    "downloadId":"546975389218332672",
}

GET /fapi/v1/order/asyn

Weight: 1500

Parameters:

Name Type Mandatory Description
startTime LONG YES Timestamp in ms
endTime LONG YES Timestamp in ms
recvWindow LONG NO
timestamp LONG YES

Response:

{
    "downloadId":"545923594199212032",
    "status":"completed",     // Enum:completed,processing
    "url":"www.binance.com",  // The link is mapped to download id
    "notified":true,          // ignore
    "expirationTimestamp":1645009771000,  // The link would expire after this timestamp
    "isExpired":null,
}

OR (Response when server is processing)

{
    "downloadId":"545923594199212032",
    "status":"processing",
    "url":"", 
    "notified":false,
    "expirationTimestamp":-1
    "isExpired":null,

}

GET /fapi/v1/order/asyn/id

Weight: 10

Parameters:

Name Type Mandatory Description
downloadId STRING YES get by download id api
recvWindow LONG NO
timestamp LONG YES

Get Download Id For Futures Trade History (USER_DATA)

Response:

{
    "avgCostTimestampOfLast30d":7241837, // Average time taken for data download in the past 30 days
    "downloadId":"546975389218332672",
}

GET /fapi/v1/trade/asyn

Weight: 1500

Parameters:

Name Type Mandatory Description
startTime LONG YES Timestamp in ms
endTime LONG YES Timestamp in ms
recvWindow LONG NO
timestamp LONG YES

Response:

{
    "downloadId":"545923594199212032",
    "status":"completed",     // Enum:completed,processing
    "url":"www.binance.com",  // The link is mapped to download id
    "notified":true,          // ignore
    "expirationTimestamp":1645009771000,  // The link would expire after this timestamp
    "isExpired":null,
}

OR (Response when server is processing)

{
    "downloadId":"545923594199212032",
    "status":"processing",
    "url":"", 
    "notified":false,
    "expirationTimestamp":-1
    "isExpired":null,

}

GET /fapi/v1/trade/asyn/id

Weight: 10

Parameters:

Name Type Mandatory Description
downloadId STRING YES get by download id api
recvWindow LONG NO
timestamp LONG YES

User Data Streams

Start User Data Stream (USER_STREAM)

Response:

{
  "listenKey": "pqia91ma19a5s61cv6a81va65sdf19v8a65a1a5s61cv6a81va65sdf19v8a65a1"
}

POST /fapi/v1/listenKey

Start a new user data stream. The stream will close after 60 minutes unless a keepalive is sent. If the account has an active listenKey, that listenKey will be returned and its validity will be extended for 60 minutes. In very rare cases, this endpoint will still generate a new listenKey when the account has a valid listenKey. Please use this listenKey to reestablish the connection. We do not recommend extending the listenKey using this endpoint. Instead, we suggest using PUT /fapi/v1/listenKey to extend the listenKey.

Weight: 1

Parameters:

None

Keepalive User Data Stream (USER_STREAM)

Response:

{
    "listenKey": "3HBntNTepshgEdjIwSUIBgB9keLyOCg5qv3n6bYAtktG8ejcaW5HXz9Vx1JgIieg" //the listenkey which got extended
}

PUT /fapi/v1/listenKey

Keepalive a user data stream to prevent a time out. User data streams will close after 60 minutes. It's recommended to send a ping about every 60 minutes. If response -1125 error "This listenKey does not exist." Please use POST /fapi/v1/listenKey to recreate listenKey and use new listenKey to build connection.

Weight: 1

Parameters:

None

Close User Data Stream (USER_STREAM)

Response:

{}

DELETE /fapi/v1/listenKey

Close out a user data stream.

Weight: 1

Parameters:

None

Event: User Data Stream Expired

Payload:

{
    "stream": "OfYGbUzi3PraNagEkdKuFwUHn48brFsItTdsuiIXrucEvD0rhRXZ7I6URWfE8YE8",
    "data": {
        "e": "listenKeyExpired",   // event type
        "E": "1699596037418",      // event time
        "listenKey": "OfYGbUzi3PraNagEkdKuFwUHn48brFsItTdsuiIXrucEvD0rhRXZ7I6URWfE8YE8"
    }
}

When the listenKey used for the user data stream turns expired, this event will be pushed.

Notice:

Websocket User Data Request(To be deprecated)

Request Form

Response

{
    "result"[
        {
            "req":"<listenKey>@account",   // request name 1
            "res":            // response to the request name 1
                ...
        },
        {
            "req":"<listenKey>@balance",   // request name 2, if existing
            "res":            // response to the request name 2, if existing
                ...
        }
    ]
    "id": 12     // request ID
}

Event: Margin Call

Payload:

{
    "e":"MARGIN_CALL",      // Event Type
    "E":1587727187525,      // Event Time
    "cw":"3.16812045",      // Cross Wallet Balance. Only pushed with crossed position margin call
    "p":[                   // Position(s) of Margin Call
      {
        "s":"ETHUSDT",      // Symbol
        "ps":"LONG",        // Position Side
        "pa":"1.327",       // Position Amount
        "mt":"CROSSED",     // Margin Type
        "iw":"0",           // Isolated Wallet (if isolated position)
        "mp":"187.17127",   // Mark Price
        "up":"-1.166074",   // Unrealized PnL
        "mm":"1.614445"     // Maintenance Margin Required
      }
    ]
}  

Event: Balance and Position Update

Payload:

{
  "e": "ACCOUNT_UPDATE",                // Event Type
  "E": 1564745798939,                   // Event Time
  "T": 1564745798938 ,                  // Transaction
  "a":                                  // Update Data
    {
      "m":"ORDER",                      // Event reason type
      "B":[                             // Balances
        {
          "a":"USDT",                   // Asset
          "wb":"122624.12345678",       // Wallet Balance
          "cw":"100.12345678",          // Cross Wallet Balance
          "bc":"50.12345678"            // Balance Change except PnL and Commission
        },
        {
          "a":"BUSD",           
          "wb":"1.00000000",
          "cw":"0.00000000",         
          "bc":"-49.12345678"
        }
      ],
      "P":[
        {
          "s":"BTCUSDT",            // Symbol
          "pa":"0",                 // Position Amount
          "ep":"0.00000",           // Entry Price
          "bep":"0",                // breakeven price
          "cr":"200",               // (Pre-fee) Accumulated Realized
          "up":"0",                 // Unrealized PnL
          "mt":"isolated",          // Margin Type
          "iw":"0.00000000",        // Isolated Wallet (if isolated position)
          "ps":"BOTH"               // Position Side
        }
        {
          "s":"BTCUSDT",
          "pa":"20",
          "ep":"6563.66500",
          "bep":"6563.6",               
          "cr":"0",
          "up":"2850.21200",
          "mt":"isolated",
          "iw":"13200.70726908",
          "ps":"LONG"
        },
        {
          "s":"BTCUSDT",
          "pa":"-10",
          "ep":"6563.86000",
          "bep":"6563.6",               
          "cr":"-45.04000000",
          "up":"-1423.15600",
          "mt":"isolated",
          "iw":"6570.42511771",
          "ps":"SHORT"
        }
      ]
    }
}

Event type is ACCOUNT_UPDATE.

Event: Order Update

Payload:

{
  "e":"ORDER_TRADE_UPDATE",     // Event Type
  "E":1568879465651,            // Event Time
  "T":1568879465650,            // Transaction Time
  "o":{                             
    "s":"BTCUSDT",              // Symbol
    "c":"TEST",                 // Client Order Id
      // special client order id:
      // starts with "autoclose-": liquidation order
      // "adl_autoclose": ADL auto close order
      // "settlement_autoclose-": settlement order for delisting or delivery
    "S":"SELL",                 // Side
    "o":"TRAILING_STOP_MARKET", // Order Type
    "f":"GTC",                  // Time in Force
    "q":"0.001",                // Original Quantity
    "p":"0",                    // Original Price
    "ap":"0",                   // Average Price
    "sp":"7103.04",             // Stop Price. Please ignore with TRAILING_STOP_MARKET order
    "x":"NEW",                  // Execution Type
    "X":"NEW",                  // Order Status
    "i":8886774,                // Order Id
    "l":"0",                    // Order Last Filled Quantity
    "z":"0",                    // Order Filled Accumulated Quantity
    "L":"0",                    // Last Filled Price
    "N":"USDT",                 // Commission Asset, will not push if no commission
    "n":"0",                    // Commission, will not push if no commission
    "T":1568879465650,          // Order Trade Time
    "t":0,                      // Trade Id
    "b":"0",                    // Bids Notional
    "a":"9.91",                 // Ask Notional
    "m":false,                  // Is this trade the maker side?
    "R":false,                  // Is this reduce only
    "wt":"CONTRACT_PRICE",      // Stop Price Working Type
    "ot":"TRAILING_STOP_MARKET",// Original Order Type
    "ps":"LONG",                // Position Side
    "cp":false,                 // If Close-All, pushed with conditional order
    "AP":"7476.89",             // Activation Price, only puhed with TRAILING_STOP_MARKET order
    "cr":"5.0",                 // Callback Rate, only puhed with TRAILING_STOP_MARKET order
    "pP": false,                // If price protection is turned on
    "si": 0,                    // ignore
    "ss": 0,                    // ignore
    "rp":"0",                   // Realized Profit of the trade
    "V":"EXPIRE_TAKER",         // STP mode
    "pm":"OPPONENT",            // Price match mode
    "gtd":0                     // TIF GTD order auto cancel time
  }
}

When new order created, order status changed will push such event. event type is ORDER_TRADE_UPDATE.

Side

Order Type

Execution Type

Order Status

Time in force

Working Type

Liquidation and ADL:

Event: Account Configuration Update previous Leverage Update

Payload:

{
    "e":"ACCOUNT_CONFIG_UPDATE",       // Event Type
    "E":1611646737479,                 // Event Time
    "T":1611646737476,                 // Transaction Time
    "ac":{                              
    "s":"BTCUSDT",                     // symbol
    "l":25                             // leverage

    }
}  

Or

{
    "e":"ACCOUNT_CONFIG_UPDATE",       // Event Type
    "E":1611646737479,                 // Event Time
    "T":1611646737476,                 // Transaction Time
    "ai":{                             // User's Account Configuration
    "j":true                           // Multi-Assets Mode
    }
}  

When the account configuration is changed, the event type will be pushed as ACCOUNT_CONFIG_UPDATE

When the leverage of a trade pair changes, the payload will contain the object ac to represent the account configuration of the trade pair, where s represents the specific trade pair and l represents the leverage

When the user Multi-Assets margin mode changes the payload will contain the object ai representing the user account configuration, where j represents the user Multi-Assets margin mode

Event: STRATEGY_UPDATE

Payload:

{
    "e": "STRATEGY_UPDATE", // Event Type
    "T": 1669261797627, // Transaction Time
    "E": 1669261797628, // Event Time
    "su": {
            "si": 176054594, // Strategy ID
            "st": "GRID", // Strategy Type
            "ss": "NEW", // Strategy Status
            "s": "BTCUSDT", // Symbol
            "ut": 1669261797627, // Update Time
            "c": 8007 // opCode
        }
}

STRATEGY_UPDATE update when a strategy is created/cancelled/expired, ...etc.

Strategy Status

opCode

Event: GRID_UPDATE

Payload:

{
    "e": "GRID_UPDATE", // Event Type
    "T": 1669262908216, // Transaction Time
    "E": 1669262908218, // Event Time
    "gu": { 
            "si": 176057039, // Strategy ID
            "st": "GRID", // Strategy Type
            "ss": "WORKING", // Strategy Status
            "s": "BTCUSDT", // Symbol
            "r": "-0.00300716", // Realized PNL
            "up": "16720", // Unmatched Average Price
            "uq": "-0.001", // Unmatched Qty
            "uf": "-0.00300716", // Unmatched Fee
            "mp": "0.0", // Matched PNL
            "ut": 1669262908197 // Update Time
        }
}

GRID_UPDATE update when a sub order of a grid is filled or partially filled.

Strategy Status

Event: Conditional_Order_Trigger_Reject

Payload:

{
    "e":"CONDITIONAL_ORDER_TRIGGER_REJECT",      // Event Type
    "E":1685517224945,      // Event Time
    "T":1685517224955,      // me message send Time
    "or":{
      "s":"ETHUSDT",      // Symbol   
      "i":155618472834,      // orderId
      "r":"Due to the order could not be filled immediately, the FOK order has been rejected. The order will not be recorded in the order history",      // reject reason
     }
}  

CONDITIONAL_ORDER_TRIGGER_REJECT update when a triggered TP/SL order got rejected.

Portfolio Margin Pro Endpoints

The Binance Portfolio Margin Pro Program is a cross-asset margin program supporting consolidated margin balance across trading products with over 200+ effective crypto collaterals. It is designed for professional traders, market makers, and institutional users looking to actively trade & hedge cross-asset and optimize risk-management in a consolidated setup.

FAQ: Portfolio Margin Pro Program

Only Portfolio Margin Pro Account is accessible to these endpoints. To enroll, kindly refer to: How to Enroll into the Binance Portfolio Margin Pro Program

Portfolio Margin Pro Account Information (USER_DATA)

Response:

{
    "maxWithdrawAmountUSD": "1627523.32459208",   // Portfolio Margin Pro maximum virtual amount for transfer out in USD
    "asset": "BTC",            // asset name
    "maxWithdrawAmount": "27.43689636",        // Please ignore
}

GET /fapi/v1/pmAccountInfo

Get Portfolio Margin Pro current account information.

Weight(IP): 5

Parameters:

Name Type Mandatory Description
asset STRING YES
recvWindow LONG NO
timestamp LONG YES

Portfolio Margin Pro User Data Stream

Event: riskLevelChange

Payload:

{
    "e":"riskLevelChange",      // Event Type
    "E":1587727187525,      // Event Time
    "u":"1.99999999",      // uniMMR level
    "s":"MARGIN_CALL",        //MARGIN_CALL, SUPPLY_MARGIN, REDUCE_ONLY, FORCE_LIQUIDATION 
    "eq":"30.23416728",      // account equity in USD value
    "ae":"30.23416728",      // actual equity without collateral rate in USD value
    "m":"15.11708371"      // total maintenance margin in USD value 
}  

When the user's position risk ratio changes, this stream will be pushed. This message is only used as risk guidance information and is not recommended for investment strategies. RISK_LEVEL_CHANGE includes following types:MARGIN_CALL, SUPPLY_MARGIN, REDUCE_ONLY, FORCE_LIQUIDATION In the case of a highly volatile market, there may be the possibility that the user's position has been liquidated at the same time when this stream is pushed out.

WebSocket API

New Order (TRADE)

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"
    }
}

Response

{
    "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
        }
    ]
}

Send in a new order.

Weight: 0

Method: order.place

Parameters

Name Type Mandatory  Description
symbol STRING YES
side ENUM YES
positionSide ENUM NO Default BOTH for One-way Mode; LONG or SHORT for Hedge Mode. It must be sent in Hedge Mode.
type ENUM YES
timeInForce ENUM NO
quantity DECIMAL NO Cannot be sent with closePosition=true (Close-All)
reduceOnly STRING NO true or false. default false. Cannot be sent in Hedge Mode; cannot be sent with closePosition=true
price DECIMAL NO
newClientOrderId STRING NO A unique id among open orders. Automatically generated if not sent. Can only be string following the rule: ^[\.A-Z\:/a-z0-9_-]{1,36}$
stopPrice DECIMAL NO Used with STOP/STOP_MARKET or TAKE_PROFIT/TAKE_PROFIT_MARKET orders.
closePosition STRING NO true, false;Close-All,used with STOP_MARKET or TAKE_PROFIT_MARKET.
activationPrice DECIMAL NO Used with TRAILING_STOP_MARKET orders, default as the latest price(supporting different workingType)
callbackRate DECIMAL NO Used with TRAILING_STOP_MARKET orders, min 0.1, max 5 where 1 for 1%
workingType ENUM NO stopPrice triggered by: "MARK_PRICE", "CONTRACT_PRICE". Default "CONTRACT_PRICE"
priceProtect ENUM NO "TRUE" or "FALSE", default "FALSE". Used with STOP/STOP_MARKET or TAKE_PROFIT/TAKE_PROFIT_MARKET orders.
newOrderRespType ENUM NO ACK,RESULT, default ACK
priceMatch ENUM NO only available for LIMIT/STOP/TAKE_PROFIT order; can be set to OPPONENT/ OPPONENT_5/ OPPONENT_10/ OPPONENT_20: /QUEUE/ QUEUE_5/ QUEUE_10/ QUEUE_20; Can't be passed together with price
selfTradePreventionMode ENUM NO NONE/ EXPIRE_TAKER/ EXPIRE_MAKER/ EXPIRE_BOTH; default NONE
goodTillDate INT NO Order cancel time for timeInForce GTD, mandatory when timeInforce set to GTD; order the timestamp only retains second-level precision, ms part will be ignored; The goodTillDate timestamp must be greater than the current time plus 600 seconds and smaller than 253402300799000
recvWindow INT NO
timestamp INT YES

Additional mandatory parameters based on type:

Type Additional mandatory parameters
LIMIT timeInForce, quantity, price
MARKET quantity
STOP/TAKE_PROFIT quantity, price, stopPrice
STOP_MARKET/TAKE_PROFIT_MARKET stopPrice
TRAILING_STOP_MARKET callbackRate

 

Cancel order (TRADE)

Request

{
    "id": "5633b6a2-90a9-4192-83e7-925c90b6a2fd",
    "method": "order.cancel", 
    "params": { 
        "apiKey": "HsOehcfih8ZRxnhjp2XjGXhsOBd6msAhKz9joQaWwZ7arcJTlD2hGOGQj1lGdTjR", 
        "orderId": 283194212, 
        "symbol": "BTCUSDT", 
        "timestamp": 1703439070722, 
        "signature": "b09c49815b4e3f1f6098cd9fbe26a933a9af79803deaaaae03c29f719c08a8a8" 
    }
}

Response

{
  "id": "5633b6a2-90a9-4192-83e7-925c90b6a2fd",
  "status": 200,
  "result": {
    "clientOrderId": "myOrder1",
    "cumQty": "0",
    "cumQuote": "0",
    "executedQty": "0",
    "orderId": 283194212,
    "origQty": "11",
    "origType": "TRAILING_STOP_MARKET",
    "price": "0",
    "reduceOnly": false,
    "side": "BUY",
    "positionSide": "SHORT",
    "status": "CANCELED",
    "stopPrice": "9300",                // please ignore when order type is TRAILING_STOP_MARKET
    "closePosition": false,   // if Close-All
    "symbol": "BTCUSDT",
    "timeInForce": "GTC",
    "type": "TRAILING_STOP_MARKET",
    "activatePrice": "9020",            // activation price, only return with TRAILING_STOP_MARKET order
    "priceRate": "0.3",                 // callback rate, only return with TRAILING_STOP_MARKET order
    "updateTime": 1571110484038,
    "workingType": "CONTRACT_PRICE",
    "priceProtect": false,            // if conditional order trigger is protected  
    "priceMatch": "NONE",              //price match mode
    "selfTradePreventionMode": "NONE", //self trading prevention mode
    "goodTillDate": 0                  //order pre-set auto cancel time for TIF GTD order
  },
  "rateLimits": [
    {
      "rateLimitType": "REQUEST_WEIGHT",
      "interval": "MINUTE",
      "intervalNum": 1,
      "limit": 2400,
      "count": 1
    }
  ]
}

Cancel an active order.

Weight: 1

Method: order.cancel

Parameters

Name Type Mandatory  Description
symbol STRING YES
orderId INT NO
origClientOrderId STRING NO
recvWindow INT NO
timestamp INT YES

Modify Order (TRADE)

Request

{
    "id": "c8c271ba-de70-479e-870c-e64951c753d9",
    "method": "order.modify",
    "params": {
        "apiKey": "HMOchcfiT9ZRZnhjp2XjGXhsOBd6msAhKz9joQaWwZ7arcJTlD2hGPHQj1lGdTjR",
        "orderId": 328971409,
        "origType": "LIMIT",
        "positionSide": "SHORT",
        "price": "43769.1",
        "priceMatch": "NONE",
        "quantity": "0.11",
        "side": "SELL",
        "symbol": "BTCUSDT",
        "timestamp": 1703426755754,
        "signature": "d30c9f0736a307f5a9988d4a40b688662d18324b17367d51421da5484e835923"
    }
}

Response

{
    "id": "c8c271ba-de70-479e-870c-e64951c753d9",
    "status": 200,
    "result": {
        "orderId": 328971409,
        "symbol": "BTCUSDT",
        "status": "NEW",
        "clientOrderId": "xGHfltUMExx0TbQstQQfRX",
        "price": "43769.10",
        "avgPrice": "0.00",
        "origQty": "0.110",
        "executedQty": "0.000",
        "cumQty": "0.000",
        "cumQuote": "0.00000",
        "timeInForce": "GTC",
        "type": "LIMIT",
        "reduceOnly": false,
        "closePosition": false,
        "side": "SELL",
        "positionSide": "SHORT",
        "stopPrice": "0.00",
        "workingType": "CONTRACT_PRICE",
        "priceProtect": false,
        "origType": "LIMIT",
        "priceMatch": "NONE",
        "selfTradePreventionMode": "NONE",
        "goodTillDate": 0,
        "updateTime": 1703426756190
    },
    "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
        }
    ]
}

Order modify function, currently only LIMIT order modification is supported, modified orders will be reordered in the match queue

Weight: 1 on 10s order rate limit(X-MBX-ORDER-COUNT-10S); 1 on 1min order rate limit(X-MBX-ORDER-COUNT-1M); 1 on IP rate limit(x-mbx-used-weight-1m)

Method: order.modify

Parameters

Name Type Mandatory  Description
orderId INT NO
origClientOrderId STRING NO
symbol STRING YES
side ENUM YES SELL, BUY; side needs to be same as origin order`
quantity DECIMAL YES Order quantity, cannot be sent with closePosition=true
price DECIMAL YES
priceMatch ENUM NO only available for LIMIT,STOP,TAKE_PROFIT order; Can be set to OPPONENT/ OPPONENT_5/ OPPONENT_10/ OPPONENT_20/QUEUE/ QUEUE_5/ QUEUE_10/ QUEUE_20;can't be passed price together with price
recvWindow INT NO
timestamp INT YES

Query Order (USER_DATA)

Request

{
    "id": "0ce5d070-a5e5-4ff2-b57f-1556741a4204",
    "method": "order.status",
    "params": {
        "apiKey": "HMOchcfii9ZRZnhjp2XjGXhsOBd6msAhKz9joQaWwZ7arcJTlD2hGPHQj1lGdTjR",
        "orderId": 328999071,
        "symbol": "BTCUSDT",
        "timestamp": 1703441060152,
        "signature": "ba48184fc38a71d03d2b5435bd67c1206e3191e989fe99bda1bc643a880dfdbf"
    }
}

Response

{
    "id": "0ce5d070-a5e5-4ff2-b57f-1556741a4204",
    "status": 200,
    "result": {
        "orderId": 328999071,
        "symbol": "BTCUSDT",
        "status": "NEW",
        "clientOrderId": "bK2CASGXToGAKVsePruSCs",
        "price": "43634.50",
        "avgPrice": "0.00",
        "origQty": "0.010",
        "executedQty": "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,
        "time": 1703441059890,
        "updateTime": 1703441059890
    },
    "rateLimits": [
        {
            "rateLimitType": "REQUEST_WEIGHT",
            "interval": "MINUTE",
            "intervalNum": 1,
            "limit": 2400,
            "count": 6
        }
    ]
}

Check an order's status.

Weight: 1

Method: order.status

Parameters

Name Type Mandatory  Description
symbol STRING YES
orderId INT NO
origClientOrderId STRING NO
recvWindow INT NO
timestamp INT YES

  Notes:

Account information V2(USER_DATA)

Request

{
    "id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
    "method": "v2/account.status",
    "params": {
        "apiKey": "xTaDyrmvA9XT2oBHHjy39zyPzKCvMdtH3b9q4xadkAg2dNSJXQGCxzui26L823W2",
        "timestamp": 1702620814781,
        "signature": "6bb98ef84170c70ba3d01f44261bfdf50fef374e551e590de22b5c3b729b1d8c"
    }
}

Response

Single Asset Mode

{
  "id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
  "status": 200,
  "result": {   
    "totalInitialMargin": "0.00000000",            // total initial margin required with current mark price (useless with isolated positions), only for USDT asset
    "totalMaintMargin": "0.00000000",              // total maintenance margin required, only for USDT asset
    "totalWalletBalance": "103.12345678",           // total wallet balance, only for USDT asset
    "totalUnrealizedProfit": "0.00000000",         // total unrealized profit, only for USDT asset
    "totalMarginBalance": "103.12345678",           // total margin balance, only for USDT asset
    "totalPositionInitialMargin": "0.00000000",    // initial margin required for positions with current mark price, only for USDT asset
    "totalOpenOrderInitialMargin": "0.00000000",   // initial margin required for open orders with current mark price, only for USDT asset
    "totalCrossWalletBalance": "103.12345678",      // crossed wallet balance, only for USDT asset
    "totalCrossUnPnl": "0.00000000",               // unrealized profit of crossed positions, only for USDT asset
    "availableBalance": "103.12345678",             // available balance, only for USDT asset
    "maxWithdrawAmount": "103.12345678"             // maximum amount for transfer out, only for USDT asset
    "assets": [ // For assets that are quote assets, USDT/USDC/BTC
        {
            "asset": "USDT",                        // asset name
            "walletBalance": "23.72469206",         // wallet balance
            "unrealizedProfit": "0.00000000",       // unrealized profit
            "marginBalance": "23.72469206",         // margin balance
            "maintMargin": "0.00000000",            // maintenance margin required
            "initialMargin": "0.00000000",          // total initial margin required with current mark price 
            "positionInitialMargin": "0.00000000",  // initial margin required for positions with current mark price
            "openOrderInitialMargin": "0.00000000", // initial margin required for open orders with current mark price
            "crossWalletBalance": "23.72469206",    // crossed wallet balance
            "crossUnPnl": "0.00000000"              // unrealized profit of crossed positions
            "availableBalance": "23.72469206",      // available balance
            "maxWithdrawAmount": "23.72469206",     // maximum amount for transfer out
            "updateTime": 1625474304765             // last update time 
        },   
        {
            "asset": "USDC",                        // asset name
            "walletBalance": "103.12345678",         // wallet balance
            "unrealizedProfit": "0.00000000",       // unrealized profit
            "marginBalance": "103.12345678",         // margin balance
            "maintMargin": "0.00000000",            // maintenance margin required
            "initialMargin": "0.00000000",          // total initial margin required with current mark price 
            "positionInitialMargin": "0.00000000",  // initial margin required for positions with current mark price
            "openOrderInitialMargin": "0.00000000", // initial margin required for open orders with current mark price
            "crossWalletBalance": "103.12345678",    // crossed wallet balance
            "crossUnPnl": "0.00000000"              // unrealized profit of crossed positions
            "availableBalance": "126.72469206",      // available balance
            "maxWithdrawAmount": "103.12345678",     // maximum amount for transfer out
            "updateTime": 1625474304765             // last update time 
        },    
      ],
    "positions": [  // positions of all symbols user had position/ open orders are returned
                    // only "BOTH" positions will be returned with One-way mode
                    // only "LONG" and "SHORT" positions will be returned with Hedge mode
          {
             "symbol": "BTCUSDT",   
             "positionSide": "BOTH",            // position side 
             "positionAmt": "1.000",  
             "unrealizedProfit": "0.00000000",  // unrealized profit      
             "isolatedMargin": "0.00000000",    
             "notional": "0",
             "isolatedWallet": "0",
             "initialMargin": "0",              // initial margin required with current mark price 
             "maintMargin": "0",                // maintenance margin required
             "updateTime": 0
          } 
    ]
  },
  "rateLimits": [
    {
      "rateLimitType": "REQUEST_WEIGHT",
      "interval": "MINUTE",
      "intervalNum": 1,
      "limit": 2400,
      "count": 20
    }
  ]
}

Multi-Asset Mode javascript { "id": "605a6d20-6588-4cb9-afa0-b0ab087507ba", "status": 200, "result": { "totalInitialMargin": "0.00000000", // the sum of USD value of all cross positions/open order initial margin "totalMaintMargin": "0.00000000", // the sum of USD value of all cross positions maintenance margin "totalWalletBalance": "126.72469206", // total wallet balance in USD "totalUnrealizedProfit": "0.00000000", // total unrealized profit in USD "totalMarginBalance": "126.72469206", // total margin balance in USD "totalPositionInitialMargin": "0.00000000", // the sum of USD value of all cross positions initial margin "totalOpenOrderInitialMargin": "0.00000000", // initial margin required for open orders with current mark price in USD "totalCrossWalletBalance": "126.72469206", // crossed wallet balance in USD "totalCrossUnPnl": "0.00000000", // unrealized profit of crossed positions in USD "availableBalance": "126.72469206", // available balance in USD "maxWithdrawAmount": "126.72469206" // maximum virtual amount for transfer out in USD "assets": [ { "asset": "USDT", // asset name "walletBalance": "23.72469206", // wallet balance "unrealizedProfit": "0.00000000", // unrealized profit "marginBalance": "23.72469206", // margin balance "maintMargin": "0.00000000", // maintenance margin required "initialMargin": "0.00000000", // total initial margin required with current mark price "positionInitialMargin": "0.00000000", //initial margin required for positions with current mark price "openOrderInitialMargin": "0.00000000", // initial margin required for open orders with current mark price "crossWalletBalance": "23.72469206", // crossed wallet balance "crossUnPnl": "0.00000000" // unrealized profit of crossed positions "availableBalance": "126.72469206", // available balance "maxWithdrawAmount": "23.72469206", // maximum amount for transfer out "marginAvailable": true, // whether the asset can be used as margin in Multi-Assets mode "updateTime": 1625474304765 // last update time }, { "asset": "BUSD", // asset name "walletBalance": "103.12345678", // wallet balance "unrealizedProfit": "0.00000000", // unrealized profit "marginBalance": "103.12345678", // margin balance "maintMargin": "0.00000000", // maintenance margin required "initialMargin": "0.00000000", // total initial margin required with current mark price "positionInitialMargin": "0.00000000", //initial margin required for positions with current mark price "openOrderInitialMargin": "0.00000000", // initial margin required for open orders with current mark price "crossWalletBalance": "103.12345678", // crossed wallet balance "crossUnPnl": "0.00000000" // unrealized profit of crossed positions "availableBalance": "126.72469206", // available balance "maxWithdrawAmount": "103.12345678", // maximum amount for transfer out "marginAvailable": true, // whether the asset can be used as margin in Multi-Assets mode "updateTime": 1625474304765 // last update time } ], "positions": [ // positions of all symbols user had position are returned // only "BOTH" positions will be returned with One-way mode // only "LONG" and "SHORT" positions will be returned with Hedge mode { "symbol": "BTCUSDT", "positionSide": "BOTH", // position side "positionAmt": "1.000", "unrealizedProfit": "0.00000000", // unrealized profit "isolatedMargin": "0.00000000", "notional": "0", "isolatedWallet": "0", "initialMargin": "0", // initial margin required with current mark price "maintMargin": "0", // maintenance margin required "updateTime": 0 } ] }, "rateLimits": [ { "rateLimitType": "REQUEST_WEIGHT", "interval": "MINUTE", "intervalNum": 1, "limit": 2400, "count": 20 } ] }

Get current account information. User in single-asset/ multi-assets mode will see different value, see comments in response section for detail.

Weight: 5

Method: v2/account.status

Parameters

Name Type Mandatory  Description
recvWindow INT NO
timestamp INT YES

Account information (USER_DATA)

Request

{
    "id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
    "method": "account.status",
    "params": {
        "apiKey": "xTaDyrmvA9XT2oBHHjy39zyPzKCvMdtH3b9q4xadkAg2dNSJXQGCxzui26L823W2",
        "timestamp": 1702620814781,
        "signature": "6bb98ef84170c70ba3d01f44261bfdf50fef374e551e590de22b5c3b729b1d8c"
    }
}

Response

Single Asset Mode

{
  "id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
  "status": 200,
  "result": {
    "feeTier": 0,       // account commission tier 
    "canTrade": true,   // if can trade
    "canDeposit": true,     // if can transfer in asset
    "canWithdraw": true,    // if can transfer out asset
    "updateTime": 0,        // reserved property, please ignore 
    "multiAssetsMargin": false,
    "tradeGroupId": -1,
    "totalInitialMargin": "0.00000000",    // total initial margin required with current mark price (useless with isolated positions), only for USDT asset
    "totalMaintMargin": "0.00000000",     // total maintenance margin required, only for USDT asset
    "totalWalletBalance": "23.72469206",     // total wallet balance, only for USDT asset
    "totalUnrealizedProfit": "0.00000000",   // total unrealized profit, only for USDT asset
    "totalMarginBalance": "23.72469206",     // total margin balance, only for USDT asset
    "totalPositionInitialMargin": "0.00000000",    // initial margin required for positions with current mark price, only for USDT asset
    "totalOpenOrderInitialMargin": "0.00000000",   // initial margin required for open orders with current mark price, only for USDT asset
    "totalCrossWalletBalance": "23.72469206",      // crossed wallet balance, only for USDT asset
    "totalCrossUnPnl": "0.00000000",      // unrealized profit of crossed positions, only for USDT asset
    "availableBalance": "23.72469206",       // available balance, only for USDT asset
    "maxWithdrawAmount": "23.72469206"     // maximum amount for transfer out, only for USDT asset
    "assets": [
        {
            "asset": "USDT",            // asset name
            "walletBalance": "23.72469206",      // wallet balance
            "unrealizedProfit": "0.00000000",    // unrealized profit
            "marginBalance": "23.72469206",      // margin balance
            "maintMargin": "0.00000000",        // maintenance margin required
            "initialMargin": "0.00000000",    // total initial margin required with current mark price 
            "positionInitialMargin": "0.00000000",    //initial margin required for positions with current mark price
            "openOrderInitialMargin": "0.00000000",   // initial margin required for open orders with current mark price
            "crossWalletBalance": "23.72469206",      // crossed wallet balance
            "crossUnPnl": "0.00000000"       // unrealized profit of crossed positions
            "availableBalance": "23.72469206",       // available balance
            "maxWithdrawAmount": "23.72469206",     // maximum amount for transfer out
            "marginAvailable": true,    // whether the asset can be used as margin in Multi-Assets mode
            "updateTime": 1625474304765 // last update time 
        },
        {
            "asset": "BUSD",            // asset name
            "walletBalance": "103.12345678",      // wallet balance
            "unrealizedProfit": "0.00000000",    // unrealized profit
            "marginBalance": "103.12345678",      // margin balance
            "maintMargin": "0.00000000",        // maintenance margin required
            "initialMargin": "0.00000000",    // total initial margin required with current mark price 
            "positionInitialMargin": "0.00000000",    //initial margin required for positions with current mark price
            "openOrderInitialMargin": "0.00000000",   // initial margin required for open orders with current mark price
            "crossWalletBalance": "103.12345678",      // crossed wallet balance
            "crossUnPnl": "0.00000000"       // unrealized profit of crossed positions
            "availableBalance": "103.12345678",       // available balance
            "maxWithdrawAmount": "103.12345678",     // maximum amount for transfer out
            "marginAvailable": true,    // whether the asset can be used as margin in Multi-Assets mode
            "updateTime": 1625474304765 // last update time
        }
    ],
    "positions": [  // positions of all symbols in the market are returned
        // only "BOTH" positions will be returned with One-way mode
        // only "LONG" and "SHORT" positions will be returned with Hedge mode
        {
            "symbol": "BTCUSDT",    // symbol name
            "initialMargin": "0",   // initial margin required with current mark price 
            "maintMargin": "0",     // maintenance margin required
            "unrealizedProfit": "0.00000000",  // unrealized profit
            "positionInitialMargin": "0",      // initial margin required for positions with current mark price
            "openOrderInitialMargin": "0",     // initial margin required for open orders with current mark price
            "leverage": "100",      // current initial leverage
            "isolated": true,       // if the position is isolated
            "entryPrice": "0.00000",    // average entry price
            "maxNotional": "250000",    // maximum available notional with current leverage
            "bidNotional": "0",  // bids notional, ignore
            "askNotional": "0",  // ask notional, ignore
            "positionSide": "BOTH",     // position side
            "positionAmt": "0",         // position amount
            "updateTime": 0           // last update time
        }
    ]
  },
  "rateLimits": [
    {
      "rateLimitType": "REQUEST_WEIGHT",
      "interval": "MINUTE",
      "intervalNum": 1,
      "limit": 2400,
      "count": 20
    }
  ]
}

Multi-Asset Mode

{
  "id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
  "status": 200,
  "result": {
      "feeTier": 0,       // account commission tier 
      "canTrade": true,   // if can trade
      "canDeposit": true,     // if can transfer in asset
      "canWithdraw": true,    // if can transfer out asset
      "updateTime": 0,        // reserved property, please ignore 
      "multiAssetsMargin": true,
      "tradeGroupId": -1,
      "totalInitialMargin": "0.00000000",    // the sum of USD value of all cross positions/open order initial margin
      "totalMaintMargin": "0.00000000",     // the sum of USD value of all cross positions maintenance margin
      "totalWalletBalance": "126.72469206",     // total wallet balance in USD
      "totalUnrealizedProfit": "0.00000000",   // total unrealized profit in USD
      "totalMarginBalance": "126.72469206",     // total margin balance in USD
      "totalPositionInitialMargin": "0.00000000",    // the sum of USD value of all cross positions initial margin
      "totalOpenOrderInitialMargin": "0.00000000",   // initial margin required for open orders with current mark price in USD
      "totalCrossWalletBalance": "126.72469206",      // crossed wallet balance in USD
      "totalCrossUnPnl": "0.00000000",      // unrealized profit of crossed positions in USD
      "availableBalance": "126.72469206",       // available balance in USD
      "maxWithdrawAmount": "126.72469206"     // maximum virtual amount for transfer out in USD
      "assets": [
          {
              "asset": "USDT",            // asset name
              "walletBalance": "23.72469206",      // wallet balance
              "unrealizedProfit": "0.00000000",    // unrealized profit
              "marginBalance": "23.72469206",      // margin balance
              "maintMargin": "0.00000000",        // maintenance margin required
              "initialMargin": "0.00000000",    // total initial margin required with current mark price 
              "positionInitialMargin": "0.00000000",    //initial margin required for positions with current mark price
              "openOrderInitialMargin": "0.00000000",   // initial margin required for open orders with current mark price
              "crossWalletBalance": "23.72469206",      // crossed wallet balance
              "crossUnPnl": "0.00000000"       // unrealized profit of crossed positions
              "availableBalance": "126.72469206",       // available balance
              "maxWithdrawAmount": "23.72469206",     // maximum amount for transfer out
              "marginAvailable": true,    // whether the asset can be used as margin in Multi-Assets mode
              "updateTime": 1625474304765 // last update time 
          },
          {
              "asset": "BUSD",            // asset name
              "walletBalance": "103.12345678",      // wallet balance
              "unrealizedProfit": "0.00000000",    // unrealized profit
              "marginBalance": "103.12345678",      // margin balance
              "maintMargin": "0.00000000",        // maintenance margin required
              "initialMargin": "0.00000000",    // total initial margin required with current mark price 
              "positionInitialMargin": "0.00000000",    //initial margin required for positions with current mark price
              "openOrderInitialMargin": "0.00000000",   // initial margin required for open orders with current mark price
              "crossWalletBalance": "103.12345678",      // crossed wallet balance
              "crossUnPnl": "0.00000000"       // unrealized profit of crossed positions
              "availableBalance": "126.72469206",       // available balance
              "maxWithdrawAmount": "103.12345678",     // maximum amount for transfer out
              "marginAvailable": true,    // whether the asset can be used as margin in Multi-Assets mode
              "updateTime": 1625474304765 // last update time
          }
      ],
      "positions": [  // positions of all symbols in the market are returned
          // only "BOTH" positions will be returned with One-way mode
          // only "LONG" and "SHORT" positions will be returned with Hedge mode
          {
              "symbol": "BTCUSDT",    // symbol name
              "initialMargin": "0",   // initial margin required with current mark price 
              "maintMargin": "0",     // maintenance margin required
              "unrealizedProfit": "0.00000000",  // unrealized profit
              "positionInitialMargin": "0",      // initial margin required for positions with current mark price
              "openOrderInitialMargin": "0",     // initial margin required for open orders with current mark price
              "leverage": "100",      // current initial leverage
              "isolated": true,       // if the position is isolated
              "entryPrice": "0.00000",    // average entry price
              "breakEvenPrice": "0.0",    // average entry price
              "maxNotional": "250000",    // maximum available notional with current leverage
              "bidNotional": "0",  // bids notional, ignore
              "askNotional": "0",  // ask notional, ignore
              "positionSide": "BOTH",     // position side
              "positionAmt": "0",         // position amount
              "updateTime": 0           // last update time
          }
      ]
  },
  "rateLimits": [
    {
      "rateLimitType": "REQUEST_WEIGHT",
      "interval": "MINUTE",
      "intervalNum": 1,
      "limit": 2400,
      "count": 20
    }
  ]
}

Get current account information. User in single-asset/ multi-assets mode will see different value, see comments in response section for detail.

Weight: 5

Method: account.status

Parameters

Name Type Mandatory  Description
recvWindow INT NO
timestamp INT YES

Futures Account Balance V2(USER_DATA)

Request

{
    "id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
    "method": "v2/account.balance",
    "params": {
        "apiKey": "xTaDyrmvA9XT2oBHHjy39zyPzKCvMdtH3b9q4xadkAg2dNSJXQGCxzui26L823W2",
        "timestamp": 1702561978458,
        "signature": "208bb94a26f99aa122b1319490ca9cb2798fccc81d9b6449521a26268d53217a"
    }
}

Response

{
    "id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
    "status": 200,
    "result": {
        [
          {
            "accountAlias": "SgsR",              // unique account code
            "asset": "USDT",                     // asset name
            "balance": "122607.35137903",        // wallet balance
            "crossWalletBalance": "23.72469206", // crossed wallet balance
            "crossUnPnl": "0.00000000"           // unrealized profit of crossed positions
            "availableBalance": "23.72469206",   // available balance
            "maxWithdrawAmount": "23.72469206",  // maximum amount for transfer out
            "marginAvailable": true,             // whether the asset can be used as margin in Multi-Assets mode
            "updateTime": 1617939110373
          }
        ]       
    },
    "rateLimits": [
      {
        "rateLimitType": "REQUEST_WEIGHT",
        "interval": "MINUTE",
        "intervalNum": 1,
        "limit": 2400,
        "count": 20
      }
    ]
}

Weight: 5

Method: v2/account.balance

Parameters

Name Type Mandatory  Description
recvWindow INT NO
timestamp INT YES

Futures Account Balance(USER_DATA)

Request

{
    "id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
    "method": "account.balance",
    "params": {
        "apiKey": "xTaDyrmvA9XT2oBHHjy39zyPzKCvMdtH3b9q4xadkAg2dNSJXQGCxzui26L823W2",
        "timestamp": 1702561978458,
        "signature": "208bb94a26f99aa122b1319490ca9cb2798fccc81d9b6449521a26268d53217a"
    }
}

Response

{
    "id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
    "status": 200,
    "result": {
        [
            {
                "accountAlias": "SgsR",    // unique account code
                "asset": "USDT",    // asset name
                "balance": "122607.35137903", // wallet balance
                "crossWalletBalance": "23.72469206", // crossed wallet balance
                "crossUnPnl": "0.00000000"  // unrealized profit of crossed positions
                "availableBalance": "23.72469206",       // available balance
                "maxWithdrawAmount": "23.72469206",     // maximum amount for transfer out
                "marginAvailable": true,    // whether the asset can be used as margin in Multi-Assets mode
                "updateTime": 1617939110373
            }
        ]        
    },
    "rateLimits": [
      {
        "rateLimitType": "REQUEST_WEIGHT",
        "interval": "MINUTE",
        "intervalNum": 1,
        "limit": 2400,
        "count": 20
      }
    ]
}

Weight: 5

Method: account.balance

Parameters

Name Type Mandatory  Description
recvWindow INT NO
timestamp INT YES

Position Information V2(USER_DATA)

Request

{
    "id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
    "method": "v2/account.position",
    "params": {
        "apiKey": "xTaDyrmvA9XT2oBHHjy39zyPzKCvMdtH3b9q4xadkAg2dNSJXQGCxzui26L823W2",
        "symbol": "BTCUSDT",
        "timestamp": 1702920680303,
        "signature": "31ab02a51a3989b66c29d40fcdf78216978a60afc6d8dc1c753ae49fa3164a2a"
    }
}

Response

For One-way position mode:

{
  "id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
  "status": 200,
  "result": [
    {
        "symbol": "BTCUSDT",  
        "positionSide": "BOTH",           
        "positionAmt": "1.000",  
        "entryPrice": "0.00000",
        "breakEvenPrice": "0.0",  
        "markPrice": "6679.50671178",
        "unrealizedProfit": "0.00000000",  
        "liquidationPrice": "0",  
        "isolatedMargin": "0.00000000", 
        "notional": "0",
        "marginAsset": "USDT", 
        "isolatedWallet": "0",
        "initialMargin": "0",              
        "maintMargin": "0",                    
      "positionInitialMargin": "0",      
        "openOrderInitialMargin": "0",     
        "adl": 0,
        "bidNotional": "0",  
        "askNotional": "0",  
        "updateTime": 0                    
    }
],
  "rateLimits": [
    {
      "rateLimitType": "REQUEST_WEIGHT",
      "interval": "MINUTE",
      "intervalNum": 1,
      "limit": 2400,
      "count": 20
    }
  ]
}

For Hedge position mode: javascript { "id": "605a6d20-6588-4cb9-afa0-b0ab087507ba", "status": 200, "result": [ { "symbol": "BTCUSDT", "positionSide": "LONG", "positionAmt": "1.000", "entryPrice": "0.00000", "breakEvenPrice": "0.0", "markPrice": "6679.50671178", "unrealizedProfit": "0.00000000", "liquidationPrice": "0", "isolatedMargin": "0.00000000", "notional": "0", "marginAsset": "USDT", "isolatedWallet": "0", "initialMargin": "0", "maintMargin": "0", "positionInitialMargin": "0", "openOrderInitialMargin": "0", "adl": 0, "bidNotional": "0", "askNotional": "0", "updateTime": 0 }, { "symbol": "BTCUSDT", "positionSide": "SHORT", "positionAmt": "1.000", "entryPrice": "0.00000", "breakEvenPrice": "0.0", "markPrice": "6679.50671178", "unrealizedProfit": "0.00000000", "liquidationPrice": "0", "isolatedMargin": "0.00000000", "notional": "0", "marginAsset": "USDT", "isolatedWallet": "0", "initialMargin": "0", "maintMargin": "0", "positionInitialMargin": "0", "openOrderInitialMargin": "0", "adl": 0, "bidNotional": "0", "askNotional": "0", "updateTime": 0 } ], "rateLimits": [ { "rateLimitType": "REQUEST_WEIGHT", "interval": "MINUTE", "intervalNum": 1, "limit": 2400, "count": 20 } ] }

Weight: 5

Method: v2/account.position

Parameters

Name Type Mandatory  Description
symbol STRING NO
recvWindow INT NO
timestamp INT YES

Note

Please use with user data stream ACCOUNT_UPDATE to meet your timeliness and accuracy needs.

Position Information(USER_DATA)

Request

{
    "id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
    "method": "account.position",
    "params": {
        "apiKey": "xTaDyrmvA9XT2oBHHjy39zyPzKCvMdtH3b9q4xadkAg2dNSJXQGCxzui26L823W2",
        "symbol": "BTCUSDT",
        "timestamp": 1702920680303,
        "signature": "31ab02a51a3989b66c29d40fcdf78216978a60afc6d8dc1c753ae49fa3164a2a"
    }
}

Response

For One-way position mode:

{
  "id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
  "status": 200,
  "result": [
    {
        "entryPrice": "0.00000",
        "breakEvenPrice": "0.0",  
        "marginType": "isolated", 
        "isAutoAddMargin": "false",
        "isolatedMargin": "0.00000000", 
        "leverage": "10", 
        "liquidationPrice": "0", 
        "markPrice": "6679.50671178",   
        "maxNotionalValue": "20000000", 
        "positionAmt": "0.000",
        "notional": "0", 
        "isolatedWallet": "0",
        "symbol": "BTCUSDT", 
        "unRealizedProfit": "0.00000000", 
        "positionSide": "BOTH",
        "updateTime": 0
    }
],
  "rateLimits": [
    {
      "rateLimitType": "REQUEST_WEIGHT",
      "interval": "MINUTE",
      "intervalNum": 1,
      "limit": 2400,
      "count": 20
    }
  ]
}

For Hedge position mode:

{
  "id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
  "status": 200,
  "result": [
    {
        "symbol": "BTCUSDT",
        "positionAmt": "0.001",
        "entryPrice": "22185.2",
        "breakEvenPrice": "0.0",  
        "markPrice": "21123.05052574",
        "unRealizedProfit": "-1.06214947",
        "liquidationPrice": "19731.45529116",
        "leverage": "4",
        "maxNotionalValue": "100000000",
        "marginType": "cross",
        "isolatedMargin": "0.00000000",
        "isAutoAddMargin": "false",
        "positionSide": "LONG",
        "notional": "21.12305052",
        "isolatedWallet": "0",
        "updateTime": 1655217461579
    },
    {
        "symbol": "BTCUSDT",
        "positionAmt": "0.000",
        "entryPrice": "0.0",
        "breakEvenPrice": "0.0",  
        "markPrice": "21123.05052574",
        "unRealizedProfit": "0.00000000",
        "liquidationPrice": "0",
        "leverage": "4",
        "maxNotionalValue": "100000000",
        "marginType": "cross",
        "isolatedMargin": "0.00000000",
        "isAutoAddMargin": "false",
        "positionSide": "SHORT",
        "notional": "0",
        "isolatedWallet": "0",
        "updateTime": 0
    }
],
  "rateLimits": [
    {
      "rateLimitType": "REQUEST_WEIGHT",
      "interval": "MINUTE",
      "intervalNum": 1,
      "limit": 2400,
      "count": 20
    }
  ]
}

Weight: 5

Method: account.position

Parameters

Name Type Mandatory  Description
symbol STRING NO
recvWindow INT NO
timestamp INT YES

Note

Please use with user data stream ACCOUNT_UPDATE to meet your timeliness and accuracy needs.

Order book

Request

{
    "id": "51e2affb-0aba-4821-ba75-f2625006eb43",
    "method": "depth",
    "params": {
      "symbol": "BTCUSDT"
    }
}

Response

{
  "id": "51e2affb-0aba-4821-ba75-f2625006eb43",
  "status": 200,
  "result": {
    "lastUpdateId": 1027024,
    "E": 1589436922972,   // Message output time
    "T": 1589436922959,   // Transaction time
    "bids": [
      [
        "4.00000000",     // PRICE
        "431.00000000"    // QTY
      ]
    ],
    "asks": [
      [
        "4.00000200",
        "12.00000000"
      ]
    ]
  },
  "rateLimits": [
    {
      "rateLimitType": "REQUEST_WEIGHT",
      "interval": "MINUTE",
      "intervalNum": 1,
      "limit": 2400,
      "count": 5
    }
  ]
}

Get current order book. Note that this request returns limited market depth. If you need to continuously monitor order book updates, please consider using Websocket Market Streams: * @depth * @depth

You can use depth request together with <symbol>@depth streams to maintain a local order book.

Weight: Adjusted based on the limit:

Limit Weight
5,10,20,50 2
100 5
500 10
1000 20

Update Speed: 15ms

Method: depth

Parameters

Name Type Mandatory  Description
symbol STRING YES
limit INT NO Default 500; Valid limits:[5, 10, 20, 50, 100, 500, 1000]

Symbol Price Ticker

Request

{
    "id": "9d32157c-a556-4d27-9866-66760a174b57",
    "method": "ticker.price",
    "params": {
        "symbol": "BTCUSDT"
    }
}

Response

{
  "id": "9d32157c-a556-4d27-9866-66760a174b57",
  "status": 200,
  "result": {
    "symbol": "BTCUSDT",
    "price": "6000.01",
    "time": 1589437530011   // Transaction time
  },
  "rateLimits": [
    {
      "rateLimitType": "REQUEST_WEIGHT",
      "interval": "MINUTE",
      "intervalNum": 1,
      "limit": 2400,
      "count": 2
    }
  ]
}

OR

{
  "id": "9d32157c-a556-4d27-9866-66760a174b57",
  "status": 200,
  "result": [
    {
        "symbol": "BTCUSDT",
        "price": "6000.01",
        "time": 1589437530011
    }
  ],
  "rateLimits": [
    {
      "rateLimitType": "REQUEST_WEIGHT",
      "interval": "MINUTE",
      "intervalNum": 1,
      "limit": 2400,
      "count": 2
    }
  ]
}

Latest price for a symbol or symbols.

Weight: * with symbol 1 * no symbol 2

Method: ticker.price

Update Speed: real time

Parameters

Name Type Mandatory  Description
symbol STRING NO

Symbol Order Book Ticker

Request

{
    "id": "9d32157c-a556-4d27-9866-66760a174b57",
    "method": "ticker.book",
    "params": {
        "symbol": "BTCUSDT"
    }
}

Response

{
  "id": "9d32157c-a556-4d27-9866-66760a174b57",
  "status": 200,
  "result": {
    "lastUpdateId": 1027024,
    "symbol": "BTCUSDT",
    "bidPrice": "4.00000000",
    "bidQty": "431.00000000",
    "askPrice": "4.00000200",
    "askQty": "9.00000000",
    "time": 1589437530011   // Transaction time
  },
  "rateLimits": [
    {
      "rateLimitType": "REQUEST_WEIGHT",
      "interval": "MINUTE",
      "intervalNum": 1,
      "limit": 2400,
      "count": 2
    }
  ]
}

OR

{
  "id": "9d32157c-a556-4d27-9866-66760a174b57",
  "status": 200,
  "result": [
    {
      "lastUpdateId": 1027024,
      "symbol": "BTCUSDT",
      "bidPrice": "4.00000000",
      "bidQty": "431.00000000",
      "askPrice": "4.00000200",
      "askQty": "9.00000000",
      "time": 1589437530011
    }
  ],
  "rateLimits": [
    {
      "rateLimitType": "REQUEST_WEIGHT",
      "interval": "MINUTE",
      "intervalNum": 1,
      "limit": 2400,
      "count": 2
    }
  ]
}

Best price/qty on the order book for a symbol or symbols.

Weight:

2 for a single symbol; 5 when the symbol parameter is omitted.

Method: ticker.book

Update Speed: real time

Parameters

Name Type Mandatory  Description
symbol STRING NO

Start user data stream (USER STREAM)

Request

{
  "id": "d3df8a61-98ea-4fe0-8f4e-0fcea5d418b0",
  "method": "userDataStream.start",
  "params": {
    "apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A"
  }
}

Response

{
  "id": "d3df8a61-98ea-4fe0-8f4e-0fcea5d418b0",
  "status": 200,
  "result": {
    "listenKey": "xs0mRXdAKlIPDRFrlPcw0qI41Eh3ixNntmymGyhrhgqo7L6FuLaWArTD7RLP"
  },
   "rateLimits": [
    {
      "rateLimitType": "REQUEST_WEIGHT",
      "interval": "MINUTE",
      "intervalNum": 1,
      "limit": 2400,
      "count": 2
    }
  ]
}

The following requests manage User Data Stream subscriptions.

Note: You will need to establish a separate WebSocket connection to listen to user data streams.

Start a new user data stream.

The response will output a listen key that can be subscribed through on the Websocket stream afterwards.

Note: the stream will close in 60 minutes unless userDataStream.ping requests are sent regularly.

Weight: 5

Method: userDataStream.start

Parameters

Name Type Mandatory  Description
apiKey STRING YES

Ping user data stream (USER_STREAM)

Request

{
  "id": "815d5fce-0880-4287-a567-80badf004c74",
  "method": "userDataStream.ping",
  "params": {
    "listenKey": "xs0mRXdAKlIPDRFrlPcw0qI41Eh3ixNntmymGyhrhgqo7L6FuLaWArTD7RLP",
    "apiKey": "vmPUZE6mv9SD5VNHk9HlWFsOr9aLE2zvsw0MuIgwCIPy8atIco14y7Ju91duEh8A"
   }
}

Response

{
  "id": "815d5fce-0880-4287-a567-80badf004c74",
  "status": 200,
  "result": {
    "listenKey": "3HBntNTepshgEdjIwSUIBgB9keLyOCg5qv3n6bYAtktG8ejcaW5HXz9Vx1JgIieg" 
  },
  "rateLimits": [
    {
      "rateLimitType": "REQUEST_WEIGHT",
      "interval": "MINUTE",
      "intervalNum": 1,
      "limit": 2400,
      "count": 2
    }
  ]
}

Ping a user data stream to keep it alive.

User data streams close automatically after 60 minutes, even if you're listening to them on WebSocket Streams. In order to keep the stream open, you have to regularly send pings using the userDataStream.ping request.

It is recommended to send a ping once every 30 minutes.

Weight: 5

Method: userDataStream.ping

Parameters

Name Type Mandatory  Description
listenKey STRING YES
apiKey STRING YES

Stop user data stream (USER_STREAM)

Request

{
  "id": "819e1b1b-8c06-485b-a13e-131326c69599",
  "method": "userDataStream.stop",
  "params": {
    "listenKey": "xs0mRXdAKlIPDRFrlPcw0qI41Eh3ixNntmymGyhrhgqo7L6FuLaWArTD7RLP",
    "apiKey": "vmPUZE6mv9SD5VNHk9HlWFsOr9aLE2zvsw0MuIgwCIPy8atIco14y7Ju91duEh8A"
  }
}

Response

{
  "id": "819e1b1b-8c06-485b-a13e-131326c69599",
  "status": 200,
  "result": {},
   "rateLimits": [
    {
      "rateLimitType": "REQUEST_WEIGHT",
      "interval": "MINUTE",
      "intervalNum": 1,
      "limit": 2400,
      "count": 2
    }
  ]
}

Explicitly stop and close the user data stream.

Weight: 5

Method: userDataStream.stop

Parameters

Name Type Mandatory  Description
listenKey STRING YES
apiKey STRING YES

Error Codes

Here is the error JSON payload:

{
  "code":-1121,
  "msg":"Invalid symbol."
}

Errors consist of two parts: an error code and a message.
Codes are universal,but messages can vary.

10xx - General Server or Network issues

-1000 UNKNOWN

-1001 DISCONNECTED

-1002 UNAUTHORIZED

-1003 TOO_MANY_REQUESTS

-1004 DUPLICATE_IP

-1005 NO_SUCH_IP

-1006 UNEXPECTED_RESP

-1007 TIMEOUT

-1008 SERVER_BUSY

-1010 ERROR_MSG_RECEIVED

-1011 NON_WHITE_LIST

-1013 INVALID_MESSAGE

-1014 UNKNOWN_ORDER_COMPOSITION

-1015 TOO_MANY_ORDERS

-1016 SERVICE_SHUTTING_DOWN

-1020 UNSUPPORTED_OPERATION

-1021 INVALID_TIMESTAMP

-1022 INVALID_SIGNATURE

-1023 START_TIME_GREATER_THAN_END_TIME

-1099 NOT_FOUND

11xx - Request issues

-1100 ILLEGAL_CHARS

-1101 TOO_MANY_PARAMETERS

-1102 MANDATORY_PARAM_EMPTY_OR_MALFORMED

-1103 UNKNOWN_PARAM

-1104 UNREAD_PARAMETERS

-1105 PARAM_EMPTY

-1106 PARAM_NOT_REQUIRED

-1108 BAD_ASSET

-1109 BAD_ACCOUNT

-1110 BAD_INSTRUMENT_TYPE

-1111 BAD_PRECISION

-1112 NO_DEPTH

-1113 WITHDRAW_NOT_NEGATIVE

-1114 TIF_NOT_REQUIRED

-1115 INVALID_TIF

-1116 INVALID_ORDER_TYPE

-1117 INVALID_SIDE

-1118 EMPTY_NEW_CL_ORD_ID

-1119 EMPTY_ORG_CL_ORD_ID

-1120 BAD_INTERVAL

-1121 BAD_SYMBOL

-1122 INVALID_SYMBOL_STATUS

-1125 INVALID_LISTEN_KEY

-1126 ASSET_NOT_SUPPORTED

-1127 MORE_THAN_XX_HOURS

-1128 OPTIONAL_PARAMS_BAD_COMBO

-1130 INVALID_PARAMETER

-1136 INVALID_NEW_ORDER_RESP_TYPE

20xx - Processing Issues

-2010 NEW_ORDER_REJECTED

-2011 CANCEL_REJECTED

-2012 CANCEL_ALL_FAIL

-2013 NO_SUCH_ORDER

-2014 BAD_API_KEY_FMT

-2015 REJECTED_MBX_KEY

-2016 NO_TRADING_WINDOW

-2017 API_KEYS_LOCKED

-2018 BALANCE_NOT_SUFFICIENT

-2019 MARGIN_NOT_SUFFICIEN

-2020 UNABLE_TO_FILL

-2021 ORDER_WOULD_IMMEDIATELY_TRIGGER

-2022 REDUCE_ONLY_REJECT

-2023 USER_IN_LIQUIDATION

-2024 POSITION_NOT_SUFFICIENT

-2025 MAX_OPEN_ORDER_EXCEEDED

-2026 REDUCE_ONLY_ORDER_TYPE_NOT_SUPPORTED

-2027 MAX_LEVERAGE_RATIO

-2028 MIN_LEVERAGE_RATIO

40xx - Filters and other Issues

-4000 INVALID_ORDER_STATUS

-4001 PRICE_LESS_THAN_ZERO

-4002 PRICE_GREATER_THAN_MAX_PRICE

-4003 QTY_LESS_THAN_ZERO

-4004 QTY_LESS_THAN_MIN_QTY

-4005 QTY_GREATER_THAN_MAX_QTY

-4006 STOP_PRICE_LESS_THAN_ZERO

-4007 STOP_PRICE_GREATER_THAN_MAX_PRICE

-4008 TICK_SIZE_LESS_THAN_ZERO

-4009 MAX_PRICE_LESS_THAN_MIN_PRICE

-4010 MAX_QTY_LESS_THAN_MIN_QTY

-4011 STEP_SIZE_LESS_THAN_ZERO

-4012 MAX_NUM_ORDERS_LESS_THAN_ZERO

-4013 PRICE_LESS_THAN_MIN_PRICE

-4014 PRICE_NOT_INCREASED_BY_TICK_SIZE

-4015 INVALID_CL_ORD_ID_LEN

-4016 PRICE_HIGHTER_THAN_MULTIPLIER_UP

-4017 MULTIPLIER_UP_LESS_THAN_ZERO

-4018 MULTIPLIER_DOWN_LESS_THAN_ZERO

-4019 COMPOSITE_SCALE_OVERFLOW

-4020 TARGET_STRATEGY_INVALID

-4021 INVALID_DEPTH_LIMIT

-4022 WRONG_MARKET_STATUS

-4023 QTY_NOT_INCREASED_BY_STEP_SIZE

-4024 PRICE_LOWER_THAN_MULTIPLIER_DOWN

-4025 MULTIPLIER_DECIMAL_LESS_THAN_ZERO

-4026 COMMISSION_INVALID

-4027 INVALID_ACCOUNT_TYPE

-4028 INVALID_LEVERAGE

-4029 INVALID_TICK_SIZE_PRECISION

-4030 INVALID_STEP_SIZE_PRECISION

-4031 INVALID_WORKING_TYPE

-4032 EXCEED_MAX_CANCEL_ORDER_SIZE

-4033 INSURANCE_ACCOUNT_NOT_FOUND

-4044 INVALID_BALANCE_TYPE

-4045 MAX_STOP_ORDER_EXCEEDED

-4046 NO_NEED_TO_CHANGE_MARGIN_TYPE

-4047 THERE_EXISTS_OPEN_ORDERS

-4048 THERE_EXISTS_QUANTITY

-4049 ADD_ISOLATED_MARGIN_REJECT

-4050 CROSS_BALANCE_INSUFFICIENT

-4051 ISOLATED_BALANCE_INSUFFICIENT

-4052 NO_NEED_TO_CHANGE_AUTO_ADD_MARGIN

-4053 AUTO_ADD_CROSSED_MARGIN_REJECT

-4054 ADD_ISOLATED_MARGIN_NO_POSITION_REJECT

-4055 AMOUNT_MUST_BE_POSITIVE

-4056 INVALID_API_KEY_TYPE

-4057 INVALID_RSA_PUBLIC_KEY

-4058 MAX_PRICE_TOO_LARGE

-4059 NO_NEED_TO_CHANGE_POSITION_SIDE

-4060 INVALID_POSITION_SIDE

-4061 POSITION_SIDE_NOT_MATCH

-4062 REDUCE_ONLY_CONFLICT

-4063 INVALID_OPTIONS_REQUEST_TYPE

-4064 INVALID_OPTIONS_TIME_FRAME

-4065 INVALID_OPTIONS_AMOUNT

-4066 INVALID_OPTIONS_EVENT_TYPE

-4067 POSITION_SIDE_CHANGE_EXISTS_OPEN_ORDERS

-4068 POSITION_SIDE_CHANGE_EXISTS_QUANTITY

-4069 INVALID_OPTIONS_PREMIUM_FEE

-4070 INVALID_CL_OPTIONS_ID_LEN

-4071 INVALID_OPTIONS_DIRECTION

-4072 OPTIONS_PREMIUM_NOT_UPDATE

-4073 OPTIONS_PREMIUM_INPUT_LESS_THAN_ZERO

-4074 OPTIONS_AMOUNT_BIGGER_THAN_UPPER

-4075 OPTIONS_PREMIUM_OUTPUT_ZERO

-4076 OPTIONS_PREMIUM_TOO_DIFF

-4077 OPTIONS_PREMIUM_REACH_LIMIT

-4078 OPTIONS_COMMON_ERROR

-4079 INVALID_OPTIONS_ID

-4080 OPTIONS_USER_NOT_FOUND

-4081 OPTIONS_NOT_FOUND

-4082 INVALID_BATCH_PLACE_ORDER_SIZE

-4083 PLACE_BATCH_ORDERS_FAIL

-4084 UPCOMING_METHOD

-4085 INVALID_NOTIONAL_LIMIT_COEF

-4086 INVALID_PRICE_SPREAD_THRESHOLD

-4087 REDUCE_ONLY_ORDER_PERMISSION

-4088 NO_PLACE_ORDER_PERMISSION

-4104 INVALID_CONTRACT_TYPE

-4114 INVALID_CLIENT_TRAN_ID_LEN

-4115 DUPLICATED_CLIENT_TRAN_ID

-4118 REDUCE_ONLY_MARGIN_CHECK_FAILED

-4131 MARKET_ORDER_REJECT

-4135 INVALID_ACTIVATION_PRICE

-4137 QUANTITY_EXISTS_WITH_CLOSE_POSITION

-4138 REDUCE_ONLY_MUST_BE_TRUE

-4139 ORDER_TYPE_CANNOT_BE_MKT

-4140 INVALID_OPENING_POSITION_STATUS

-4141 SYMBOL_ALREADY_CLOSED

-4142 STRATEGY_INVALID_TRIGGER_PRICE

-4144 INVALID_PAIR

-4161 ISOLATED_LEVERAGE_REJECT_WITH_POSITION

-4164 MIN_NOTIONAL

-4165 INVALID_TIME_INTERVAL

-4167 ISOLATED_REJECT_WITH_JOINT_MARGIN

-4168 JOINT_MARGIN_REJECT_WITH_ISOLATED

-4169 JOINT_MARGIN_REJECT_WITH_MB

-4170 JOINT_MARGIN_REJECT_WITH_OPEN_ORDER

-4171 NO_NEED_TO_CHANGE_JOINT_MARGIN

-4172 JOINT_MARGIN_REJECT_WITH_NEGATIVE_BALANCE

-4183 ISOLATED_REJECT_WITH_JOINT_MARGIN

-4184 PRICE_LOWER_THAN_STOP_MULTIPLIER_DOWN

-4192 COOLING_OFF_PERIOD

-4202 ADJUST_LEVERAGE_KYC_FAILED

-4203 ADJUST_LEVERAGE_ONE_MONTH_FAILED

-4205 ADJUST_LEVERAGE_X_DAYS_FAILED

-4206 ADJUST_LEVERAGE_KYC_LIMIT

-4208 ADJUST_LEVERAGE_ACCOUNT_SYMBOL_FAILED

-4209 ADJUST_LEVERAGE_SYMBOL_FAILED

-4210 STOP_PRICE_HIGHER_THAN_PRICE_MULTIPLIER_LIMIT

-4211 STOP_PRICE_LOWER_THAN_PRICE_MULTIPLIER_LIMIT

-4400 TRADING_QUANTITATIVE_RULE

-4401 COMPLIANCE_RESTRICTION

-4402 COMPLIANCE_BLACK_SYMBOL_RESTRICTION

-4403 ADJUST_LEVERAGE_COMPLIANCE_FAILED

50xx - Order Execution Issues

-5021 FOK_ORDER_REJECT

-5022 GTX_ORDER_REJECT

-5024 MOVE_ORDER_NOT_ALLOWED_SYMBOL_REASON

-5025 LIMIT_ORDER_ONLY

-5026 Exceed_Maximum_Modify_Order_Limit

-5027 SAME_ORDER

-5028 ME_RECVWINDOW_REJECT

-5037 INVALID_PRICE_MATCH

-5038 UNSUPPORTED_ORDER_TYPE_PRICE_MATCH

-5039 INVALID_SELF_TRADE_PREVENTION_MODE

-5040 FUTURE_GOOD_TILL_DATE

-5041 BBO_ORDER_REJECT