Skip to main content

Change Log

**2023-08-25**

The following changes will be effective from 2023-08-25 at UTC 00:00.

  • The REQUEST_WEIGHT rate limit for SPOT API has been adjusted to 6,000 every minute.
  • The RAW_REQUESTS for SPOT API has been adjusted to 61,000 every 5 minutes.
  • The weights to the following requests for the SPOT API have been adjusted.

Please refer to the table for more details:

RequestPrevious Request WeightNew Request Weight
GET /api/v3/order24
GET /api/v3/orderList24
GET /api/v3/openOrders - With symbol36
GET /api/v3/openOrders- Without symbol4080
GET /api/v3/openOrderList36
GET /api/v3/allOrders1020
GET /api/v3/allOrderList1020
GET /api/v3/myTrades1020
GET /api/v3/myAllocations1020
GET /api/v3/myPreventedMatches - Using preventedMatchId12
GET /api/v3/myPreventedMatches - Using orderId1020
GET /api/v3/account1020
GET /api/v3/rateLimit/order2040
GET /api/v3/exchangeInfo1020
GET /api/v3/depth - Limit 1-10012
GET /api/v3/depth - Limit 101-500510
GET /api/v3/depth - Limit 501-10001020
GET /api/v3/depth - Limit 1001-500050100
GET /api/v3/aggTrades12
GET /api/v3/trades12
GET /api/v3/historicalTrades510
GET /api/v3/klines12
GET /api/v3/uiKlines12
GET /api/v3/ticker/bookTicker - With symbol12
GET /api/v3/ticker/bookTicker - Without symbol or With symbols24
GET /api/v3/ticker/price- With symbol12
GET /api/v3/ticker/price- Without symbol or With symbols24
GET /api/v3/ticker/24hr - With symbol or With symbols using 1-20 symbols12
GET /api/v3/ticker/24hr - With symbols using 21-100 symbols2040
GET /api/v3/ticker/24hr - Without symbol or symbols using 101 or more symbols4080
GET /api/v3/avgPrice12
GET /api/v3/ticker24
GET /api/v3/ticker - Maximum weight for this request100200
POST /api/v3/userDataStream12
PUT /api/v3/userDataStream12
DELETE /api/v3/userDataStream12

**2023-08-18**
  • Update endpoints for VIP Loan:
    • POST /sapi/v1/loan/vip/borrow: add field isFlexibleRate to borrow using flexible rate loan

**2023-08-08**

Smart Order Routing (SOR) has been added to the APIs. For more information please refer to our FAQ. Please wait for future announcements on when the feature will be enabled.

SPOT API

  • Changes to GET /api/v3/exchangeInfo:
    • New field in response: sors, describing SORs enabled on the exchange.
  • Changes to GET /api/v3/myPreventedMatches
    • New field makerSymbol will appear in the response for all prevented matches.
  • New endpoints for order placement using SOR:
    • POST /api/v3/sor/order
    • POST /api/v3/sor/order/test
  • New endpoint GET /api/v3/myAllocations

USER DATA STREAM

  • Changes to executionReport:
    • These fields are only relevant for orders placed using SOR:
      • New field b for matchType
      • New field a for allocId
      • New field k for workingFloor
    • This field is only relevant for orders expiring due to STP:
      • New field Cs for counterSymbol

**2023-08-02**
  • As per the announcement, eeffective from 21 Aug 2023, a 1% transaction fee will apply when you buy or create gift cards in Binance directly. The following endpoints are impacted:
    • POST /sapi/v1/giftcard/createCode
    • POST /sapi/v1/giftcard/buyCode

**2023-07-20**
  • As per the announcement, effective from 20 July 2023, creating gift cards is limited only to entity accounts which have passed KYB verification. The following endpoints are impacted:
    • POST /sapi/v1/giftcard/createCode
    • POST /sapi/v1/giftcard/buyCode
  • New endpoints for Classic Porfolio Margin:
    • POST /sapi/v1/portfolio/asset-collection: Fund Collection by Asset

**2023-07-18**
  • New API key type – Ed25519 – is now supported. (UI support will be released this week.)
    • Ed25519 API keys are an alternative to RSA API keys, using asymmetric cryptography to authenticate your requests on the API.
    • We recommend switching to Ed25519 for improved performance and security.
      For more information, please refer to our supplemental document API Key Types.
  • Documentation has been updated with how to sign a payload with Ed25519 keys.

**2023-07-14**
  • New endpoints for Classic Porfolio Margin:
    • POST /sapi/v1/portfolio/repay-futures-switch: Change Auto-repay-futures Status
    • GET /sapi/v1/portfolio/repay-futures-switch: Get Auto-repay-futures Status
    • POST /sapi/v1/portfolio/repay-futures-negative-balance: Repay futures Negative Balance
  • New endpoints for VIP Loan:
    • POST /sapi/v1/loan/vip/renew: VIP Loan Renew

**2023-07-11**

Notice: The change below are being rolled out, and will take approximately a week to complete.

SPOT API

  • Changes to error messages:
    • Previously, when duplicate symbols were passed to requests that do not allow it, the error would be "Mandatory parameter symbols was not sent, was empty/null, or malformed."
    • Now, the error message is "Symbol is present multiple times in the list", with a new error code -1151
    • This affects the following requests:
      • GET /api/v3/exchangeInfo
      • GET /api/v3/ticker/24hr
      • GET /api/v3/ticker/price
      • GET/api/v3/ticker/bookTicker
  • Fixed a bug where some non-archived orders being queried would receive the error code that their order was archived.
  • Changes to GET /api/v3/account:
    • New field preventSor will appear in the response.
    • New field uid that shows the User Id/Account will appear in the response.
  • Changes to GET /api/v3/historicalTrades:
    • Changed security type from MARKET_DATA to NONE.
    • This means that the X-MBX-APIKEY header is no longer necessary and is now ignored.

