Skip to main content

Change Log

**2022-12-15**
  • New RSA signature
    • Documentation has been updated to show how to sign a request using an RSA key.
    • For security reasons, we recommend to use RSA keys instead of HMAC keys when generating an API key.
    • We accept PKCS#8 (BEGIN PUBLIC KEY).
    • More details on how to upload your RSA public key will be added at a later date.

**2022-12-13**

REST API

Some error messages on error code -1003 have changed:

  • Previous error message:

Too much request weight used; current limit is %s request weight per %s %s. Please use the websocket for live updates to avoid polling the API.

has been updated to:

Too much request weight used; current limit is %s request weight per %s. Please use WebSocket Streams for live updates to avoid polling the API.

  • Previous error message

Way too much request weight used; IP banned until %s. Please use the websocket for live updates to avoid bans.

has been updated to:

Way too much request weight used; IP banned until %s. Please use WebSocket Streams for live updates to avoid bans.


**2022-12-05**

Notice: These changes are being rolled out gradually to all our servers, and will take approximately a week to complete.

WEBSOCKET

  • !bookTicker will be removed by December 7, 2022. Please use the Individual Book Ticker Streams instead. (<symbol>@bookTicker).
    • Multiple <symbol>@bookTicker streams can be subscribed to over one connection. (E.g. wss://stream.binance.com:9443/stream?streams=btcusdt@bookTicker/bnbbtc@bookTicker)

SPOT API

  • New error code -1135

    • This error code will occur if a parameter requiring a JSON object is invalid.
  • New error code -1108

    • This error will occur if a value to a parameter being sent was too large, potentially causing overflow.
    • This error code can occur in the following endpoints:
      • POST /api/v3/order
      • POST /api/v3/order/cancelReplace
      • POST /api/v3/order/oco
  • Changes to GET /api/v3/aggTrades

    • Previous behavior: startTime and endTime had to be used in combination and could only be an hour apart.
    • New behavior: startTime and endTime can be used individually and the 1 hour limit has been removed.
      • When using startTime only, this will return trades from that time, up to the limit provided.
      • When using endTime only, this will return trades starting from the endTime including all trades before that time, up to the limit provided.
      • If limit not provided, regardless of used in combination or sent individually, the endpoint will use the default limit.
  • Changes to GET /api/v3/myTrades

    • Fixed a bug where symbol + orderId combination would return all trades even if the number of trades went beyond the 500 default limit.

    • Previous behavior: The API would send specific error messages depending on the combination of parameters sent. E.g:

      { "code": -1106, "msg": "Parameter X was sent when not required." }

    • New behavior: If the combinations of optional parameters to the endpoint were not supported, then the endpoint will respond with the generic error:

      { "code": -1128, "msg": "Combination of optional parameters invalid." }

    • Added a new combination of supported parameters: symbol + orderId + fromId.

    • The following combinations of parameters were previously supported but no longer accepted, as these combinations were only taking fromId into consideration, ignoring startTime and endTime:

      • symbol + fromId + startTime
      • symbol + fromId + endTime
      • symbol + fromId + startTime + endTime
    • Thus, these are the supported combinations of parameters:

      • symbol
      • symbol + orderId
      • symbol + startTime
      • symbol + endTime
      • symbol + fromId
      • symbol + startTime + endTime
      • symbol+ orderId + fromId

Note: These new fields will appear approximately a week from the release date.

  • Changes to GET /api/v3/exchangeInfo
    • New fields defaultSelfTradePreventionMode and allowedSelfTradePreventionModes
  • Changes to the Order Placement Endpoints/Order Query/Order Cancellation Endpoints:
    • New field selfTradePreventionMode will appear in the response.
    • Affects the following endpoints:
      • POST /api/v3/order
      • POST /api/v3/order/oco
      • POST /api/v3/order/cancelReplace
      • GET /api/v3/order
      • DELETE /api/v3/order
      • DELETE /api/v3/orderList
  • Changes to GET /api/v3/account
    • New field requireSelfTradePrevention will appear in the response.
  • New field workingTime, indicating when the order started working on the order book, will appear in the following endpoints:
    • POST /api/v3/order
    • GET /api/v3/order
    • POST /api/v3/order/cancelReplace
    • POST /api/v3/order/oco
    • GET /api/v3/order
    • GET /api/v3/openOrders
    • GET /api/v3/allOrders
  • Field trailingTime, indicating the time when the trailing order is active and tracking price changes, will appear for the following order types (TAKE_PROFIT, TAKE_PROFIT_LIMIT, STOP_LOSS, STOP_LOSS_LIMIT if trailingDelta parameter was provided) for the following endpoints:
    • POST /api/v3/order
    • GET /api/v3/order
    • GET /api/v3/openOrders
    • GET /api/v3/allOrders
    • POST /api/v3/order/cancelReplace
    • DELETE /api/v3/order
  • Field commissionRates will appear in the GET /api/v3/acccount response

USER DATA STREAM

  • eventType executionReport has new fields
    • V - selfTradePreventionMode
    • D - trailing_time (Appears if the trailing stop order is active)
    • W - workingTime (Appears if isWorking=true)

**2022-12-02**
  • Added a new market data base URL https://data.binance.com.
  • Added a new WebSocket URL wss://data-stream.binance.com.

**2022-11-29**
  • New endpoint for VIP Loan:
    • `GET /sapi/v1/loan/vip/collateral/account: Check Locked Value of VIP Collateral Account

**2022-11-22**
  • New endpoints for Convert:
    • GET /sapi/v1/convert/exchangeInfo: Query for all convertible token pairs and the tokens’ respective upper/lower limits
    • GET /sapi/v1/convert/assetInfo: Query for supported asset’s precision information
    • POST /sapi/v1/convert/getQuote: Request a quote for the requested token pairs
    • POST /sapi/v1/convert/acceptQuote: Accept the offered quote by quote ID.
    • GET /sapi/v1/convert/orderStatus: Query order status by order ID.

**2022-11-18**
  • New endpoint for Wallet:
    • GET /sapi/v1/asset/ledger-transfer/cloud-mining/queryByPage: The query of Cloud-Mining payment and refund history
  • New endpoints for Sub-account:
    • GET /sapi/v1/sub-account/apiRestrictions/ipRestriction/thirdPartyList: To query Sub-Account API key Third Party IP whitelist
    • POST /sapi/v2/sub-account/subAccountApi/ipRestriction: To support master account update IP Restriction for Sub-Account API key

**2022-11-14**
  • New endpoints for VIP Loan:
    • GET /sapi/v1/loan/vip/ongoing/orders: Get VIP Loan Ongoing Orders
    • POST /sapi/v1/loan/vip/repay: VIP Loan Repay
    • GET /sapi/v1/loan/vip/repay/history: Get VIP Loan Repayment History

**2022-11-02**
  • Update endpoints for Wallet:
    • POST /sapi/v1/capital/withdraw/apply: Weight changed to Weight(UID): 600

**2022-11-01**
  • New endpoints for Crypto Loan:
    • GET /sapi/v1/loan/loanable/data: Get interest rate and borrow limit of loanable assets. The borrow limit is shown in USD value.
    • GET /sapi/v1/loan/collateral/data: Get LTV information and collateral limit of collateral assets. The collateral limit is shown in USD value.
    • GET /sapi/v1/loan/repay/collateral/rate: Get the the rate of collateral coin / loan coin when using collateral repay, the rate will be valid within 8 second.
    • POST /sapi/v1/loan/customize/margin_call: Customize margin call for ongoing orders only.

**2022-10-28**
  • Update endpoints for Wallet:
    • POST /sapi/v1/asset/convert-transfer: New parameter accountType
    • POST /sapi/v1/asset/convert-transfer/queryByPage: request method is changed to GET, new parameter clientTranId

**2022-10-15**
  • New endpoints for Binance Code:
    • POST /sapi/v1/giftcard/buyCode: For buying a fixed-value Binance Code.
    • GET /sapi/v1/giftcard/buyCode/token-limit: To verify which tokens are available for you to purchase fixed-value gift cards as mentioned in section 2 and its’ limitation.

**2022-09-30**
  • Delete endpoints for Futures Cross Collateral:
    • POST /sapi/v1/futures/loan/borrow
    • POST /sapi/v1/futures/loan/repay
    • GET /sapi/v1/futures/loan/configs
    • GET /sapi/v2/futures/loan/configs
    • GET /sapi/v1/futures/loan/calcAdjustLevel
    • GET /sapi/v2/futures/loan/calcAdjustLevel
    • GET /sapi/v1/futures/loan/calcMaxAdjustAmount
    • GET /sapi/v2/futures/loan/calcMaxAdjustAmount
    • POST /sapi/v1/futures/loan/adjustCollateral
    • POST /sapi/v2/futures/loan/adjustCollateral
    • GET /sapi/v1/futures/loan/collateralRepayLimit
    • GET /sapi/v1/futures/loan/collateralRepay
    • POST /sapi/v1/futures/loan/collateralRepay
    • GET /sapi/v1/futures/loan/collateralRepayResult

**2022-09-30**

Scheduled changes to the removal of !bookTicker around November 2022.

  • The All Book Tickers stream (!bookTicker) is set to be removed in November 2022
  • More details of the actual removal date will be announced at a later time.
  • Please use the Individual Book Ticker Streams instead. (<symbol>@bookTicker).
  • Multiple <symbol>@bookTicker streams can be subscribed to over one connection.
    • Example: wss://stream.binance.com:9443/stream?streams=btcusdt@bookTicker/bnbbtc@bookTicker

**2022-09-29**
  • New endpoints for Wallet:
    • POST /sapi/v1/asset/convert-transfer: Convert transfer, convert between BUSD and stablecoins.
    • POST /sapi/v1/asset/convert-transfer/queryByPage: Query convert transfer

**2022-09-22**
  • Update endpoint for Sub-Account:
    • POST /sapi/v1/sub-account/subAccountApi/ipRestriction: Add new param thirdParty
    • POST /sapi/v1/sub-account/subAccountApi/ipRestriction/ipList: Add new param thirdPartyName
    • DELETE /sapi/v1/sub-account/subAccountApi/ipRestriction/ipList: Add new param thirdPartyName
  • Add Rate Limit for following endpoints:
    • GET /sapi/v1/bswap/liquidity: 3/1s per account and per pool
    • GET /sapi/v1/bswap/quote: 3/1s per account and per pool
    • POST /sapi/v1/lending/daily/purchase: 1/3s per account
    • POST /sapi/v1/lending/customizedFixed/purchase: 1/3s per account
    • POST /sapi/v1/staking/purchase: 1/3s per account

**2022-09-16**
  • New endpoint for Margin:
    • GET /sapi/v1/margin/tradeCoeff: Get personal margin level information

**2022-09-15**
  • New endpoints for Crypto Loan
    • POST /sapi/v1/loan/borrow: Borrow - Crypto Loan Borrow
    • GET /sapi/v1/loan/borrow/history: Borrow - Get Loan Borrow History
    • GET/sapi/v1/loan/ongoing/orders: Borrow - Get Loan Ongoing Orders
    • POST/sapi/v1/loan/repay: Repay - Crypto Loan Repay
    • GET/sapi/v1/loan/repay/history: Repay - Get Loan Repayment History
    • POST/sapi/v1/loan/adjust/ltv: Adjust LTV - Crypto Loan Adjust LTV
    • GET/sapi/v1/loan/ltv/adjustment/history: Adjust LTV - Get Loan LTV Adjustment History

**2022-09-15**

Note that these are rolling changes, so it may take a few days for it to rollout to all our servers.

  • Changes to GET /api/v3/exchangeInfo
    • New optional parameter permissions added to display all symbols with the permissions matching the parameter provided. (eg.SPOT, MARGIN, LEVERAGED)
    • If not provided, the default value will be ["SPOT","MARGIN", "LEVERAGED"].
      • This means the request GET /api/v3/exchangeInfo without any parameters will show all symbols that can be used for SPOT,MARGIN and/or LEVERAGED trading.
      • To search for symbols that can be traded on other permissions (e.g. TRD_GRP_004, etc), then this needs to be searched for explicitly. (e.g.permissions=TRD_GRP_004)
    • Cannot be combined with symbol or symbols

**2022-09-12**
  • Update endpoint for Sub-account:
    * `GET /sapi/v1/sub-account/subAccountApi/ipRestriction`:
    To support master account query Third party IP list name for a sub account API key

**2022-09-05**
  • Delete endpoint for Futures:
    • GET /sapi/v1/futures/loan/wallet

**2022-08-23**

SPOT API

Note that these are rolling changes, so it may take a few days for it to rollout to all our servers.

  • Changes to GET /api/v3/ticker and GET /api/v3/ticker/24hr
    • New optional parameter type added
    • Supported values for parameter type are FULL and MINI
      • FULL is the default value and the response that is currently being returned from the endpoint
      • MINI omits the following fields from the response: priceChangePercent, weightedAvgPrice, bidPrice, bidQty, askPrice, askQty, and lastQty
  • New error code -1008
    • This is sent whenever the servers are overloaded with requests.
    • This error code only appears for the SPOT API.
  • New field brokered has been added to GET /api/v3/account
  • New endpoint: GET /api/v3/uiKlines
  • New kline interval: 1s

**2022-08-18**
  • Update endpoint for Convert:
    • GET /sapi/v1/convert/tradeFlow: Update weight from Weight(IP) 3000 to Weight(UID) 3000.

**2022-08-08**

SPOT API

  • Changes to POST /api/v3/order and POST /api/v3/order/cancelReplace
    • New optional field strategyId is a parameter used to identify an order as part of a strategy.
    • New optional field strategyType is a parameter used to identify what strategy was running. (E.g. If all the orders are part of spot grid strategy, it can be set to strategyType=1000000)
    • Note: strategyType cannot be less than 1000000.
  • Changes to POST /api/v3/order/oco
    • New optional fields limitStrategyId, limitStrategyType. stopStrategyId, stopStrategyType
    • These are the strategy metadata parameters for both legs of the OCO orders.
    • limitStrategyType and stopStrategyType both cannot be less than 1000000.
  • Changes to GET /api/v3/order, GET /api/v3/openOrders, and GET /api/v3/allOrders
    • New fields strategyId and strategyType will appear in the response JSON for orders that had these fields populated upon order placement.
  • Changes to DELETE /api/v3/order and DELETE /api/v3/openOrders
    • New fields strategyId and strategyType will appear in the response JSON for cancelled orders that had these fields populated upon order placement.

USER DATA STREAM

  • New fields to eventType executionReport
    • j for strategyId
    • J for strategyType
    • Note that these fields only appear if these were populated upon order placement.

**2022-08-05**
  • Update endpoint for Convert:
    • GET /sapi/v1/convert/tradeFlow: Update weight from Weight(IP) 100 to Weight(IP) 3000.

**2022-07-21**
  • New endpoint for Portfolio Margin:
    • GET /sapi/v1/portfolio/pmLoan Query Portfolio Margin Bankruptcy Loan Record
    • POST /sapi/v1/portfolio/repay Portfolio Margin Bankruptcy Loan Repay

**2022-07-18**
  • New endpoint for Portfolio Margin:
    • GET /sapi/v1/portfolio/collateralRate to get Portfolio Margin Collateral Rate.

**2022-07-01**
  • New endpoint for Wallet:
    • POST /sapi/v3/asset/getUserAsset to get user assets.
  • New endpoint for Margin:
    • GET /sapi/v1/margin/dribblet to query the historical information of user's margin account small-value asset conversion BNB.
  • Update endpoint for Convert:
    • GET /sapi/v1/convert/tradeFlow: Update weight from 3000 to 100.
  • Update endpoint for Margin:
    • GET /sapi/v1/margin/repay: Add response field rawAsset.

**2022-06-20**

SPOT API: Changes to GET /api/v3/ticker

  • Weight has been reduced from 5 to 2 per symbol, regardless of windowSize.
  • The max number of symbols that can be processed in a request is 100.
    • If the number of symbols sent is more than 100, the error will be as follows:
    {     "code": -1101,     "msg": "Too many values sent for parameter 'symbols', maximum allowed up to 100."     }
  • The max Weight(IP) for this endpoint will cap at 100.
    • I.e. If the request has more than 50 symbols, the Weight will still be 100, regardless of windowSize.

**2022-06-15**

Note: The update is being rolled out over the next few days, so these changes may not be visible right away.

  • GET /api/v3/ticker added
    • Rolling window price change statistics based on windowSize provided.
    • Contrary to GET /api/v3/ticker/24hr the list of symbols cannot be omitted.
    • If windowSize not specified, the value will default to 1d.
    • Response is similar to GET /api/v3/ticker/24hr, minus the following fields: prevClosePrice, lastQty, bidPrice, bidQty, askPrice, askQty
  • POST /api/v3/order/cancelReplace added
    • Cancels an existing order and places a new order on the same symbol.
    • The filters are evaluated before the cancel order is placed.
      • e.g. If the MAX_NUM_ORDERS filter is 10, and the total number of open orders on the account is also 10, when using POST /api/v3/order/cancelReplace both the cancel order placement and new order will fail because of the filter.
    • The change is being rolled out in the next few days, thus this feature will be enabled once the upgrade is completed.
  • GET /api/v3/exchangeInfo returns new field cancelReplaceAllowed in symbols list.
  • New filter NOTIONAL has been added.
    • Defines the allowed notional value (price * quantity) based on a configured minNotional and maxNotional
  • New exchange filter EXCHANGE_MAX_NUM_ICEBERG_ORDERS has been added.
    • Defines the limit of open iceberg orders on an account

WEBSOCKETS

  • New symbol ticker streams with 1h and 4h windows:
    • Individual symbol ticker streams
      • <symbol>@ticker_<window-size>
    • All market ticker streams
      • !ticker_<window-size>@arr

**2022-06-02**
  • Update endpoint for Subaccount:
    • GET /sapi/v1/sub-account/sub/transfer/history: fromEmail and toEmail can be master email.

**2022-05-31**
  • Update endpoint for Fiat:
    • GET /sapi/v1/fiat/orders: Weight changes from UID(3000) to UID(90000)
  • Update endpoint for Pay:
    • GET /sapi/v1/pay/transactions: Param names changed: startTimestamp -> startTime; endTimestamp -> endTime.

**2022-05-26**
  • Update endpoint for Fiat:
    • GET /sapi/v1/fiat/orders: Weight changes from IP(1) to UID(3000)
  • Update info for the following margin account endpoints: The max interval between startTime and endTime is 30 days.:
    • GET /sapi/v1/margin/transfer
    • GET /sapi/v1/margin/loan
    • GET /sapi/v1/margin/repay
    • GET /sapi/v1/margin/isolated/transfer
    • GET /sapi/v1/margin/interestHistory

**2022-05-23**
  • Changes to Order Book Depth Levels

    • Quantities in the Depth levels were returning negative values in situations where they were exceeding the max value, resulting in an overflow.
    • Going forward depth levels will not overflow, but will be capped at the max value based on the precision of the base asset. This means that the depth level is at max value or more.
      • E.g. If the precision is 8, then the max value for quantity will be at 92,233,720,368.54775807.
    • When the fix has been applied, a change in the order book at the affected price level is required for the changes to be visible.
  • What does this affect?

    • SPOT API
      • GET /api/v3/depth
    • Websocket Streams
      • <symbol>@depth
      • <symbol>@depth@100ms
      • <symbol>@depth<levels>
      • <symbol>@depth<levels>@100ms
  • Updates to MAX_POSITION

    • If an order's quantity can cause the position to overflow, this will now fail the MAX_POSITION filter.

**2022-05-19**
  • Update endpoint for Mining:
    • GET /sapi/v1/mining/pub/algoList and GET /sapi/v1/mining/pub/coinList: Need no paramter.
  • Add error codes (21xxx) for Portfolio Margin Account: -21001, -21002, -21003

**2022-05-17**

SPOT API

  • Changes to GET api/v3/aggTrades
    • When providing startTime and endTime, the oldest items are returned.
  • Changed error messaging on GET /api/v3/myTrades where parameter symbol is not provided:
{"code": -1102,"msg": "Mandatory parameter 'symbol' was not sent, was empty/null, or malformed." }
  • The following endpoints now support multi-symbol querying using the parameter symbols.
    • GET /api/v3/ticker/24hr
    • GET /api/v3/ticker/price
    • GET /api/v3/ticker/bookTicker
  • In the above, the request weight will depend on the number of symbols provided in symbols.
    Please refer to the table below:
EndpointNumber of SymbolsWeight
GET /api/v3/ticker/priceAny2
GET /api/v3/ticker/bookTickerAny2
GET /api/v3/ticker/24hr1-201
GET /api/v3/ticker/24hr21-10020
GET /api/v3/ticker/24hr101 or more40

**2022-05-05**
  • New endpoint for Binance Code:
    • GET /sapi/v1/giftcard/cryptography/rsa-public-key to fetch RSA public key.
  • Update endpoint for Binance Code:
    • POST /sapi/v1/giftcard/redeemCode: new optional parameter externalUid. Each external unique ID represents a unique user on the partner platform. The function helps you to identify the redemption behavior of different users.

**2022-04-28**
  • New endpoints for Staking:
    • GET /sapi/v1/staking/productList to get Staking product list
    • POST /sapi/v1/staking/purchase to stake product
    • POST /sapi/v1/staking/redeem to redeem product
    • GET /sapi/v1/staking/position to get Staking product holding position
    • GET /sapi/v1/staking/stakingRecord to inquiry Staking history records
    • POST /sapi/v1/staking/setAutoStaking to set Auto Staking function
    • GET /sapi/v1/staking/personalLeftQuota to inquiry Staking left quota

**2022-04-27**
  • New endpoint for Futures Algo:
    • POST /sapi/v1/algo/futures/newOrderTwap to support Twap new order

FAQ: Time-Weighted Average Price(Twap) Introduction


**2022-04-26**
  • GET /sapi/v1/margin/rateLimit/order added
    • The endpoint will display the user's current margin order count usage for all intervals.

**2022-04-20**
  • New endpoint for Portfolio Margin:
    • GET /sapi/v1/portfolio/account to support query portfolio margin account info

FAQ: Portfolio Margin Program

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


**2022-04-13**
  • New endpoints for Futures Algo:
    • POST /sapi/v1/algo/futures/newOrderVp to support VP new order
    • DELETE /sapi/v1/algo/futures/order to support cancel Algo order
    • GET /sapi/v1/algo/futures/openOrders to support query Algo open orders
    • GET /sapi/v1/algo/futures/historicalOrders to support query Algo historical orders
    • GET /sapi/v1/algo/futures/subOrders to support query Algo sub orders for a specified algoId

FAQ: Volume Participation(VP) Introduction


**2022-04-13**

Information on Trailing Stops

SPOT API

  • Trailing Stops have been enabled.
    • This is a type of algo order where the activation is based on a percentage of a price change in the market using the new parameter trailingDelta.
    • This can only used with any of the following order types: STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, TAKE_PROFIT_LIMIT.
    • The trailingDelta parameter will be done in Basis Points or BIPS.
      • For example: a STOP_LOSS SELL order with a trailingDelta of 100 will trigger after a price decrease of 1%. (100 / 10,000 => 0.01 => 1%)
    • When used in combination with OCO Orders, the trailingDelta will determine when the contingent leg of the OCO will trigger.
    • When trailingDelta is used in combination with stopPrice, once the stopPrice condition is met, the trailing stop starts tracking the price change from the stopPrice based on the trailingDelta provided.
    • When no stopPrice is sent, the trailing stop starts tracking the price changes from the last price based on the trailingDelta provided.
  • Changes to POST /api/v3/order
    • New optional field trailingDelta
  • Changes to POST /api/v3/order/test
    • New optional field trailingDelta
  • Changes to POST /api/v3/order/oco
    • New optional field trailingDelta
  • A new filter TRAILING_DELTA has been added.
    • This filter is defined by the minimum and maximum values for the trailingDelta value.

USER DATA STREAM

  • New field in executionReport
    • "d" for trailingDelta

**2022-04-12**

Note: The changes are being rolled out during the next few days, so these will not appear right away.

  • Error message changed on GET api/v3/allOrders where symbol is not provided:
    { "code": -1102, "msg": "Mandatory parameter 'symbol' was not sent, was empty/null, or malformed."}
  • Fixed a typo with an error message when an account has disabled permissions (e.g. to withdraw, to trade, etc)
    "This action is disabled on this account." 
  • During a market data audit, we detected some issues with the Spot aggregate trade data.
    • Missing aggregate trades were recovered.
    • Duplicated records were marked invalid with the following values:
      • p = '0' // price
      • q = '0' // qty
      • f = -1 // first_trade_id
      • l = -1 // last_trade_id

**2022-04-08**
**2022-3-29**

The following updates will take effect on March 31, 2022 08:00 AM UTC

  • Update endpoint for Sub-account:
    • GET /sapi/v1/sub-account/universalTransfer

The query time period must be less then 30 days; If startTime and endTime not sent, return records of the last 30 days by default


**2022-03-25**
  • Update endpoint for Sub-Account:
    • New endpointGET /sapi/v1/managed-subaccount/accountSnapshot to support investor master account query asset snapshot of managed sub-account

**2022-03-08**
  • Update endpoint for Sub-Account:
    • New transfer typesMARGIN,ISOLATED_MARGIN and parametersymboladded inPOST /sapi/v1/sub-account/universalTransfer to support transfer to sub-account cross margin account and isolated margin account

**2022-02-28**
  • New field allowTrailingStop has been added to GET /api/v3/exchangeInfo

**2022-02-22**

SPOT API

  • (price-minPrice) % tickSize == 0 rule in PRICE_FILTER has been changed to price % tickSize == 0.
  • A new filter PERCENT_PRICE_BY_SIDE has been added.
  • Changes to GET api/v3/depth
    • The limit value can be outside of the previous values (i.e. 5, 10, 20, 50, 100, 500, 1000,5000) and will return the correct limit. (i.e. if limit=3 then the response will be the top 3 bids and asks)
    • The limit still cannot exceed 5000. If the limit provided is greater than 5000, then the response will be truncated to 5000.
    • Due to the changes, these are the updated request weights based on the limit value provided:
LimitRequest Weight
1-1001
101-5005
501-100010
1001-500050
  • Changes to GET api/v3/aggTrades
    • When providing startTime and endTime, the oldest items are returned.

**2022-2-18*** Update endpoint for Sub-Account: * New fields `isManagedSubAccount`and `isAssetManagementSubAccount` added in`GET /sapi/v1/sub-account/list`to support query whether the sub-account is a managed sub-account or a asset management sub-account
**2022-2-17**

The following updates will take effect on February 24, 2022 08:00 AM UTC

  • Update endpoint for Wallet:
    • GET /sapi/v1/accountSnapshot

The time limit of this endpoint is shortened to only support querying the data of the latest month


**2022-2-09**
  • New endpoint for Wallet:
    • POST /sapi/v1/asset/dust-btc to get assets that can be converted into BNB

**2022-1-25**
  • From January 28, 2022 4:00 AM UTC, You need to openEnable Spot & Margin Tradingpermission for the API key which requests these endpoints as following:
    • POST /sapi/v1/asset/dust Dust transfer
    • POST /sapi/v1/lending/daily/purchase Purchase Savings flexible product
    • POST /sapi/v1/lending/daily/redeem Redeem Savings flexible product
    • POST /sapi/v1/lending/customizedFixed/purchase Purchase Savings Fixed/Activity project
    • POST /sapi/v1/lending/positionChanged Change Savings Fixed/Activity position to Daily position
    • POST /sapi/v1/bswap/liquidityAdd Bswap add liquidity
    • POST /sapi/v1/bswap/liquidityRemove Bswap remove liquidity
    • POST /sapi/v1/bswap/swap Bswap swap
    • POST /sapi/v1/bswap/claimRewards Bswap claim rewards

**2022-1-21**
  • New endpoints for Binance Code:
    • POST /sapi/v1/giftcard/createCode to create a Binance Code.
    • POST /sapi/v1/giftcard/redeemCode to redeem a Binance Code.
    • GET /sapi/v1/giftcard/verify to verify a Binance Code.

**2022-1-4**
  • New endpoint for Mining:

    • GET /sapi/v1/mining/payment/uid to get Mining account earning.
  • New endpoints for BSwap:

    • GET /sapi/v1/bswap/unclaimedRewards to get unclaimed rewards record.
    • POST /sapi/v1/bswap/claimRewards to claim swap rewards or liquidity rewards.
    • GET /sapi/v1/bswap/claimedHistory to get history of claimed rewards.

**2021-12-30**
  • Update endpoint for Margin:

    • Removed out limit fromGET /sapi/v1/margin/interestRateHistory; The max interval between startTime and endTime is 30 days.
  • Update endpoint for Wallet:

    • As the Mining account is merged into Funding account, transfer types MAIN_MINING, MINING_MAIN, MINING_UMFUTURE, MARGIN_MINING, and MINING_MARGIN will be discontinued in Universal Transfer endpoint POST /sapi/v1/asset/transfer on January 05, 2022 08:00 AM UTC

**2021-12-29**
  • Removed out dated "Symbol Type" enum; added "Permissions" enum.

**2021-12-24**
  • Update endpoints for Sub-Account:
    • New parameterclientTranIdadded inPOST /sapi/v1/sub-account/universalTransfer and GET /sapi/v1/sub-account/universalTransfer to support custom transfer id

**2021-12-03**
  • New endpoints for Margin:

    • GET /sapi/v1/margin/crossMarginData to get cross margin fee data collection
    • GET /sapi/v1/margin/isolatedMarginData to get isolated margin fee data collection
    • GET /sapi/v1/margin/isolatedMarginTier to get isolated margin tier data collection
  • New endpoints for NFT:

    • GET /sapi/v1/nft/history/transactions to get NFT transaction history
    • GET /sapi/v1/nft/history/deposit to get NFT deposit history
    • GET /sapi/v1/nft/history/withdraw to get NFT withdraw history
    • GET /sapi/v1/nft/user/getAsset to get NFT asset

**2021-11-30**
  • New endpoint for Convert:

    • GET /sapi/v1/convert/tradeFlow to support user query convert trade history records
  • New endpoint for Rebate:

    • GET /sapi/v1/rebate/taxQuery to support user query spot rebate history records

**2021-11-19**
  • New endpoint for Pay:
    • GET /sapi/v1/pay/transactionsto support user query Pay trade history
  • Update endpoint for Wallet:
    • New fieldinfoadded inGET /sapi/v1/capital/withdraw/historyto show the reason for withdrawal failure

**2021-11-18**

The following updates will take effect on November 25, 2021 08:00 AM UTC

  • Update endpoint for Wallet:
    • GET /sapi/v1/accountSnapshot

The query time range of both endpoints are shortened to support data query within the last 6 months only, where startTime does not support selecting a timestamp beyond 6 months. If you do not specify startTime and endTime, the data of the last 7 days will be returned by default.


**2021-11-17**
  • The following endpoints will be discontinued on November 17, 2021 13:00 PM UTC:
    • POST /sapi/v1/account/apiRestrictions/ipRestriction to support user enable and disable IP restriction for an API Key
    • POST /sapi/v1/account/apiRestrictions/ipRestriction/ipList to support user add IP list for an API Key
    • GET /sapi/v1/account/apiRestrictions/ipRestriction to support user query IP restriction for an API Key
    • DELETE /sapi/v1/account/apiRestrictions/ipRestriction/ipList to support user delete IP list for an API Key

**2021-11-16**
  • New endpoints for Sub-Account:
    • POST /sapi/v1/sub-account/subAccountApi/ipRestriction to support master account enable and disable IP restriction for a sub-account API Key
    • POST /sapi/v1/sub-account/subAccountApi/ipRestriction/ipList to support master account add IP list for a sub-account API Key
    • GET /sapi/v1/sub-account/subAccountApi/ipRestriction to support master account query IP restriction for a sub-account API Key
    • DELETE /sapi/v1/sub-account/subAccountApi/ipRestriction/ipList to support master account delete IP list for a sub-account API Key

**2021-11-09**
  • New endpoints for Wallet:
    • POST /sapi/v1/account/apiRestrictions/ipRestriction to support user enable and disable IP restriction for an API Key
    • POST /sapi/v1/account/apiRestrictions/ipRestriction/ipList to support user add IP list for an API Key
    • GET /sapi/v1/account/apiRestrictions/ipRestriction to support user query IP restriction for an API Key
    • DELETE /sapi/v1/account/apiRestrictions/ipRestriction/ipList to support user delete IP list for an API Key

**2021-11-08**
  • New endpoint for Crypto Loans:
    • New endpointGET /sapi/v1/loan/incometo support user query crypto loans income history

**2021-11-05**
  • Update endpoint for Wallet:
    • New parameter walletType added in POST /sapi/v1/capital/withdraw/apply to support user choose wallet type spot wallet and funding wallet when withdraw crypto.

**2021-11-04**

The following updates will take effect on November 11, 2021 08:00 AM UTC

  • Update endpoints for Wallet and Futures:
    • GET /sapi/v1/asset/transfer
    • GET /sapi/v1/futures/transfer

The query time range of both endpoints are shortened to support data query within the last 6 months only, where startTime does not support selecting a timestamp beyond 6 months. If you do not specify startTime and endTime, the data of the last 7 days will be returned by default.


**2021-11-01**
  • GET /api/v3/rateLimit/order added
    • The endpoint will display the user's current order count usage for all intervals.
    • This endpoint will have a request weight of 20.

**2021-10-22**
  • Update endpoint for Wallet:
    • New transfer types MAIN_FUNDING,FUNDING_MAIN,FUNDING_UMFUTURE,UMFUTURE_FUNDING,MARGIN_FUNDING,FUNDING_MARGIN,FUNDING_CMFUTUREand CMFUTURE_FUNDING added in Universal Transfer endpoint POST /sapi/v1/asset/transfer and GET /sapi/v1/asset/transfer to support transfer assets among funding account and other accounts
    • As the C2C account, Binance Payment, Binance Card and other business account are merged into a Funding account, transfer types MAIN_C2C,C2C_MAIN,C2C_UMFUTURE,C2C_MINING,UMFUTURE_C2C,MINING_C2C,MARGIN_C2C,C2C_MARGIN,MAIN_PAYand PAY_MAIN will be discontinued in Universal Transfer endpoint POST /sapi/v1/asset/transfer and GET /sapi/v1/asset/transfer on November 04, 2021 08:00 AM UTC

**2021-10-14**
  • Update the time range of the response data for the following margin account endpoints, startTime and endTime time span will not exceed 30 days, without time parameter sent the system will return the last 7 days of data by default, while the archived parameter is true, the system will return the last 7 days of data 6 months ago by default:
    • GET /sapi/v1/margin/transfer
    • GET /sapi/v1/margin/loan
    • GET /sapi/v1/margin/repay
    • GET /sapi/v1/margin/isolated/transfer
    • GET /sapi/v1/margin/interestHistory

**2021-09-18**
  • New endpoints for BSwap:
    • GET /sapi/v1/bswap/poolConfigure to get pool configure
    • GET /sapi/v1/bswap/addLiquidityPreview to get add liquidity preview
    • GET /sapi/v1/bswap/removeLiquidityPreview to get remove liquidity preview

**2021-09-17**
  • Add/api/*and/sapi/* limit introduction in General Info

**2021-09-08**
  • Add endpoints for enabled isolated margin account limit:

    • DELETE /sapi/v1/margin/isolated/account to disable isolated margin account for a specific symbol
    • POST /sapi/v1/margin/isolated/account to enable isolated margin account for a specific symbol
    • GET /sapi/v1/margin/isolated/accountLimit to query enabled isolated margin account limit
  • New field "enabled" in response of GET /sapi/v1/margin/isolated/account to check if the isolated margin account is enabled


**2021-09-03**
  • Update endpoint for Wallet:
    * New fields `sameAddress`,`depositDust` and `specialWithdrawTips`added in `GET /sapi/v1/capital/config/getall` 
    sameAddress means if the coin needs to provide memo to withdraw depositDust means minimum creditable amount specialWithdrawTips means special tips for withdraw
    * New field `confirmNo`added in `GET /sapi/v1/capital/withdraw/history` to support query confirm times for withdraw history

**2021-08-27**
  • Update endpoint for Wallet:
    • New parameter withdrawOrderIdadded in GET /sapi/v1/capital/withdraw/history to support user query withdraw history by withdrawOrderId
    • New field unlockConfirmadded in GET /sapi/v1/capital/deposit/hisrec to support query network confirm times for unlocking

**2021-08-23**
  • New endpoints for Margin Account OCO:
    • POST /sapi/v1/margin/order/oco
    • DELETE /sapi/v1/margin/orderList
    • GET /sapi/v1/margin/orderList
    • GET /sapi/v1/margin/allOrderList
    • GET /sapi/v1/margin/openOrderList

Same usage as spot account OCO


**2021-08-20**
  • Update endpoint for Wallet:
    • New parametersfromSymbol,toSymboland new transfer types ISOLATEDMARGIN_MARGIN, MARGIN_ISOLATEDMARGINand ISOLATEDMARGIN_ISOLATEDMARGIN added in POST /sapi/v1/asset/transfer and GET /sapi/v1/asset/transfer to support user transfer assets between Margin(cross) account and Margin(isolated) account

**2021-08-12**
  • GET api/v3/myTrades has a new optional field orderId

**2021-08-05**
  • New endpoint for C2C:
    • GET /sapi/v1/c2c/orderMatch/listUserOrderHistory to query user C2C trade history

**2021-08-05**
  • Update endpoints for Savings:
    • GET /sapi/v1/lending/union/purchaseRecord
    • GET /sapi/v1/lending/union/redemptionRecord
    • GET /sapi/v1/lending/union/interestHistory

The time between startTime and endTime cannot be longer than 30 days. If startTime and endTime are both not sent, then the last 30 days' data will be returned


**2021-07-29**
  • Update endpoint for Sub-Account:
    • GET /sapi/v1/sub-account/transfer/subUserHistory if startTimeandendTimeare not sent, the recent 30-day data will be returned by default

**2021-07-27**
  • New endpoint for Fiat:
    • GET /sapi/v1/fiat/orders to query user fiat deposit and withdraw history
    • GET /sapi/v1/fiat/payments to query user fiat payments history

**2021-07-16**
  • New endpoint for Wallet:
    • GET /sapi/v1/account/apiRestrictions to query user API Key permission

**2021-07-09**
  • New endpoint for Wallet:
    • POST /sapi/v1/asset/get-funding-asset to query funding wallet, includes Binance Pay, Binance Card, Binance Gift Card, Stock Token

**2021-06-24**
  • Update endpoints for Wallet:
    • GET /sapi/v1/capital/withdraw/history added default value 1000, max value 1000 for the parameterlimit
    • GET /sapi/v1/capital/deposit/hisrec added default value 1000, max value 1000 for the parameterlimit

**2021-06-17**
  • Update endpoint for Savings:
    • GET /sapi/v1/lending/daily/product/list to include new parameters current and size

**2021-06-15**
  • New endpoints for Sub-Account:
    • POST /sapi/v1/managed-subaccount/deposit to deposit assets into the managed sub-account (only for investor master account)
    • GET /sapi/v1/managed-subaccount/asset to query managed sub-account asset details (only for investor master account)
    • POST /sapi/v1/managed-subaccount/withdraw to withdrawal assets from the managed sub-account (only for investor master account)

**2021-06-04**

On August 01, 2021 02:00 AM UTC the WAPI endpoints will be discontinued:

  • GET /wapi/v3/systemStatus.html
  • POST /wapi/v3/withdraw.html
  • GET /wapi/v3/depositHistory.html
  • GET /wapi/v3/withdrawHistory.html
  • GET /wapi/v3/depositAddress.html
  • GET /wapi/v3/accountStatus.html
  • GET /wapi/v3/apiTradingStatus.html
  • GET /wapi/v3/userAssetDribbletLog.html
  • GET /wapi/v3/assetDetail.html
  • GET /wapi/v3/tradeFee.html
  • GET /wapi/v3/sub-account/list.html
  • GET /wapi/v3/sub-account/transfer/history.html
  • POST /wapi/v3/sub-account/transfer.html
  • GET /wapi/v3/sub-account/assets.html

The WAPI endpoints have been removed from Binance API Documentation.To ensure your trading strategies are not affected, all API users are encouraged to upgrade trading bots to SAPI endpoints as soon as possible.


**2021-05-26**
  • Update endpoint for Wallet:
    • New transfer types MAIN_PAY ,PAY_MAIN added in Universal Transfer endpoint POST /sapi/v1/asset/transfer and GET /sapi/v1/asset/transfer to support trasnfer assets between spot account and pay account

**2021-05-12**
  • Added Data Source in the documentation to explain where each endpoint is retrieving its data
  • Added field Data Source to each Spot API endpoint in the documentation
  • GET api/v3/exchangeInfo now supports single or multi-symbol query

**2021-04-28**

On May 15, 2021 08:00 UTC the SAPI Create Margin Account endpoint will be discontinued:

  • POST /sapi/v1/margin/isolated/create

Isolated Margin account creation and trade preparation can be completed directly through Isolated Margin funds transfer POST /sapi/v1/margin/isolated/transfer


**2021-04-26**

On April 28, 2021 00:00 UTC the weights to the following endpoints will be adjusted:

  • GET /api/v3/order weight increased to 2
  • GET /api/v3/openOrders weight increased to 3
  • GET /api/v3/allOrders weight increased to 10
  • GET /api/v3/orderList weight increased to 2
  • GET /api/v3/openOrderList weight increased to 3
  • GET /api/v3/account weight increased to 10
  • GET /api/v3/myTrades weight increased to 10
  • GET /api/v3/exchangeInfo weight increased to 10

**2021-04-08**
  • Update endpoint for Sub-Account:
    • GET /sapi/v1/sub-account/futures/accountSummary and GET /sapi/v2/sub-account/futures/accountSummary the unit of field asset changed to USD valued summary of sub-account assets

**2021-04-02**
  • New endpoints for Wallet:
    • GET /sapi/v1/system/status to query system status
    • GET /sapi/v1/account/status to query account status
    • GET /sapi/v1/account/apiTradingStatus to query account API trading status
    • GET /sapi/v1/asset/dribblet to query dust log
    • GET /sapi/v1/asset/assetDetail to query asset detail
    • GET /sapi/v1/asset/tradeFee to query trade fee
  • New endpoint for Sub-Account:
    • GET /sapi/v3/sub-account/assets to query sub-account assets

**2021-04-01**
  • Update endpoint for Sub-Account:
    • GET /sapi/v1/sub-account/transfer/subUserHistory new fields fromAccountType and toAccountType added in response

**2021-03-31**
  • Update endpoint for Sub-Account:
    • GET /wapi/v3/sub-account/transfer/history.html added new parameters fromEmail and toEmail, the original parameteremail is equal tofromEmailby default

**2021-03-08**
  • New endpoint for Sub-Account:
    • POST /sapi/v1/sub-account/virtualSubAccount to support create a virtual sub-account
    • GET /sapi/v1/sub-account/list to support query sub-account list
    • POST /sapi/v1/sub-account/blvt/enable to support enable blvt for sub-account

**2021-03-05**
  • New endpoints for Margin:
    • GET /sapi/v1/margin/interestRateHistory to support margin interest rate history query

**2021-02-08**
  • New endpoints for Futures:
    • GET /sapi/v2/futures/loan/wallet to support BUSD loan query
    • GET /sapi/v2/futures/loan/configs to support BUSD loan query
    • GET /sapi/v2/futures/loan/calcAdjustLevel to support BUSD loan
    • GET /sapi/v2/futures/loan/calcMaxAdjustAmount to support adjustment of BUSD loan
    • POST /sapi/v2/futures/loan/adjustCollateral to support adjustment of BUSD loan
  • Update endpoints for Futures
    • GET /sapi/v1/futures/loan/adjustCollateral/history new parameter and fields in response loanCoin for BUSD loan
    • GET /sapi/v1/futures/loan/liquidationHistory new parameter and fields in response loanCoin for BUSD loan

**2021-02-04**
  • New transfer types MARGIN_MINING ,MINING_MARGIN, MARGIN_C2C ,C2C_MARGIN, MARGIN_CMFUTURE, CMFUTURE_MARGIN added in Universal Transfer endpoint POST /sapi/v1/asset/transfer and GET /sapi/v1/asset/transfer.

**2021-01-15**
  • New endpoint DELETE /sapi/v1/margin/openOrders for Margin Trade
    • This will allow a user to cancel all open orders on a single symbol for margin account.
    • This endpoint will cancel all open orders including OCO orders for margin account.

**2021-01-10**
  • New parameter pageSize for Mining endpoint GET /sapi/v1/mining/payment/list

  • New fields in response to Mining endpoint GET /sapi/v1/mining/payment/list:

    • "type" for income type
    • "hashTransfer" for resale Hashrate
    • "transferAmount" for transferred Income
  • New Mining endpoints:

    • GET /sapi/v1/mining/payment/other
    • GET /sapi/v1/mining/hash-transfer/config/details
    • GET /sapi/v1/mining/hash-transfer/config/details/list
    • GET /sapi/v1/mining/hash-transfer/profit/details
    • POST /sapi/v1/mining/hash-transfer/config
    • POST /sapi/v1/mining/hash-transfer/config/cancel

**2021-01-01**

USER DATA STREAM

  • outboundAccountInfo has been removed.

**2020-12-30**
  • New endpoint for Wallet:
    • POST /sapi/v1/asset/transfer to support user universal transfer among Spot, Margin, Futures, C2C, MINING accounts.
    • GET /sapi/v1/asset/transfer to get user universal transfer history.

**2020-12-22**
  • New endpoint for Sub-Account:
    • GET /sapi/v1/sub-account/sub/transfer/history to get spot asset transfer history.

**2020-12-11**
  • Update endpoints for Futures Cross-Collateral:
    • GET /sapi/v1/futures/loan/wallet new fields in response interestFreeLimit for total interest free limit, interestFreeLimitUsed for interest free limit used.
    • GET /sapi/v1/futures/loan/interestHistory new fields in response interestFreeLimitUsed for interest free limit used.

**2020-12-04**
  • Update endpoint for BLVT:
    • GET /sapi/v1/blvt/tokenInfo new fields in response currentBaskets(include symbol, amount , notionalValue ),purchaseFeePct,dailyPurchaseLimit,redeemFeePct,dailyRedeemLimit.
  • New endpoint for BLVT:
    • GET /sapi/v1/blvt/userLimit to get BLVT user limit info.

**2020-12-02**
  • New endpoints for Sub-Account:
    • GET /sapi/v2/sub-account/futures/account to get detail on sub-account's USDT margined futures account and COIN margined futures account.
    • GET /sapi/v2/sub-account/futures/accountSummary to get summary of sub-account's USDT margined futures account and COIN margined futures account.
    • GET /sapi/v2/sub-account/futures/positionRisk to get position risk of sub-account's USDT margined futures account and COIN margined futures account.

**2020-12-01**
  • Update Margin Trade Endpoint:
    • POST /sapi/v1/margin/order new parameter quoteOrderQty allow a user to specify the total quoteOrderQty spent or received in the MARKET order.

**2020-11-27**

New API clusters have been added in order to improve performance.

Users can access any of the following API clusters, in addition to api.binance.com

If there are any performance issues with accessing api.binance.com please try any of the following instead:


**2020-11-16**
  • Updated endpoints for Margin, new parameter archived to query data from 6 months ago:
    • GET /sapi/v1/margin/loan
    • GET /sapi/v1/margin/repay
    • GET /sapi/v1/margin/interestHistory

**2020-11-13**
  • New endpoints for Sub-Account:
    • POST /sapi/v1/sub-account/universalTransfer to transfer spot and futures asset between master account and sub accounts.
    • GET /sapi/v1/sub-account/universalTransfer to search transfer records.

**2020-11-10**
  • New endpoint to toggle BNB Burn:
    • POST /sapi/v1/bnbBurn to toggle BNB Burn on spot trade and margin interest.
    • GET /sapi/v1/bnbBurn to get BNB Burn status.

**2020-11-09**
  • New field tranId is available from endpoints:
    • GET /sapi/v1/sub-account/futures/internalTransfer
    • GET /sapi/v1/sub-account/transfer/subUserHistory

**2020-11-03**
  • Update endpoints for Futures Cross-Collateral:

    • GET /sapi/v1/futures/loan/repay/history new fields in response repayType(NORMAL for normal repayment, COLLATERAL for collateral repayment), price (collateral repayment rate), repayCollateral(collateral amount for collateral repayment).
    • GET /sapi/v1/futures/loan/wallet new fields in response totalInterest (total interest for cross-collateral), principalForInterest(cross-collateral principal for interest), interest(cross-collateral interest).
    • GET /sapi/v1/futures/loan/configs new fields in response interestRate (interest rate for cross-collateral), interestGracePeriod (interest grace period for cross-collateral).
  • New endpoints for Futures Cross-Collateral:

    • GET /sapi/v1/futures/loan/collateralRepayLimit to check the maximum and minimum limit when repay with collateral.
    • GET /sapi/v1/futures/loan/collateralRepay to get quote for collateral repayment.
    • POST /sapi/v1/futures/loan/collateralRepay to repay with collateral.
    • GET /sapi/v1/futures/loan/collateralRepayResult to check collateral repayment result.
    • GET /sapi/v1/futures/loan/interestHistory to get cross-collateral interest history.

**2020-10-14**
  • Update endpoints for Futures Cross-Collateral:
    • POST /sapi/v1/futures/loan/borrow and GET /sapi/v1/futures/loan/borrow/history new field borrowId in response for ID of Cross-Collateral borrow operation.
    • POST /sapi/v1/futures/loan/repay and GET /sapi/v1/futures/loan/repay/history new field repayId in response for ID of Cross-Collateral repay operation.

**2020-10-10**
  • New type added in the endpoint POST /sapi/v1/sub-account/futures/transferto support transfer asset from subaccount's spot account to its COIN-margined futures account and transfer asset from subaccount's COIN-margined futures account to its spot account.

**2020-09-30**
  • Update endpoints for Margin Account:
    • GET /sapi/v1/margin/maxBorrowable new field borrowLimit in response for account borrow limit.

**2020-09-28**
  • New endpoints for Binance Savings:
    • POST /sapi/v1/lending/positionChanged to change fixed/activity position to daily position.
  • New parameter ACTIVITY replace REGULARin the following Binance Savings endpoints:
    • GET /sapi/v1/lending/project/list
    • POST /sapi/v1/lending/customizedFixed/purchase
    • GET /sapi/v1/lending/project/position/list
    • GET /sapi/v1/lending/union/purchaseRecord
    • GET /sapi/v1/lending/union/interestHistory

**2020-09-23**
  • New SAPI endpoints for BSwap:
    • GET /sapi/v1/bswap/pools to list all swap pools.
    • GET /sapi/v1/bswap/liquidity to get liquidity information of a pool.
    • POST /sapi/v1/bswap/liquidityAdd to add liquidity.
    • POST /sapi/v1/bswap/liquidityRemove to remove liquidity.
    • GET /sapi/v1/bswap/liquidityOps to get liquidity operation record.
    • GET /sapi/v1/bswap/quote to request quotes.
    • POST /sapi/v1/bswap/swap to swap.
    • GET /sapi/v1/bswap/swap to get swap history.

**2020-09-16**
  • New SAPI endpoints for BLVT:
    • GET /sapi/v1/blvt/tokenInfo to get BLVT info.
    • POST /sapi/v1/blvt/subscribe (HMAC SHA256) to subscribe BLVT.
    • GET /sapi/v1/blvt/subscribe/record (HMAC SHA256) to get subscription record。
    • POST /sapi/v1/blvt/redeem (HMAC SHA256) to redeem BLVT.
    • GET /sapi/v1/blvt/redeem/record (HMAC SHA256 to get redemption record.
  • The BLVT NAV system is working relatively with Binance Futures, so some endpoints are based on futures system:
    • New endpoint to get historical BLVT Kline.
    • New WebSocket streams for BLVT Info and BLVT NAV Kline:
**2020-09-09**

USER DATA STREAM

  • outboundAccountInfo has been deprecated.
  • outboundAccountInfo will be removed in the future. (Exact date unknown) Please use outboundAccountPosition instead.
  • outboundAccountInfo will now only show the balance of non-zero assets and assets that have been reduced to 0.

**2020-09-03**
  • New endpoint POST /sapi/v1/sub-account/futures/internalTransfer to transfer futures asset between master account and subaccount.
  • New endpointGET /sapi/v1/sub-account/futures/internalTransfer to get futures transfer history of subaccount.

**2020-09-01**
  • New parameter masterAccountTotalAsset added in the endpoint GET /sapi/v1/sub-account/spotSummary to get BTC valued asset summary of master account.

**2020-08-27**
  • New endpoint GET /sapi/v1/sub-account/spotSummary to get BTC valued asset summary of subaccout.

**2020-08-26**
  • New parameter symbols added in the endpoint GET /sapi/v1/margin/isolated/account.

**2020-07-28**

ISOLATED MARGIN

  • New parameters "isIsolated" and "symbol" added for isolated margin in the following endpoints:

    • POST /sapi/v1/margin/loan
    • POST /sapi/v1/margin/repay
  • New parameter "isIsolated" and new response field "isIsolated" added for isolated margin in the following endpoints:

    • POST /sapi/v1/margin/order
    • DELETE /sapi/v1/margin/order
    • GET /sapi/v1/margin/order
    • GET /sapi/v1/margin/openOrders
    • GET /sapi/v1/margin/allOrders
    • GET /sapi/v1/margin/myTrades
  • New parameter "isolatedSymbol" and new response field "isolatedSymbol" added for isolated margin in the following endpoints:

    • GET /sapi/v1/margin/loan
    • GET /sapi/v1/margin/repay
    • GET /sapi/v1/margin/interestHistory
  • New parameter "isolatedSymbol" and new response field "isIsolated" added for isolated margin in the following endpoint GET /sapi/v1/margin/forceLiquidationRec

  • New parameter "isolatedSymbol" added for isolated margin in the following endpoints:

    • GET /sapi/v1/margin/maxBorrowable
    • GET /sapi/v1/margin/maxTransferable
  • New endpoints for isolated margin:

    • POST /sapi/v1/margin/isolated/create
    • POST /sapi/v1/margin/isolated/transfer
    • GET /sapi/v1/margin/isolated/transfer
    • GET /sapi/v1/margin/isolated/account
    • GET /sapi/v1/margin/isolated/pair
    • GET /sapi/v1/margin/isolated/allPairs
  • New endpoints for listenKey management of isolated margin account:

    • POST /sapi/v1/userDataStream/isolated
    • PUT /sapi/v1/userDataStream/isolated
    • DELETE /sapi/v1/userDataStream/isolated

**2020-07-20**
  • The max value of parameter "limit" in GET /sapi/v1/margin/allOrders has been changed as 500.

**2020-07-17**
  • There is now a request limit specifically for the sapi/v1/margin/allOrders endpoint at 60 raw requests per minute for a single IP address.

**2020-07-13**
  • New SAPI Endpoints for futures Cross-Collateral:
    • POST /sapi/v1/futures/loan/borrow
    • GET /sapi/v1/futures/loan/borrow/history
    • POST /sapi/v1/futures/loan/repay
    • GET /sapi/v1/futures/loan/repay/history
    • GET /sapi/v1/futures/loan/wallet
    • GET /sapi/v1/futures/loan/configs
    • GET /sapi/v1/futures/loan/calcAdjustLevel
    • GET /sapi/v1/futures/loan/calcMaxAdjustAmount
    • POST /sapi/v1/futures/loan/adjustCollateral
    • GET /sapi/v1/futures/loan/adjustCollateral/history
    • GET /sapi/v1/futures/loan/liquidationHistory

**2020-06-28**
  • SAPI Endpoints for futures:
    • POST /sapi/v1/futures/transfer
    • GET /sapi/v1/futures/transfer

**2020-05-06**
  • New endpoints for Mining:
    • GET /sapi/v1/mining/pub/algoList
    • GET /sapi/v1/mining/pub/coinList
    • GET /sapi/v1/mining/worker/detail
    • GET /sapi/v1/mining/worker/list
    • GET /sapi/v1/mining/payment/list
    • GET /sapi/v1/mining/statistics/user/status
    • GET /sapi/v1/mining/statistics/user/list

**2020-05-01**
  • From 2020-05-01 UTC 00:00, all symbols will have a limit of 200 open orders using the MAX_NUM_ORDERS filter.
    • No existing orders will be removed or canceled.
    • Accounts that have 200 or more open orders on a symbol will not be able to place new orders on that symbol until the open order count is below 200.
    • OCO orders count as 2 open orders before the LIMIT order is touched or the STOP_LOSS (or STOP_LOSS_LIMIT) order is triggered; once this happens the other order is canceled and will no longer count as an open order.

**2020-04-25**SPOT API
  • New field permissions
    • Defines the trading permissions that are allowed on accounts and symbols.
    • permissions is an enum array; values:
      • SPOT
      • MARGIN
    • permissions will replace isSpotTradingAllowed and isMarginTradingAllowed on GET api/v3/exchangeInfo in future API versions (v4+).
    • For an account to trade on a symbol, the account and symbol must share at least 1 permission in common.
  • Updates to GET api/v3/exchangeInfo
    • New field permissions added.
    • New field quoteAssetPrecision added; a duplicate of the quotePrecision field. quotePrecision will be removed in future API versions (v4+).
  • Updates to GET api/v3/account
    • New field permissions added.
  • New endpoint DELETE api/v3/openOrders
    • This will allow a user to cancel all open orders on a single symbol.
    • This endpoint will cancel all open orders including OCO orders.
  • Orders can be canceled via the API on symbols in the BREAK or HALT status.
USER DATA STREAM
  • OutboundAccountInfo has new field P which shows the trading permissions of the account.

**2020-04-23**

WEB SOCKET STREAM

  • WebSocket connections have a limit of 5 incoming messages per second. A message is considered:
    • A PING frame
    • A PONG frame
    • A JSON control message (e.g. subscribe, unsubscribe)
  • A connection that goes beyond the limit will be disconnected; IPs that are repeatedly disconnected may be banned.
  • A single connection can listen to a maximum of 1024 streams.
**2020-04-16**
  • New fields in response to endpointGET /sapi/v1/lending/daily/token/position

    • todayPurchasedAmount for user's purchased amount today
  • New lending endpoints for customized fixed projects:

    • GET /sapi/v1/lending/project/list
    • POST /sapi/v1/lending/customizedFixed/purchase
    • GET /sapi/v1/lending/project/position/list

**2020-04-02**
  • New fields in response to endpointGET /sapi/v1/capital/config/getall
    • minConfirm for min number for balance confirmation
    • unLockConfirm for confirmation number for balance unlock

**2020-03-24**
  • MAX_POSITION filter added.

    • This filter defines the allowed maximum position an account can have on the base asset of a symbol. An account's position defined as the sum of the account's:

      • free balance of the base asset
      • locked balance of the base asset
      • sum of the qty of all open BUY orders
    • BUY orders will be rejected if the account's position is greater than the maximum position allowed.


**2020-03-13**
  • New parameter transactionFeeFlag is available in endpoint:
    • POST /sapi/v1/capital/withdraw/apply and
    • POST /wapi/v3/withdraw.html

**2020-02-05**
  • New sub account endpoints:
    • POST /sapi/v1/sub-account/futures/transfer to transfer between futures and spot accout of sub-account.
    • POST /sapi/v1/sub-account/margin/transfer to transfer between margin and spot accout of sub-account.
    • POST /sapi/v1/sub-account/transfer/subToSub to transfer to another account by sub-account.
    • POST /sapi/v1/sub-account/transfer/subToMaster to transfer to same master by sub-account.
    • GET /sapi/v1/sub-account/transfer/subUserHistory to get transfer history of sub-account.

**2020-01-15**
  • New parameter withdrawOrderId for client customized withdraw id for endpoint POST /wapi/v3/withdraw.html.

  • New field withdrawOrderId in response to GET /wapi/v3/withdrawHistory.html


**2019-12-25**
  • New endpoints for Binance Savings:

    • GET /sapi/v1/lending/daily/product/list
    • GET /sapi/v1/lending/daily/userLeftQuota
    • POST /sapi/v1/lending/daily/purchase
    • GET /sapi/v1/lending/daily/userRedemptionQuota
    • POST /sapi/v1/lending/daily/redeem
    • GET /sapi/v1/lending/daily/token/position
    • GET /sapi/v1/lending/union/account
    • GET /sapi/v1/lending/union/purchaseRecord
    • GET /sapi/v1/lending/union/redemptionRecord
    • GET /sapi/v1/lending/union/interestHistory
  • Added time interval limit in
    GET /sapi/v1/capital/withdraw/history,
    GET /wapi/v3/withdrawHistory.html,
    GET /sapi/v1/capital/deposit/hisrec and
    GET /wapi/v3/depositHistory.html:

    * The default `startTime` is 90 days from current time, and the default `endTime` is current time. * Please notice the default `startTime` and `endTime` to make sure that time interval is within 0-90 days.* If both ``startTime`` and ``endTime`` are sent, time between ``startTime`` and ``endTime`` must be less than 90 days.

**2019-12-18**
  • New endpoint to get daily snapshot of account:
    GET /sapi/v1/accountSnapshot

**2019-11-30**
  • Added parameter sideEffectType in POST /sapi/v1/margin/order (HMAC SHA256) with enums:

    • NO_SIDE_EFFECT for normal trade order;
    • MARGIN_BUY for margin trade order;
    • AUTO_REPAY for making auto repayment after order filled.
  • New field marginBuyBorrowAmount and marginBuyBorrowAsset in FULL response to POST /sapi/v1/margin/order (HMAC SHA256)


**2019-11-28**
  • New SAPI endpont to disable fast withdraw switch:
    POST /sapi/v1/account/disableFastWithdrawSwitch (HMAC SHA256)
  • New SAPI endpont to enable fast withdraw switch:
    POST /sapi/v1/account/enableFastWithdrawSwitch (HMAC SHA256)

**2019-11-22**
  • Quote Order Qty Market orders have been enabled on all symbols.
    • Quote Order Qty MARKET orders allow a user to specify the total quoteOrderQty spent or received in the MARKET order.
    • Quote Order Qty MARKET orders will not break LOT_SIZE filter rules; the order will execute a quantity that will have the notional value as close as possible to quoteOrderQty.
    • Using BNBBTC as an example:
      • On the BUY side, the order will buy as many BNB as quoteOrderQty BTC can.
      • On the SELL side, the order will sell as much BNB as needed to receive quoteOrderQty BTC.

**2019-11-19**
  • GET /sapi/v1/sub-account/margin/account has new field: marginTradeCoeffVo which contains
    • forceLiquidationBar for liquidation margin ratio
    • marginCallBar for margin call margin ratio
    • normalBar for initial margin ratio

**2019-11-13**Rest API
  • api/v3/exchangeInfo has new fields:
    • quoteOrderQtyMarketAllowed
    • baseCommissionPrecision
    • quoteCommissionPrecision
  • MARKET orders have a new optional field: quoteOrderQty used to specify the quote quantity to BUY or SELL. This cannot be used in combination with quantity.
    • The exact timing that quoteOrderQty MARKET orders will be enabled is TBD. There will be a separate announcement and further details at that time.
  • All order query endpoints will return a new field origQuoteOrderQty in the JSON payload. (e.g. GET api/v3/allOrders)
    {      "code": -1128,      "msg": "Combination of optional parameters invalid. Recommendation: 'stopLimitTimeInForce' should also be sent."    }
  • Updated error messages for -1128

    • Sending an OCO with a stopLimitPrice but without a stopLimitTimeInForce will return the error:
  • Updated error messages for -1003 to specify the limit is referring to the request weight, not to the number of requests.

Deprecation of v1 endpoints:

By end of Q1 2020, the following endpoints will be removed from the API. The documentation has been updated to use the v3 versions of these endpoints.

  • GET api/v1/depth
  • GET api/v1/historicalTrades
  • GET api/v1/aggTrades
  • GET api/v1/klines
  • GET api/v1/ticker/24hr
  • GET api/v1/ticker/price
  • GET api/v1/exchangeInfo
  • POST api/v1/userDataStream
  • PUT api/v1/userDataStream
  • GET api/v1/ping
  • GET api/v1/time
  • GET api/v1/ticker/bookTicker

These endpoints however, will NOT be migrated to v3. Please use the following endpoints instead moving forward.

Old V1 EndpointsNew V3 Endpoints
GET api/v1/ticker/allPricesGET api/v3/ticker/price
GET api/v1/ticker/allBookTickersGET api/v3/ticker/bookTicker
USER DATA STREAM
  • Changes toexecutionReport event

    • If the C field is empty, it will now properly return null, instead of "null".
    • New field Q which represents the quoteOrderQty.
  • balanceUpdate event type added

    • This event occurs when funds are deposited or withdrawn from your account.
WEB SOCKET STREAM
  • WSS now supports live subscribing/unsubscribing to streams.

**2019-11-08**
  • New sapi for subaccount management on margin and futures:
    • GET /sapi/v1/sub-account/status (HMAC SHA256)
    • POST /sapi/v1/sub-account/margin/enable (HMAC SHA256)
    • GET /sapi/v1/sub-account/margin/account (HMAC SHA256)
    • GET /sapi/v1/sub-account/margin/accountSummary (HMAC SHA256)
    • POST /sapi/v1/sub-account/futures/enable (HMAC SHA256)
    • GET /sapi/v1/sub-account/futures/account (HMAC SHA256)
    • GET /sapi/v1/sub-account/futures/accountSummary (HMAC SHA256)
    • GET /sapi/v1/sub-account/futures/positionRisk (HMAC SHA256)

**2019-11-04**
  • New sapi endpoints for subaccount wallet.
    • GET /sapi/v1/capital/deposit/subAddress (HMAC SHA256)): fetch subaccount deposit address.
    • GET /sapi/v1/capital/deposit/subHisrec (HMAC SHA256)): fetch subaccount deposit history.

**2019-10-29**
  • New sapi endpoints for wallet.
    • POST /sapi/v1/capital/withdraw/apply (HMAC SHA256): withdraw.
    • Get /sapi/v1/capital/withdraw/history (HMAC SHA256): fetch withdraw history with network.

**2019-10-14**
  • New sapi endpoints for wallet.
    • GET /sapi/v1/capital/config/getall (HMAC SHA256): get all coins' information for user.
    • GET /sapi/v1/capital/deposit/hisrec (HMAC SHA256): fetch deposit history with network.
    • GET /sapi/v1/capital/deposit/address (HMAC SHA256): fetch deposit address with network.

**2019-10-11**
  • Added parameter network in POST /wapi/v3/withdraw.html so that asset can be withdrawed with specific network.

**2019-09-09**
  • New WebSocket streams for bookTickers added: <symbol>@bookTicker and !bookTicker.

**2019-09-03**
  • Faster order book data with 100ms updates: <symbol>@depth@100ms and <symbol>@depth#@100ms
  • Added "Update Speed:" to Websocket Market Streams
  • Removed deprecated v1 endpoints as per previous announcement:
    • GET api/v1/order
    • GET api/v1/openOrders
    • POST api/v1/order
    • DELETE api/v1/order
    • GET api/v1/allOrders
    • GET api/v1/account
    • GET api/v1/myTrades

**2019-08-16**
  • GET api/v1/depth limit of 10000 has been temporarily removed

  • In Q4 2017, the following endpoints were deprecated and removed from the API documentation. They have been permanently removed from the API as of this version. We apologize for the omission from the original changelog:

    • GET api/v1/order
    • GET api/v1/openOrders
    • POST api/v1/order
    • DELETE api/v1/order
    • GET api/v1/allOrders
    • GET api/v1/account
    • GET api/v1/myTrades
  • Streams, endpoints, parameters, payloads, etc. described in the documents in this repository are considered official and supported. The use of any other streams, endpoints, parameters, or payloads, etc. is not supported; use them at your own risk and with no guarantees.


**2019-09-15**Rest API
  • New order type: OCO ("One Cancels the Other")

    • An OCO has 2 orders: (also known as legs in financial terms)

      • STOP_LOSS or STOP_LOSS_LIMIT leg
      • LIMIT_MAKER leg
    • Price Restrictions:

      • SELL Orders : Limit Price > Last Price > Stop Price
      • BUY Orders : Limit Price < Last Price < Stop Price
      • As stated, the prices must "straddle" the last traded price on the symbol. EX: If the last price is 10:
        • A SELL OCO must have the limit price greater than 10, and the stop price less than 10.
        • A BUY OCO must have a limit price less than 10, and the stop price greater than 10.
    • Quantity Restrictions:

      • Both legs must have the same quantity.
      • ICEBERG quantities however, do not have to be the same.
    • Execution Order:

      • If the LIMIT_MAKER is touched, the limit maker leg will be executed first BEFORE canceling the Stop Loss Leg.
      • if the Market Price moves such that the STOP_LOSS or STOP_LOSS_LIMIT will trigger, the Limit Maker leg will be cancelled BEFORE executing the STOP_LOSS Leg.
    • Cancelling an OCO

      • Cancelling either order leg will cancel the entire OCO.
      • The entire OCO can be canceled via the orderListId or the listClientOrderId.
    • New Enums for OCO:

      1. ListStatusType
        • RESPONSE - used when ListStatus is responding to a failed action. (either order list placement or cancellation)
        • EXEC_STARTED - used when an order list has been placed or there is an update to a list's status.
        • ALL_DONE - used when an order list has finished executing and is no longer active.
      2. ListOrderStatus
        • EXECUTING - used when an order list has been placed or there is an update to a list's status.
        • ALL_DONE - used when an order list has finished executing and is no longer active.
        • REJECT - used when ListStatus is responding to a failed action. (either order list placement or cancellation)
      3. ContingencyType
        • OCO - specifies the type of order list.
    • New Endpoints:

      • POST api/v3/order/oco
      • DELETE api/v3/orderList
      • GET api/v3/orderList
  • recvWindow cannot exceed 60000.

  • New intervalLetter values for headers:

    • SECOND => S
    • MINUTE => M
    • HOUR => H
    • DAY => D
  • New Headers X-MBX-USED-WEIGHT-(intervalNum)(intervalLetter) will give your current used request weight for the (intervalNum)(intervalLetter) rate limiter. For example, if there is a one minute request rate weight limiter set, you will get a X-MBX-USED-WEIGHT-1M header in the response. The legacy header X-MBX-USED-WEIGHT will still be returned and will represent the current used weight for the one minute request rate weight limit.

  • New Header X-MBX-ORDER-COUNT-(intervalNum)(intervalLetter)that is updated on any valid order placement and tracks your current order count for the interval; rejected/unsuccessful orders are not guaranteed to have X-MBX-ORDER-COUNT-** headers in the response.

    • Eg. X-MBX-ORDER-COUNT-1S for "orders per 1 second" and X-MBX-ORDER-COUNT-1D for orders per "one day"
  • GET api/v1/depth now supports limit 5000 and 10000; weights are 50 and 100 respectively.

  • GET api/v1/exchangeInfo has a new parameter ocoAllowed.

USER DATA STREAM
  • executionReport event now contains "g" which has the orderListId; it will be set to -1 for non-OCO orders.
  • New Event Type listStatus; listStatus is sent on an update to any OCO order.
  • New Event Type outboundAccountPosition; outboundAccountPosition is sent any time an account's balance changes and contains the assets that could have changed by the event that generated the balance change (a deposit, withdrawal, trade, order placement, or cancelation).
NEW ERRORS
  • -1131 BAD_RECV_WINDOW
    • recvWindow must be less than 60000
  • -1099 Not found, authenticated, or authorized
    • This replaces error code -1999
NEW -2011 ERRORS
  • OCO_BAD_ORDER_PARAMS
    • A parameter for one of the orders is incorrect.
  • OCO_BAD_PRICES
    • The relationship of the prices for the orders is not correct.
  • UNSUPPORTED_ORD_OCO
    • OCO orders are not supported for this symbol.

**2019-03-12**Rest API
  • X-MBX-USED-WEIGHT header added to Rest API responses.
  • Retry-After header added to Rest API 418 and 429 responses.
  • When canceling the Rest API can now return errorCode -1013 OR -2011 if the symbol's status isn't TRADING.
  • api/v1/depth no longer has the ignored and empty [].
  • api/v3/myTrades now returns quoteQty; the price * qty of for the trade.
Websocket streams
  • <symbol>@depth and <symbol>@depthX streams no longer have the ignored and empty [].
System improvements
  • Matching Engine stability/reliability improvements.
  • Rest API performance improvements.

**2018-11-13**Rest API
  • Can now cancel orders through the Rest API during a trading ban.
  • New filters: PERCENT_PRICE, MARKET_LOT_SIZE, MAX_NUM_ICEBERG_ORDERS.
  • Added RAW_REQUESTS rate limit. Limits based on the number of requests over X minutes regardless of weight.
  • /api/v3/ticker/price increased to weight of 2 for a no symbol query.
  • /api/v3/ticker/bookTicker increased weight of 2 for a no symbol query.
  • DELETE /api/v3/order will now return an execution report of the final state of the order.
  • MIN_NOTIONAL filter has two new parameters: applyToMarket (whether or not the filter is applied to MARKET orders) and avgPriceMins (the number of minutes over which the price averaged for the notional estimation).
  • intervalNum added to /api/v1/exchangeInfo limits. intervalNum describes the amount of the interval. For example: intervalNum 5, with interval minute, means "every 5 minutes".
Explanation for the average price calculation:
  1. (qty * price) of all trades / sum of qty of all trades over previous 5 minutes.

  2. If there is no trade in the last 5 minutes, it takes the first trade that happened outside of the 5min window. For example if the last trade was 20 minutes ago, that trade's price is the 5 min average.

  3. If there is no trade on the symbol, there is no average price and market orders cannot be placed. On a new symbol with applyToMarket enabled on the MIN_NOTIONAL filter, market orders cannot be placed until there is at least 1 trade.

  4. The current average price can be checked here: https://api.binance.com/api/v3/avgPrice?symbol=<symbol> For example: https://api.binance.com/api/v3/avgPrice?symbol=BNBUSDT

User data stream
  • Last quote asset transacted quantity (as variable Y) added to execution reports. Represents the lastPrice lastQty (L l).

**2018-07-18**Rest API
  • New filter: ICEBERG_PARTS
  • POST api/v3/order new defaults for newOrderRespType. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK.
  • POST api/v3/order RESULT and FULL responses now have cummulativeQuoteQty
  • GET api/v3/openOrders with no symbol weight reduced to 40.
  • GET api/v3/ticker/24hr with no symbol weight reduced to 40.
  • Max amount of trades from GET /api/v1/trades increased to 1000.
  • Max amount of trades from GET /api/v1/historicalTrades increased to 1000.
  • Max amount of aggregate trades from GET /api/v1/aggTrades increased to 1000.
  • Max amount of aggregate trades from GET /api/v1/klines increased to 1000.
  • Rest API Order lookups now return updateTime which represents the last time the order was updated; time is the order creation time.
  • Order lookup endpoints will now return cummulativeQuoteQty. If cummulativeQuoteQty is < 0, it means the data isn't available for this order at this time.
  • REQUESTS rate limit type changed to REQUEST_WEIGHT. This limit was always logically request weight and the previous name for it caused confusion.
User data stream
  • cummulativeQuoteQty field added to order responses and execution reports (as variable Z). Represents the cummulative amount of the quote that has been spent (with a BUY order) or received (with a SELL order). Historical orders will have a value < 0 in this field indicating the data is not available at this time. cummulativeQuoteQty divided by cummulativeQty will give the average price for an order.
  • O (order creation time) added to execution reports

**2018-01-23**
  • GET /api/v1/historicalTrades weight decreased to 5
  • GET /api/v1/aggTrades weight decreased to 1
  • GET /api/v1/klines weight decreased to 1
  • GET /api/v1/ticker/24hr all symbols weight decreased to number of trading symbols / 2
  • GET /api/v3/allOrders weight decreased to 5
  • GET /api/v3/myTrades weight decreased to 5
  • GET /api/v3/account weight decreased to 5
  • GET /api/v1/depth limit=500 weight decreased to 5
  • GET /api/v1/depth limit=1000 weight decreased to 10
  • -1003 error message updated to direct users to websockets

**2018-01-20**
  • GET /api/v1/ticker/24hr single symbol weight decreased to 1
  • GET /api/v3/openOrders all symbols weight decreased to number of trading symbols / 2
  • GET /api/v3/allOrders weight decreased to 15
  • GET /api/v3/myTrades weight decreased to 15
  • GET /api/v3/order weight decreased to 1
  • myTrades will now return both sides of a self-trade/wash-trade

**2018-01-14**
  • GET /api/v1/aggTrades weight changed to 2
  • GET /api/v1/klines weight changed to 2
  • GET /api/v3/order weight changed to 2
  • GET /api/v3/allOrders weight changed to 20
  • GET /api/v3/account weight changed to 20
  • GET /api/v3/myTrades weight changed to 20
  • GET /api/v3/historicalTrades weight changed to 20

Introduction

API Key Setup#

  • Some endpoints will require an API Key. Please refer to this page regarding API key creation.
  • Once API key is created, it is recommended to set IP restrictions on the key for security reasons.
  • Never share your API key/secret key to ANYONE.

API Key Restrictions#

  • After creating the API key, the default restrictions is Enable Reading.
  • To enable withdrawals via the API, the API key restriction needs to be modified through the Binance UI.

Enabling Accounts#

Spot Account#

A SPOT account is provided by default upon creation of a Binance Account.

Margin Account#

To enable a MARGIN account for Margin Trading, please refer to the Margin Trading Guide

Spot Testnet#

Users can use the SPOT Testnet to practice SPOT trading.

Currently, this is only available via the API.

Please refer to the SPOT Testnet page for more information and how to set up the Testnet API key.

API Library#

Python connector#

This is a lightweight library that works as a connector to Binance public API, written in Python.

https://github.com/binance/binance-connector-python

Node.js connector#

This is a lightweight library that works as a connector to Binance public API, written for Node.js users.

https://github.com/binance/binance-connector-node

Ruby connector#

This is a lightweight library that works as a connector to Binance public API, written for Ruby users.

https://github.com/binance/binance-connector-ruby

DotNET connector#

This is a lightweight library that works as a connector to Binance public API, written for C# users.

https://github.com/binance/binance-connector-dotnet

Java connector#

This is a lightweight library that works as a connector to Binance public API, written for Java users.

https://github.com/binance/binance-connector-java

Postman Collections#

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

This is recommended for new users who want to get a quick-start into using the API.

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

Swagger#

A YAML file with OpenAPI specification on the RESTful API is available to be used, as well as a Swagger UI page for the consulting.

https://github.com/binance/binance-api-swagger

Contact Us#

  • Binance API Telegram Group
    • For any questions in sudden drop in performance with the API and/or Websockets.
    • For any general questions about the API not covered in the documentation.
  • Binance Developers
    • For any questions on your code implementation with the API and/or Websockets.
  • Binance Customer Support
    • For cases such as missing funds, help with 2FA, etc.

General Info

General API Information#

  • The base endpoint is: https://api.binance.com
  • If there are performance issues with the endpoint above, these API clusters are also available:
  • All endpoints return either a JSON object or array.
  • Data is returned in ascending order. Oldest first, newest last.
  • All time and timestamp related fields are in milliseconds.
  • The base endpoint https://data.binance.com can be used to access the following API endpoints that have NONE as security type:
    • GET /api/v3/aggTrades
    • GET /api/v3/avgPrice
    • GET /api/v3/depth
    • GET /api/v3/exchangeInfo
    • GET /api/v3/klines
    • GET /api/v3/ping
    • GET /api/v3/ticker
    • GET /api/v3/ticker/24hr
    • GET /api/v3/ticker/bookTicker
    • GET /api/v3/ticker/price
    • GET /api/v3/time
    • GET /api/v3/trades
    • GET /api/v3/uiKlines

HTTP Return Codes#

  • HTTP 4XX return codes are used for malformed requests; the issue is on the sender's side.
  • HTTP 403 return code is used when the WAF Limit (Web Application Firewall) has been violated.
  • HTTP 409 return code is used when a cancelReplace order partially succeeds. (e.g. if the cancellation of the order fails but the new order placement succeeds.)
  • HTTP 429 return code is used when breaking a request rate limit.
  • HTTP 418 return code is used when an IP has been auto-banned for continuing to send requests after receiving 429 codes.
  • HTTP 5XX return codes are used for internal errors; the issue is on Binance's side. It is important to NOT treat this as a failure operation; the execution status is UNKNOWN and could have been a success.

Error Codes and Messages#

  • If there is an error, the API will return an error with a message of the reason.

The error payload on API and SAPI is as follows:

{  "code": -1121,  "msg": "Invalid symbol."}
  • Specific error codes and messages defined in Error Codes.

General Information on Endpoints#

  • For GET endpoints, parameters must be sent as a query string.
  • For POST, PUT, and DELETE endpoints, the parameters may be sent as a query string or in the request body with content type application/x-www-form-urlencoded. You may mix parameters between both the query string and request body if you wish to do so.
  • Parameters may be sent in any order.
  • If a parameter sent in both the query string and request body, the query string parameter will be used.

LIMITS#

General Info on Limits#

  • The following intervalLetter values for headers:
    • SECOND => S
    • MINUTE => M
    • HOUR => H
    • DAY => D
  • intervalNum describes the amount of the interval. For example, intervalNum 5 with intervalLetter M means "Every 5 minutes".
  • The /api/v3/exchangeInfo rateLimits array contains objects related to the exchange's RAW_REQUESTS, REQUEST_WEIGHT, and ORDERS rate limits. These are further defined in the ENUM definitions section under Rate limiters (rateLimitType).
  • A 429 will be returned when either rate limit is violated.

IP Limits#

  • Every request will contain X-MBX-USED-WEIGHT-(intervalNum)(intervalLetter) in the response headers which has the current used weight for the IP for all request rate limiters defined.
  • Each route has a weight which determines for the number of requests each endpoint counts for. Heavier endpoints and endpoints that do operations on multiple symbols will have a heavier weight.
  • When a 429 is received, it's your obligation as an API to back off and not spam the API.
  • Repeatedly violating rate limits and/or failing to back off after receiving 429s will result in an automated IP ban (HTTP status 418).
  • IP bans are tracked and scale in duration for repeat offenders, from 2 minutes to 3 days.
  • A Retry-After header is sent with a 418 or 429 responses and will give the number of seconds required to wait, in the case of a 429, to prevent a ban, or, in the case of a 418, until the ban is over.
  • The limits on the API are based on the IPs, not the API keys.

Order Rate Limits#

  • Every successful order response will contain a X-MBX-ORDER-COUNT-(intervalNum)(intervalLetter) header which has the current order count for the account for all order rate limiters defined.

  • When the order count exceeds the limit, you will receive a 429 error without the Retry-After header. Please check the Order Rate Limit rules using GET api/v3/exchangeInfo and wait for reactivation accordingly.

  • Rejected/unsuccessful orders are not guaranteed to have X-MBX-ORDER-COUNT-** headers in the response.

  • The order rate limit is counted against each account.

  • To monitor order count usage, refer to GET api/v3/rateLimit/order

Websocket Limits#

  • WebSocket connections have a limit of 5 incoming messages per second. A message is considered:
    • A PING frame
    • A PONG frame
    • A JSON controlled message (e.g. subscribe, unsubscribe)
  • A connection that goes beyond the limit will be disconnected; IPs that are repeatedly disconnected may be banned.
  • A single connection can listen to a maximum of 1024 streams.

/api/ and /sapi/ Limit Introduction#

The /api/* and /sapi/* endpoints adopt either of two access limiting rules, IP limits or UID (account) limits.

  • Endpoints related to /api/*:

    • According to the two modes of IP and UID (account) limit, each are independent.
    • Endpoints share the 1200 per minute limit based on IP.
    • Responses contain the header X-MBX-USED-WEIGHT-(intervalNum)(intervalLetter), defining the weight used by the current IP.
    • Successful order responses contain the header X-MBX-ORDER-COUNT-(intervalNum)(intervalLetter), defining the order limit used by the UID.
  • Endpoints related to /sapi/*:

    • Endpoints are marked according to IP or UID limit and their corresponding weight value.
    • Each endpoint with IP limits has an independent 12000 per minute limit.
    • Each endpoint with UID limits has an independent 180000 per minute limit.
    • Responses from endpoints with IP limits contain the header X-SAPI-USED-IP-WEIGHT-1M, defining the weight used by the current IP.
    • Responses from endpoints with UID limits contain the header X-SAPI-USED-UID-WEIGHT-1M, defining the weight used by the current UID.

Data Sources#

  • The API system is asynchronous, so some delay in the response is normal and expected.
  • Each endpoint has a data source indicating where the data is being retrieved, and thus which endpoints have the most up-to-date response.

These are the three sources, ordered by which is has the most up-to-date response to the one with potential delays in updates.

  • Matching Engine - the data is from the matching Engine
  • Memory - the data is from a server's local or external memory
  • Database - the data is taken directly from a database

Endpoint security type#

  • Each endpoint has a security type that determines how you will interact with it. This is stated next to the NAME of the endpoint.
    • If no security type is stated, assume the security type is NONE.
  • API-keys are passed into the Rest API via the X-MBX-APIKEY header.
  • API-keys and secret-keys are case sensitive.
  • API-keys can be configured to only access certain types of secure endpoints. For example, one API-key could be used for TRADE only, while another API-key can access everything except for TRADE routes.
  • By default, API-keys can access all secure routes.
Security TypeDescription
NONEEndpoint can be accessed freely.
TRADEEndpoint requires sending a valid API-Key and signature.
MARGINEndpoint requires sending a valid API-Key and signature.
USER_DATAEndpoint requires sending a valid API-Key and signature.
USER_STREAMEndpoint requires sending a valid API-Key.
MARKET_DATAEndpoint requires sending a valid API-Key.
  • TRADE, MARGIN and USER_DATA endpoints are SIGNED endpoints.

SIGNED (TRADE, USER_DATA, AND MARGIN) Endpoint security#

  • SIGNED endpoints require an additional parameter, signature, to be sent in the query string or request body.
  • Endpoints use HMAC SHA256 signatures. The HMAC SHA256 signature is a keyed HMAC SHA256 operation. Use your secretKey as the key and totalParams as the value for the HMAC operation.
  • The signature is not case sensitive.
  • totalParams is defined as the query string concatenated with the request body.

Timing security#

  • A SIGNED endpoint also requires a parameter, timestamp, to be sent which should be the millisecond timestamp of when the request was created and sent.
  • An additional parameter, recvWindow, may be sent to specify the number of milliseconds after timestamp the request is valid for. If recvWindow is not sent, it defaults to 5000.

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 /api/v3/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.

KeyValue
apiKeyvmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A
secretKeyNhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j
ParameterValue
symbolLTCBTC
sideBUY
typeLIMIT
timeInForceGTC
quantity1
price0.1
recvWindow5000
timestamp1499827319559

Example 1: As a request body

Example 1

HMAC SHA256 signature:

    $ echo -n "symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559" | openssl dgst -sha256 -hmac "NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j"    (stdin)= c8db56825ae71d6d79447849e617115f4a920fa2acdcab2b053c4b2838bd6b71

curl command:

    (HMAC SHA256)    $ curl -H "X-MBX-APIKEY: vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A" -X POST 'https://api.binance.com/api/v3/order' -d 'symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559&signature=c8db56825ae71d6d79447849e617115f4a920fa2acdcab2b053c4b2838bd6b71'    
  • requestBody:

symbol=LTCBTC
&side=BUY
&type=LIMIT
&timeInForce=GTC
&quantity=1
&price=0.1
&recvWindow=5000
×tamp=1499827319559

Example 2: As a query string

Example 2

HMAC SHA256 signature:

    $ echo -n "symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559" | openssl dgst -sha256 -hmac "NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j"    (stdin)= c8db56825ae71d6d79447849e617115f4a920fa2acdcab2b053c4b2838bd6b71    

curl command:

    (HMAC SHA256)   $ curl -H "X-MBX-APIKEY: vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A" -X POST 'https://api.binance.com/api/v3/order?symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559&signature=c8db56825ae71d6d79447849e617115f4a920fa2acdcab2b053c4b2838bd6b71'    
  • queryString:

symbol=LTCBTC
&side=BUY
&type=LIMIT
&timeInForce=GTC
&quantity=1
&price=0.1
&recvWindow=5000
×tamp=1499827319559

Example 3: Mixed query string and request body

Example 3

HMAC SHA256 signature:

   $ echo -n "symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTCquantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559" | openssl dgst -sha256 -hmac "NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j"    (stdin)= 0fd168b8ddb4876a0358a8d14d0c9f3da0e9b20c5d52b2a00fcf7d1c602f9a77    

curl command:

    (HMAC SHA256)    $ curl -H "X-MBX-APIKEY: vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A" -X POST 'https://api.binance.com/api/v3/order?symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC' -d 'quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559&signature=0fd168b8ddb4876a0358a8d14d0c9f3da0e9b20c5d52b2a00fcf7d1c602f9a77'
  • queryString:

symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC

  • requestBody:

quantity=1&price=0.1&recvWindow=5000×tamp=1499827319559

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

SIGNED Endpoint Example for POST /api/v3/order - RSA Keys#

  • This will be a step by step process how to create the signature payload to send a valid signed payload.
  • We support PKCS#8 currently.
  • To get your API key, you need to upload your RSA Public Key to your account and a corresponding API key will be provided for you.

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

KeyValue
apiKeyCAvIjXy3F44yW6Pou5k8Dy1swsYDWJZLeoK2r8G4cFDnE9nosRppc2eKc1T8TRTQ
ParameterValue
symbolBTCUSDT
sideSELL
typeLIMIT
timeInForceGTC
quantity1
price0.2
recvWindow5000
timestamp1668481559918

Signature payload (with the listed parameters):

symbol=BTCUSDT&side=SELL&type=LIMIT&timeInForce=GTC&quantity=1&price=0.2&timestamp=1668481559918recvWindow=5000

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 '?symbol=BTCUSDT&side=SELL&type=LIMIT&timeInForce=GTC&quantity=1&price=0.2&timestamp=1668481559918recvWindow=5000' | 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 '?symbol=BTCUSDT&side=SELL&type=LIMIT&timeInForce=GTC&quantity=1&price=0.2&timestamp=1668481559918recvWindow=5000' | openssl dgst -keyform PEM -sha256 -sign ./test-prv-key.pem | openssl enc -base64HZ8HOjiJ1s/igS9JA+n7+7Ti/ihtkRF5BIWcPIEluJP6tlbFM/Bf44LfZka/iemtahZAZzcO9TnI5uaXh3++lrqtNonCwp6/245UFWkiW1elpgtVAmJPbogcAv6rSlokztAfWk296ZJXzRDYAtzGH0gq7CgSJKfH+XxaCmR0WcvlKjNQnp12/eKXJYO4tDap8UCBLuyxDnR7oJKLHQHJLP0r0EAVOOSIbrFang/1WOq+Jaq4Efc4XpnTgnwlBbWTmhWDR1pvS9iVEzcSYLHT/fNnMRxFc7u+j3qI//5yuGuu14KR0MuQKKCSpViieD+fIti46sxPTsjSemoUKp0oXA==

2.3 - Encode output as base64 string.

Step 2.4

$  echo -n '?symbol=BTCUSDT&side=SELL&type=LIMIT&timeInForce=GTC&quantity=1&price=0.2&timestamp=1668481559918recvWindow=5000' | openssl dgst -keyform PEM -sha256 -sign ./test-prv-key.pem | openssl enc -base64 | tr -d '\n'HZ8HOjiJ1s/igS9JA+n7+7Ti/ihtkRF5BIWcPIEluJP6tlbFM/Bf44LfZka/iemtahZAZzcO9TnI5uaXh3++lrqtNonCwp6/245UFWkiW1elpgtVAmJPbogcAv6rSlokztAfWk296ZJXzRDYAtzGH0gq7CgSJKfH+XxaCmR0WcvlKjNQnp12/eKXJYO4tDap8UCBLuyxDnR7oJKLHQHJLP0r0EAVOOSIbrFang/1WOq+Jaq4Efc4XpnTgnwlBbWTmhWDR1pvS9iVEzcSYLHT/fNnMRxFc7u+j3qI//5yuGuu14KR0MuQKKCSpViieD+fIti46sxPTsjSemoUKp0oXA==

2.4 - Delete any newlines in the signature.

Step 2.5

HZ8HOjiJ1s%2FigS9JA%2Bn7%2B7Ti%2FihtkRF5BIWcPIEluJP6tlbFM%2FBf44LfZka%2FiemtahZAZzcO9TnI5uaXh3%2B%2BlrqtNonCwp6%2F245UFWkiW1elpgtVAmJPbogcAv6rSlokztAfWk296ZJXzRDYAtzGH0gq7CgSJKfH%2BXxaCmR0WcvlKjNQnp12%2FeKXJYO4tDap8UCBLuyxDnR7oJKLHQHJLP0r0EAVOOSIbrFang%2F1WOq%2BJaq4Efc4XpnTgnwlBbWTmhWDR1pvS9iVEzcSYLHT%2FfNnMRxFc7u%2Bj3qI%2F%2F5yuGuu14KR0MuQKKCSpViieD%2BfIti46sxPTsjSemoUKp0oXA%3D%3D%5B

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: CAvIjXy3F44yW6Pou5k8Dy1swsYDWJZLeoK2r8G4cFDnE9nosRppc2eKc1T8TRTQ" -X POST 'https://api.binance.com/api/v3/order?symbol=BTCUSDT&side=SELL&type=LIMIT&timeInForce=GTC&quantity=1&price=0.2&timestamp=1668481559918recvWindow=5000&signature=HZ8HOjiJ1s%2FigS9JA%2Bn7%2B7Ti%2FihtkRF5BIWcPIEluJP6tlbFM%2FBf44LfZka%2FiemtahZAZzcO9TnI5uaXh3%2B%2BlrqtNonCwp6%2F245UFWkiW1elpgtVAmJPbogcAv6rSlokztAfWk296ZJXzRDYAtzGH0gq7CgSJKfH%2BXxaCmR0WcvlKjNQnp12%2FeKXJYO4tDap8UCBLuyxDnR7oJKLHQHJLP0r0EAVOOSIbrFang%2F1WOq%2BJaq4Efc4XpnTgnwlBbWTmhWDR1pvS9iVEzcSYLHT%2FfNnMRxFc7u%2Bj3qI%2F%2F5yuGuu14KR0MuQKKCSpViieD%2BfIti46sxPTsjSemoUKp0oXA%3D%3D%5B'

2.6 - curl command

Bash script

#!/usr/bin/env bash
# Set up authentication:apiKey="CAvIjXy3F44yW6Pou5k8Dy1swsYDWJZLeoK2r8G4cFDnE9nosRppc2eKc1T8TRTQ"   ### REPLACE THIS WITH YOUR API KEY
# Set up the request:apiMethod="POST"apiCall="v3/order"apiParams="symbol=BTCUSDT&side=SELL&type=LIMIT&timeInForce=GTC&quantity=1&price=0.2&recvWindow=5000"

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://api.binance.com/api/$apiCall?$paramsWithTs&signature=$signature"

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


Public API Definitions#

Terminology#

These terms will be used throughout the documentation, so it is recommended especially for new users to read to help their understanding of the API.

  • base asset refers to the asset that is the quantity of a symbol. For the symbol BTCUSDT, BTC would be the base asset.
  • quote asset refers to the asset that is the price of a symbol. For the symbol BTCUSDT, USDT would be the quote asset.

ENUM definitions#

Symbol status (status):

  • PRE_TRADING
  • TRADING
  • POST_TRADING
  • END_OF_DAY
  • HALT
  • AUCTION_MATCH
  • BREAK

Account and Symbol Permissions (permissions):

  • SPOT
  • MARGIN
  • LEVERAGED
  • TRD_GRP_002
  • TRD_GRP_003
  • TRD_GRP_004
  • TRD_GRP_005

Order status (status):

StatusDescription
NEWThe order has been accepted by the engine.
PARTIALLY_FILLEDA part of the order has been filled.
FILLEDThe order has been completed.
CANCELEDThe order has been canceled by the user.
PENDING_CANCELCurrently unused
REJECTEDThe order was not accepted by the engine and not processed.
EXPIREDThe order was canceled according to the order type's rules (e.g. LIMIT FOK orders with no fill, LIMIT IOC or MARKET orders that partially fill) or by the exchange, (e.g. orders canceled during liquidation, orders canceled during maintenance)

OCO Status (listStatusType):

StatusDescription
RESPONSEThis is used when the ListStatus is responding to a failed action. (E.g. Orderlist placement or cancellation)
EXEC_STARTEDThe order list has been placed or there is an update to the order list status.
ALL_DONEThe order list has finished executing and thus no longer active.

OCO Order Status (listOrderStatus):

StatusDescription
EXECUTINGEither an order list has been placed or there is an update to the status of the list.
ALL_DONEAn order list has completed execution and thus no longer active.
REJECTThe List Status is responding to a failed action either during order placement or order canceled.)

ContingencyType

  • OCO

Order types (orderTypes, type):

  • LIMIT
  • MARKET
  • STOP_LOSS
  • STOP_LOSS_LIMIT
  • TAKE_PROFIT
  • TAKE_PROFIT_LIMIT
  • LIMIT_MAKER

Order Response Type (newOrderRespType):

  • ACK
  • RESULT
  • FULL

Order side (side):

  • BUY
  • SELL

Time in force (timeInForce):

This sets how long an order will be active before expiration.

StatusDescription
GTCGood Til Canceled
An order will be on the book unless the order is canceled.
IOCImmediate Or Cancel
An order will try to fill the order as much as it can before the order expires.
FOKFill or Kill
An order will expire if the full order cannot be filled upon execution.

Kline/Candlestick chart intervals:

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

  • 1s
  • 1m
  • 3m
  • 5m
  • 15m
  • 30m
  • 1h
  • 2h
  • 4h
  • 6h
  • 8h
  • 12h
  • 1d
  • 3d
  • 1w
  • 1M

Rate limiters (rateLimitType)

REQUEST_WEIGHT

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

ORDERS

    {      "rateLimitType": "ORDERS",      "interval": "SECOND",      "intervalNum": 10,      "limit": 100    },    {      "rateLimitType": "ORDERS",      "interval": "DAY",      "intervalNum": 1,      "limit": 200000    }

RAW_REQUESTS

    {      "rateLimitType": "RAW_REQUESTS",      "interval": "MINUTE",      "intervalNum": 5,      "limit": 5000    }
  • REQUEST_WEIGHT

  • ORDERS

  • RAW_REQUESTS

Rate limit intervals (interval)

  • SECOND
  • MINUTE
  • DAY

Filters#

Filters define trading rules on a symbol or an exchange. Filters come in two forms: symbol filters and exchange filters.

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:

  • minPrice defines the minimum price/stopPrice allowed; disabled on minPrice == 0.
  • maxPrice defines the maximum price/stopPrice allowed; disabled on maxPrice == 0.
  • tickSize defines the intervals that a price/stopPrice can be increased/decreased by; disabled on tickSize == 0.

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:

  • price >= minPrice
  • price <= maxPrice
  • price % tickSize == 0

PERCENT_PRICE#

ExchangeInfo format:

  {    "filterType": "PERCENT_PRICE",    "multiplierUp": "1.3000",    "multiplierDown": "0.7000",    "avgPriceMins": 5  }

The PERCENT_PRICE filter defines the valid range for the price based on the average of the previous trades. avgPriceMins is the number of minutes the average price is calculated over. 0 means the last price is used.

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

  • price <= weightedAveragePrice * multiplierUp
  • price >= weightedAveragePrice * multiplierDown

PERCENT_PRICE_BY_SIDE#

ExchangeInfo format:

    {          "filterType": "PERCENT_PRICE_BY_SIDE",          "bidMultiplierUp": "1.2",          "bidMultiplierDown": "0.2",          "askMultiplierUp": "5",          "askMultiplierDown": "0.8",          "avgPriceMins": 1    }

The PERCENT_PRICE_BY_SIDE filter defines the valid range for the price based on the average of the previous trades.
avgPriceMins is the number of minutes the average price is calculated over. 0 means the last price is used.

There is a different range depending on whether the order is placed on the BUY side or the SELL side.

Buy orders will succeed on this filter if:

  • Order price <= weightedAveragePrice * bidMultiplierUp
  • Order price >= weightedAveragePrice * bidMultiplierDown

Sell orders will succeed on this filter if:

  • Order Price <= weightedAveragePrice * askMultiplierUp
  • Order Price >= weightedAveragePrice * askMultiplierDown

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:

  • minQty defines the minimum quantity/icebergQty allowed.
  • maxQty defines the maximum quantity/icebergQty allowed.
  • stepSize defines the intervals that a quantity/icebergQty can be increased/decreased by.

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

  • quantity >= minQty
  • quantity <= maxQty
  • (quantity-minQty) % stepSize == 0

MIN_NOTIONAL#

ExchangeInfo format:

  {    "filterType": "MIN_NOTIONAL",    "minNotional": "0.00100000",    "applyToMarket": true,    "avgPriceMins": 5  }

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. If the order is an Algo order (e.g. STOP_LOSS_LIMIT), then the notional value of the stopPrice quantity will also be evaluated. If the order is an Iceberg Order, then the notional value of the price * icebergQty will also be evaluated. applyToMarket determines whether or not the MIN_NOTIONAL filter will also be applied to MARKET orders. Since MARKET orders have no price, the average price is used over the last avgPriceMins minutes. avgPriceMins is the number of minutes the average price is calculated over. 0 means the last price is used.

NOTIONAL#

ExchangeInfo format:

{   "filterType": "NOTIONAL",   "minNotional": "10.00000000",   "applyMinToMarket": false,   "maxNotional": "10000.00000000",   "applyMaxToMarket": false,   "avgPriceMins": 5}

The NOTIONAL filter defines the acceptable notional range allowed for an order on a symbol.

applyMinToMarket determines whether the minNotional will be applied to MARKET orders.
applyMaxToMarket determines whether the maxNotional will be applied to MARKET orders.

In order to pass this filter, the notional (price * quantity) has to pass the following conditions:

  • price * quantity <= maxNotional
  • price * quantity >= minNotional

For MARKET orders, the average price used over the last avgPriceMins minutes will be used for calculation.
If the avgPriceMins is 0, then the last price will be used.

ICEBERG_PARTS#

ExchangeInfo format:

  {    "filterType": "ICEBERG_PARTS",    "limit": 10  }

The ICEBERG_PARTS filter defines the maximum parts an iceberg order can have. The number of ICEBERG_PARTS is defined as CEIL(qty / icebergQty).

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:

  • minQty defines the minimum quantity allowed.
  • maxQty defines the maximum quantity allowed.
  • stepSize defines the intervals that a quantity can be increased/decreased by.

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

  • quantity >= minQty
  • quantity <= maxQty
  • (quantity-minQty) % stepSize == 0

MAX_NUM_ORDERS#

ExchangeInfo format:

  {    "filterType": "MAX_NUM_ORDERS",    "maxNumOrders": 25  }

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",    "maxNumAlgoOrders": 5  }

The MAX_NUM_ALGO_ORDERS filter defines the maximum number of "algo" orders an account is allowed to have open on a symbol. "Algo" orders are STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, and TAKE_PROFIT_LIMIT orders.

MAX_NUM_ICEBERG_ORDERS#

The MAX_NUM_ICEBERG_ORDERS filter defines the maximum number of ICEBERG orders an account is allowed to have open on a symbol. An ICEBERG order is any order where the icebergQty is > 0.

ExchangeInfo format:

  {    "filterType": "MAX_NUM_ICEBERG_ORDERS",    "maxNumIcebergOrders": 5  }

MAX_POSITION#

The MAX_POSITION filter defines the allowed maximum position an account can have on the base asset of a symbol. An account's position defined as the sum of the account's:

  1. free balance of the base asset
  2. locked balance of the base asset
  3. sum of the qty of all open BUY orders

BUY orders will be rejected if the account's position is greater than the maximum position allowed.

If an order's quantity can cause the position to overflow, this will also fail the MAX_POSITION filter.

ExchangeInfo format:

{  "filterType":"MAX_POSITION",  "maxPosition":"10.00000000"}

TRAILING_DELTA#

ExchangeInfo format:

    {          "filterType": "TRAILING_DELTA",          "minTrailingAboveDelta": 10,          "maxTrailingAboveDelta": 2000,          "minTrailingBelowDelta": 10,          "maxTrailingBelowDelta": 2000   }

The TRAILING_DELTA filter defines the minimum and maximum value for the parameter trailingDelta.

In order for a trailing stop order to pass this filter, the following must be true:

For STOP_LOSS BUY, STOP_LOSS_LIMIT_BUY,TAKE_PROFIT SELL and TAKE_PROFIT_LIMIT SELL orders:

  • trailingDelta >= minTrailingAboveDelta
  • trailingDelta <= maxTrailingAboveDelta

For STOP_LOSS SELL, STOP_LOSS_LIMIT SELL, TAKE_PROFIT BUY, and TAKE_PROFIT_LIMIT BUY orders:

  • trailingDelta >= minTrailingBelowDelta
  • trailingDelta <= maxTrailingBelowDelta

Exchange Filters#

EXCHANGE_MAX_NUM_ORDERS#

ExchangeInfo format:

  {    "filterType": "EXCHANGE_MAX_NUM_ORDERS",    "maxNumOrders": 1000  }

The EXCHANGE_MAX_NUM_ORDERS filter defines the maximum number of orders an account is allowed to have open on the exchange. Note that both "algo" orders and normal orders are counted for this filter.

EXCHANGE_MAX_NUM_ALGO_ORDERS#

ExchangeInfo format:

  {    "filterType": "EXCHANGE_MAX_NUM_ALGO_ORDERS",    "maxNumAlgoOrders": 200  }

The EXCHANGE_MAX_NUM_ALGO_ORDERS filter defines the maximum number of "algo" orders an account is allowed to have open on the exchange. "Algo" orders are STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, and TAKE_PROFIT_LIMIT orders.

EXCHANGE_MAX_NUM_ICEBERG_ORDERS#

The EXCHANGE_MAX_NUM_ICEBERG_ORDERS filter defines the maximum number of iceberg orders an account is allowed to have open on the exchange.

ExchangeInfo format:

{  "filterType": "EXCHANGE_MAX_NUM_ICEBERG_ORDERS",  "maxNumIcebergOrders": 10000}

Wallet Endpoints

System Status (System)#

Response

{     "status": 0,              // 0: normal,1:system maintenance    "msg": "normal"           // "normal", "system_maintenance"}

GET /sapi/v1/system/status

Fetch system status.

Weight(IP): 1

All Coins' Information (USER_DATA)#

Get information of coins (available for deposit and withdraw) for user.

Response:

[    {        "coin": "BTC",        "depositAllEnable": true,        "free": "0.08074558",        "freeze": "0.00000000",        "ipoable": "0.00000000",        "ipoing": "0.00000000",        "isLegalMoney": false,        "locked": "0.00000000",        "name": "Bitcoin",        "networkList": [            {                "addressRegex": "^(bnb1)[0-9a-z]{38}$",                "coin": "BTC",                "depositDesc": "Wallet Maintenance, Deposit Suspended", // shown only when "depositEnable" is false.                "depositEnable": false,                "isDefault": false,                        "memoRegex": "^[0-9A-Za-z\\-_]{1,120}$",                "minConfirm": 1,  // min number for balance confirmation                "name": "BEP2",                "network": "BNB",                            "resetAddressStatus": false,                "specialTips": "Both a MEMO and an Address are required to successfully deposit your BEP2-BTCB tokens to Binance.",                "unLockConfirm": 0,  // confirmation number for balance unlock                 "withdrawDesc": "Wallet Maintenance, Withdrawal Suspended", // shown only when "withdrawEnable" is false.                "withdrawEnable": false,                "withdrawFee": "0.00000220",                "withdrawIntegerMultiple": "0.00000001",                "withdrawMax": "9999999999.99999999",                "withdrawMin": "0.00000440",                "sameAddress": true,  // If the coin needs to provide memo to withdraw                "estimatedArrivalTime": 25,                "busy": false            },            {                "addressRegex": "^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$|^(bc1)[0-9A-Za-z]{39,59}$",                "coin": "BTC",                "depositEnable": true,                "isDefault": true,                "memoRegex": "",                "minConfirm": 1,                 "name": "BTC",                "network": "BTC",                "resetAddressStatus": false,                "specialTips": "",                "unLockConfirm": 2,                "withdrawEnable": true,                "withdrawFee": "0.00050000",                "withdrawIntegerMultiple": "0.00000001",                "withdrawMax": "750",                "withdrawMin": "0.00100000",                "sameAddress": false,                "estimatedArrivalTime": 25,                "busy": false            }        ],        "storage": "0.00000000",        "trading": true,        "withdrawAllEnable": true,        "withdrawing": "0.00000000"    }]

GET /sapi/v1/capital/config/getall (HMAC SHA256)

Weight(IP): 10

Parameters:

NameTypeMandatoryDescription
recvWindowLONGNO
timestampLONGYES

Daily Account Snapshot (USER_DATA)#

Response:

{   "code":200, // 200 for success; others are error codes   "msg":"", // error message   "snapshotVos":[      {         "data":{            "balances":[               {                  "asset":"BTC",                  "free":"0.09905021",                  "locked":"0.00000000"               },               {                  "asset":"USDT",                  "free":"1.89109409",                  "locked":"0.00000000"               }            ],            "totalAssetOfBtc":"0.09942700"         },         "type":"spot",         "updateTime":1576281599000      }   ]}

OR

{   "code":200, // 200 for success; others are error codes   "msg":"", // error message   "snapshotVos":[      {         "data":{            "marginLevel":"2748.02909813",            "totalAssetOfBtc":"0.00274803",            "totalLiabilityOfBtc":"0.00000100",            "totalNetAssetOfBtc":"0.00274750",            "userAssets":[               {                  "asset":"XRP",                  "borrowed":"0.00000000",                  "free":"1.00000000",                  "interest":"0.00000000",                  "locked":"0.00000000",                  "netAsset":"1.00000000"               }            ]         },         "type":"margin",         "updateTime":1576281599000      }   ]}

OR

{   "code":200, // 200 for success; others are error codes   "msg":"", // error message   "snapshotVos":[      {         "data":{            "assets":[               {                  "asset":"USDT",                  "marginBalance":"118.99782335", // Not real-time data, can ignore                  "walletBalance":"120.23811389"               }            ],            "position":[               {                  "entryPrice":"7130.41000000",                  "markPrice":"7257.66239673",                  "positionAmt":"0.01000000",                  "symbol":"BTCUSDT",                  "unRealizedProfit":"1.24029054"  // Only show the value at the time of opening the position               }            ]         },         "type":"futures",         "updateTime":1576281599000      }   ]}

GET /sapi/v1/accountSnapshot (HMAC SHA256)

Weight(IP): 2400

Parameters:

NameTypeMandatoryDescription
typeSTRINGYES"SPOT", "MARGIN", "FUTURES"
startTimeLONGNO
endTimeLONGNO
limitINTNOmin 7, max 30, default 7
recvWindowLONGNO
timestampLONGYES
  • The query time period must be less then 30 days
  • Support query within the last one month only
  • If startTimeand endTime not sent, return records of the last 7 days by default

Disable Fast Withdraw Switch (USER_DATA)#

Response:

{}

POST /sapi/v1/account/disableFastWithdrawSwitch (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
recvWindowLONGNO
timestampLONGYES
  • Caution:

    This request will disable fastwithdraw switch under your account.
    You need to enable "trade" option for the api key which requests this endpoint.

Enable Fast Withdraw Switch (USER_DATA)#

Response:

{}

POST /sapi/v1/account/enableFastWithdrawSwitch (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
recvWindowLONGNO
timestampLONGYES
  • This request will enable fastwithdraw switch under your account.
    You need to enable "trade" option for the api key which requests this endpoint.
  • When Fast Withdraw Switch is on, transferring funds to a Binance account will be done instantly. There is no on-chain transaction, no transaction ID and no withdrawal fee.

Withdraw(USER_DATA)#

Response:

{    "id":"7213fea8e94b4a5593d507237e5a555b"}

POST /sapi/v1/capital/withdraw/apply (HMAC SHA256)

Submit a withdraw request.

Weight(UID): 600

Parameters:

NameTypeMandatoryDescription
coinSTRINGYES
withdrawOrderIdSTRINGNOclient id for withdraw
networkSTRINGNO
addressSTRINGYES
addressTagSTRINGNOSecondary address identifier for coins like XRP,XMR etc.
amountDECIMALYES
transactionFeeFlagBOOLEANNOWhen making internal transfer, true for returning the fee to the destination account; false for returning the fee back to the departure account. Default false.
nameSTRINGNODescription of the address. Space in name should be encoded into %20.
walletTypeINTEGERNOThe wallet type for withdraw,0-spot wallet ,1-funding wallet. Default walletType is the current "selected wallet" under wallet->Fiat and Spot/Funding->Deposit
recvWindowLONGNO
timestampLONGYES
  • If network not send, return with default network of the coin.
  • You can get network and isDefault in networkList of a coin in the response of Get /sapi/v1/capital/config/getall (HMAC SHA256).

Deposit History (supporting network) (USER_DATA)#

Response:

[    {        "id": "769800519366885376",        "amount": "0.001",        "coin": "BNB",        "network": "BNB",        "status": 0,        "address": "bnb136ns6lfw4zs5hg4n85vdthaad7hq5m4gtkgf23",        "addressTag": "101764890",        "txId": "98A3EA560C6B3336D348B6C83F0F95ECE4F1F5919E94BD006E5BF3BF264FACFC",        "insertTime": 1661493146000,        "transferType": 0,        "confirmTimes": "1/1",        "unlockConfirm": 0,        "walletType": 0    },    {        "id": "769754833590042625",        "amount":"0.50000000",        "coin":"IOTA",        "network":"IOTA",        "status":1,        "address":"SIZ9VLMHWATXKV99LH99CIGFJFUMLEHGWVZVNNZXRJJVWBPHYWPPBOSDORZ9EQSHCZAMPVAPGFYQAUUV9DROOXJLNW",        "addressTag":"",        "txId":"ESBFVQUTPIWQNJSPXFNHNYHSQNTGKRVKPRABQWTAXCDWOAKDKYWPTVG9BGXNVNKTLEJGESAVXIKIZ9999",        "insertTime":1599620082000,        "transferType":0,        "confirmTimes": "1/1",        "unlockConfirm": 0,        "walletType": 0    }]

GET /sapi/v1/capital/deposit/hisrec (HMAC SHA256)

Fetch deposit history.

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
coinSTRINGNO
statusINTNO0(0:pending,6: credited but cannot withdraw, 1:success)
startTimeLONGNODefault: 90 days from current timestamp
endTimeLONGNODefault: present timestamp
offsetINTNODefault:0
limitINTNODefault:1000, Max:1000
recvWindowLONGNO
timestampLONGYES
txIdSTRINGNO
  • Please notice the default startTime and endTime to make sure that time interval is within 0-90 days.
  • If both startTime and endTime are sent, time between startTime and endTime must be less than 90 days.

Withdraw History (supporting network) (USER_DATA)#

Response:

[  {    "id": "b6ae22b3aa844210a7041aee7589627c",  // Withdrawal id in Binance    "amount": "8.91000000",   // withdrawal amount    "transactionFee": "0.004", // transaction fee    "coin": "USDT",    "status": 6,    "address": "0x94df8b352de7f46f64b01d3666bf6e936e44ce60",    "txId": "0xb5ef8c13b968a406cc62a93a8bd80f9e9a906ef1b3fcf20a2e48573c17659268"   // withdrawal transaction id    "applyTime": "2019-10-12 11:12:02",  // UTC time    "network": "ETH",    "transferType": 0 // 1 for internal transfer, 0 for external transfer       "withdrawOrderId": "WITHDRAWtest123", // // will not be returned if there's no withdrawOrderId for this withdraw.    "info": "The address is not valid. Please confirm with the recipient",  // reason for withdrawal failure    "confirmNo":3,  // confirm times for withdraw    "walletType": 1,  //1: Funding Wallet 0:Spot Wallet    "txKey": ""  },  {    "id": "156ec387f49b41df8724fa744fa82719",    "amount": "0.00150000",    "transactionFee": "0.004",    "coin": "BTC",    "status": 6,    "address": "1FZdVHtiBqMrWdjPyRPULCUceZPJ2WLCsB",    "txId": "60fd9007ebfddc753455f95fafa808c4302c836e4d1eebc5a132c36c1d8ac354"    "applyTime": "2019-09-24 12:43:45",    "network": "BTC",    "transferType": 0,     "info": "",    "confirmNo": 2,    "walletType": 1,    "txKey": ""  }]

GET /sapi/v1/capital/withdraw/history (HMAC SHA256)

Fetch withdraw history.

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
coinSTRINGNO
withdrawOrderIdSTRINGNO
statusINTNO0(0:Email Sent,1:Cancelled 2:Awaiting Approval 3:Rejected 4:Processing 5:Failure 6:Completed)
offsetINTNO
limitINTNODefault: 1000, Max: 1000
startTimeLONGNODefault: 90 days from current timestamp
endTimeLONGNODefault: present timestamp
recvWindowLONGNO
timestampLONGYES
  • network may not be in the response for old withdraw.
  • Please notice the default startTime and endTime to make sure that time interval is within 0-90 days.
  • If both startTime and endTimeare sent, time between startTimeand endTimemust be less than 90 days.
  • If withdrawOrderId is sent, time between startTime and endTime must be less than 7 days.
  • If withdrawOrderId is sent, startTime and endTime are not sent, will return last 7 days records by default.

Deposit Address (supporting network) (USER_DATA)#

Response:

{    "address": "1HPn8Rx2y6nNSfagQBKy27GB99Vbzg89wv",    "coin": "BTC",    "tag": "",    "url": "https://btc.com/1HPn8Rx2y6nNSfagQBKy27GB99Vbzg89wv"}

GET /sapi/v1/capital/deposit/address (HMAC SHA256)

Fetch deposit address with network.

Weight(IP): 10

Parameters:

NameTypeMandatoryDescription
coinSTRINGYES
networkSTRINGNO
recvWindowLONGNO
timestampLONGYES
  • If network is not send, return with default network of the coin.
  • You can get network and isDefault in networkList in the response of Get /sapi/v1/capital/config/getall (HMAC SHA256).

Account Status (USER_DATA)#

Response:

{    "data": "Normal"}

GET /sapi/v1/account/status

Fetch account status detail.

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
recvWindowLONGNO
timestampLONGYES

Account API Trading Status (USER_DATA)#

Response:

{    "data": {          // API trading status detail            "isLocked": false,   // API trading function is locked or not            "plannedRecoverTime": 0,  // If API trading function is locked, this is the planned recover time            "triggerCondition": {                     "GCR": 150,  // Number of GTC orders                    "IFER": 150, // Number of FOK/IOC orders                    "UFR": 300   // Number of orders            },            "updateTime": 1547630471725       }}

GET /sapi/v1/account/apiTradingStatus (HMAC SHA256)

Fetch account api trading status detail.

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
recvWindowLONGNO
timestampLONGYES

DustLog(USER_DATA)#

Response

{        "total": 8,   //Total counts of exchange        "userAssetDribblets": [            {                "operateTime": 1615985535000,                "totalTransferedAmount": "0.00132256",   // Total transfered BNB amount for this exchange.                "totalServiceChargeAmount": "0.00002699",    //Total service charge amount for this exchange.                "transId": 45178372831,                "userAssetDribbletDetails": [           //Details of  this exchange.                    {                        "transId": 4359321,                        "serviceChargeAmount": "0.000009",                        "amount": "0.0009",                        "operateTime": 1615985535000,                        "transferedAmount": "0.000441",                        "fromAsset": "USDT"                    },                    {                        "transId": 4359321,                        "serviceChargeAmount": "0.00001799",                        "amount": "0.0009",                        "operateTime": 1615985535000,                        "transferedAmount": "0.00088156",                        "fromAsset": "ETH"                    }                ]            },            {                "operateTime":1616203180000,                "totalTransferedAmount": "0.00058795",                "totalServiceChargeAmount": "0.000012",                "transId": 4357015,                "userAssetDribbletDetails": [                           {                        "transId": 4357015,                        "serviceChargeAmount": "0.00001",                        "amount": "0.001",                        "operateTime": 1616203180000,                        "transferedAmount": "0.00049",                        "fromAsset": "USDT"                    },                    {                        "transId": 4357015,                        "serviceChargeAmount": "0.000002",                                 "amount": "0.0001",                        "operateTime": 1616203180000,                        "transferedAmount": "0.00009795",                        "fromAsset": "ETH"                    }                ]            }        ]    }}

GET /sapi/v1/asset/dribblet (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
startTimeLONGNO
endTimeLONGNO
recvWindowLONGNO
timestampLONGYES
  • Only return last 100 records
  • Only return records after 2020/12/01

Get Assets That Can Be Converted Into BNB (USER_DATA)#

Response

{    "details": [        {            "asset": "ADA",                     "assetFullName": "ADA",             "amountFree": "6.21",   //Convertible amount            "toBTC": "0.00016848",  //BTC amount            "toBNB": "0.01777302",  //BNB amount(Not deducted commission fee)            "toBNBOffExchange": "0.01741756", //BNB amount(Deducted commission fee)            "exchange": "0.00035546" //Commission fee        }    ],    "totalTransferBtc": "0.00016848",    "totalTransferBNB": "0.01777302",    "dribbletPercentage": "0.02"     //Commission fee}  

POST /sapi/v1/asset/dust-btc (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
recvWindowLONGNO
timestampLONGYES

Dust Transfer (USER_DATA)#

Response:

{    "totalServiceCharge":"0.02102542",    "totalTransfered":"1.05127099",    "transferResult":[        {            "amount":"0.03000000",            "fromAsset":"ETH",            "operateTime":1563368549307,            "serviceChargeAmount":"0.00500000",            "tranId":2970932918,            "transferedAmount":"0.25000000"        },        {            "amount":"0.09000000",            "fromAsset":"LTC",            "operateTime":1563368549404,            "serviceChargeAmount":"0.01548000",            "tranId":2970932918,            "transferedAmount":"0.77400000"        },        {            "amount":"248.61878453",            "fromAsset":"TRX",            "operateTime":1563368549489,            "serviceChargeAmount":"0.00054542",            "tranId":2970932918,            "transferedAmount":"0.02727099"        }    ]}

POST /sapi/v1/asset/dust (HMAC SHA256)

Convert dust assets to BNB.

Weight(UID): 10

Parameters:

NameTypeMandatoryDescription
assetARRAYYESThe asset being converted. For example: asset=BTC&asset=USDT
recvWindowLONGNO
timestampLONGYES
  • You need to openEnable Spot & Margin Trading permission for the API Key which requests this endpoint.

Asset Dividend Record (USER_DATA)#

Response:

{    "rows":[        {            "id":1637366104,            "amount":"10.00000000",            "asset":"BHFT",            "divTime":1563189166000,            "enInfo":"BHFT distribution",            "tranId":2968885920        },        {            "id":1631750237,            "amount":"10.00000000",            "asset":"BHFT",            "divTime":1563189165000,            "enInfo":"BHFT distribution",            "tranId":2968885920        }    ],    "total":2}

GET /sapi/v1/asset/assetDividend (HMAC SHA256)

Query asset dividend record.

Weight(IP): 10

Parameters:

NameTypeMandatoryDescription
assetSTRINGNO
startTimeLONGNO
endTimeLONGNO
limitINTNODefault 20, max 500
recvWindowLONGNO
timestampLONGYES

Asset Detail (USER_DATA)#

Response:

{        "CTR": {            "minWithdrawAmount": "70.00000000", //min withdraw amount            "depositStatus": false,//deposit status (false if ALL of networks' are false)            "withdrawFee": 35, // withdraw fee            "withdrawStatus": true, //withdraw status (false if ALL of networks' are false)            "depositTip": "Delisted, Deposit Suspended" //reason        },        "SKY": {            "minWithdrawAmount": "0.02000000",            "depositStatus": true,            "withdrawFee": 0.01,            "withdrawStatus": true        }   }

GET /sapi/v1/asset/assetDetail (HMAC SHA256)

Fetch details of assets supported on Binance.

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
assetSTRINGNO
recvWindowLONGNO
timestampLONGYES
  • Please get network and other deposit or withdraw details from GET /sapi/v1/capital/config/getall.

Trade Fee (USER_DATA)#

Response:

[    {        "symbol": "ADABNB",        "makerCommission": "0.001",        "takerCommission": "0.001"    },    {        "symbol": "BNBBTC",        "makerCommission": "0.001",        "takerCommission": "0.001"    }]

GET /sapi/v1/asset/tradeFee (HMAC SHA256)

Fetch trade fee

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
symbolSTRINGNO
recvWindowLONGNO
timestampLONGYES

User Universal Transfer (USER_DATA)#

Response:

{    "tranId":13526853623}

POST /sapi/v1/asset/transfer (HMAC SHA256)

You need to enable Permits Universal Transfer option for the API Key which requests this endpoint.

Weight(UID): 900

Parameters:

NameTypeMandatoryDescription
typeENUMYES
assetSTRINGYES
amountDECIMALYES
fromSymbolSTRINGNO
toSymbolSTRINGNO
recvWindowLONGNO
timestampLONGYES
  • fromSymbol must be sent when type are ISOLATEDMARGIN_MARGIN and ISOLATEDMARGIN_ISOLATEDMARGIN

  • toSymbol must be sent when type are MARGIN_ISOLATEDMARGIN and ISOLATEDMARGIN_ISOLATEDMARGIN

  • ENUM of transfer types:

    • MAIN_UMFUTURE Spot account transfer to USDⓈ-M Futures account
    • MAIN_CMFUTURE Spot account transfer to COIN-M Futures account
    • MAIN_MARGIN Spot account transfer to Margin(cross)account
    • UMFUTURE_MAIN USDⓈ-M Futures account transfer to Spot account
    • UMFUTURE_MARGIN USDⓈ-M Futures account transfer to Margin(cross)account
    • CMFUTURE_MAIN COIN-M Futures account transfer to Spot account
    • CMFUTURE_MARGIN COIN-M Futures account transfer to Margin(cross) account
    • MARGIN_MAIN Margin(cross)account transfer to Spot account
    • MARGIN_UMFUTURE Margin(cross)account transfer to USDⓈ-M Futures
    • MARGIN_CMFUTURE Margin(cross)account transfer to COIN-M Futures
    • ISOLATEDMARGIN_MARGIN Isolated margin account transfer to Margin(cross) account
    • MARGIN_ISOLATEDMARGIN Margin(cross) account transfer to Isolated margin account
    • ISOLATEDMARGIN_ISOLATEDMARGIN Isolated margin account transfer to Isolated margin account
    • MAIN_FUNDING Spot account transfer to Funding account
    • FUNDING_MAIN Funding account transfer to Spot account
    • FUNDING_UMFUTURE Funding account transfer to UMFUTURE account
    • UMFUTURE_FUNDING UMFUTURE account transfer to Funding account
    • MARGIN_FUNDING MARGIN account transfer to Funding account
    • FUNDING_MARGIN Funding account transfer to Margin account
    • FUNDING_CMFUTURE Funding account transfer to CMFUTURE account
    • CMFUTURE_FUNDING CMFUTURE account transfer to Funding account

Query User Universal Transfer History (USER_DATA)#

Response:

{    "total":2,    "rows":[        {            "asset":"USDT",            "amount":"1",            "type":"MAIN_UMFUTURE",            "status": "CONFIRMED", // status: CONFIRMED / FAILED / PENDING            "tranId": 11415955596,            "timestamp":1544433328000        },        {            "asset":"USDT",            "amount":"2",            "type":"MAIN_UMFUTURE",            "status": "CONFIRMED",            "tranId": 11366865406,            "timestamp":1544433328000        }    ]}

GET /sapi/v1/asset/transfer (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
typeENUMYES
startTimeLONGNO
endTimeLONGNO
currentINTNODefault 1
sizeINTNODefault 10, Max 100
fromSymbolSTRINGNO
toSymbolSTRINGNO
recvWindowLONGNO
timestampLONGYES
  • fromSymbol must be sent when type are ISOLATEDMARGIN_MARGIN and ISOLATEDMARGIN_ISOLATEDMARGIN
  • toSymbol must be sent when type are MARGIN_ISOLATEDMARGIN and ISOLATEDMARGIN_ISOLATEDMARGIN
  • Support query within the last 6 months only
  • If startTimeand endTime not sent, return records of the last 7 days by default

Funding Wallet (USER_DATA)#

Response

[    {        "asset": "USDT",        "free": "1",    // avalible balance        "locked": "0",  // locked asset        "freeze": "0",  // freeze asset        "withdrawing": "0",          "btcValuation": "0.00000091"      }]

POST /sapi/v1/asset/get-funding-asset (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
assetSTRINGNO
needBtcValuationSTRINGNOtrue or false
recvWindowLONGNO
timestampLONGYES
  • Currently supports querying the following business assets:Binance Pay, Binance Card, Binance Gift Card, Stock Token

User Asset (USER_DATA)#

Response

[  {    "asset": "AVAX",    "free": "1",    "locked": "0",    "freeze": "0",    "withdrawing": "0",    "ipoable": "0",    "btcValuation": "0"  },  {    "asset": "BCH",    "free": "0.9",    "locked": "0",    "freeze": "0",    "withdrawing": "0",    "ipoable": "0",    "btcValuation": "0"  },  {    "asset": "BNB",    "free": "887.47061626",    "locked": "0",    "freeze": "10.52",    "withdrawing": "0.1",    "ipoable": "0",    "btcValuation": "0"  },  {    "asset": "BUSD",    "free": "9999.7",    "locked": "0",    "freeze": "0",    "withdrawing": "0",    "ipoable": "0",    "btcValuation": "0"  },  {    "asset": "SHIB",    "free": "532.32",    "locked": "0",    "freeze": "0",    "withdrawing": "0",    "ipoable": "0",    "btcValuation": "0"  },  {    "asset": "USDT",    "free": "50300000001.44911105",    "locked": "0",    "freeze": "0",    "withdrawing": "0",    "ipoable": "0",    "btcValuation": "0"  },  {    "asset": "WRZ",    "free": "1",    "locked": "0",    "freeze": "0",    "withdrawing": "0",    "ipoable": "0",    "btcValuation": "0"  }]

POST /sapi/v3/asset/getUserAsset

Get user assets, just for positive data.

Weight(IP): 5

Parameters:

NameTypeMandatoryDescription
assetSTRINGNOIf asset is blank, then query all positive assets user have.
needBtcValuationBOOLEANNOWhether need btc valuation or not.
recvWindowLONGNO
timestampLONGYES
  • If asset is set, then return this asset, otherwise return all assets positive.
  • If needBtcValuation is set, then return btcValudation.

BUSD Convert (TRADE)#

Response

{  "tranId": 118263407119,  "status": "S"}

POST /sapi/v1/asset/convert-transfer

Convert transfer, convert between BUSD and stablecoins.

Weight(UID): 5

Parameters:

NameTypeMandatoryDescription
clientTranIdSTRINGYESThe unique user-defined transaction id, min length 20
assetSTRINGYESThe current asset
amountBigDecimalYESThe amount must be positive number
targetAssetStringYESTarget asset you want to convert
accountTypeStringNOOnly MAIN and CARD, default MAIN
  • If the clientTranId has been used before, will not do the convert transfer, the original transfer will be returned.

BUSD Convert History (USER_DATA)#

Response

{  "total":3,  "rows":  [    {      "tranId":118263615991,      "type":244,      "time":1664442078000,      "deductedAsset":"BUSD",      "deductedAmount":"1",      "targetAsset":"USDC",      "targetAmount":"1",      "status":"S",      "accountType":"MAIN"    },{      "tranId":118263598801,      "type":244,      "time":1664442061000,      "deductedAsset":"BUSD",      "deductedAmount":"1",      "targetAsset":"USDC",      "targetAmount":"1",      "status":"S",      "accountType":"MAIN"    },{      "tranId":118263407119,      "type":244,      "time":1664441820000,      "deductedAsset":"BUSD",      "deductedAmount":"1",      "targetAsset":"USDC",      "targetAmount":"1",      "status":"S",      "accountType":"MAIN"    }  ]}

GET /sapi/v1/asset/convert-transfer/queryByPage

Weight(UID): 5

Parameters:

NameTypeMandatoryDescription
tranIdLONGNOThe transaction id
clientTranIdSTRINGNOThe user-defined transaction id
assetSTRINGNOIf it is blank, we will match deducted asset and target asset.
startTimeLONGYESinclusive, unit: ms
endTimeLONGYESexclusive, unit: ms
accountTypeSTRINGNOMAIN: main account. CARD: funding account. If it is blank, we will query spot and card wallet, otherwise, we just query the corresponding wallet
currentINTEGERNOcurrent page, default 1, the min value is 1
sizeINTEGERNOpage size, default 10, the max value is 100

Get Cloud-Mining payment and refund history (USER_DATA)#

Response

{  "total":5,  "rows":[    {"createTime":1667880112000,"tranId":121230610120,"type":248,"asset":"USDT","amount":"25.0068","status":"S"},    {"createTime":1666776366000,"tranId":119991507468,"type":249,"asset":"USDT","amount":"0.027","status":"S"},    {"createTime":1666764505000,"tranId":119977966327,"type":248,"asset":"USDT","amount":"0.027","status":"S"},    {"createTime":1666758189000,"tranId":119973601721,"type":248,"asset":"USDT","amount":"0.018","status":"S"},    {"createTime":1666757278000,"tranId":119973028551,"type":248,"asset":"USDT","amount":"0.018","status":"S"}  ]}

GET /sapi/v1/asset/ledger-transfer/cloud-mining/queryByPage

The query of Cloud-Mining payment and refund history

Weight(UID): 600

Parameters:

NameTypeMandatoryDescription
tranIdLONGNOThe transaction id
clientTranIdSTRINGNOThe unique flag
assetSTRINGNOIf it is blank, we will query all assets
startTimeLONGYESinclusive, unit: ms
endTimeLONGYESexclusive, unit: ms
currentINTEGERNOcurrent page, default 1, the min value is 1
sizeINTEGERNOpage size, default 10, the max value is 100
  • Just return the SUCCESS records of payment and refund.
  • For response, type = 248 means payment, type = 249 means refund, status =S means SUCCESS.

Get API Key Permission (USER_DATA)#

Response

{   "ipRestrict": false,   "createTime": 1623840271000,      "enableWithdrawals": false,   // This option allows you to withdraw via API. You must apply the IP Access Restriction filter in order to enable withdrawals   "enableInternalTransfer": true,  // This option authorizes this key to transfer funds between your master account and your sub account instantly   "permitsUniversalTransfer": true,  // Authorizes this key to be used for a dedicated universal transfer API to transfer multiple supported currencies. Each business's own transfer API rights are not affected by this authorization   "enableVanillaOptions": false,  //  Authorizes this key to Vanilla options trading   "enableReading": true,   "enableFutures": false,  //  API Key created before your futures account opened does not support futures API service   "enableMargin": false,   //  This option can be adjusted after the Cross Margin account transfer is completed   "enableSpotAndMarginTrading": false, // Spot and margin trading   "tradingAuthorityExpirationTime": 1628985600000  // Expiration time for spot and margin trading permission}

GET /sapi/v1/account/apiRestrictions (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
recvWindowLONGNO
timestampLONGYES

Sub-Account Endpoints

Create a Virtual Sub-account(For Master Account)#

Response:

{    "email":"addsdd_virtual@aasaixwqnoemail.com"}

POST /sapi/v1/sub-account/virtualSubAccount (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
subAccountStringSTRINGYESPlease input a string. We will create a virtual email using that string for you to register
recvWindowLONGNO
timestampLONGYES
  • This request will generate a virtual sub account under your master account.
  • You need to enable "trade" option for the API Key which requests this endpoint.

Query Sub-account List (For Master Account)#

Response:

{    "subAccounts":[        {            "email":"testsub@gmail.com",            "isFreeze":false,            "createTime":1544433328000,            "isManagedSubAccount": false,            "isAssetManagementSubAccount": false        },        {            "email":"virtual@oxebmvfonoemail.com",            "isFreeze":false,            "createTime":1544433328000,            "isManagedSubAccount": false,            "isAssetManagementSubAccount": false        }    ]}

GET /sapi/v1/sub-account/list (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
emailSTRINGNOSub-account email
isFreezeSTRINGNOtrue or false
pageINTNODefault value: 1
limitINTNODefault value: 1, Max value: 200
recvWindowLONGNO
timestampLONGYES

Query Sub-account Spot Asset Transfer History (For Master Account)#

Response:

[    {        "from":"aaa@test.com",        "to":"bbb@test.com",        "asset":"BTC",        "qty":"10",        "status": "SUCCESS",        "tranId": 6489943656,        "time":1544433328000    },    {        "from":"bbb@test.com",        "to":"ccc@test.com",        "asset":"ETH",        "qty":"2",        "status": "SUCCESS",        "tranId": 6489938713,        "time":1544433328000    }]

GET /sapi/v1/sub-account/sub/transfer/history (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
fromEmailSTRINGNO
toEmailSTRINGNO
startTimeLONGNO
endTimeLONGNO
pageINTNODefault value: 1
limitINTNODefault value: 500
recvWindowLONGNO
timestampLONGYES
  • fromEmail and toEmail cannot be sent at the same time.
  • Return fromEmail equal master account email by default.

Query Sub-account Futures Asset Transfer History (For Master Account)#

Response

{    "success":true,    "futuresType": 2,    "transfers":[        {            "from":"aaa@test.com",            "to":"bbb@test.com",            "asset":"BTC",            "qty":"1",            "tranId":11897001102,            "time":1544433328000        },        {            "from":"bbb@test.com",            "to":"ccc@test.com",            "asset":"ETH",            "qty":"2",            "tranId":11631474902,            "time":1544433328000        }    ]}

GET /sapi/v1/sub-account/futures/internalTransfer (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub-account email
futuresTypeLONGYES1:USDT-margined Futures,2: Coin-margined Futures
startTimeLONGNODefault return the history with in 100 days
endTimeLONGNODefault return the history with in 100 days
pageINTNODefault value: 1
limitINTNODefault value: 50, Max value: 500
recvWindowLONGNO
timestampLONGYES

Sub-account Futures Asset Transfer (For Master Account)#

Response

{    "success":true,    "txnId":"2934662589"}

POST /sapi/v1/sub-account/futures/internalTransfer (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
fromEmailSTRINGYESSender email
toEmailSTRINGYESRecipient email
futuresTypeLONGYES1:USDT-margined Futures,2: Coin-margined Futures
assetSTRINGYES
amountDECIMALYES
recvWindowLONGNO
timestampLONGYES
  • Master account can transfer max 2000 times a minute
  • There must be sufficient margin balance in futures wallet to execute transferring.

Query Sub-account Assets (For Master Account)#

Response:

{    "balances":[        {            "asset":"ADA",            "free":10000,            "locked":0        },        {            "asset":"BNB",            "free":10003,            "locked":0        },        {            "asset":"BTC",            "free":11467.6399,            "locked":0        },        {            "asset":"ETH",            "free":10004.995,            "locked":0        },        {            "asset":"USDT",            "free":11652.14213,            "locked":0        }    ]}

GET /sapi/v3/sub-account/assets (HMAC SHA256)

Fetch sub-account assets

Weight(UID): 60

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub account email
recvWindowLONGNO
timestampLONGYES

Query Sub-account Spot Assets Summary (For Master Account)#

Response:

{    "totalCount":2,    "masterAccountTotalAsset": "0.23231201",    "spotSubUserAssetBtcVoList":[        {            "email":"sub123@test.com",            "totalAsset":"9999.00000000"        },        {            "email":"test456@test.com",            "totalAsset":"0.00000000"        }    ]}

Get BTC valued asset summary of subaccounts.

GET /sapi/v1/sub-account/spotSummary (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
emailSTRINGNOSub account email
pageLONGNOdefault 1
sizeLONGNOdefault 10, max 20
recvWindowLONGNO
timestampLONGYES

Get Sub-account Deposit Address (For Master Account)#

Response:

{    "address":"TDunhSa7jkTNuKrusUTU1MUHtqXoBPKETV",    "coin":"USDT",    "tag":"",    "url":"https://tronscan.org/#/address/TDunhSa7jkTNuKrusUTU1MUHtqXoBPKETV"}

GET /sapi/v1/capital/deposit/subAddress (HMAC SHA256)

Fetch sub-account deposit address

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub account email
coinSTRINGYES
networkSTRINGNO
recvWindowLONGNO
timestampLONGYES

Get Sub-account Deposit History (For Master Account)#

Response:

[    {        "id": "769800519366885376",        "amount": "0.001",        "coin": "BNB",        "network": "BNB",        "status": 0,        "address": "bnb136ns6lfw4zs5hg4n85vdthaad7hq5m4gtkgf23",        "addressTag": "101764890",        "txId": "98A3EA560C6B3336D348B6C83F0F95ECE4F1F5919E94BD006E5BF3BF264FACFC",        "insertTime": 1661493146000,        "transferType": 0,        "confirmTimes": "1/1",        "unlockConfirm": 0,        "walletType": 0    },    {        "id": "769754833590042625",        "amount":"0.50000000",        "coin":"IOTA",        "network":"IOTA",        "status":1,        "address":"SIZ9VLMHWATXKV99LH99CIGFJFUMLEHGWVZVNNZXRJJVWBPHYWPPBOSDORZ9EQSHCZAMPVAPGFYQAUUV9DROOXJLNW",        "addressTag":"",        "txId":"ESBFVQUTPIWQNJSPXFNHNYHSQNTGKRVKPRABQWTAXCDWOAKDKYWPTVG9BGXNVNKTLEJGESAVXIKIZ9999",        "insertTime":1599620082000,        "transferType":0,        "confirmTimes": "1/1",        "unlockConfirm": 0,        "walletType": 0    }]

GET /sapi/v1/capital/deposit/subHisrec (HMAC SHA256)

Fetch sub-account deposit history

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub account email
coinSTRINGNO
statusINTNO0(0:pending,6: credited but cannot withdraw, 1:success)
startTimeLONGNO
endTimeLONGNO
limitINTNO
offsetINTNOdefault:0
recvWindowLONGNO
timestampLONGYES
txIdSTRINGNO

Get Sub-account's Status on Margin/Futures (For Master Account)#

Response

[    {        "email":"123@test.com",      // user email        "isSubUserEnabled": true,    // true or false        "isUserActive": true,        // true or false        "insertTime": 1570791523523,  // sub account create time        "isMarginEnabled": true,     // true or false for margin        "isFutureEnabled": true,      // true or false for futures.        "mobile": 1570791523523      // user mobile number    }]

GET /sapi/v1/sub-account/status (HMAC SHA256)

Weight(IP): 10

Parameters:

NameTypeMandatoryDescription
emailSTRINGNOSub-account email
recvWindowLONGNO
timestampLONGYES
  • If no email sent, all sub-accounts' information will be returned.

Enable Margin for Sub-account (For Master Account)#

Response

{
    "email":"123@test.com",    "isMarginEnabled": true
}

POST /sapi/v1/sub-account/margin/enable (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub-account email
recvWindowLONGNO
timestampLONGYES

Get Detail on Sub-account's Margin Account (For Master Account)#

Response

{      "email":"123@test.com",      "marginLevel": "11.64405625",      "totalAssetOfBtc": "6.82728457",      "totalLiabilityOfBtc": "0.58633215",      "totalNetAssetOfBtc": "6.24095242",      "marginTradeCoeffVo":             {                "forceLiquidationBar": "1.10000000",  // Liquidation margin ratio                "marginCallBar": "1.50000000",        // Margin call margin ratio                "normalBar": "2.00000000"             // Initial margin ratio            },      "marginUserAssetVoList": [          {              "asset": "BTC",              "borrowed": "0.00000000",              "free": "0.00499500",              "interest": "0.00000000",              "locked": "0.00000000",              "netAsset": "0.00499500"          },          {              "asset": "BNB",              "borrowed": "201.66666672",              "free": "2346.50000000",              "interest": "0.00000000",              "locked": "0.00000000",              "netAsset": "2144.83333328"          },          {              "asset": "ETH",              "borrowed": "0.00000000",              "free": "0.00000000",              "interest": "0.00000000",              "locked": "0.00000000",              "netAsset": "0.00000000"          },          {              "asset": "USDT",              "borrowed": "0.00000000",              "free": "0.00000000",              "interest": "0.00000000",              "locked": "0.00000000",              "netAsset": "0.00000000"          }      ]}

GET /sapi/v1/sub-account/margin/account (HMAC SHA256)

Weight(IP): 10

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub-account email
recvWindowLONGNO
timestampLONGYES

Get Summary of Sub-account's Margin Account (For Master Account)#

Response

{    "totalAssetOfBtc": "4.33333333",     "totalLiabilityOfBtc": "2.11111112",     "totalNetAssetOfBtc": "2.22222221",    "subAccountList":[        {            "email":"123@test.com",            "totalAssetOfBtc": "2.11111111",            "totalLiabilityOfBtc": "1.11111111",            "totalNetAssetOfBtc": "1.00000000"        },        {             "email":"345@test.com",            "totalAssetOfBtc": "2.22222222",             "totalLiabilityOfBtc": "1.00000001",             "totalNetAssetOfBtc": "1.22222221"        }    ]}

GET /sapi/v1/sub-account/margin/accountSummary (HMAC SHA256)

Weight(IP): 10

Parameters:

NameTypeMandatoryDescription
recvWindowLONGNO
timestampLONGYES

Enable Futures for Sub-account (For Master Account)#

Response

{
    "email":"123@test.com",    "isFuturesEnabled": true  // true or false
}

POST /sapi/v1/sub-account/futures/enable (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub-account email
recvWindowLONGNO
timestampLONGYES

Get Detail on Sub-account's Futures Account (For Master Account)#

Response


{    "email": "abc@test.com",    "asset": "USDT",    "assets":[        {            "asset": "USDT",            "initialMargin": "0.00000000",            "maintenanceMargin": "0.00000000",            "marginBalance": "0.88308000",            "maxWithdrawAmount": "0.88308000",            "openOrderInitialMargin": "0.00000000",            "positionInitialMargin": "0.00000000",            "unrealizedProfit": "0.00000000",            "walletBalance": "0.88308000"         }    ],    "canDeposit": true,    "canTrade": true,    "canWithdraw": true,    "feeTier": 2,    "maxWithdrawAmount": "0.88308000",    "totalInitialMargin": "0.00000000",    "totalMaintenanceMargin": "0.00000000",    "totalMarginBalance": "0.88308000",    "totalOpenOrderInitialMargin": "0.00000000",    "totalPositionInitialMargin": "0.00000000",    "totalUnrealizedProfit": "0.00000000",    "totalWalletBalance": "0.88308000",    "updateTime": 1576756674610 }

GET /sapi/v1/sub-account/futures/account (HMAC SHA256)

Weight(IP): 10

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub-account email
recvWindowLONGNO
timestampLONGYES

Get Summary of Sub-account's Futures Account (For Master Account)#

Response

{    "totalInitialMargin": "9.83137400",     "totalMaintenanceMargin": "0.41568700",     "totalMarginBalance": "23.03235621",     "totalOpenOrderInitialMargin": "9.00000000",    "totalPositionInitialMargin": "0.83137400",    "totalUnrealizedProfit": "0.03219710",    "totalWalletBalance": "22.15879444",    "asset": "USD",  // The sum of BUSD and USDT    "subAccountList":[        {            "email": "123@test.com",            "totalInitialMargin": "9.00000000",             "totalMaintenanceMargin": "0.00000000",             "totalMarginBalance": "22.12659734",             "totalOpenOrderInitialMargin": "9.00000000",            "totalPositionInitialMargin": "0.00000000",            "totalUnrealizedProfit": "0.00000000",            "totalWalletBalance": "22.12659734",            "asset": "USD" //The sum of BUSD and USDT        },        {             "email": "345@test.com",            "totalInitialMargin": "0.83137400",             "totalMaintenanceMargin": "0.41568700",             "totalMarginBalance": "0.90575887",             "totalOpenOrderInitialMargin": "0.00000000",            "totalPositionInitialMargin": "0.83137400",            "totalUnrealizedProfit": "0.03219710",            "totalWalletBalance": "0.87356177",            "asset": "USD"        }    ]}

GET /sapi/v1/sub-account/futures/accountSummary (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
recvWindowLONGNO
timestampLONGYES

Get Futures Position-Risk of Sub-account (For Master Account)#

Response

[    {        "entryPrice": "9975.12000",        "leverage": "50",              // current initial leverage        "maxNotional": "1000000",      // notional value limit of current initial leverage        "liquidationPrice": "7963.54",        "markPrice": "9973.50770517",        "positionAmount": "0.010",        "symbol": "BTCUSDT",        "unrealizedProfit": "-0.01612295"    }]

GET /sapi/v1/sub-account/futures/positionRisk (HMAC SHA256)

Weight(IP): 10

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub-account email
recvWindowLONGNO
timestampLONGYES

Futures Transfer for Sub-account (For Master Account)#

Response

{    "txnId":"2966662589"}

POST /sapi/v1/sub-account/futures/transfer (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub-account email
assetSTRINGYESThe asset being transferred, e.g., USDT
amountDECIMALYESThe amount to be transferred
typeINTYES1: transfer from subaccount's spot account to its USDT-margined futures account 2: transfer from subaccount's USDT-margined futures account to its spot account 3: transfer from subaccount's spot account to its COIN-margined futures account 4:transfer from subaccount's COIN-margined futures account to its spot account
recvWindowLONGNO
timestampLONGYES

Margin Transfer for Sub-account (For Master Account)#

Response

{    "txnId":"2966662589"}

POST /sapi/v1/sub-account/margin/transfer (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub-account email
assetSTRINGYESThe asset being transferred, e.g., BTC
amountDECIMALYESThe amount to be transferred
typeINTYES1: transfer from subaccount's spot account to margin account 2: transfer from subaccount's margin account to its spot account
recvWindowLONGNO
timestampLONGYES

Transfer to Sub-account of Same Master (For Sub-account)#

Response

{    "txnId":"2966662589"}

POST /sapi/v1/sub-account/transfer/subToSub (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
toEmailSTRINGYESSub-account email
assetSTRINGYES
amountDECIMALYES
recvWindowLONGNO
timestampLONGYES

Transfer to Master (For Sub-account)#

Response

{    "txnId":"2966662589"}

POST /sapi/v1/sub-account/transfer/subToMaster (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
assetSTRINGYES
amountDECIMALYES
recvWindowLONGNO
timestampLONGYES

Sub-account Transfer History (For Sub-account)#

Response

[  {    "counterParty":"master",    "email":"master@test.com",    "type":1,  // 1 for transfer in, 2 for transfer out    "asset":"BTC",    "qty":"1",    "fromAccountType":"SPOT",    "toAccountType":"SPOT",    "status":"SUCCESS", // status: PROCESS / SUCCESS / FAILURE    "tranId":11798835829,    "time":1544433325000  },  {    "counterParty":"subAccount",    "email":"sub2@test.com",    "type":1,                                     "asset":"ETH",    "qty":"2",    "fromAccountType":"SPOT",    "toAccountType":"SPOT",    "status":"SUCCESS",    "tranId":11798829519,    "time":1544433326000  }]

GET /sapi/v1/sub-account/transfer/subUserHistory (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
assetSTRINGNOIf not sent, result of all assets will be returned
typeINTNO1: transfer in, 2: transfer out
startTimeLONGNO
endTimeLONGNO
limitINTNODefault 500
recvWindowLONGNO
timestampLONGYES
  • If type is not sent, the records of type 2: transfer out will be returned by default.
  • If startTime and endTime are not sent, the recent 30-day data will be returned.

Universal Transfer (For Master Account)#

Response

{    "tranId":11945860693,    "clientTranId":"test"}

POST /sapi/v1/sub-account/universalTransfer (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
fromEmailSTRINGNO
toEmailSTRINGNO
fromAccountTypeSTRINGYES"SPOT","USDT_FUTURE","COIN_FUTURE","MARGIN"(Cross),"ISOLATED_MARGIN"
toAccountTypeSTRINGYES"SPOT","USDT_FUTURE","COIN_FUTURE","MARGIN"(Cross),"ISOLATED_MARGIN"
clientTranIdSTRINGNOMust be unique
symbolSTRINGNOOnly supported under ISOLATED_MARGIN type
assetSTRINGYES
amountDECIMALYES
recvWindowLONGNO
timestampLONGYES
  • You need to enable "internal transfer" option for the api key which requests this endpoint.
  • Transfer from master account by default if fromEmail is not sent.
  • Transfer to master account by default if toEmail is not sent.
  • At least either fromEmail or toEmail need to be sent when the fromAccountType and the toAccountType are the same.
  • Supported transfer scenarios:
    • SPOT transfer to SPOT, USDT_FUTURE, COIN_FUTURE (regardless of master or sub)
    • SPOT, USDT_FUTURE, COIN_FUTURE transfer to SPOT (regardless of master or sub)
    • Master account SPOT transfer to sub-account MARGIN(Cross), ISOLATED_MARGIN
    • Sub-account MARGIN(Cross), ISOLATED_MARGIN transfer to master account SPOT

Query Universal Transfer History (For Master Account)#

Response

{    "result": [        {            "tranId": 92275823339,            "fromEmail": "abctest@gmail.com",            "toEmail": "deftest@gmail.com",            "asset": "BNB",            "amount": "0.01",            "createTimeStamp": 1640317374000,            "fromAccountType": "USDT_FUTURE",            "toAccountType": "SPOT",            "status": "SUCCESS",            "clientTranId": "test"        }    ],    "totalCount": 1}

GET /sapi/v1/sub-account/universalTransfer (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
fromEmailSTRINGNO
toEmailSTRINGNO
clientTranIdSTRINGNO
startTimeLONGNO
endTimeLONGNO
pageINTNODefault 1
limitINTNODefault 500, Max 500
recvWindowLONGNO
timestampLONGYES
  • fromEmail and toEmail cannot be sent at the same time.
  • Return fromEmail equal master account email by default.
  • The query time period must be less then 30 days.
  • If startTime and endTime not sent, return records of the last 30 days by default.

Get Detail on Sub-account's Futures Account V2 (For Master Account)#

Response

USDT Margined Futures:


{    "futureAccountResp": {    "email": "abc@test.com",    "assets":[        {            "asset": "USDT",            "initialMargin": "0.00000000",            "maintenanceMargin": "0.00000000",            "marginBalance": "0.88308000",            "maxWithdrawAmount": "0.88308000",            "openOrderInitialMargin": "0.00000000",            "positionInitialMargin": "0.00000000",            "unrealizedProfit": "0.00000000",            "walletBalance": "0.88308000"         }    ],    "canDeposit": true,    "canTrade": true,    "canWithdraw": true,    "feeTier": 2,    "maxWithdrawAmount": "0.88308000",    "totalInitialMargin": "0.00000000",    "totalMaintenanceMargin": "0.00000000",    "totalMarginBalance": "0.88308000",    "totalOpenOrderInitialMargin": "0.00000000",    "totalPositionInitialMargin": "0.00000000",    "totalUnrealizedProfit": "0.00000000",    "totalWalletBalance": "0.88308000",    "updateTime": 1576756674610 }}

COIN Margined Futures:


{    "deliveryAccountResp": {        "email": "abc@test.com",        "assets":[            {                "asset": "BTC",                "initialMargin": "0.00000000",                "maintenanceMargin": "0.00000000",                "marginBalance": "0.88308000",                "maxWithdrawAmount": "0.88308000",                "openOrderInitialMargin": "0.00000000",                "positionInitialMargin": "0.00000000",                "unrealizedProfit": "0.00000000",                "walletBalance": "0.88308000"             }        ],        "canDeposit": true,        "canTrade": true,        "canWithdraw": true,        "feeTier": 2,        "updateTime": 1598959682001    } }

GET /sapi/v2/sub-account/futures/account (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub-account email
futuresTypeINTYES1:USDT Margined Futures, 2:COIN Margined Futures
recvWindowLONGNO
timestampLONGYES

Get Summary of Sub-account's Futures Account V2 (For Master Account)#

Response

USDT Margined Futures:

{  "futureAccountSummaryResp": {    "totalInitialMargin": "9.83137400",     "totalMaintenanceMargin": "0.41568700",     "totalMarginBalance": "23.03235621",     "totalOpenOrderInitialMargin": "9.00000000",    "totalPositionInitialMargin": "0.83137400",    "totalUnrealizedProfit": "0.03219710",    "totalWalletBalance": "22.15879444",    "asset": "USD",  //The sum of BUSD and USDT    "subAccountList":[        {            "email": "123@test.com",            "totalInitialMargin": "9.00000000",             "totalMaintenanceMargin": "0.00000000",             "totalMarginBalance": "22.12659734",             "totalOpenOrderInitialMargin": "9.00000000",            "totalPositionInitialMargin": "0.00000000",            "totalUnrealizedProfit": "0.00000000",            "totalWalletBalance": "22.12659734",            "asset": "USD"  //The sum of BUSD and USDT        },        {             "email": "345@test.com",            "totalInitialMargin": "0.83137400",             "totalMaintenanceMargin": "0.41568700",            "totalMarginBalance": "0.90575887",            "totalOpenOrderInitialMargin": "0.00000000",            "totalPositionInitialMargin": "0.83137400",            "totalUnrealizedProfit": "0.03219710",            "totalWalletBalance": "0.87356177",            "asset": "USD"        }    ]  }}

COIN Margined Futures:

{  "deliveryAccountSummaryResp": {    "totalMarginBalanceOfBTC": "25.03221121",     "totalUnrealizedProfitOfBTC": "0.12233410",    "totalWalletBalanceOfBTC": "22.15879444",    "asset": "BTC",    "subAccountList":[        {            "email": "123@test.com",            "totalMarginBalance": "22.12659734",             "totalUnrealizedProfit": "0.00000000",            "totalWalletBalance": "22.12659734",            "asset": "BTC"        },        {             "email": "345@test.com",            "totalMarginBalance": "0.90575887",            "totalUnrealizedProfit": "0.03219710",            "totalWalletBalance": "0.87356177",            "asset": "BTC"        }    ]  }}

GET /sapi/v2/sub-account/futures/accountSummary (HMAC SHA256)

Weight(IP): 10

Parameters:

NameTypeMandatoryDescription
futuresTypeINTYES1:USDT Margined Futures, 2:COIN Margined Futures
pageINTNOdefault:1
limitINTNOdefault:10, max:20
recvWindowLONGNO
timestampLONGYES

Get Futures Position-Risk of Sub-account V2 (For Master Account)#

Response

USDT Margined Futures:

{  "futurePositionRiskVos": [     {        "entryPrice": "9975.12000",        "leverage": "50",              // current initial leverage        "maxNotional": "1000000",      // notional value limit of current initial leverage        "liquidationPrice": "7963.54",        "markPrice": "9973.50770517",        "positionAmount": "0.010",        "symbol": "BTCUSDT",        "unrealizedProfit": "-0.01612295"     }   ]}

COIN Margined Futures:

{  "deliveryPositionRiskVos": [     {        "entryPrice": "9975.12000",        "markPrice": "9973.50770517",        "leverage": "20",                  "isolated": "false",                        "isolatedWallet": "9973.50770517",        "isolatedMargin": "0.00000000",        "isAutoAddMargin": "false",        "positionSide": "BOTH",        "positionAmount": "1.230",        "symbol": "BTCUSD_201225",        "unrealizedProfit": "-0.01612295"     }   ]}

GET /sapi/v2/sub-account/futures/positionRisk (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub-account email
futuresTypeINTYES1:USDT Margined Futures, 2:COIN Margined Futures
recvWindowLONGNO
timestampLONGYES

Enable Leverage Token for Sub-account (For Master Account)#

Response

{    "email":"123@test.com",    "enableBlvt":true}

POST /sapi/v1/sub-account/blvt/enable (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub-account email
enableBlvtBOOLEANYESOnly true for now
recvWindowLONGNO
timestampLONGYES

Enable or Disable IP Restriction for a Sub-account API Key (For Master Account)#

Response:

{  "ipRestrict": "true",   "ipList": [    "0.0.0.0", // 0.0.0.0 is just an initial state reference (no extra meaning).You can use `POST /sapi/v1/sub-account/subAccountApi/ipRestriction/ipList` to add an IP whitelist     "69.210.67.14",    "8.34.21.10",    "thirdPartyName" //only return if you open third party IP list and input a third party name. You can use `POST /sapi/v1/sub-account/subAccountApi/ipRestriction/ipList` to add third party name.  ],  "updateTime": 1636371437000,  "apiKey": "k5V49ldtn4tszj6W3hystegdfvmGbqDzjmkCtpTvC0G74WhK7yd4rfCTo4lShf"}

POST /sapi/v1/sub-account/subAccountApi/ipRestriction (HMAC SHA256)

Weight(UID): 3000

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub-account email
subAccountApiKeySTRINGYES
ipRestrictBOOLEANYEStrue or false
recvWindowLONGNO
timestampLONGYES

Add IP List for a Sub-account API Key (For Master Account)#

Response:

{  "ip": [    "8.34.21.101,5.24.40.1",     "thirdPartyName" //only return if you open third party IP list and input a third party name. You can use `POST /sapi/v1/sub-account/subAccountApi/ipRestriction` to add an IP whitelist.  ],  "updateTime": 1636369557189,  "apiKey": "k5V49ldtn4tszj6W3hystegdfvmGbqDzjmkCtpTvC0G74WhK7yd4rfCTo4lShf"}

POST /sapi/v1/sub-account/subAccountApi/ipRestriction/ipList (HMAC SHA256)

Before the usage of this endpoint, please ensure POST /sapi/v1/sub-account/subAccountApi/ipRestriction was used to enable the IP restriction

Weight(UID): 3000

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub-account email
subAccountApiKeySTRINGYES
ipAddressSTRINGNOCan be added in batches, separated by commas. Max 30 for an API key
recvWindowLONGNO
timestampLONGYES

Get IP Restriction for a Sub-account API Key (For Master Account)#

Response:

{    "ipRestrict": "true",    "ipList": [        "69.210.67.14",        "8.34.21.10"    ],    "updateTime": 1636371437000,    "apiKey": "k5V49ldtn4tszj6W3hystegdfvmGbqDzjmkCtpTvC0G74WhK7yd4rfCTo4lShf"}

GET /sapi/v1/sub-account/subAccountApi/ipRestriction (HMAC SHA256)

Weight(UID): 3000

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub-account email
subAccountApiKeySTRINGYES
recvWindowLONGNO
timestampLONGYES

Delete IP List For a Sub-account API Key (For Master Account)#

Response:

{  "ipRestrict": "true",  "ipList": [    "69.210.67.14",    "8.34.21.10",    "thirdPartyName" // only return if you open third party IP list and input a third party name. You can use `POST /sapi/v1/sub-account/subAccountApi/ipRestriction/ipList` to add third party name.  ],  "updateTime": 1636371437000,  "apiKey": "k5V49ldtn4tszj6W3hystegdfvmGbqDzjmkCtpTvC0G74WhK7yd4rfCTo4lShf"}

DELETE /sapi/v1/sub-account/subAccountApi/ipRestriction/ipList (HMAC SHA256)

Weight(UID): 3000

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub-account email
subAccountApiKeySTRINGYES
ipAddressSTRINGNOCan be added in batches, separated by commas
recvWindowLONGNO
timestampLONGYES

Query Sub-Account API key Third Party IP whitelist (For Master Account)#

Response:

{  "thirdPartyName":[    "thirdPartyName1",    "thirdPartyName2"  ]}

GET /sapi/v1/sub-account/apiRestrictions/ipRestriction/thirdPartyList

Weight(IP): 10

Parameters:

NameTypeMandatoryDescription
recvWindowLONGNO
timestampLONGYES

Update IP Restriction for Sub-Account API key (For Master Account)#

Response:

{  "status": "2",   "ipList": [    "69.210.67.14",    "8.34.21.10",  //only return if you open IP restriction and input IP address.    "thirdPartyName" //only return if you open third party IP list and input a third party name.  ],  "updateTime": 1636371437000,  "apiKey": "k5V49ldtn4tszj6W3hystegdfvmGbqDzjmkCtpTvC0G74WhK7yd4rfCTo4lShf"}

POST /sapi/v2/sub-account/subAccountApi/ipRestriction (HMAC SHA256)

Weight(UID): 3000

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub-account email
subAccountApiKeySTRINGYES
statusSTRINGYESIP Restriction status. 1 = IP Unrestricted. 2 = Restrict access to trusted IPs only. 3 = Restrict access to users' trusted third party IPs only
thirdPartyNameSTRINGNOInsert Name of a Third Party
ipAddressSTRINGNOInsert static IP in batch, separated by commas.
recvWindowLONGNO
timestampLONGYES

Deposit Assets Into The Managed Sub-account(For Investor Master Account)#

Response

{    "tranId":66157362489}

POST /sapi/v1/managed-subaccount/deposit (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
toEmailSTRINGYES
assetSTRINGYES
amountDECIMALYES
recvWindowLONGNO
timestampLONGYES
  • You need to enable Enable Spot & Margin Trading option for the api key which requests this endpoint

Query Managed Sub-account Asset Details(For Investor Master Account)#

Response

[  {     "coin": "INJ",                     "name": "Injective Protocol",      "totalBalance": "0",               "availableBalance": "0",           "inOrder": "0",                     "btcValue": "0"                 },  {     "coin": "FILDOWN",     "name": "FILDOWN",     "totalBalance": "0",     "availableBalance": "0",     "inOrder": "0",     "btcValue": "0"  }]

GET /sapi/v1/managed-subaccount/asset (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
emailSTRINGYES
recvWindowLONGNO
timestampLONGYES

Withdrawl Assets From The Managed Sub-account(For Investor Master Account)#

Response

{    "tranId":66157362489}

POST /sapi/v1/managed-subaccount/withdraw (HMAC SHA256)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
fromEmailSTRINGYES
assetSTRINGYES
amountDECIMALYES
transferDateLONGNOWithdrawals is automatically occur on the transfer date(UTC0). If a date is not selected, the withdrawal occurs right now
recvWindowLONGNO
timestampLONGYES
  • You need to enable Enable Spot & Margin Trading option for the api key which requests this endpoint

Query Managed Sub-account Snapshot(For Investor Master Account)#

Response:

{   "code":200, // 200 for success; others are error codes   "msg":"", // error message   "snapshotVos":[      {         "data":{            "balances":[               {                  "asset":"BTC",                  "free":"0.09905021",                  "locked":"0.00000000"               },               {                  "asset":"USDT",                  "free":"1.89109409",                  "locked":"0.00000000"               }            ],            "totalAssetOfBtc":"0.09942700"         },         "type":"spot",         "updateTime":1576281599000      }   ]}

OR

{   "code":200, // 200 for success; others are error codes   "msg":"", // error message   "snapshotVos":[      {         "data":{            "marginLevel":"2748.02909813",            "totalAssetOfBtc":"0.00274803",            "totalLiabilityOfBtc":"0.00000100",            "totalNetAssetOfBtc":"0.00274750",            "userAssets":[               {                  "asset":"XRP",                  "borrowed":"0.00000000",                  "free":"1.00000000",                  "interest":"0.00000000",                  "locked":"0.00000000",                  "netAsset":"1.00000000"               }            ]         },         "type":"margin",         "updateTime":1576281599000      }   ]}

OR

{   "code":200, // 200 for success; others are error codes   "msg":"", // error message   "snapshotVos":[      {         "data":{            "assets":[               {                  "asset":"USDT",                  "marginBalance":"118.99782335",                  "walletBalance":"120.23811389"               }            ],            "position":[               {                  "entryPrice":"7130.41000000",                  "markPrice":"7257.66239673",                  "positionAmt":"0.01000000",                  "symbol":"BTCUSDT",                  "unRealizedProfit":"1.24029054"  // Only show the value at the time of opening the position               }            ]         },         "type":"futures",         "updateTime":1576281599000      }   ]}

GET /sapi/v1/managed-subaccount/accountSnapshot (HMAC SHA256)

Weight(IP): 2400

Parameters:

NameTypeMandatoryDescription
emailSTRINGYES
typeSTRINGYES"SPOT", "MARGIN"(cross), "FUTURES"(UM)
startTimeLONGNO
endTimeLONGNO
limitINTNOmin 7, max 30, default 7
recvWindowLONGNO
timestampLONGYES
  • The query time period must be less then 30 days
  • Support query within the last one month only
  • If startTimeand endTime not sent, return records of the last 7 days by default

Market Data Endpoints

Test Connectivity#

Response:

{}

GET /api/v3/ping

Test connectivity to the Rest API.

Weight(IP): 1

Parameters:

NONE

Data Source: Memory

Check Server Time#

Response:

{  "serverTime": 1499827319559}

GET /api/v3/time

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

Weight(IP): 1

Parameters:

NONE

Data Source: Memory

Exchange Information#

Response:

{  "timezone": "UTC",  "serverTime": 1565246363776,  "rateLimits": [    {      //These are defined in the `ENUM definitions` section under `Rate Limiters (rateLimitType)`.      //All limits are optional    }  ],  "exchangeFilters": [    //These are the defined filters in the `Filters` section.    //All filters are optional.  ],  "symbols": [    {      "symbol": "ETHBTC",      "status": "TRADING",      "baseAsset": "ETH",      "baseAssetPrecision": 8,      "quoteAsset": "BTC",      "quotePrecision": 8,      "quoteAssetPrecision": 8,      "orderTypes": [        "LIMIT",        "LIMIT_MAKER",        "MARKET",        "STOP_LOSS",        "STOP_LOSS_LIMIT",        "TAKE_PROFIT",        "TAKE_PROFIT_LIMIT"      ],      "icebergAllowed": true,      "ocoAllowed": true,      "quoteOrderQtyMarketAllowed": true,      "allowTrailingStop": false,      "cancelReplaceAllowed": false,      "isSpotTradingAllowed": true,      "isMarginTradingAllowed": true,      "filters": [        //These are defined in the Filters section.        //All filters are optional      ],      "permissions": [         "SPOT",         "MARGIN"      ],      "defaultSelfTradePreventionMode": "NONE",      "allowedSelfTradePreventionModes": [        "NONE"      ]    }  ]}

GET /api/v3/exchangeInfo

Current exchange trading rules and symbol information

Weight(IP): 10

Parameters:

There are 4 possible options:

OptionsExample
No parametercurl -X GET "https://api.binance.com/api/v3/exchangeInfo"
symbolcurl -X GET "https://api.binance.com/api/v3/exchangeInfo?symbol=BNBBTC"
symbolscurl -X GET "https://api.binance.com/api/v3/exchangeInfo?symbols=%5B%22BNBBTC%22,%22BTCUSDT%22%5D"
or
curl -g -X GET 'https://api.binance.com/api/v3/exchangeInfo?symbols=["BTCUSDT","BNBBTC"]'
permissionscurl -X GET "https://api.binance.com/api/v3/exchangeInfo?permissions=SPOT"
or
curl -X GET "https://api.binance.com/api/v3/exchangeInfo?permissions=%5B%22MARGIN%22%2C%22LEVERAGED%22%5D"
or
curl -g -X GET 'https://api.binance.com/api/v3/exchangeInfo?permissions=["MARGIN","LEVERAGED"]'

Notes:

  • If the value provided to symbol or symbols do not exist, the endpoint will throw an error saying the symbol is invalid.
  • All parameters are optional.
  • permissions can support single or multiple values (e.g. SPOT, ["MARGIN","LEVERAGED"])
  • If permissions parameter not provided, the default values will be ["SPOT","MARGIN","LEVERAGED"].
    • If one wants to view all symbols on GET /api/v3/exchangeInfo, then one has to search with all permissions explicitly specified (i.e. permissions=["SPOT","MARGIN","LEVERAGED","TRD_GRP_002","TRD_GRP_003","TRD_GRP_004","TRD_GRP_005"])

Data Source: Memory

Order Book#

Response:

{  "lastUpdateId": 1027024,  "bids": [    [      "4.00000000",     // PRICE      "431.00000000"    // QTY    ]  ],  "asks": [    [      "4.00000200",      "12.00000000"    ]  ]}

GET /api/v3/depth

Weight(IP):

Adjusted based on the limit:

LimitWeight
1-1001
101-5005
501-100010
1001-500050

Parameters:

NameTypeMandatoryDescription
symbolSTRINGYES
limitINTNODefault 100; max 5000.
If limit > 5000, then the response will truncate to 5000.

Data Source: Memory

Recent Trades List#

Response:

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

GET /api/v3/trades

Get recent trades.

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
symbolSTRINGYES
limitINTNODefault 500; max 1000.

Data Source: Memory

Old Trade Lookup (MARKET_DATA)#

Response:

[  {    "id": 28457,    "price": "4.00000100",    "qty": "12.00000000",    "quoteQty": "48.000012",    "time": 1499865549590, // Trade executed timestamp, as same as `T` in the stream    "isBuyerMaker": true,    "isBestMatch": true  }]

GET /api/v3/historicalTrades

Get older market trades.

Weight(IP): 5

Parameters:

NameTypeMandatoryDescription
symbolSTRINGYES
limitINTNODefault 500; max 1000.
fromIdLONGNOTrade id to fetch from. Default gets most recent trades.

Data Source: Database

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?    "M": true           // Was the trade the best price match?  }]

GET /api/v3/aggTrades

Get compressed, aggregate trades. Trades that fill at the time, from the same order, with the same price will have the quantity aggregated.

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
symbolSTRINGYES
fromIdLONGNOid to get aggregate trades from INCLUSIVE.
startTimeLONGNOTimestamp in ms to get aggregate trades from INCLUSIVE.
endTimeLONGNOTimestamp in ms to get aggregate trades until INCLUSIVE.
limitINTNODefault 500; max 1000.
  • If fromId, startTime, and endTime are not sent, the most recent aggregate trades will be returned.
  • Note that if a trade has the following values, this was a duplicate aggregate trade and marked as invalid:
    • p = '0' // price
    • q = '0' // qty
    • f = -1 // first_trade_id
    • l = -1 // last_trade_id

Data Source: Database

Kline/Candlestick Data#

Response:

[  [    1499040000000,      // Kline open time    "0.01634790",       // Open price    "0.80000000",       // High price    "0.01575800",       // Low price    "0.01577100",       // Close price    "148976.11427815",  // Volume    1499644799999,      // Kline 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    "0"                 // Unused field, ignore.  ]]

GET /api/v3/klines

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

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
symbolSTRINGYES
intervalENUMYES
startTimeLONGNO
endTimeLONGNO
limitINTNODefault 500; max 1000.
  • If startTime and endTime are not sent, the most recent klines are returned.

Data Source: Database

UIKlines#

Response:

[  [    1499040000000,      // Kline open time    "0.01634790",       // Open price    "0.80000000",       // High price    "0.01575800",       // Low price    "0.01577100",       // Close price    "148976.11427815",  // Volume    1499644799999,      // Kline 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    "0"                 // Unused field. Ignore.  ]]

GET /api/v3/uiKlines

The request is similar to klines having the same parameters and response.

uiKlines return modified kline data, optimized for presentation of candlestick charts.

Weight: 1

Parameters:

NameTypeMandatoryDescription
symbolSTRINGYES
intervalENUMYES
startTimeLONGNO
endTimeLONGNO
limitINTNODefault 500; max 1000.
  • If startTime and endTime are not sent, the most recent klines are returned.

Data Source: Database

Current Average Price#

Response:

{  "mins": 5,  "price": "9.35751834"}

GET /api/v3/avgPrice

Current average price for a symbol.

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
symbolSTRINGYES

Data Source: Memory

24hr Ticker Price Change Statistics#

Response: - FULL

{  "symbol": "BNBBTC",  "priceChange": "-94.99999800",  "priceChangePercent": "-95.960",  "weightedAvgPrice": "0.29628482",  "prevClosePrice": "0.10002000",  "lastPrice": "4.00000200",  "lastQty": "200.00000000",  "bidPrice": "4.00000000",  "bidQty": "100.00000000",  "askPrice": "4.00000200",  "askQty": "100.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": "BNBBTC",    "priceChange": "-94.99999800",    "priceChangePercent": "-95.960",    "weightedAvgPrice": "0.29628482",    "prevClosePrice": "0.10002000",    "lastPrice": "4.00000200",    "lastQty": "200.00000000",    "bidPrice": "4.00000000",    "bidQty": "100.00000000",    "askPrice": "4.00000200",    "askQty": "100.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  }]

Response - MINI

{  "symbol":      "BNBBTC",          // Symbol Name  "openPrice":   "99.00000000",     // Opening price of the Interval  "highPrice":   "100.00000000",    // Highest price in the interval  "lowPrice":    "0.10000000",      // Lowest  price in the interval  "lastPrice":   "4.00000200",      // Closing price of the interval  "volume":      "8913.30000000",   // Total trade volume (in base asset)  "quoteVolume": "15.30000000",     // Total trade volume (in quote asset)  "openTime":    1499783499040,     // Start of the ticker interval  "closeTime":   1499869899040,     // End of the ticker interval  "firstId":     28385,             // First tradeId considered  "lastId":      28460,             // Last tradeId considered  "count":       76                 // Total trade count}

OR

[  {    "symbol": "BNBBTC",    "openPrice": "99.00000000",    "highPrice": "100.00000000",    "lowPrice": "0.10000000",    "lastPrice": "4.00000200",    "volume": "8913.30000000",    "quoteVolume": "15.30000000",    "openTime": 1499783499040,    "closeTime": 1499869899040,    "firstId": 28385,    "lastId": 28460,    "count": 76  },  {    "symbol": "LTCBTC",    "openPrice": "0.07000000",    "highPrice": "0.07000000",    "lowPrice": "0.07000000",    "lastPrice": "0.07000000",    "volume": "11.00000000",    "quoteVolume": "0.77000000",    "openTime": 1656908192899,    "closeTime": 1656994592899,    "firstId": 0,    "lastId": 10,    "count": 11  }]

GET /api/v3/ticker/24hr

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

Weight(IP):

ParameterSymbols ProvidedWeight
symbol11
symbol parameter is omitted40
symbols1-201
21-10020
101 or more40
symbols parameter is omitted40

Parameters:

NameTypeMandatoryDescription
symbolSTRINGNOParameter symbol and symbols cannot be used in combination.
If neither parameter is sent, tickers for all symbols will be returned in an array.

Examples of accepted format for the symbols parameter: ["BTCUSDT","BNBUSDT"]
or
%5B%22BTCUSDT%22,%22BNBUSDT%22%5D
symbolsSTRINGNO
typeENUMNOSupported values: FULL or MINI.
If none provided, the default is FULL

Data Source: Memory

Symbol Price Ticker#

Response:

{  "symbol": "LTCBTC",  "price": "4.00000200"}

OR

[  {    "symbol": "LTCBTC",    "price": "4.00000200"  },  {    "symbol": "ETHBTC",    "price": "0.07946600"  }]

GET /api/v3/ticker/price

Latest price for a symbol or symbols.

Weight(IP):

ParameterSymbols ProvidedWeight
symbol11
symbol parameter is omitted2
symbolsAny2

Parameters:

NameTypeMandatoryDescription
symbolSTRINGNO Parameter symbol and symbols cannot be used in combination.
If neither parameter is sent, prices for all symbols will be returned in an array.

Examples of accepted format for the symbols parameter: ["BTCUSDT","BNBUSDT"]
or
%5B%22BTCUSDT%22,%22BNBUSDT%22%5D
symbolsSTRINGNO

Data Source: Memory

Symbol Order Book Ticker#

Response:

{  "symbol": "LTCBTC",  "bidPrice": "4.00000000",  "bidQty": "431.00000000",  "askPrice": "4.00000200",  "askQty": "9.00000000"}

OR

[  {    "symbol": "LTCBTC",    "bidPrice": "4.00000000",    "bidQty": "431.00000000",    "askPrice": "4.00000200",    "askQty": "9.00000000"  },  {    "symbol": "ETHBTC",    "bidPrice": "0.07946700",    "bidQty": "9.00000000",    "askPrice": "100000.00000000",    "askQty": "1000.00000000"  }]

GET /api/v3/ticker/bookTicker

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

Weight(IP):

ParameterSymbols ProvidedWeight
symbol11
symbol parameter is omitted2
symbolsAny2

Parameters:

NameTypeMandatoryDescription
symbolSTRINGNO Parameter symbol and symbols cannot be used in combination.
If neither parameter is sent, bookTickers for all symbols will be returned in an array.

Examples of accepted format for the symbols parameter: ["BTCUSDT","BNBUSDT"]
or
%5B%22BTCUSDT%22,%22BNBUSDT%22%5D
symbolsSTRINGNO

Data Source: Memory

Rolling window price change statistics#

Response: - FULL

{  "symbol":             "BNBBTC",  "priceChange":        "-8.00000000",  // Absolute price change  "priceChangePercent": "-88.889",      // Relative price change in percent  "weightedAvgPrice":   "2.60427807",   // QuoteVolume / Volume  "openPrice":          "9.00000000",  "highPrice":          "9.00000000",  "lowPrice":           "1.00000000",  "lastPrice":          "1.00000000",  "volume":             "187.00000000",  "quoteVolume":        "487.00000000", // Sum of (price * volume) for all trades  "openTime":           1641859200000,  // Open time for ticker window  "closeTime":          1642031999999,  // Current Time of the Request  "firstId":            0,              // Trade IDs  "lastId":             60,  "count":              61              // Number of trades in the interval}

OR

[  {    "symbol": "BTCUSDT",    "priceChange": "-154.13000000",        // Absolute price change    "priceChangePercent": "-0.740",        // Relative price change in percent    "weightedAvgPrice": "20677.46305250",  // QuoteVolume / Volume    "openPrice": "20825.27000000",    "highPrice": "20972.46000000",    "lowPrice": "20327.92000000",    "lastPrice": "20671.14000000",    "volume": "72.65112300",    "quoteVolume": "1502240.91155513",     // Sum of (price * volume) for all trades    "openTime": 1655432400000,             // Open time for ticker window    "closeTime": 1655446835460,            // Close time for ticker window    "firstId": 11147809,                   // Trade IDs    "lastId": 11149775,    "count": 1967                          // Number of trades in the interval  },  {    "symbol": "BNBBTC",    "priceChange": "0.00008530",    "priceChangePercent": "0.823",    "weightedAvgPrice": "0.01043129",    "openPrice": "0.01036170",    "highPrice": "0.01049850",    "lowPrice": "0.01033870",    "lastPrice": "0.01044700",    "volume": "166.67000000",    "quoteVolume": "1.73858301",    "openTime": 1655432400000,    "closeTime": 1655446835460,    "firstId": 2351674,    "lastId": 2352034,    "count": 361  }]

Response - MINI

{    "symbol": "LTCBTC",    "openPrice": "0.10000000",    "highPrice": "2.00000000",    "lowPrice": "0.10000000",    "lastPrice": "2.00000000",    "volume": "39.00000000",    "quoteVolume": "13.40000000",  // Sum of (price * volume) for all trades    "openTime": 1656986580000,     // Open time for ticker window    "closeTime": 1657001016795,    // Close time for ticker window    "firstId": 0,                  // Trade IDs    "lastId": 34,    "count": 35                    // Number of trades in the interval}

OR

[    {        "symbol": "BNBBTC",        "openPrice": "0.10000000",        "highPrice": "2.00000000",        "lowPrice": "0.10000000",        "lastPrice": "2.00000000",        "volume": "39.00000000",        "quoteVolume": "13.40000000", // Sum of (price * volume) for all trades        "openTime": 1656986880000,    // Open time for ticker window        "closeTime": 1657001297799,   // Close time for ticker window        "firstId": 0,                 // Trade IDs        "lastId": 34,        "count": 35                   // Number of trades in the interval    },    {        "symbol": "LTCBTC",        "openPrice": "0.07000000",        "highPrice": "0.07000000",        "lowPrice": "0.07000000",        "lastPrice": "0.07000000",        "volume": "33.00000000",        "quoteVolume": "2.31000000",        "openTime": 1656986880000,        "closeTime": 1657001297799,        "firstId": 0,        "lastId": 32,        "count": 33    }]

GET /api/v3/ticker

Note: This endpoint is different from the GET /api/v3/ticker/24hr endpoint.

The window used to compute statistics will be no more than 59999ms from the requested windowSize.

openTime for /api/v3/ticker always starts on a minute, while the closeTime is the current time of the request. As such, the effective window will be up to 59999ms wider than windowSize.

E.g. If the closeTime is 1641287867099 (January 04, 2022 09:17:47:099 UTC) , and the windowSize is 1d. the openTime will be: 1641201420000 (January 3, 2022, 09:17:00 UTC)

Weight:(IP)

2 for each requested symbol regardless of windowSize

The weight for this request will cap at 100 once the number of symbols in the request is more than 50.

Parameters

NameTypeMandatoryDescription
symbolSTRINGYESEither symbol or symbols must be provided

Examples of accepted format for the symbols parameter:
["BTCUSDT","BNBUSDT"]
or
%5B%22BTCUSDT%22,%22BNBUSDT%22%5D

The maximum number of symbols allowed in a request is 100.
symbols
windowSizeENUMNODefaults to 1d if no parameter provided
Supported windowSize values:
1m,2m....59m for minutes
1h, 2h....23h - for hours
1d...7d - for days

Units cannot be combined (e.g. 1d2h is not allowed)
typeENUMNOSupported values: FULL or MINI.
If none provided, the default is FULL

Data Source: Database


Websocket Market Streams

  • The base endpoint is: wss://stream.binance.com:9443 or wss://stream.binance.com:443
  • Streams can be accessed either in a single raw stream or in a combined stream
  • Raw streams are accessed at /ws/\<streamName>
  • Combined streams are accessed at /stream?streams=\<streamName1>/\<streamName2>/\<streamName3>
  • Combined stream events are wrapped as follows: {"stream":"\<streamName>","data":\<rawPayload>}
  • All symbols for streams are lowercase
  • A single connection to stream.binance.com is only valid for 24 hours; expect to be disconnected at the 24 hour mark
  • The websocket server will send a ping frame every 3 minutes. If the websocket server does not receive a pong frame back from the connection within a 10 minute period, the connection will be disconnected. Unsolicited pong frames are allowed.
  • The base endpoint wss://data-stream.binance.com can be subscribed to receive market data messages. Users data stream is NOT available from this URL.

Live Subscribing/Unsubscribing to streams#

  • The following data can be sent through the websocket instance in order to subscribe/unsubscribe from streams. Examples can be seen below.
  • The id used in the JSON payloads is an unsigned INT used as an identifier to uniquely identify the messages going back and forth.
  • In the response, if the result received is null this means the request sent was a success.

Subscribe to a stream#

Response

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

    {    

    "method": "SUBSCRIBE",
    "params":
    [
    "btcusdt@aggTrade",
    "btcusdt@depth"
    ],
    "id": 1
    }

Unsubscribe to a stream#

Response

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

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

Listing Subscriptions#

Response

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

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

Setting Properties#

Currently, the only property can be set is to set whether combined stream payloads are enabled or 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}
  • Request

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

Retrieving Properties#

Response

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

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

Error Messages#

Error MessageDescription
{"code": 0, "msg": "Unknown property", "id": '%s'}Parameter used in the SET_PROPERTY or GET_PROPERTY was invalid
{"code": 1, "msg": "Invalid value type: expected Boolean", "id": '%s'}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": "BNBBTC",    // Symbol  "a": 12345,       // 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?  "M": true         // Ignore}

The Aggregate Trade Streams push trade information that is aggregated for a single taker order.

Stream Name: <symbol>@aggTrade

Update Speed: Real-time

Trade Streams#

Payload:

{  "e": "trade",     // Event type  "E": 123456789,   // Event time  "s": "BNBBTC",    // Symbol  "t": 12345,       // Trade ID  "p": "0.001",     // Price  "q": "100",       // Quantity  "b": 88,          // Buyer order ID  "a": 50,          // Seller order ID  "T": 123456785,   // Trade time  "m": true,        // Is the buyer the market maker?  "M": true         // Ignore}

The Trade Streams push raw trade information; each trade has a unique buyer and seller.

Stream Name: <symbol>@trade

Update Speed: Real-time

Kline/Candlestick Streams#

Payload:

{  "e": "kline",     // Event type  "E": 123456789,   // Event time  "s": "BNBBTC",    // Symbol  "k": {    "t": 123400000, // Kline start time    "T": 123460000, // Kline close time    "s": "BNBBTC",  // 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 second.

Stream Name: <symbol>@kline_<interval>

Update Speed: 2000ms

Kline/Candlestick chart intervals:

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

  • 1s
  • 1m
  • 3m
  • 5m
  • 15m
  • 30m
  • 1h
  • 2h
  • 4h
  • 6h
  • 8h
  • 12h
  • 1d
  • 3d
  • 1w
  • 1M

Individual Symbol Mini Ticker Stream#

Payload:

  {    "e": "24hrMiniTicker",  // Event type    "E": 123456789,         // Event time    "s": "BNBBTC",          // 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. These are NOT the statistics of the UTC day, but a 24hr rolling window for the previous 24hrs.

Stream Name: <symbol>@miniTicker

Update Speed: 1000ms

All Market Mini Tickers Stream#

Payload:

[  {    // Same as <symbol>@miniTicker payload  }]

24hr rolling window mini-ticker statistics for all symbols that changed in an array. These are NOT the statistics of the UTC day, but a 24hr rolling window for the previous 24hrs. 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": "BNBBTC",      // Symbol  "p": "0.0015",      // Price change  "P": "250.00",      // Price change percent  "w": "0.0018",      // Weighted average price  "x": "0.0009",      // First trade(F)-1 price (first trade before the 24hr rolling window)  "c": "0.0025",      // Last price  "Q": "10",          // Last quantity  "b": "0.0024",      // Best bid price  "B": "10",          // Best bid quantity  "a": "0.0026",      // Best ask price  "A": "100",         // Best ask 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 for the previous 24hrs.

Stream Name: <symbol>@ticker

Update Speed: 1000ms

All Market Tickers Stream#

Payload:

[  {    // Same as <symbol>@ticker payload  }]

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

Stream Name: !ticker@arr

Update Speed: 1000ms

Individual Symbol Rolling Window Statistics Streams#

Payload:

{  "e": "1hTicker",    // Event type  "E": 123456789,     // Event time  "s": "BNBBTC",      // Symbol  "p": "0.0015",      // Price change  "P": "250.00",      // Price change percent  "o": "0.0010",      // Open price  "h": "0.0025",      // High price  "l": "0.0010",      // Low price  "c": "0.0025",      // Last price  "w": "0.0018",      // Weighted average 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}

Rolling window ticker statistics for a single symbol, computed over multiple windows.

Stream Name: <symbol>@ticker_<window_size>

Window Sizes: 1h,4h,1d

Update Speed: 1000ms

Note: This stream is different from the <symbol>@ticker stream. The open time O always starts on a minute, while the closing time C is the current time of the update.

As such, the effective window might be up to 59999ms wider that <window_size>.

All Market Rolling Window Statistics Streams#

Payload:

[  {    // Same as <symbol>@ticker_<window-size> payload,    // one for each symbol updated within the interval.  }]

Rolling window ticker statistics for all market symbols, computed over multiple windows. Note that only tickers that have changed will be present in the array.

Stream Name: !ticker_<window-size>@arr

Window Size: 1h,4h,1d

Update Speed: 1000ms

Individual Symbol Book Ticker Streams#

Payload:

{  "u":400900217,     // order book updateId  "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.

Multiple <symbol>@bookTicker streams can be subscribed to over one connection.

Stream Name: <symbol>@bookTicker

Update Speed: Real-time

Partial Book Depth Streams#

Payload:

{  "lastUpdateId": 160,  // Last update ID  "bids": [             // Bids to be updated    [      "0.0024",         // Price level to be updated      "10"              // Quantity    ]  ],  "asks": [             // Asks to be updated    [      "0.0026",