The following changes will take effect approximately a week from the release date::

  • Fixed multiple bugs with orders that use type=MARKET and quoteOrderQty, also known as “reverse market orders”:
    • Reverse market orders are no longer partially filled, or filled for zero or negative quantity under extreme market conditions.
    • MARKET_LOT_SIZE filter now correctly rejects reverse market orders that go over the symbol's maxQty.
  • Fixed a bug where OCO orders using trailingDelta could have an incorrect trailingTime value after either leg of the OCO is touched.
  • New field transactTime will appear in order cancellation responses. This affects the following requests:
    • DELETE /api/v3/order
    • POST /api/v3/order/cancelReplace
    • DELETE /api/v3/openOrders
    • DELETE /api/v3/orderList

**2023-07-07**
  • New endpoints for Margin:
    • POST /sapi/v1/margin/max-leverage: Adjust cross margin max leverage

**2023-06-29**
  • Added multiple new endpoints related to ETH Staking in Staking.
  • New endpoints for Margin:
    • GET /sapi/v1/margin/dust: Get Assets That Can Be Converted Into BNB
    • POST /sapi/v1/margin/dust: Convert dust assets to BNB.
  • New endpoints for VIP Loan(effective on 2023-06-30):
    • POST /sapi/v1/loan/vip/borrow: Borrow VIP loan
    • GET /sapi/v1/loan/vip/loanable/data: Get interest rate and borrow limit of loanable assets.
    • GET /sapi/v1/loan/vip/collateral/data: Get collateral asset data
    • GET /sapi/v1/loan/vip/request/data: Query application status.

**2023-06-22**
  • New endpoints for Sub-Account:
    • POST /sapi/v1/sub-account/eoptions/enable: enable Options for Sub-account
    • GET /sapi/v1/managed-subaccount/query-trans-log: Query Managed Sub Account Transfer Log (For Trading Team Sub Account)
  • Update endpoints for Margin:
    • POST /sapi/v1/margin/order: add fields autoRepayAtCancel and selfTradePreventionMode
    • POST /sapi/v1/margin/order/oco: add field selfTradePreventionMode
  • New endpoints for Simple Earn.
  • Delete endpoint for Lending:
    • 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

**2023-06-20**
  • New endpoints for Auto-Investment:
    • GET /sapi/v1/lending/auto-invest/target-asset/list: query target asset list
    • GET /sapi/v1/lending/auto-invest/target-asset/roi/list: query ROI return list for target asset
    • GET /sapi/v1/lending/auto-invest/all/asset: query all source assets and target assets
    • GET /sapi/v1/lending/auto-invest/source-asset/list : query source asset to be used for investment
    • POST /sapi/v1/lending/auto-invest/plan/add: create an investment plan
    • POST/sapi/v1/lending/auto-invest/plan/edit: adjust the details of the plan
    • POST /sapi/v1/lending/auto-invest/plan/edit-status: change plan status
    • GET /sapi/v1/lending/auto-invest/plan/list: query plan lists
    • GET /sapi/v1/lending/auto-invest/plan/id: Get holding details of the plan
    • GET /sapi/v1/lending/auto-invest/history/list: query subscription transaction history of a plan
  • Update endpoints for Margin:
    • GET /sapi/v1/margin/delist-schedule: get tokens or symbols delist schedule for cross margin and isolated margin

**2023-06-09**
  • Below changes are applicable to the Classic Portfolio Margin Program and the new Portfolio Margin Program: these will be taken into effect on 2023-06-22: Transfers in and out of Portfolio Margin Account can only be done through Cross Margin Wallets. Please be aware that transfer in and out from UM or CM wallets to non-PM wallets (such as spot wallet and option wallet) are not supported, below are the impacted APIs:
    • For POST /sapi/v1/asset/transfer, below parameters can no longer be supported:
      • MAIN_UMFUTURE
      • MAIN_CMFUTURE
      • UMFUTURE_MAIN
      • UMFUTURE_MARGIN
      • CMFUTURE_MARGIN
      • MARGIN_UMFUTURE
      • MARGIN_CMFUTURE
      • FUNDING_UMFUTURE
      • UMFUTURE_FUNDING
      • FUNDING_CMFUTURE
      • CMFUTURE_FUNDING
      • UMFUTURE_OPTION
      • OPTION_UMFUTURE
    • POST /sapi/v1/sub-account/futures/internalTransfer will no longer be supported
    • POST /sapi/v1/sub-account/futures/transfer will no longer be supported
    • POST /sapi/v1/futures/transfer will no longer be supported
    • POST /sapi/v1/sub-account/universalTransfer will no longer be supported for below:
      • SPOT transfer to USDT_FUTURE, COIN_FUTURE (regardless of master or sub)
      • USDT_FUTURE, COIN_FUTURE transfer to SPOT (regardless of master or sub)
  • New endpoints for Classic Portfolio Margin(Effective on 06/09):
    • POST /sapi/v1/portfolio/auto-collection: all transfers (excluding UM Account’s BNB) from Futures Account to Margin account
    • POST /sapi/v1/portfolio/bnb-transfer: BNB transfer can be between Margin Account and UM Account

**2023-06-06**
  • A new endpoint is now available for redundancy: https://api-gcp.binance.com/
    • This is using the GCP (Google Cloud Platform) CDN and may have slower performance compared to api1-api4 endpoints.

**2023-06-01**
  • New WEBSOCKET for Bwap:
    • New Base url wss://api.binance.com/sapi/wss for BSwap streams earn_swapprice_<poolid> and earn_swapprice_all

**2023-05-30**
  • Update endpoints for Pay:
    • GET /sapi/v1/pay/transactions: add more content in response field fundsDetail

**2023-05-26**

Notice: The change below are being rolled out, and will take approximately a week to complete.


**2023-05-24**
  • The previous market data URLs have been deprecated. Please update your code immediately to prevent interruption of our services.
    • API Market data from data.binance.com can now be accessed from data-api.binance.vision.
    • Websocket Market Data from data-stream.binance.com can now be accessed from data-stream.binance.vision.
  • GET /sapi/v1/portfolio/interest-rate has be deprecated, users can query the Classic Portfolio Margin Negative Balance Interest Rate by using GET /sapi/v1/margin/interestRateHistory.

**2023-05-18**
  • New endpoints for Wallet:
    • POST /sapi/v1/capital/deposit/credit-apply: apply deposit credit for expired address

**2023-05-09**
  • New endpoints for Portfolio Margin:
    • GET /sapi/v1/portfolio/asset-index-price: query portfolio margin asset index price
  • Update endpoints for Wallet:
    • POST /sapi/v1/asset/transfer: add enum MAIN_PORTFOLIO_MARGIN and PORTFOLIO_MARGIN_MAIN

**2023-04-20**
  • New endpoints for Sub-Account:
    • GET /sapi/v1/managed-subaccount/deposit/address: get managed sub-account deposit address
  • Update endpoints for VIP Loans:
    • GET /sapi/v1/loan/vip/ongoing/orders: add fields totalCollateralValueAfterHaircut and lockedCollateralValue

**2023-04-18**
  • New endpoints for Spot Algo:
    • POST /sapi/v1/algo/spot/newOrderTwap to support new order
    • DELETE /sapi/v1/algo/spot/order to support cancel Algo order
    • GET /sapi/v1/algo/spot/openOrders to support query Algo open orders
    • GET /sapi/v1/algo/spot/historicalOrders to support query Algo historical orders
    • GET /sapi/v1/algo/spot/subOrders to support query Algo sub orders for a specified algoId

**2023-03-23**
  • Update endpoints for Sub-Account:
    • GET /sapi/v1/managed-subaccount/queryTransLogForInvestor: Add response field tranId
    • GET /sapi/v1/managed-subaccount/queryTransLogForTradeParent: Add response field tranId
  • New endpoints for Sub-Account:
    • GET /sapi/v1/managed-subaccount/info: query investor's managed sub-account list
    • GET /sapi/v1/sub-account/transaction-statistics: Query sub-account transaction tatistics

**2023-03-13**

Notice: All changes are being rolled out gradually to all our servers, and may take a week to complete.

GENERAL CHANGES

  • The error messages for certain issues have been improved for easier troubleshooting.
SituationOld Error MessageNew Error Message
An account cannot place or cancel an order, due to trading ability disabled.This action is disabled on this account.This account may not place or cancel orders.
When the permissions configured on the symbol do not match the permissions on the account.This symbol is not permitted for this account.
When the account tries to place an order on a symbol it has no permissions for.This symbol is restricted for this account.
Placing an order when symbol is not TRADING. Unsupported order combination.This order type is not possible in this trading phase.
Placing an order with timeinForce=IOC or FOK on a trading phase that does not support it.Limit orders require GTC for this phase.
  • Fixed error message for querying archived orders:
    • Previously, If an archived order (i.e. order with status CANCELED or EXPIRED where executedQty == 0 that occurred more than 90 days in the past.) is queried, the error message would be:
      • {"code": -2013,"msg": "Order does not exist."}
    • Now, the error message is:
      • {"code": -2026,"msg": "Order was canceled or expired with no executed qty over 90 days ago and has been archived."}
  • Behavior for API requests with startTime and endTime:
    • Previously some requests failed if the startTime == endTime.
    • Now, all API requests that accept startTime and endTime allow the parameters to be equal. This applies to the following requests:
      • Rest API
        • GET /api/v3/aggTrades
        • GET /api/v3/klines
        • GET /api/v3/allOrderList
        • GET /api/v3/allOrders
        • GET /api/v3/myTrades

The following changes will take effect approximately a week from the release date, but the rest of the documentation has been updated to reflect the future changes:

  • Changes to Filter Evaluation:
    • Previous behavior: LOT_SIZE and MARKET_LOT_SIZE required that (quantity - minQty) % stepSize == 0.
    • New behavior: This has now been changed to (quantity % stepSize) == 0.
  • Bug fix with reverse MARKET orders (i.e., MARKET using quoteOrderQty):
    • Previous behavior: Reverse market orders would always have the status FILLED even if the order did not fully fill due to low liquidity.
    • New behavior: If the reverse market order did not fully fill due to low liquidity the order status will be EXPIRED, and FILLED only if the order was completely filled.

SPOT API

  • Changes to DELETE /api/v3/order and POST /api/v3/order/cancelReplace:
    • A new optional parameter cancelRestrictions that determines whether the cancel will succeed if the order status is NEW or PARTIALLY_FILLED.
    • If the order cancellation fails due to cancelRestrictions, the error will be:
      • {"code": -2011,"msg": "Order was not canceled due to cancel restrictions."}

**2023-02-27**
  • New endpoints for Margin:
    • /sapi/v1/margin/next-hourly-interest-rate: Get user the next hourly estimate interest
  • New endpoints for Porfolio Margin:
    • GET /sapi/v1/portfolio/interest-history: get user's portfolio margin interest history
    • GET /sapi/v1/portfolio/interest-rate: get portfolio margin interest rate

**2023-02-21**
  • Adjusted endpoints for Crypto Loan:
    • POST /sapi/v1/loan/borrow: paramater loanTerm is restricted to 7 or 30

**2023-02-17**

The Websocket Stream now only allows 300 connections requests every 5 minutes.

This limit is per IP address.

Please be careful when trying to open multiple connections or reconnecting to the Websocket API.


**2023-02-13**
  • New endpoints for Sub-Account:
    • GET /sapi/v4/sub-account/assets: Fetch sub-account assets

**2023-02-02**
  • New endpoints for Margin:
    • GET /sapi/v1/margin/exchange-small-liability: Query the coins which can be small liability exchange
    • POST /sapi/v1/margin/exchange-small-liability: Cross Margin Small Liability Exchange
    • GET /sapi/v1/margin/exchange-small-liability-history: Get Small liability Exchange History
  • Update endpoints for Wallet:
    • Universal Transfer POST /sapi/v1/asset/transfer support option transfer

**2023-01-26**

As per the announcement, Self Trade Prevention will be enabled at 2023-01-26 08:00 UTC.

Please refer to GET /api/v3/exchangeInfo from the Rest API or exchangeInfo from the Websocket API on the default and allowed modes.


**2023-01-23**

New API cluster has been added. Note that all endpoints are functionally equal, but may vary in performance.


**2023-01-19**

ACTUAL RELEASE DATE TBD

SPOT API

New Feature: Self-Trade Prevention (aka STP) will be added to the system at a later date. This will prevent orders from matching with orders from the same account, or accounts under the same tradeGroupId.

Please refer to GET /api/v3/exchangeInfo from the SPOT API or exchangeInfo from the Websocket API on the status.

"defaultSelfTradePreventionMode": "NONE",   //If selfTradePreventionMode not provided, this will be the value passed to the engine"allowedSelfTradePreventionModes": [        //What the allowed modes of selfTradePrevention are    "NONE",    "EXPIRE_TAKER",    "EXPIRE_BOTH",    "EXPIRE_MAKER"]
  • New order status: EXPIRED_IN_MATCH - This means that the order expired due to STP being triggered.
  • New endpoint:
    • GET /api/v3/myPreventedMatches - This queries the orders that expired due to STP being triggered.
  • New optional parameter selfTradePreventionMode has been added to the following endpoints:
    • POST /api/v3/order
    • POST /api/v3/order/oco
    • POST /api/v3/cancelReplace
  • New responses that will appear for all order placement endpoints if there was a prevented match (i.e. if an order could have matched with an order of the same account, or the accounts are in the same tradeGroupId):
    • tradeGroupId - This will only appear if account is configured to a tradeGroupId and if there was a prevented match.
    • preventedQuantity - Only appears if there was a prevented match.
    • An array preventedMatches with the following fields:
      • preventedMatchId
      • makerOrderId
      • price
      • takerPreventedQuantity - This will only appear if selfTradePreventionMode set is EXPIRE_TAKER or EXPIRE_BOTH.
      • makerPreventedQuantity - This will only appear if selfTradePreventionMode set is EXPIRE_MAKER or EXPIRE_BOTH.
  • New fields preventedMatchId and preventedQuantity that can appear in the order query endpoints if the order had expired due to an STP trigger:
    • GET /api/v3/order
    • GET /api/v3/openOrders
    • GET /api/v3/allOrders

USER DATA STREAM

  • New execution Type: TRADE_PREVENTION
  • New fields for executionReport (These fields will only appear if the order has expired due to STP trigger)
    • u - tradeGroupId
    • v - preventedMatchId
    • U - counterOrderId
    • A - preventedQuantity
    • B - lastPreventedQuantity

**2023-01-13**
  • The following endpoints will be discontinued on January 13, 2023 6:00 AM UTC:
    • 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
  • New endpoints for Sub-Account:
    • GET /sapi/v1/managed-subaccount/fetch-future-asset: Investor can use this api to query managed sub account futures asset details
    • GET /sapi/v1/managed-subaccount/marginAsset: Investor can use this api to query managed sub account margin asset details
  • New endpoin for Margin:
    • GET /sapi/v1/margin/crossMarginCollateralRatio: Get cross margin collateral ratio

**2023-01-05**
  • New endpoints for Sub-Account:
    • GET /sapi/v1/managed-subaccount/queryTransLogForInvestor: Investor can use this api to query managed sub account transfer log
    • GET /sapi/v1/managed-subaccount/queryTransLogForTradeParent: Trading team can use this api to query managed sub account transfer log

**2022-12-26**
  • New endpoints for wallet:
    • GET /sapi/v1/capital/contract/convertible-coins: Get a user's auto-conversion settings in deposit/withdrawal
    • POST /sapi/v1/capital/contract/convertible-coins: User can use it to turn on or turn off the BUSD auto-conversion from/to a specific stable coin.

**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#

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 request rate limit or order 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.
  • There is a limit of 300 connections per attempt every 5 minutes per IP.

/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=1668481559918&recvWindow=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=1668481559918&recvWindow=5000' | openssl dgst -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=1668481559918&recvWindow=5000' | openssl dgst -sha256 -sign ./test-prv-key.pem | openssl enc -base64 -AHZ8HOjiJ1s/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

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

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

Step 2.5

 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'

2.5 - curl command

Bash script

#!/usr/bin/env bash
# Set up authentication:API_KEY="put your own API Key here"PRIVATE_KEY_PATH="test-prv-key.pem"
# Set up the request:API_METHOD="POST"API_CALL="api/v3/order"API_PARAMS="symbol=BTCUSDT&side=SELL&type=LIMIT&timeInForce=GTC&quantity=1&price=0.2"
# Sign the request:timestamp=$(date +%s000)api_params_with_timestamp="$API_PARAMS&timestamp=$timestamp"signature=$(echo -n "$api_params_with_timestamp" \            | openssl dgst -sha256 -sign "$PRIVATE_KEY_PATH" \            | openssl enc -base64 -A)
# Send the request:curl -H "X-MBX-APIKEY: $API_KEY" -X "$API_METHOD" \    "https://api.binance.com/$API_CALL?$api_params_with_timestamp" \    --data-urlencode "signature=$signature"

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

SIGNED Endpoint Examples for POST /api/v3/order - Ed25519 Keys#

ParameterValue
symbolBTCUSDT
sideSELL
typeLIMIT
timeInForceGTC
quantity1
price0.2
timestamp1668481559918

Python script

#!/usr/bin/env python3
import base64import requestsimport timefrom cryptography.hazmat.primitives.serialization import load_pem_private_key
# Set up authenticationAPI_KEY='put your own API Key here'PRIVATE_KEY_PATH='test-prv-key.pem'
# Load the private key.# In this example the key is expected to be stored without encryption,# but we recommend using a strong password for improved security.with open(PRIVATE_KEY_PATH, 'rb') as f:    private_key = load_pem_private_key(data=f.read(),                                       password=None)
# Set up the request parametersparams = {    'symbol':       'BTCUSDT',    'side':         'SELL',    'type':         'LIMIT',    'timeInForce':  'GTC',    'quantity':     '1.0000000',    'price':        '0.20',}
# Timestamp the requesttimestamp = int(time.time() * 1000) # UNIX timestamp in millisecondsparams['timestamp'] = timestamp
# Sign the requestpayload = '&'.join([f'{param}={value}' for param, value in params.items()])signature = base64.b64encode(private_key.sign(payload.encode('ASCII')))params['signature'] = signature
# Send the requestheaders = {    'X-MBX-APIKEY': API_KEY,}response = requests.post(    'https://api.binance.com/api/v3/order',    headers=headers,    data=params,)print(response.json())

A sample code in Python to show how to sign the payload with an Ed25519 key is available on 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
  • TRD_GRP_006
  • TRD_GRP_007
  • TRD_GRP_008
  • TRD_GRP_009
  • TRD_GRP_010
  • TRD_GRP_011
  • TRD_GRP_012
  • TRD_GRP_013

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)
EXPIRED_IN_MATCHThe order was canceled by the exchange due to STP trigger. (e.g. an order with EXPIRE_TAKER will match with existing orders on the book with the same account or same tradeGroupId)

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

AllocationType

  • SOR

WorkingFloor

  • EXCHANGE
  • SOR

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

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 % 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 % 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

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

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

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

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

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.

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

Fetch deposit history.

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
coinSTRINGNO
statusINTNO0(0:pending,6: credited but cannot withdraw, 7=Wrong Deposit,8=Waiting User confirm, 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": "",    "completeTime": "2023-03-23 16:52:41" // complete UTC time when user's asset is deduct from withdrawing, only if status =  6(success)  },  {    "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": "",    "completeTime": "2023-03-23 16:52:41"   }]

GET /sapi/v1/capital/withdraw/history

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

Fetch deposit address with network.

Weight(IP): 10

Parameters:

NameTypeMandatoryDescription
coinSTRINGYES
networkSTRINGNO
amountDECIMALNO
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).
  • amount needs to be sent if using LIGHTNING network

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

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

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

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

Convert dust assets to BNB.

Weight(UID): 10

Parameters:

NameTypeMandatoryDescription
assetARRAYYESThe asset being converted. For example: asset=BTC,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

Query asset dividend record.

Weight(IP): 10

Parameters:

NameTypeMandatoryDescription
assetSTRINGNO
startTimeLONGNO
endTimeLONGNO
limitINTNODefault 20, max 500
recvWindowLONGNO
timestampLONGYES
  • There cannot be more than 180 days between parameter startTime and endTime.

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

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

Fetch trade fee

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
symbolSTRINGNO
recvWindowLONGNO
timestampLONGYES

User Universal Transfer (USER_DATA)#

Response:

{    "tranId":13526853623}

POST /sapi/v1/asset/transfer

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
    • MAIN_OPTION Spot account transfer to Options account
    • OPTION_MAIN Options account transfer to Spot account
    • UMFUTURE_OPTION USDⓈ-M Futures account transfer to Options account
    • OPTION_UMFUTURE Options account transfer to USDⓈ-M Futures account
    • MARGIN_OPTION Margin(cross)account transfer to Options account
    • OPTION_MARGIN Options account transfer to Margin(cross)account
    • FUNDING_OPTION Funding account transfer to Options account
    • OPTION_FUNDING Options account transfer to Funding account
    • MAIN_PORTFOLIO_MARGIN Spot account transfer to Portfolio Margin account
    • PORTFOLIO_MARGIN_MAIN Portfolio Margin account transfer to Spot account
    • MAIN_ISOLATED_MARGIN Spot account transfer to Isolated margin account
    • ISOLATED_MARGIN_MAIN Isolated margin account transfer to Spot 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

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

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
  • ENUM of types:
    • 244 convert via sapi call
    • 11 auto convert when deposit
    • 32 auto convert when withdraw
    • 34 in case withdraw failed
    • 254 busd auto convert job

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

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
recvWindowLONGNO
timestampLONGYES

Query auto-converting stable coins (USER_DATA)#

Response:

{  "convertEnabled": true,  "coins": [    "USDC",    "USDP",    "TUSD"  ],  "exchangeRates": {    "USDC": "1",    "TUSD": "1",    "USDP": "1"  }}

GET /sapi/v1/capital/contract/convertible-coins

Get a user's auto-conversion settings in deposit/withdrawal

Weight(UID): 600

Parameters: None

Switch on/off BUSD and stable coins conversion (USER_DATA)#

Response: Returns code 200 on success without body.

POST /sapi/v1/capital/contract/convertible-coins

User can use it to turn on or turn off the BUSD auto-conversion from/to a specific stable coin.

Weight(UID): 600

Parameters:

NameTypeMandatoryDescription
coinSTRINGYESMust be USDC, USDP or TUSD
enableBOOLEANYEStrue: turn on the auto-conversion. false: turn off the auto-conversion
  • Params need to be in the POST body

One click arrival deposit apply (for expired address deposit) (USER_DATA)#

Response:

{    "code": "000000",    "message": "success",    "data":true,    "success": true}

POST /sapi/v1/capital/deposit/credit-apply

Apply deposit credit for expired address (One click arrival)

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
depositIdLONGNODeposit record Id, priority use
txIdSTRINGNODeposit txId, used when depositId is not specified
subAccountIdLONGNOSub-accountId of Cloud user
subUserIdLONGNOSub-userId of parent user
  • Params need to be in the POST body

Sub-Account Endpoints

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

Response:

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

POST /sapi/v1/sub-account/virtualSubAccount

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

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

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

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

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

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

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

Fetch sub-account deposit address

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub account email
coinSTRINGYES
networkSTRINGNO
amountDECIMALNO
recvWindowLONGNO
timestampLONGYES
  • amount needs to be sent if using LIGHTNING network

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

Fetch sub-account deposit history

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub account email
coinSTRINGNO
statusINTNO0(0:pending,6: credited but cannot withdraw,7:Wrong Deposit,8:Waiting User confirm,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

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

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

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

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

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

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

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

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

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
  • You need to open Enable Spot & Margin Trading permission for the API Key which requests this endpoint.

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

Response

{    "txnId":"2966662589"}

POST /sapi/v1/sub-account/margin/transfer

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
  • You need to open Enable Spot & Margin Trading permission for the API Key which requests this endpoint.

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

Response

{    "txnId":"2966662589"}

POST /sapi/v1/sub-account/transfer/subToSub

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
toEmailSTRINGYESSub-account email
assetSTRINGYES
amountDECIMALYES
recvWindowLONGNO
timestampLONGYES
  • You need to open Enable Spot & Margin Trading permission for the API Key which requests this endpoint.

Transfer to Master (For Sub-account)#

Response

{    "txnId":"2966662589"}

POST /sapi/v1/sub-account/transfer/subToMaster

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
assetSTRINGYES
amountDECIMALYES
recvWindowLONGNO
timestampLONGYES
  • You need to open Enable Spot & Margin Trading permission for the API Key which requests this endpoint.

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

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

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
    • Sub-account MARGIN(Cross) transfer to Sub-account MARGIN(Cross)

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

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

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

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

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

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub-account email
enableBlvtBOOLEANYESOnly true for now
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

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"  ],  "updateTime": 1636371437000,  "apiKey": "k5V49ldtn4tszj6W3hystegdfvmGbqDzjmkCtpTvC0G74WhK7yd4rfCTo4lShf"}

DELETE /sapi/v1/sub-account/subAccountApi/ipRestriction/ipList

Weight(UID): 3000

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub-account email
subAccountApiKeySTRINGYES
ipAddressSTRINGNOCan be added in batches, separated by commas
recvWindowLONGNO
timestampLONGYES
  • You need to enable Enable Spot & Margin Trading option for the api key which requests this endpoint

Add 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.  ],  "updateTime": 1636371437000,  "apiKey": "k5V49ldtn4tszj6W3hystegdfvmGbqDzjmkCtpTvC0G74WhK7yd4rfCTo4lShf"}

POST /sapi/v2/sub-account/subAccountApi/ipRestriction

Weight(UID): 3000

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub-account email
subAccountApiKeySTRINGYES
statusSTRINGYESIP Restriction status. 1 = IP Unrestricted. 2 = Restrict access to trusted IPs only.
ipAddressSTRINGNOInsert static IP in batch, separated by commas.
recvWindowLONGNO
timestampLONGYES
  • You need to enable Enable Spot & Margin Trading option for the api key which requests this endpoint

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

Response

{    "tranId":66157362489}

POST /sapi/v1/managed-subaccount/deposit

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

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

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

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

Query Managed Sub Account Transfer Log (For Investor Master Account) (USER_DATA)#

Response

{    managerSubTransferHistoryVos: [        0: {            fromEmail: "test_0_virtual@kq3kno9imanagedsub.com"            fromAccountType: "SPOT"            toEmail: "wdywl0lddakh@test.com"            toAccountType: "SPOT"            asset: "BNB"            amount: "0.01"            scheduledData: 1679416673000            createTime: 1679416673000            status: "SUCCESS"            tranId: 91077779        }        1: {            fromEmail: "wdywl0lddakh@test.com"            fromAccountType: "SPOT"            toEmail: "test_0_virtual@kq3kno9imanagedsub.com"            toAccountType: "SPOT"            asset: "BNB"            amount: "1"            scheduledData: 1679416616000            createTime: 1679416616000            status: "SUCCESS"            tranId: 91077676        }    ]    count: 2}

GET /sapi/v1/managed-subaccount/queryTransLogForInvestor

Investor can use this api to query managed sub account transfer log. This endpoint is available for investor of Managed Sub-Account. A Managed Sub-Account is an account type for investors who value flexibility in asset allocation and account application, while delegating trades to a professional trading team. Please refer to link

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESManaged Sub Account Email
startTimeLONGYESStart Time
endTimeLONGYESEnd Time (The start time and end time interval cannot exceed half a year)
pageINTYESPage
limitINTYESLimit (Max: 500)
transfersSTRINGNOTransfer Direction (FROM/TO)
transferFunctionAccountTypeSTRINGNOTransfer function account type (SPOT/MARGIN/ISOLATED_MARGIN/USDT_FUTURE/COIN_FUTURE)

Query Managed Sub Account Transfer Log (For Trading Team Master Account) (USER_DATA)#

Response

{    managerSubTransferHistoryVos: [        0: {            fromEmail: "test_0_virtual@kq3kno9imanagedsub.com"            fromAccountType: "SPOT"            toEmail: "wdywl0lddakh@test.com"            toAccountType: "SPOT"            asset: "BNB"            amount: "0.01"            scheduledData: 1679416673000            createTime: 1679416673000            status: "SUCCESS"            tranId: 91077779        }        1: {            fromEmail: "wdywl0lddakh@test.com"            fromAccountType: "SPOT"            toEmail: "test_0_virtual@kq3kno9imanagedsub.com"            toAccountType: "SPOT"            asset: "BNB"            amount: "1"            scheduledData: 1679416616000            createTime: 1679416616000            status: "SUCCESS"            tranId: 91077676        }    ]    count: 2}

GET /sapi/v1/managed-subaccount/queryTransLogForTradeParent

Trading team can use this api to query managed sub account transfer log. This endpoint is available for trading team of Managed Sub-Account. A Managed Sub-Account is an account type for investors who value flexibility in asset allocation and account application, while delegating trades to a professional trading team. Please refer to link

Weight(UID): 60

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESManaged Sub Account Email
startTimeLONGYESStart Time
endTimeLONGYESEnd Time (The start time and end time interval cannot exceed half a year)
pageINTYESPage
limitINTYESLimit (Max: 500)
transfersSTRINGNOTransfer Direction (FROM/TO)
transferFunctionAccountTypeSTRINGNOTransfer function account type (SPOT/MARGIN/ISOLATED_MARGIN/USDT_FUTURE/COIN_FUTURE)

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

Response

{  "code": "200",  "message": "OK",  "snapshotVos": [    {      "type": "FUTURES",      "updateTime": 1672893855394,      "data": {        "assets": [          {            "asset": "USDT",            "marginBalance": 100,            "walletBalance": 120          }        ],        "position": [          {            "symbol": "BTCUSDT",            "entryPrice": 17000,            "markPrice": 17000,            "positionAmt": 0.0001          }        ]      }    }  ]}

GET /sapi/v1/managed-subaccount/fetch-future-asset

Investor can use this api to query managed sub account futures asset details

Weight(UID): 60

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESManaged Sub Account Email

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

Response

{  marginLevel:"999"  totalAssetOfBtc:"0"  totalLiabilityOfBtc:"0"  totalNetAssetOfBtc:"0"  userAssets:[    0:{    asset:"MATIC"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    1:{    asset:"VET"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    2:{    asset:"BAKE"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    3:{    asset:"SHIB"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    4:{    asset:"USDT"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    5:{    asset:"DOGE"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    6:{    asset:"AAVE"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    7:{    asset:"ONT"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    8:{    asset:"XRP"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    9:{    asset:"XLM"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    10:{    asset:"LINK"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    11:{    asset:"QTUM"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    12:{    asset:"ETHW"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    13:{    asset:"XTZ"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    14:{    asset:"LUNA"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    15:{    asset:"EUR"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    16:{    asset:"IOST"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    17:{    asset:"BCH"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    18:{    asset:"BTC"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    19:{    asset:"IOTA"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    20:{    asset:"CREAM"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    21:{    asset:"BAT"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    22:{    asset:"BNB"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    23:{    asset:"ETH"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    24:{    asset:"ZEC"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    25:{    asset:"USDC"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    26:{    asset:"LTC"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    27:{    asset:"BUSD"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    28:{    asset:"ZIL"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }    29:{    asset:"THETA"    borrowed:"0"    free:"0"    interest:"0"    locked:"0"    netAsset:"0"    }  ]}

GET /sapi/v1/managed-subaccount/marginAsset

Investor can use this api to query managed sub account margin asset details

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESManaged Sub Account Email

Query Sub-account Assets (For Master Account)(USER_DATA)#

Response

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

GET /sapi/v4/sub-account/assets

Fetch sub-account assets

Weight(UID): 60

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESManaged Sub Account Email
recvWindowLONGNO
timestampLONGYES

Query Managed Sub-account List (For Investor)(USER_DATA)#

Response

{    total: 3    managerSubUserInfoVoList: [        0: {            rootUserId: 1000138475670            managersubUserId: 1000137842513            bindParentUserId: 1000138475669            email: "test_0_virtual@kq3kno9imanagedsub.com"            insertTimeStamp: 1678435149000            bindParentEmail: "wdyw8xsh8pey@test.com"            isSubUserEnabled: true            isUserActive: true            isMarginEnabled: false            isFutureEnabled: false            isSignedLVTRiskAgreement: false        }        1: {            rootUserId: 1000138475670            managersubUserId: 1000137842514            bindParentUserId: 1000138475669            email: "test_1_virtual@4qd2u7zxmanagedsub.com"            insertTimeStamp: 1678435152000            bindParentEmail: "wdyw8xsh8pey@test.com"            isSubUserEnabled: true            isUserActive: true            isMarginEnabled: false            isFutureEnabled: false            isSignedLVTRiskAgreement: false        }        2: {            rootUserId: 1000138475670            managersubUserId: 1000137842515            bindParentUserId: 1000138475669            email: "test_2_virtual@akc05o8hmanagedsub.com"            insertTimeStamp: 1678435153000            bindParentEmail: "wdyw8xsh8pey@test.com"            isSubUserEnabled: true            isUserActive: true            isMarginEnabled: false            isFutureEnabled: false            isSignedLVTRiskAgreement: false        }    ]}

GET /sapi/v1/managed-subaccount/info

Get investor's managed sub-account list.

Weight(UID): 60

Parameters:

NameTypeMandatoryDescription
emailSTRINGNOManaged sub-account email
pageINTNODefault value: 1
limitINTNODefault value: 20, Max value: 20
recvWindowLONGNO
timestampLONGYES

Query Sub-account Transaction Statistics (For Master Account) (USER_DATA)#

Response example:

{    "recent30BtcTotal": "0",    "recent30BtcFuturesTotal": "0",    "recent30BtcMarginTotal": "0",    "recent30BusdTotal": "0",    "recent30BusdFuturesTotal": "0",    "recent30BusdMarginTotal": "0",    "tradeInfoVos": []}

OR

{    "recent30BtcTotal": "0",    "recent30BtcFuturesTotal": "0",    "recent30BtcMarginTotal": "0",    "recent30BusdTotal": "0",    "recent30BusdFuturesTotal": "0",    "recent30BusdMarginTotal": "0",    "tradeInfoVos": [        {            "userId": 1000138138384,            "btc": 0,            "btcFutures": 0,            "btcMargin": 0,            "busd": 0,            "busdFutures": 0,            "busdMargin": 0,            "date": 1676851200000        },        {            "userId": 1000138138384,            "btc": 0,            "btcFutures": 0,            "btcMargin": 0,            "busd": 0,            "busdFutures": 0,            "busdMargin": 0,            "date": 1677110400000        },        {            "userId": 1000138138384,            "btc": 0,            "btcFutures": 0,            "btcMargin": 0,            "busd": 0,            "busdFutures": 0,            "busdMargin": 0,            "date": 1677369600000        }    ]}

GET /sapi/v1/sub-account/transaction-statistics

Query Sub-account Transaction statistics (For Master Account).

Weight(UID): 60

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub user email
recvWindowLONGNO
timestampLONGYES

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

Response:

{    "coin": "USDT",    "address": "0x206c22d833bb0bb2102da6b7c7d4c3eb14bcf73d",    "tag": "",    "url": "https://etherscan.io/address/0x206c22d833bb0bb2102da6b7c7d4c3eb14bcf73d"}

GET /sapi/v1/managed-subaccount/deposit/address

Get investor's managed sub-account deposit address.

Weight(UID): 1

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub user email
coinSTRINGYES
networkSTRINGNOnetworks can be found in GET /sapi/v1/capital/deposit/address
recvWindowLONGNO
timestampLONGYES
  • If network is not send, return with default network of the coin.

Enable Options for Sub-account (For Master Account)(USER_DATA)#

Response:

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

POST /sapi/v1/sub-account/eoptions/enable

Enable Options for Sub-account (For Master Account).

Weight(IP): 1

Parameters:

NameTypeMandatoryDescription
emailSTRINGYESSub user email
recvWindowLONGNO
timestampLONGYES

Query Managed Sub Account Transfer Log (For Trading Team Sub Account)(USER_DATA)#

Response:

{    "managerSubTransferHistoryVos": [        {            "fromEmail": "test_0_virtual@kq3kno9imanagedsub.com",            "fromAccountType": "SPOT",            "toEmail": "wdywl0lddakh@test.com",            "toAccountType": "SPOT",            "asset": "BNB",            "amount": "0.01",            "scheduledData": 1679416673000,            "createTime": 1679416673000,            "status": "SUCCESS",            "tranId": 91077779        },        {            "fromEmail": "wdywl0lddakh@test.com",            "fromAccountType": "SPOT",            "toEmail": "test_0_virtual@kq3kno9imanagedsub.com",            "toAccountType": "SPOT",            "asset": "BNB",            "amount": "1",            "scheduledData": 1679416616000,            "createTime": 1679416616000,            "status": "SUCCESS",            "tranId": 91077676        }    ],    "count": 2}

GET /sapi/v1/managed-subaccount/query-trans-log

Query Managed Sub Account Transfer Log (For Trading Team Sub Account)

Weight(UID): 60

Parameters:

NameTypeMandatoryDescription
startTimeLONGYESStart Time
endTimeLONGYESEnd Time (The start time and end time interval cannot exceed half a year)
pageINTYESPage
limitINTYESLimit (Max: 500)
transfersSTRINGNOTransfer Direction (FROM/TO)
transferFunctionAccountTypeSTRINGNOTransfer function account type (SPOT/MARGIN/ISOLATED_MARGIN/USDT_FUTURE/COIN_FUTURE)
recvWindowLONGNO
timestampLONGYES

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): 20

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","TRD_GRP_006","TRD_GRP_007","TRD_GRP_008","TRD_GRP_009","TRD_GRP_010","TRD_GRP_011","TRD_GRP_012","TRD_GRP_013"])

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-1002
101-50010
501-100020
1001-5000100

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): 2

Parameters:

NameTypeMandatoryDescription
symbolSTRINGYES
limitINTNODefault 500; max 1000.

Data Source: Memory

Old Trade Lookup#

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): 10

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): 2

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): 2

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:

[  [