Change Log
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 parameteraccountTypePOST /sapi/v1/asset/convert-transfer/queryByPage: request method is changed toGET, new parameterclientTranId
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/borrowPOST /sapi/v1/futures/loan/repayGET /sapi/v1/futures/loan/configsGET /sapi/v2/futures/loan/configsGET /sapi/v1/futures/loan/calcAdjustLevelGET /sapi/v2/futures/loan/calcAdjustLevelGET /sapi/v1/futures/loan/calcMaxAdjustAmountGET /sapi/v2/futures/loan/calcMaxAdjustAmountPOST /sapi/v1/futures/loan/adjustCollateralPOST /sapi/v2/futures/loan/adjustCollateralGET /sapi/v1/futures/loan/collateralRepayLimitGET /sapi/v1/futures/loan/collateralRepayPOST /sapi/v1/futures/loan/collateralRepayGET /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>@bookTickerstreams 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 paramthirdPartyPOST /sapi/v1/sub-account/subAccountApi/ipRestriction/ipList: Add new paramthirdPartyNameDELETE /sapi/v1/sub-account/subAccountApi/ipRestriction/ipList: Add new paramthirdPartyName
- Add Rate Limit for following endpoints:
GET /sapi/v1/bswap/liquidity: 3/1s per account and per poolGET /sapi/v1/bswap/quote: 3/1s per account and per poolPOST /sapi/v1/lending/daily/purchase: 1/3s per accountPOST /sapi/v1/lending/customizedFixed/purchase: 1/3s per accountPOST /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 BorrowGET /sapi/v1/loan/borrow/history: Borrow - Get Loan Borrow HistoryGET/sapi/v1/loan/ongoing/orders: Borrow - Get Loan Ongoing OrdersPOST/sapi/v1/loan/repay: Repay - Crypto Loan RepayGET/sapi/v1/loan/repay/history: Repay - Get Loan Repayment HistoryPOST/sapi/v1/loan/adjust/ltv: Adjust LTV - Crypto Loan Adjust LTVGET/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
permissionsadded 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/exchangeInfowithout any parameters will show all symbols that can be used forSPOT,MARGINand/orLEVERAGEDtrading. - 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)
- This means the request
- Cannot be combined with
symbolorsymbols
- New optional parameter
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/tickerandGET /api/v3/ticker/24hr- New optional parameter
typeadded - Supported values for parameter
typeareFULLandMINIFULLis the default value and the response that is currently being returned from the endpointMINIomits the following fields from the response:priceChangePercent,weightedAvgPrice,bidPrice,bidQty,askPrice,askQty, andlastQty
- New optional parameter
- 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
brokeredhas been added toGET /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/orderandPOST /api/v3/order/cancelReplace- New optional field
strategyIdis a parameter used to identify an order as part of a strategy. - New optional field
strategyTypeis 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 tostrategyType=1000000) - Note:
strategyTypecannot be less than1000000.
- New optional field
- 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.
limitStrategyTypeandstopStrategyTypeboth cannot be less than1000000.
- New optional fields
- Changes to
GET /api/v3/order,GET /api/v3/openOrders, andGET /api/v3/allOrders- New fields
strategyIdandstrategyTypewill appear in the response JSON for orders that had these fields populated upon order placement.
- New fields
- Changes to
DELETE /api/v3/orderandDELETE /api/v3/openOrders- New fields
strategyIdandstrategyTypewill appear in the response JSON for cancelled orders that had these fields populated upon order placement.
- New fields
USER DATA STREAM
- New fields to eventType
executionReportjforstrategyIdJforstrategyType- 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/pmLoanQuery Portfolio Margin Bankruptcy Loan RecordPOST /sapi/v1/portfolio/repayPortfolio Margin Bankruptcy Loan Repay
2022-07-18
- New endpoint for Portfolio Margin:
GET /sapi/v1/portfolio/collateralRateto get Portfolio Margin Collateral Rate.
2022-07-01
- New endpoint for Wallet:
POST /sapi/v3/asset/getUserAssetto get user assets.
- New endpoint for Margin:
GET /sapi/v1/margin/dribbletto 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
symbolssent is more than 100, the error will be as follows:
- If the number of
{
"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.
- I.e. If the request has more than 50 symbols, the Weight will still be 100, regardless of
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/tickeradded- Rolling window price change statistics based on
windowSizeprovided. - Contrary to
GET /api/v3/ticker/24hrthe list of symbols cannot be omitted. - If
windowSizenot specified, the value will default to1d. - Response is similar to
GET /api/v3/ticker/24hr, minus the following fields:prevClosePrice,lastQty,bidPrice,bidQty,askPrice,askQty
- Rolling window price change statistics based on
POST /api/v3/order/cancelReplaceadded- 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_ORDERSfilter is 10, and the total number of open orders on the account is also 10, when usingPOST /api/v3/order/cancelReplaceboth the cancel order placement and new order will fail because of the filter.
- e.g. If the
- 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/exchangeInforeturns new fieldcancelReplaceAllowedinsymbolslist.- New filter
NOTIONALhas been added.- Defines the allowed notional value (
price * quantity) based on a configuredminNotionalandmaxNotional
- Defines the allowed notional value (
- New exchange filter
EXCHANGE_MAX_NUM_ICEBERG_ORDERShas 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
- Individual symbol ticker streams
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
startTimeandendTimeis 30 days.:GET /sapi/v1/margin/transferGET /sapi/v1/margin/loanGET /sapi/v1/margin/repayGET /sapi/v1/margin/isolated/transferGET /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
- SPOT API
Updates to
MAX_POSITION- If an order's
quantitycan cause the position to overflow, this will now fail theMAX_POSITIONfilter.
- If an order's
2022-05-19
- Update endpoint for Mining:
GET /sapi/v1/mining/pub/algoListandGET /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
startTimeandendTime, the oldest items are returned.
- When providing
- Changed error messaging on
GET /api/v3/myTradeswhere parametersymbolis 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/24hrGET /api/v3/ticker/priceGET /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:
| Endpoint | Number of Symbols | Weight |
|---|---|---|
GET /api/v3/ticker/price |
Any | 2 |
GET /api/v3/ticker/bookTicker |
Any | 2 |
GET /api/v3/ticker/24hr |
1-20 | 1 |
GET /api/v3/ticker/24hr |
21-100 | 20 |
GET /api/v3/ticker/24hr |
101 or more | 40 |
2022-05-05
- New endpoint for Binance Code:
GET /sapi/v1/giftcard/cryptography/rsa-public-keyto fetch RSA public key.
- Update endpoint for Binance Code:
POST /sapi/v1/giftcard/redeemCode: new optional parameterexternalUid. 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/productListto get Staking product listPOST /sapi/v1/staking/purchaseto stake productPOST /sapi/v1/staking/redeemto redeem productGET /sapi/v1/staking/positionto get Staking product holding positionGET /sapi/v1/staking/stakingRecordto inquiry Staking history recordsPOST /sapi/v1/staking/setAutoStakingto set Auto Staking functionGET /sapi/v1/staking/personalLeftQuotato inquiry Staking left quota
2022-04-27
- New endpoint for Futures Algo:
POST /sapi/v1/algo/futures/newOrderTwapto support Twap new order
FAQ: Time-Weighted Average Price(Twap) Introduction
2022-04-26
GET /sapi/v1/margin/rateLimit/orderadded- 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/accountto support query portfolio margin account info
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/newOrderVpto support VP new orderDELETE /sapi/v1/algo/futures/orderto support cancel Algo orderGET /sapi/v1/algo/futures/openOrdersto support query Algo open ordersGET /sapi/v1/algo/futures/historicalOrdersto support query Algo historical ordersGET /sapi/v1/algo/futures/subOrdersto 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
trailingDeltaparameter will be done in Basis Points or BIPS.- For example: a STOP_LOSS SELL order with a
trailingDeltaof 100 will trigger after a price decrease of 1%. (100 / 10,000 => 0.01 => 1%)
- For example: a STOP_LOSS SELL order with a
- When used in combination with OCO Orders, the
trailingDeltawill determine when the contingent leg of the OCO will trigger. - When
trailingDeltais used in combination withstopPrice, once thestopPricecondition is met, the trailing stop starts tracking the price change from thestopPricebased on thetrailingDeltaprovided. - When no
stopPriceis sent, the trailing stop starts tracking the price changes from the last price based on thetrailingDeltaprovided.
- 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
- Changes to POST
/api/v3/order- New optional field
trailingDelta
- New optional field
- Changes to POST
/api/v3/order/test- New optional field
trailingDelta
- New optional field
- Changes to POST
/api/v3/order/oco- New optional field
trailingDelta
- New optional field
- A new filter
TRAILING_DELTAhas been added.- This filter is defined by the minimum and maximum values for the
trailingDeltavalue.
- This filter is defined by the minimum and maximum values for the
USER DATA STREAM
- New field in
executionReport- "d" for
trailingDelta
- "d" for
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/allOrderswheresymbolis 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
- Update WEBSOCKET for BLVT:
- Base url changed to
wss://nbstream.binance.com/lvt-pfor BLVT streams<tokenName>@tokenNavand<tokenName>@nav_Kline_<interval>More details: Websocket BLVT Info Streams and Websocket BLVT NAV Kline/Candlestick Streams
- Base url changed to
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 endpoint
GET /sapi/v1/managed-subaccount/accountSnapshotto support investor master account query asset snapshot of managed sub-account
- New endpoint
2022-03-08
- Update endpoint for Sub-Account:
- New transfer types
MARGIN,ISOLATED_MARGINand parametersymboladded inPOST /sapi/v1/sub-account/universalTransferto support transfer to sub-account cross margin account and isolated margin account
- New transfer types
2022-02-28
- New field
allowTrailingStophas been added toGET /api/v3/exchangeInfo
2022-02-22
SPOT API
(price-minPrice) % tickSize == 0rule inPRICE_FILTERhas been changed toprice % tickSize == 0.- A new filter
PERCENT_PRICE_BY_SIDEhas been added. - Changes to GET
api/v3/depth- The
limitvalue 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:
- The
| Limit | Request Weight |
|---|---|
| 1-100 | 1 |
| 101-500 | 5 |
| 501-1000 | 10 |
| 1001-5000 | 50 |
- Changes to GET
api/v3/aggTrades- When providing
startTimeandendTime, the oldest items are returned.
- When providing
2022-2-18
- Update endpoint for Sub-Account:
- New fields
isManagedSubAccountandisAssetManagementSubAccountadded inGET /sapi/v1/sub-account/listto support query whether the sub-account is a managed sub-account or a asset management sub-account
- New fields
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-btcto get assets that can be converted into BNB
2022-1-25
- From January 28, 2022 4:00 AM UTC, You need to open
Enable Spot & Margin Tradingpermission for the API key which requests these endpoints as following:POST /sapi/v1/asset/dustDust transferPOST /sapi/v1/lending/daily/purchasePurchase Savings flexible productPOST /sapi/v1/lending/daily/redeemRedeem Savings flexible productPOST /sapi/v1/lending/customizedFixed/purchasePurchase Savings Fixed/Activity projectPOST /sapi/v1/lending/positionChangedChange Savings Fixed/Activity position to Daily positionPOST /sapi/v1/bswap/liquidityAddBswap add liquidityPOST /sapi/v1/bswap/liquidityRemoveBswap remove liquidityPOST /sapi/v1/bswap/swapBswap swapPOST /sapi/v1/bswap/claimRewardsBswap claim rewards
2022-1-21
- New endpoints for Binance Code:
POST /sapi/v1/giftcard/createCodeto create a Binance Code.POST /sapi/v1/giftcard/redeemCodeto redeem a Binance Code.GET /sapi/v1/giftcard/verifyto verify a Binance Code.
2022-1-4
New endpoint for Mining:
GET /sapi/v1/mining/payment/uidto get Mining account earning.
New endpoints for BSwap:
GET /sapi/v1/bswap/unclaimedRewardsto get unclaimed rewards record.POST /sapi/v1/bswap/claimRewardsto claim swap rewards or liquidity rewards.GET /sapi/v1/bswap/claimedHistoryto get history of claimed rewards.
2021-12-30
Update endpoint for Margin:
- Removed out
limitfromGET /sapi/v1/margin/interestRateHistory; The max interval between startTime and endTime is 30 days.
- Removed out
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/transferon January 05, 2022 08:00 AM UTC
- 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
2021-12-29
- Removed out dated "Symbol Type" enum; added "Permissions" enum.
2021-12-24
- Update endpoints for Sub-Account:
- New parameter
clientTranIdadded inPOST /sapi/v1/sub-account/universalTransferandGET /sapi/v1/sub-account/universalTransferto support custom transfer id
- New parameter
2021-12-03
New endpoints for Margin:
GET /sapi/v1/margin/crossMarginDatato get cross margin fee data collectionGET /sapi/v1/margin/isolatedMarginDatato get isolated margin fee data collectionGET /sapi/v1/margin/isolatedMarginTierto get isolated margin tier data collection
New endpoints for NFT:
GET /sapi/v1/nft/history/transactionsto get NFT transaction historyGET /sapi/v1/nft/history/depositto get NFT deposit historyGET /sapi/v1/nft/history/withdrawto get NFT withdraw historyGET /sapi/v1/nft/user/getAssetto get NFT asset
2021-11-30
New endpoint for Convert:
GET /sapi/v1/convert/tradeFlowto support user query convert trade history records
New endpoint for Rebate:
GET /sapi/v1/rebate/taxQueryto 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 field
infoadded inGET /sapi/v1/capital/withdraw/historyto show the reason for withdrawal failure
- New field
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/ipRestrictionto support user enable and disable IP restriction for an API KeyPOST /sapi/v1/account/apiRestrictions/ipRestriction/ipListto support user add IP list for an API KeyGET /sapi/v1/account/apiRestrictions/ipRestrictionto support user query IP restriction for an API KeyDELETE /sapi/v1/account/apiRestrictions/ipRestriction/ipListto support user delete IP list for an API Key
2021-11-16
- New endpoints for Sub-Account:
POST /sapi/v1/sub-account/subAccountApi/ipRestrictionto support master account enable and disable IP restriction for a sub-account API KeyPOST /sapi/v1/sub-account/subAccountApi/ipRestriction/ipListto support master account add IP list for a sub-account API KeyGET /sapi/v1/sub-account/subAccountApi/ipRestrictionto support master account query IP restriction for a sub-account API KeyDELETE /sapi/v1/sub-account/subAccountApi/ipRestriction/ipListto support master account delete IP list for a sub-account API Key
2021-11-09
- New endpoints for Wallet:
POST /sapi/v1/account/apiRestrictions/ipRestrictionto support user enable and disable IP restriction for an API KeyPOST /sapi/v1/account/apiRestrictions/ipRestriction/ipListto support user add IP list for an API KeyGET /sapi/v1/account/apiRestrictions/ipRestrictionto support user query IP restriction for an API KeyDELETE /sapi/v1/account/apiRestrictions/ipRestriction/ipListto support user delete IP list for an API Key
2021-11-08
- New endpoint for Crypto Loans:
- New endpoint
GET /sapi/v1/loan/incometo support user query crypto loans income history
- New endpoint
2021-11-05
- Update endpoint for Wallet:
- New parameter
walletTypeadded inPOST /sapi/v1/capital/withdraw/applyto support user choose wallet typespot walletandfunding walletwhen withdraw crypto.
- New parameter
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/transferGET /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/orderadded- 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_CMFUTUREandCMFUTURE_FUNDINGadded in Universal Transfer endpointPOST /sapi/v1/asset/transferandGET /sapi/v1/asset/transferto 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_PAYandPAY_MAINwill be discontinued in Universal Transfer endpointPOST /sapi/v1/asset/transferandGET /sapi/v1/asset/transferon November 04, 2021 08:00 AM UTC
- New transfer types
2021-10-14
- Update the time range of the response data for the following margin account endpoints,
startTimeandendTimetime span will not exceed 30 days, without time parameter sent the system will return the last 7 days of data by default, while thearchivedparameter istrue, the system will return the last 7 days of data 6 months ago by default:GET /sapi/v1/margin/transferGET /sapi/v1/margin/loanGET /sapi/v1/margin/repayGET /sapi/v1/margin/isolated/transferGET /sapi/v1/margin/interestHistory
2021-09-18
- New endpoints for BSwap:
GET /sapi/v1/bswap/poolConfigureto get pool configureGET /sapi/v1/bswap/addLiquidityPreviewto get add liquidity previewGET /sapi/v1/bswap/removeLiquidityPreviewto 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/accountto disable isolated margin account for a specific symbolPOST /sapi/v1/margin/isolated/accountto enable isolated margin account for a specific symbolGET /sapi/v1/margin/isolated/accountLimitto query enabled isolated margin account limit
New field "enabled" in response of
GET /sapi/v1/margin/isolated/accountto check if the isolated margin account is enabled
2021-09-03
- Update endpoint for Wallet:
- New fields
sameAddress,depositDustandspecialWithdrawTipsadded inGET /sapi/v1/capital/config/getallsameAddressmeans if the coin needs to provide memo to withdrawdepositDustmeans minimum creditable amountspecialWithdrawTipsmeans special tips for withdraw - New field
confirmNoadded inGET /sapi/v1/capital/withdraw/historyto support query confirm times for withdraw history
- New fields
2021-08-27
- Update endpoint for Wallet:
- New parameter
withdrawOrderIdadded inGET /sapi/v1/capital/withdraw/historyto support user query withdraw history by withdrawOrderId - New field
unlockConfirmadded inGET /sapi/v1/capital/deposit/hisrecto support query network confirm times for unlocking
- New parameter
2021-08-23
- New endpoints for Margin Account OCO:
POST /sapi/v1/margin/order/ocoDELETE /sapi/v1/margin/orderListGET /sapi/v1/margin/orderListGET /sapi/v1/margin/allOrderListGET /sapi/v1/margin/openOrderList
Same usage as spot account OCO
2021-08-20
- Update endpoint for Wallet:
- New parameters
fromSymbol,toSymboland new transfer typesISOLATEDMARGIN_MARGIN,MARGIN_ISOLATEDMARGINandISOLATEDMARGIN_ISOLATEDMARGINadded inPOST /sapi/v1/asset/transferandGET /sapi/v1/asset/transferto support user transfer assets between Margin(cross) account and Margin(isolated) account
- New parameters
2021-08-12
- GET
api/v3/myTradeshas a new optional fieldorderId
2021-08-05
- New endpoint for C2C:
GET /sapi/v1/c2c/orderMatch/listUserOrderHistoryto query user C2C trade history
2021-08-05
- Update endpoints for Savings:
GET /sapi/v1/lending/union/purchaseRecordGET /sapi/v1/lending/union/redemptionRecordGET /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/subUserHistoryifstartTimeandendTimeare not sent, the recent 30-day data will be returned by default
2021-07-27
- New endpoint for Fiat:
GET /sapi/v1/fiat/ordersto query user fiat deposit and withdraw historyGET /sapi/v1/fiat/paymentsto query user fiat payments history
2021-07-16
- New endpoint for Wallet:
GET /sapi/v1/account/apiRestrictionsto query user API Key permission
2021-07-09
- New endpoint for Wallet:
POST /sapi/v1/asset/get-funding-assetto 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/historyadded default value 1000, max value 1000 for the parameterlimitGET /sapi/v1/capital/deposit/hisrecadded default value 1000, max value 1000 for the parameterlimit
2021-06-17
- Update endpoint for Savings:
GET /sapi/v1/lending/daily/product/listto include new parameterscurrentandsize
2021-06-15
- New endpoints for Sub-Account:
POST /sapi/v1/managed-subaccount/depositto deposit assets into the managed sub-account (only for investor master account)GET /sapi/v1/managed-subaccount/assetto query managed sub-account asset details (only for investor master account)POST /sapi/v1/managed-subaccount/withdrawto 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.htmlPOST /wapi/v3/withdraw.htmlGET /wapi/v3/depositHistory.htmlGET /wapi/v3/withdrawHistory.htmlGET /wapi/v3/depositAddress.htmlGET /wapi/v3/accountStatus.htmlGET /wapi/v3/apiTradingStatus.htmlGET /wapi/v3/userAssetDribbletLog.htmlGET /wapi/v3/assetDetail.htmlGET /wapi/v3/tradeFee.htmlGET /wapi/v3/sub-account/list.htmlGET /wapi/v3/sub-account/transfer/history.htmlPOST /wapi/v3/sub-account/transfer.htmlGET /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_MAINadded in Universal Transfer endpointPOST /sapi/v1/asset/transferandGET /sapi/v1/asset/transferto support trasnfer assets between spot account and pay account
- New transfer types
2021-05-12
- Added
Data Sourcein the documentation to explain where each endpoint is retrieving its data - Added field
Data Sourceto each Spot API endpoint in the documentation - GET
api/v3/exchangeInfonow 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/orderweight increased to 2GET /api/v3/openOrdersweight increased to 3GET /api/v3/allOrdersweight increased to 10GET /api/v3/orderListweight increased to 2GET /api/v3/openOrderListweight increased to 3GET /api/v3/accountweight increased to 10GET /api/v3/myTradesweight increased to 10GET /api/v3/exchangeInfoweight increased to 10
2021-04-08
- Update endpoint for Sub-Account:
GET /sapi/v1/sub-account/futures/accountSummaryandGET /sapi/v2/sub-account/futures/accountSummarythe unit of fieldassetchanged to USD valued summary of sub-account assets
2021-04-02
- New endpoints for Wallet:
GET /sapi/v1/system/statusto query system statusGET /sapi/v1/account/statusto query account statusGET /sapi/v1/account/apiTradingStatusto query account API trading statusGET /sapi/v1/asset/dribbletto query dust logGET /sapi/v1/asset/assetDetailto query asset detailGET /sapi/v1/asset/tradeFeeto query trade fee
- New endpoint for Sub-Account:
GET /sapi/v3/sub-account/assetsto query sub-account assets
2021-04-01
- Update endpoint for Sub-Account:
GET /sapi/v1/sub-account/transfer/subUserHistorynew fieldsfromAccountTypeandtoAccountTypeadded in response
2021-03-31
- Update endpoint for Sub-Account:
GET /wapi/v3/sub-account/transfer/history.htmladded new parametersfromEmailandtoEmail, the original parameteremailis equal tofromEmailby default
2021-03-08
- New endpoint for Sub-Account:
POST /sapi/v1/sub-account/virtualSubAccountto support create a virtual sub-accountGET /sapi/v1/sub-account/listto support query sub-account listPOST /sapi/v1/sub-account/blvt/enableto support enable blvt for sub-account
2021-03-05
- New endpoints for Margin:
-
GET /sapi/v1/margin/interestRateHistoryto support margin interest rate history query
-
2021-02-08
- New endpoints for Futures:
-
GET /sapi/v2/futures/loan/walletto support BUSD loan query -
GET /sapi/v2/futures/loan/configsto support BUSD loan query -
GET /sapi/v2/futures/loan/calcAdjustLevelto support BUSD loan -
GET /sapi/v2/futures/loan/calcMaxAdjustAmountto support adjustment of BUSD loan -
POST /sapi/v2/futures/loan/adjustCollateralto support adjustment of BUSD loan
-
- Update endpoints for Futures
-
GET /sapi/v1/futures/loan/adjustCollateral/historynew parameter and fields in responseloanCoinfor BUSD loan -
GET /sapi/v1/futures/loan/liquidationHistorynew parameter and fields in responseloanCoinfor BUSD loan
-
2021-02-04
- New transfer types
MARGIN_MINING,MINING_MARGIN,MARGIN_C2C,C2C_MARGIN,MARGIN_CMFUTURE,CMFUTURE_MARGINadded in Universal Transfer endpointPOST /sapi/v1/asset/transferandGET /sapi/v1/asset/transfer.
2021-01-15
- New endpoint
DELETE /sapi/v1/margin/openOrdersfor 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
pageSizefor Mining endpointGET /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/otherGET /sapi/v1/mining/hash-transfer/config/detailsGET /sapi/v1/mining/hash-transfer/config/details/listGET /sapi/v1/mining/hash-transfer/profit/detailsPOST /sapi/v1/mining/hash-transfer/configPOST /sapi/v1/mining/hash-transfer/config/cancel
2021-01-01
USER DATA STREAM
outboundAccountInfohas been removed.
2020-12-30
- New endpoint for Wallet:
POST /sapi/v1/asset/transferto support user universal transfer among Spot, Margin, Futures, C2C, MINING accounts.GET /sapi/v1/asset/transferto get user universal transfer history.
2020-12-22
- New endpoint for Sub-Account:
GET /sapi/v1/sub-account/sub/transfer/historyto get spot asset transfer history.
2020-12-11
- Update endpoints for Futures Cross-Collateral:
GET /sapi/v1/futures/loan/walletnew fields in responseinterestFreeLimitfor total interest free limit,interestFreeLimitUsedfor interest free limit used.GET /sapi/v1/futures/loan/interestHistorynew fields in responseinterestFreeLimitUsedfor interest free limit used.
2020-12-04
Update endpoint for BLVT:
GET /sapi/v1/blvt/tokenInfonew fields in responsecurrentBaskets(includesymbol,amount,notionalValue),purchaseFeePct,dailyPurchaseLimit,redeemFeePct,dailyRedeemLimit.
New endpoint for BLVT:
GET /sapi/v1/blvt/userLimitto get BLVT user limit info.
2020-12-02
- New endpoints for Sub-Account:
GET /sapi/v2/sub-account/futures/accountto get detail on sub-account's USDT margined futures account and COIN margined futures account.GET /sapi/v2/sub-account/futures/accountSummaryto get summary of sub-account's USDT margined futures account and COIN margined futures account.GET /sapi/v2/sub-account/futures/positionRiskto 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/ordernew parameterquoteOrderQtyallow a user to specify the totalquoteOrderQtyspent or received in theMARKETorder.
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:
- https://api1.binance.com/api/v3/*
- https://api2.binance.com/api/v3/*
- https://api3.binance.com/api/v3/*
2020-11-16
- Updated endpoints for Margin, new parameter
archivedto query data from 6 months ago:GET /sapi/v1/margin/loanGET /sapi/v1/margin/repayGET /sapi/v1/margin/interestHistory
2020-11-13
- New endpoints for Sub-Account:
POST /sapi/v1/sub-account/universalTransferto transfer spot and futures asset between master account and sub accounts.GET /sapi/v1/sub-account/universalTransferto search transfer records.
2020-11-10
- New endpoint to toggle BNB Burn:
POST /sapi/v1/bnbBurnto toggle BNB Burn on spot trade and margin interest.GET /sapi/v1/bnbBurnto get BNB Burn status.
2020-11-09
- New field
tranIdis available from endpoints:GET /sapi/v1/sub-account/futures/internalTransferGET /sapi/v1/sub-account/transfer/subUserHistory
2020-11-03
Update endpoints for Futures Cross-Collateral:
GET /sapi/v1/futures/loan/repay/historynew fields in responserepayType(NORMALfor normal repayment,COLLATERALfor collateral repayment),price(collateral repayment rate),repayCollateral(collateral amount for collateral repayment).GET /sapi/v1/futures/loan/walletnew fields in responsetotalInterest(total interest for cross-collateral),principalForInterest(cross-collateral principal for interest),interest(cross-collateral interest).GET /sapi/v1/futures/loan/configsnew fields in responseinterestRate(interest rate for cross-collateral),interestGracePeriod(interest grace period for cross-collateral).
New endpoints for Futures Cross-Collateral:
GET /sapi/v1/futures/loan/collateralRepayLimitto check the maximum and minimum limit when repay with collateral.GET /sapi/v1/futures/loan/collateralRepayto get quote for collateral repayment.POST /sapi/v1/futures/loan/collateralRepayto repay with collateral.GET /sapi/v1/futures/loan/collateralRepayResultto check collateral repayment result.GET /sapi/v1/futures/loan/interestHistoryto get cross-collateral interest history.
2020-10-14
- Update endpoints for Futures Cross-Collateral:
POST /sapi/v1/futures/loan/borrowandGET /sapi/v1/futures/loan/borrow/historynew fieldborrowIdin response for ID of Cross-Collateral borrow operation.POST /sapi/v1/futures/loan/repayandGET /sapi/v1/futures/loan/repay/historynew fieldrepayIdin response for ID of Cross-Collateral repay operation.
2020-10-10
- New
typeadded in the endpointPOST /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/maxBorrowablenew fieldborrowLimitin response for account borrow limit.
2020-09-28
- New endpoints for Binance Savings:
POST /sapi/v1/lending/positionChangedto change fixed/activity position to daily position.
- New parameter
ACTIVITYreplaceREGULARin the following Binance Savings endpoints:GET /sapi/v1/lending/project/listPOST /sapi/v1/lending/customizedFixed/purchaseGET /sapi/v1/lending/project/position/listGET /sapi/v1/lending/union/purchaseRecordGET /sapi/v1/lending/union/interestHistory
2020-09-23
- New SAPI endpoints for BSwap:
GET /sapi/v1/bswap/poolsto list all swap pools.GET /sapi/v1/bswap/liquidityto get liquidity information of a pool.POST /sapi/v1/bswap/liquidityAddto add liquidity.POST /sapi/v1/bswap/liquidityRemoveto remove liquidity.GET /sapi/v1/bswap/liquidityOpsto get liquidity operation record.GET /sapi/v1/bswap/quoteto request quotes.POST /sapi/v1/bswap/swapto swap.GET /sapi/v1/bswap/swapto get swap history.
2020-09-16
New SAPI endpoints for BLVT:
GET /sapi/v1/blvt/tokenInfoto 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 SHA256to 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
outboundAccountInfohas been deprecated.outboundAccountInfowill be removed in the future. (Exact date unknown) Please useoutboundAccountPositioninstead.outboundAccountInfowill 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/internalTransferto transfer futures asset between master account and subaccount. - New endpoint
GET /sapi/v1/sub-account/futures/internalTransferto get futures transfer history of subaccount.
2020-09-01
- New parameter
masterAccountTotalAssetadded in the endpointGET /sapi/v1/sub-account/spotSummaryto get BTC valued asset summary of master account.
2020-08-27
- New endpoint
GET /sapi/v1/sub-account/spotSummaryto get BTC valued asset summary of subaccout.
2020-08-26
- New parameter
symbolsadded in the endpointGET /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/loanPOST /sapi/v1/margin/repay
New parameter "isIsolated" and new response field "isIsolated" added for isolated margin in the following endpoints:
POST /sapi/v1/margin/orderDELETE /sapi/v1/margin/orderGET /sapi/v1/margin/orderGET /sapi/v1/margin/openOrdersGET /sapi/v1/margin/allOrdersGET /sapi/v1/margin/myTrades
New parameter "isolatedSymbol" and new response field "isolatedSymbol" added for isolated margin in the following endpoints:
GET /sapi/v1/margin/loanGET /sapi/v1/margin/repayGET /sapi/v1/margin/interestHistory
New parameter "isolatedSymbol" and new response field "isIsolated" added for isolated margin in the following endpoint
GET /sapi/v1/margin/forceLiquidationRecNew parameter "isolatedSymbol" added for isolated margin in the following endpoints:
GET /sapi/v1/margin/maxBorrowableGET /sapi/v1/margin/maxTransferable
New endpoints for isolated margin:
POST /sapi/v1/margin/isolated/createPOST /sapi/v1/margin/isolated/transferGET /sapi/v1/margin/isolated/transferGET /sapi/v1/margin/isolated/accountGET /sapi/v1/margin/isolated/pairGET /sapi/v1/margin/isolated/allPairs
New endpoints for listenKey management of isolated margin account:
POST /sapi/v1/userDataStream/isolatedPUT /sapi/v1/userDataStream/isolatedDELETE /sapi/v1/userDataStream/isolated
2020-07-20
- The max value of parameter "limit" in
GET /sapi/v1/margin/allOrdershas 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/borrowGET /sapi/v1/futures/loan/borrow/historyPOST /sapi/v1/futures/loan/repayGET /sapi/v1/futures/loan/repay/historyGET /sapi/v1/futures/loan/walletGET /sapi/v1/futures/loan/configsGET /sapi/v1/futures/loan/calcAdjustLevelGET /sapi/v1/futures/loan/calcMaxAdjustAmountPOST /sapi/v1/futures/loan/adjustCollateralGET /sapi/v1/futures/loan/adjustCollateral/historyGET /sapi/v1/futures/loan/liquidationHistory
2020-06-28
- SAPI Endpoints for futures:
POST /sapi/v1/futures/transferGET /sapi/v1/futures/transfer
2020-05-06
- New endpoints for Mining:
GET /sapi/v1/mining/pub/algoListGET /sapi/v1/mining/pub/coinListGET /sapi/v1/mining/worker/detailGET /sapi/v1/mining/worker/listGET /sapi/v1/mining/payment/listGET /sapi/v1/mining/statistics/user/statusGET /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
LIMITorder is touched or theSTOP_LOSS(orSTOP_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.
permissionsis an enum array; values:SPOTMARGIN
permissionswill replaceisSpotTradingAllowedandisMarginTradingAllowedonGET api/v3/exchangeInfoin 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
permissionsadded. - New field
quoteAssetPrecisionadded; a duplicate of thequotePrecisionfield.quotePrecisionwill be removed in future API versions (v4+).
- New field
- Updates to GET
api/v3/account- New field
permissionsadded.
- New field
- 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
BREAKorHALTstatus.
USER DATA STREAM
OutboundAccountInfohas new fieldPwhich 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 endpoint
GET /sapi/v1/lending/daily/token/position:todayPurchasedAmountfor user's purchased amount today
New lending endpoints for customized fixed projects:
GET /sapi/v1/lending/project/listPOST /sapi/v1/lending/customizedFixed/purchaseGET /sapi/v1/lending/project/position/list
2020-04-02
- New fields in response to endpoint
GET /sapi/v1/capital/config/getall:minConfirmfor min number for balance confirmationunLockConfirmfor confirmation number for balance unlock
2020-03-24
MAX_POSITIONfilter 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
BUYorders will be rejected if the account's position is greater than the maximum position allowed.
- 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:
2020-03-13
- New parameter
transactionFeeFlagis available in endpoint:POST /sapi/v1/capital/withdraw/applyandPOST /wapi/v3/withdraw.html
2020-02-05
- New sub account endpoints:
POST /sapi/v1/sub-account/futures/transferto transfer between futures and spot accout of sub-account.POST /sapi/v1/sub-account/margin/transferto transfer between margin and spot accout of sub-account.POST /sapi/v1/sub-account/transfer/subToSubto transfer to another account by sub-account.POST /sapi/v1/sub-account/transfer/subToMasterto transfer to same master by sub-account.GET /sapi/v1/sub-account/transfer/subUserHistoryto get transfer history of sub-account.
2020-01-15
New parameter
withdrawOrderIdfor client customized withdraw id for endpointPOST /wapi/v3/withdraw.html.New field
withdrawOrderIdin response toGET /wapi/v3/withdrawHistory.html
2019-12-25
New endpoints for Binance Savings:
GET /sapi/v1/lending/daily/product/listGET /sapi/v1/lending/daily/userLeftQuotaPOST /sapi/v1/lending/daily/purchaseGET /sapi/v1/lending/daily/userRedemptionQuotaPOST /sapi/v1/lending/daily/redeemGET /sapi/v1/lending/daily/token/positionGET /sapi/v1/lending/union/accountGET /sapi/v1/lending/union/purchaseRecordGET /sapi/v1/lending/union/redemptionRecordGET /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/hisrecand
GET /wapi/v3/depositHistory.html:- The default
startTimeis 90 days from current time, and the defaultendTimeis current time. - Please notice the default
startTimeandendTimeto make sure that time interval is within 0-90 days. - If both
startTimeandendTimeare sent, time betweenstartTimeandendTimemust be less than 90 days.
- The default
2019-12-18
- New endpoint to get daily snapshot of account:
GET /sapi/v1/accountSnapshot
2019-11-30
Added parameter
sideEffectTypeinPOST /sapi/v1/margin/order (HMAC SHA256)with enums:NO_SIDE_EFFECTfor normal trade order;MARGIN_BUYfor margin trade order;AUTO_REPAYfor making auto repayment after order filled.
New field
marginBuyBorrowAmountandmarginBuyBorrowAssetinFULLresponse toPOST /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
MARKETorders allow a user to specify the totalquoteOrderQtyspent or received in theMARKETorder. - Quote Order Qty
MARKETorders will not breakLOT_SIZEfilter rules; the order will execute a quantity that will have the notional value as close as possible toquoteOrderQty. - Using
BNBBTCas an example:- On the
BUYside, the order will buy as many BNB asquoteOrderQtyBTC can. - On the
SELLside, the order will sell as much BNB as needed to receivequoteOrderQtyBTC.
- On the
- Quote Order Qty
2019-11-19
GET /sapi/v1/sub-account/margin/accounthas new field:marginTradeCoeffVowhich containsforceLiquidationBarfor liquidation margin ratiomarginCallBarfor margin call margin rationormalBarfor initial margin ratio
2019-11-13
Rest API
- api/v3/exchangeInfo has new fields:
quoteOrderQtyMarketAllowedbaseCommissionPrecisionquoteCommissionPrecision
MARKETorders have a new optional field:quoteOrderQtyused to specify the quote quantity to BUY or SELL. This cannot be used in combination withquantity.- The exact timing that
quoteOrderQtyMARKET orders will be enabled is TBD. There will be a separate announcement and further details at that time.
- The exact timing that
- All order query endpoints will return a new field
origQuoteOrderQtyin 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
OCOwith astopLimitPricebut without astopLimitTimeInForcewill return the error:
- Sending an
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 Endpoints | New V3 Endpoints |
|---|---|
| GET api/v1/ticker/allPrices | GET api/v3/ticker/price |
| GET api/v1/ticker/allBookTickers | GET api/v3/ticker/bookTicker |
USER DATA STREAM
Changes to
executionReportevent- If the C field is empty, it will now properly return
null, instead of"null". - New field Q which represents the
quoteOrderQty.
- If the C field is empty, it will now properly return
balanceUpdateevent 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
networkinPOST /wapi/v3/withdraw.htmlso that asset can be withdrawed with specific network.
2019-09-09
- New WebSocket streams for bookTickers added:
<symbol>@bookTickerand!bookTicker.
2019-09-03
- Faster order book data with 100ms updates:
<symbol>@depth@100msand<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
limitof 10000 has been temporarily removedIn 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_LOSSorSTOP_LOSS_LIMITlegLIMIT_MAKERleg
- Price Restrictions:
SELL Orders: Limit Price > Last Price > Stop PriceBUY 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.
ICEBERGquantities however, do not have to be the same.
- Execution Order:
- If the
LIMIT_MAKERis touched, the limit maker leg will be executed first BEFORE canceling the Stop Loss Leg. - if the Market Price moves such that the
STOP_LOSSorSTOP_LOSS_LIMITwill trigger, the Limit Maker leg will be cancelled BEFORE executing theSTOP_LOSSLeg.
- If the
- Cancelling an OCO
- Cancelling either order leg will cancel the entire OCO.
- The entire OCO can be canceled via the
orderListIdor thelistClientOrderId.
- New Enums for OCO:
ListStatusTypeRESPONSE- 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.
ListOrderStatusEXECUTING- 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)
ContingencyTypeOCO- specifies the type of order list.
- New Endpoints:
- POST api/v3/order/oco
- DELETE api/v3/orderList
- GET api/v3/orderList
- An OCO has 2 orders: (also known as legs in financial terms)
recvWindowcannot exceed 60000.New
intervalLettervalues 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 aX-MBX-USED-WEIGHT-1Mheader in the response. The legacy headerX-MBX-USED-WEIGHTwill 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 haveX-MBX-ORDER-COUNT-**headers in the response.- Eg.
X-MBX-ORDER-COUNT-1Sfor "orders per 1 second" andX-MBX-ORDER-COUNT-1Dfor orders per "one day"
- Eg.
GET api/v1/depth now supports
limit5000 and 10000; weights are 50 and 100 respectively.GET api/v1/exchangeInfo has a new parameter
ocoAllowed.
USER DATA STREAM
executionReportevent now contains "g" which has theorderListId; it will be set to -1 for non-OCO orders.- New Event Type
listStatus;listStatusis sent on an update to any OCO order. - New Event Type
outboundAccountPosition;outboundAccountPositionis 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
recvWindowmust 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'sstatusisn'tTRADING. api/v1/depthno longer has the ignored and empty[].api/v3/myTradesnow returnsquoteQty; the price * qty of for the trade.
Websocket streams
<symbol>@depthand<symbol>@depthXstreams 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_REQUESTSrate 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_NOTIONALfilter has two new parameters:applyToMarket(whether or not the filter is applied to MARKET orders) andavgPriceMins(the number of minutes over which the price averaged for the notional estimation).intervalNumadded to /api/v1/exchangeInfo limits.intervalNumdescribes the amount of the interval. For example:intervalNum5, withintervalminute, means "every 5 minutes".
Explanation for the average price calculation:
(qty * price) of all trades / sum of qty of all trades over previous 5 minutes.
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.
If there is no trade on the symbol, there is no average price and market orders cannot be placed. On a new symbol with
applyToMarketenabled on theMIN_NOTIONALfilter, market orders cannot be placed until there is at least 1 trade.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 variableY) added to execution reports. Represents thelastPrice*lastQty(L*l).
2018-07-18
Rest API
- New filter:
ICEBERG_PARTS -
POST api/v3/ordernew defaults fornewOrderRespType.ACK,RESULT, orFULL;MARKETandLIMITorder types default toFULL, all other orders default toACK. - POST api/v3/order
RESULTandFULLresponses now havecummulativeQuoteQty - 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
updateTimewhich represents the last time the order was updated;timeis the order creation time. - Order lookup endpoints will now return
cummulativeQuoteQty. IfcummulativeQuoteQtyis < 0, it means the data isn't available for this order at this time. -
REQUESTSrate limit type changed toREQUEST_WEIGHT. This limit was always logically request weight and the previous name for it caused confusion.
User data stream
-
cummulativeQuoteQtyfield added to order responses and execution reports (as variableZ). Represents the cummulative amount of thequotethat has been spent (with aBUYorder) or received (with aSELLorder). Historical orders will have a value < 0 in this field indicating the data is not available at this time.cummulativeQuoteQtydivided bycummulativeQtywill give the average price for an order. -
O(order creation time) added to execution reports
2018-01-23
- GET /api/v1/historicalTrades weight decreased to 5
- GET /api/v1/aggTrades weight decreased to 1
- GET /api/v1/klines weight decreased to 1
- GET /api/v1/ticker/24hr all symbols weight decreased to number of trading symbols / 2
- GET /api/v3/allOrders weight decreased to 5
- GET /api/v3/myTrades weight decreased to 5
- GET /api/v3/account weight decreased to 5
- GET /api/v1/depth limit=500 weight decreased to 5
- GET /api/v1/depth limit=1000 weight decreased to 10
- -1003 error message updated to direct users to websockets
2018-01-20
- GET /api/v1/ticker/24hr single symbol weight decreased to 1
- GET /api/v3/openOrders all symbols weight decreased to number of trading symbols / 2
- GET /api/v3/allOrders weight decreased to 15
- GET /api/v3/myTrades weight decreased to 15
- GET /api/v3/order weight decreased to 1
- myTrades will now return both sides of a self-trade/wash-trade
2018-01-14
- GET /api/v1/aggTrades weight changed to 2
- GET /api/v1/klines weight changed to 2
- GET /api/v3/order weight changed to 2
- GET /api/v3/allOrders weight changed to 20
- GET /api/v3/account weight changed to 20
- GET /api/v3/myTrades weight changed to 20
- GET /api/v3/historicalTrades weight changed to 20
Introduction
API Key Setup
- Some endpoints will require an API Key. Please refer to this page regarding API key creation.
- Once API key is created, it is recommended to set IP restrictions on the key for security reasons.
- Never share your API key/secret key to ANYONE.
API Key Restrictions
- After creating the API key, the default restrictions is
Enable Reading. - To enable withdrawals via the API, the API key restriction needs to be modified through the Binance UI.
Enabling Accounts
Spot Account
A SPOT account is provided by default upon creation of a Binance Account.
Margin Account
To enable a MARGIN account for Margin Trading, please refer to the Margin Trading Guide
Spot Testnet
Users can use the SPOT Testnet to practice SPOT trading.
Currently, this is only available via the API.
Please refer to the SPOT Testnet page for more information and how to set up the Testnet API key.
API Library
Python connector
This is a lightweight library that works as a connector to Binance public API, written in Python.
https://github.com/binance/binance-connector-python
Node.js connector
This is a lightweight library that works as a connector to Binance public API, written for Node.js users.
https://github.com/binance/binance-connector-node
Ruby connector
This is a lightweight library that works as a connector to Binance public API, written for Ruby users.
https://github.com/binance/binance-connector-ruby
DotNET connector
This is a lightweight library that works as a connector to Binance public API, written for C# users.
https://github.com/binance/binance-connector-dotnet
Java connector
This is a lightweight library that works as a connector to Binance public API, written for Java users.
https://github.com/binance/binance-connector-java
Postman Collections
There is now a Postman collection containing the API endpoints for quick and easy use.
This is recommended for new users who want to get a quick-start into using the API.
For more information please refer to this page: Binance API Postman
Swagger
A YAML file with OpenAPI specification on the RESTful API is available to be used, as well as a Swagger UI page for the consulting.
https://github.com/binance/binance-api-swagger
Contact Us
- Binance API Telegram Group
- For any questions in sudden drop in performance with the API and/or Websockets.
- For any general questions about the API not covered in the documentation.
- Binance Developers
- For any questions on your code implementation with the API and/or Websockets.
- Binance Customer Support
- For cases such as missing funds, help with 2FA, etc.
General Info
General API Information
- The base endpoint is: https://api.binance.com
- If there are performance issues with the endpoint above, these API clusters are also available:
- https://api1.binance.com
- https://api2.binance.com
- https://api3.binance.com
- All endpoints return either a JSON object or array.
- Data is returned in ascending order. Oldest first, newest last.
- All time and timestamp related fields are in milliseconds.
HTTP Return Codes
- HTTP
4XXreturn codes are used for malformed requests; the issue is on the sender's side. - HTTP
403return code is used when the WAF Limit (Web Application Firewall) has been violated. - HTTP
409return 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
429return code is used when breaking a request rate limit. - HTTP
418return code is used when an IP has been auto-banned for continuing to send requests after receiving429codes. - HTTP
5XXreturn 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
GETendpoints, parameters must be sent as aquery string. - For
POST,PUT, andDELETEendpoints, the parameters may be sent as aquery stringor in therequest bodywith content typeapplication/x-www-form-urlencoded. You may mix parameters between both thequery stringandrequest bodyif you wish to do so. - Parameters may be sent in any order.
- If a parameter sent in both the
query stringandrequest body, thequery stringparameter will be used.
LIMITS
General Info on Limits
- The following
intervalLettervalues for headers:- SECOND => S
- MINUTE => M
- HOUR => H
- DAY => D
intervalNumdescribes the amount of the interval. For example,intervalNum5 withintervalLetterM means "Every 5 minutes".- The
/api/v3/exchangeInforateLimitsarray contains objects related to the exchange'sRAW_REQUESTS,REQUEST_WEIGHT, andORDERSrate limits. These are further defined in theENUM definitionssection underRate limiters (rateLimitType). - A 429 will be returned when either rate limit is violated.
IP Limits
- Every request will contain
X-MBX-USED-WEIGHT-(intervalNum)(intervalLetter)in the response headers which has the current used weight for the IP for all request rate limiters defined. - Each route has a
weightwhich determines for the number of requests each endpoint counts for. Heavier endpoints and endpoints that do operations on multiple symbols will have a heavierweight. - 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-Afterheader 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-Afterheader. Please check the Order Rate Limit rules usingGET api/v3/exchangeInfoand wait for reactivation accordingly.Rejected/unsuccessful orders are not guaranteed to have
X-MBX-ORDER-COUNT-**headers in the response.The order rate limit is counted against each account.
To monitor order count usage, refer to GET
api/v3/rateLimit/order
Websocket Limits
- WebSocket connections have a limit of 5 incoming messages per second. A message is considered:
- A PING frame
- A PONG frame
- A JSON controlled message (e.g. subscribe, unsubscribe)
- A connection that goes beyond the limit will be disconnected; IPs that are repeatedly disconnected may be banned.
- A single connection can listen to a maximum of 1024 streams.
/api/ and /sapi/ Limit Introduction
The /api/* and /sapi/* endpoints adopt either of two access limiting rules, IP limits or UID (account) limits.
Endpoints related to
/api/*:- According to the two modes of IP and UID (account) limit, each are independent.
- Endpoints share the 1200 per minute limit based on IP.
- Responses contain the header
X-MBX-USED-WEIGHT-(intervalNum)(intervalLetter), defining the weight used by the current IP. - Successful order responses contain the header
X-MBX-ORDER-COUNT-(intervalNum)(intervalLetter), defining the order limit used by the UID.
Endpoints related to
/sapi/*:- Endpoints are marked according to IP or UID limit and their corresponding weight value.
- Each endpoint with IP limits has an independent 12000 per minute limit.
- Each endpoint with UID limits has an independent 180000 per minute limit.
- Responses from endpoints with IP limits contain the header
X-SAPI-USED-IP-WEIGHT-1M, defining the weight used by the current IP. - Responses from endpoints with UID limits contain the header
X-SAPI-USED-UID-WEIGHT-1M, defining the weight used by the current UID.
Data Sources
- The API system is asynchronous, so some delay in the response is normal and expected.
- Each endpoint has a data source indicating where the data is being retrieved, and thus which endpoints have the most up-to-date response.
These are the three sources, ordered by which is has the most up-to-date response to the one with potential delays in updates.
- Matching Engine - the data is from the matching Engine
- Memory - the data is from a server's local or external memory
- Database - the data is taken directly from a database
Endpoint security type
- Each endpoint has a security type that determines how you will
interact with it. This is stated next to the NAME of the endpoint.
- If no security type is stated, assume the security type is NONE.
- API-keys are passed into the Rest API via the
X-MBX-APIKEYheader. - 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 Type | Description |
|---|---|
| NONE | Endpoint can be accessed freely. |
| TRADE | Endpoint requires sending a valid API-Key and signature. |
| MARGIN | Endpoint requires sending a valid API-Key and signature. |
| USER_DATA | Endpoint requires sending a valid API-Key and signature. |
| USER_STREAM | Endpoint requires sending a valid API-Key. |
| MARKET_DATA | Endpoint requires sending a valid API-Key. |
TRADE,MARGINandUSER_DATAendpoints areSIGNEDendpoints.
SIGNED (TRADE, USER_DATA, AND MARGIN) Endpoint security
SIGNEDendpoints require an additional parameter,signature, to be sent in thequery stringorrequest body.- Endpoints use
HMAC SHA256signatures. TheHMAC SHA256 signatureis a keyedHMAC SHA256operation. Use yoursecretKeyas the key andtotalParamsas the value for the HMAC operation. - The
signatureis not case sensitive. totalParamsis defined as thequery stringconcatenated with therequest body.
Timing security
- A
SIGNEDendpoint 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 aftertimestampthe request is valid for. IfrecvWindowis 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
Here is a step-by-step example of how to send a vaild signed payload from the
Linux command line using echo, openssl, and curl.
| Key | Value |
|---|---|
| apiKey | vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A |
| secretKey | NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j |
| Parameter | Value |
|---|---|
| symbol | LTCBTC |
| side | BUY |
| type | LIMIT |
| timeInForce | GTC |
| quantity | 1 |
| price | 0.1 |
| recvWindow | 5000 |
| timestamp | 1499827319559 |
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×tamp=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×tamp=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×tamp=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×tamp=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×tamp=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×tamp=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".
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 assetrefers to the asset that is thequantityof a symbol. For the symbol BTCUSDT, BTC would be thebase asset.quote assetrefers to the asset that is thepriceof a symbol. For the symbol BTCUSDT, USDT would be thequote asset.
ENUM definitions
Symbol status (status):
- PRE_TRADING
- TRADING
- POST_TRADING
- END_OF_DAY
- HALT
- AUCTION_MATCH
- BREAK
Account and Symbol Permissions (permissions):
- SPOT
- MARGIN
- LEVERAGED
- TRD_GRP_002
- TRD_GRP_003
- TRD_GRP_004
- TRD_GRP_005
Order status (status):
| Status | Description |
|---|---|
NEW |
The order has been accepted by the engine. |
PARTIALLY_FILLED |
A part of the order has been filled. |
FILLED |
The order has been completed. |
CANCELED |
The order has been canceled by the user. |
PENDING_CANCEL |
Currently unused |
REJECTED |
The order was not accepted by the engine and not processed. |
EXPIRED |
The order was canceled according to the order type's rules (e.g. LIMIT FOK orders with no fill, LIMIT IOC or MARKET orders that partially fill) or by the exchange, (e.g. orders canceled during liquidation, orders canceled during maintenance) |
OCO Status (listStatusType):
| Status | Description |
|---|---|
RESPONSE |
This is used when the ListStatus is responding to a failed action. (E.g. Orderlist placement or cancellation) |
EXEC_STARTED |
The order list has been placed or there is an update to the order list status. |
ALL_DONE |
The order list has finished executing and thus no longer active. |
OCO Order Status (listOrderStatus):
| Status | Description |
|---|---|
EXECUTING |
Either an order list has been placed or there is an update to the status of the list. |
ALL_DONE |
An order list has completed execution and thus no longer active. |
REJECT |
The List Status is responding to a failed action either during order placement or order canceled.) |
ContingencyType
- OCO
Order types (orderTypes, type):
- LIMIT
- MARKET
- STOP_LOSS
- STOP_LOSS_LIMIT
- TAKE_PROFIT
- TAKE_PROFIT_LIMIT
- LIMIT_MAKER
Order Response Type (newOrderRespType):
- ACK
- RESULT
- FULL
Order side (side):
- BUY
- SELL
Time in force (timeInForce):
This sets how long an order will be active before expiration.
| Status | Description |
|---|---|
GTC |
Good Til Canceled An order will be on the book unless the order is canceled. |
IOC |
Immediate Or Cancel An order will try to fill the order as much as it can before the order expires. |
FOK |
Fill or Kill An order will expire if the full order cannot be filled upon execution. |
Kline/Candlestick chart intervals:
s-> seconds; m -> minutes; h -> hours; d -> days; w -> weeks; M -> months
- 1s
- 1m
- 3m
- 5m
- 15m
- 30m
- 1h
- 2h
- 4h
- 6h
- 8h
- 12h
- 1d
- 3d
- 1w
- 1M
Rate limiters (rateLimitType)
REQUEST_WEIGHT
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 1200
}
ORDERS
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 100
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 200000
}
RAW_REQUESTS
{
"rateLimitType": "RAW_REQUESTS",
"interval": "MINUTE",
"intervalNum": 5,
"limit": 5000
}
REQUEST_WEIGHT
ORDERS
RAW_REQUESTS
Rate limit intervals (interval)
- SECOND
- MINUTE
- DAY
Filters
Filters define trading rules on a symbol or an exchange.
Filters come in two forms: symbol filters and exchange filters.
Symbol Filters
PRICE_FILTER
ExchangeInfo format:
{
"filterType": "PRICE_FILTER",
"minPrice": "0.00000100",
"maxPrice": "100000.00000000",
"tickSize": "0.00000100"
}
The PRICE_FILTER defines the price rules for a symbol. There are 3 parts:
minPricedefines the minimumprice/stopPriceallowed; disabled onminPrice== 0.maxPricedefines the maximumprice/stopPriceallowed; disabled onmaxPrice== 0.tickSizedefines the intervals that aprice/stopPricecan be increased/decreased by; disabled ontickSize== 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>=minPriceprice<=maxPriceprice%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*multiplierUpprice>=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*bidMultiplierUpOrder price>=weightedAveragePrice*bidMultiplierDown
Sell orders will succeed on this filter if:
Order Price<=weightedAveragePrice*askMultiplierUpOrder 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:
minQtydefines the minimumquantity/icebergQtyallowed.maxQtydefines the maximumquantity/icebergQtyallowed.stepSizedefines the intervals that aquantity/icebergQtycan be increased/decreased by.
In order to pass the lot size, the following must be true for quantity/icebergQty:
quantity>=minQtyquantity<=maxQty- (
quantity-minQty) %stepSize== 0
MIN_NOTIONAL
ExchangeInfo format:
{
"filterType": "MIN_NOTIONAL",
"minNotional": "0.00100000",
"applyToMarket": true,
"avgPriceMins": 5
}
The MIN_NOTIONAL filter defines the minimum notional value allowed for an order on a symbol.
An order's notional value is the price * quantity.
If the order is an Algo order (e.g. STOP_LOSS_LIMIT), then the notional value of the stopPrice * quantity will also be evaluated.
If the order is an Iceberg Order, then the notional value of the price * icebergQty will also be evaluated.
applyToMarket determines whether or not the MIN_NOTIONAL filter will also be applied to MARKET orders.
Since MARKET orders have no price, the average price is used over the last avgPriceMins minutes.
avgPriceMins is the number of minutes the average price is calculated over. 0 means the last price is used.
NOTIONAL
ExchangeInfo format:
{
"filterType": "NOTIONAL",
"minNotional": "10.00000000",
"applyMinToMarket": false,
"maxNotional": "10000.00000000",
"applyMaxToMarket": false,
"avgPriceMins": 5
}
The NOTIONAL filter defines the acceptable notional range allowed for an order on a symbol.
applyMinToMarket determines whether the minNotional will be applied to MARKET orders.
applyMaxToMarket determines whether the maxNotional will be applied to MARKET orders.
In order to pass this filter, the notional (price * quantity) has to pass the following conditions:
price * quantity<=maxNotionalprice * 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:
minQtydefines the minimumquantityallowed.maxQtydefines the maximumquantityallowed.stepSizedefines the intervals that aquantitycan be increased/decreased by.
In order to pass the market lot size, the following must be true for quantity:
quantity>=minQtyquantity<=maxQty- (
quantity-minQty) %stepSize== 0
MAX_NUM_ORDERS
ExchangeInfo format:
{
"filterType": "MAX_NUM_ORDERS",
"maxNumOrders": 25
}
The MAX_NUM_ORDERS filter defines the maximum number of orders an account is allowed to have open on a symbol.
Note that both "algo" orders and normal orders are counted for this filter.
MAX_NUM_ALGO_ORDERS
ExchangeInfo format:
{
"filterType": "MAX_NUM_ALGO_ORDERS",
"maxNumAlgoOrders": 5
}
The MAX_NUM_ALGO_ORDERS filter defines the maximum number of "algo" orders an account is allowed to have open on a symbol.
"Algo" orders are STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, and TAKE_PROFIT_LIMIT orders.
MAX_NUM_ICEBERG_ORDERS
The MAX_NUM_ICEBERG_ORDERS filter defines the maximum number of ICEBERG orders an account is allowed to have open on a symbol.
An ICEBERG order is any order where the icebergQty is > 0.
ExchangeInfo format:
{
"filterType": "MAX_NUM_ICEBERG_ORDERS",
"maxNumIcebergOrders": 5
}
MAX_POSITION
The MAX_POSITION filter defines the allowed maximum position an account can have on the base asset of a symbol.
An account's position defined as the sum of the account's:
- 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.
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>=minTrailingAboveDeltatrailingDelta<=maxTrailingAboveDelta
For STOP_LOSS SELL, STOP_LOSS_LIMIT SELL, TAKE_PROFIT BUY, and TAKE_PROFIT_LIMIT BUY orders:
trailingDelta>=minTrailingBelowDeltatrailingDelta<=maxTrailingBelowDelta
Exchange Filters
EXCHANGE_MAX_NUM_ORDERS
ExchangeInfo format:
{
"filterType": "EXCHANGE_MAX_NUM_ORDERS",
"maxNumOrders": 1000
}
The EXCHANGE_MAX_NUM_ORDERS filter defines the maximum number of orders an account is allowed to have open on the exchange.
Note that both "algo" orders and normal orders are counted for this filter.
EXCHANGE_MAX_NUM_ALGO_ORDERS
ExchangeInfo format:
{
"filterType": "EXCHANGE_MAX_NUM_ALGO_ORDERS",
"maxNumAlgoOrders": 200
}
The EXCHANGE_MAX_NUM_ALGO_ORDERS filter defines the maximum number of "algo" orders an account is allowed to have open on the exchange.
"Algo" orders are STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, and TAKE_PROFIT_LIMIT orders.
EXCHANGE_MAX_NUM_ICEBERG_ORDERS
The EXCHANGE_MAX_NUM_ICEBERG_ORDERS filter defines the maximum number of iceberg orders an account is allowed to have open on the exchange.
ExchangeInfo format:
{
"filterType": "EXCHANGE_MAX_NUM_ICEBERG_ORDERS",
"maxNumIcebergOrders": 10000
}
Wallet Endpoints
System Status (System)
Response
{
"status": 0, // 0: normal,1:system maintenance
"msg": "normal" // "normal", "system_maintenance"
}
GET /sapi/v1/system/status
Fetch system status.
Weight(IP): 1
All Coins' Information (USER_DATA)
Get information of coins (available for deposit and withdraw) for user.
Response:
[
{
"coin": "BTC",
"depositAllEnable": true,
"free": "0.08074558",
"freeze": "0.00000000",
"ipoable": "0.00000000",
"ipoing": "0.00000000",
"isLegalMoney": false,
"locked": "0.00000000",
"name": "Bitcoin",
"networkList": [
{
"addressRegex": "^(bnb1)[0-9a-z]{38}$",
"coin": "BTC",
"depositDesc": "Wallet Maintenance, Deposit Suspended", // shown only when "depositEnable" is false.
"depositEnable": false,
"isDefault": false,
"memoRegex": "^[0-9A-Za-z\\-_]{1,120}$",
"minConfirm": 1, // min number for balance confirmation
"name": "BEP2",
"network": "BNB",
"resetAddressStatus": false,
"specialTips": "Both a MEMO and an Address are required to successfully deposit your BEP2-BTCB tokens to Binance.",
"unLockConfirm": 0, // confirmation number for balance unlock
"withdrawDesc": "Wallet Maintenance, Withdrawal Suspended", // shown only when "withdrawEnable" is false.
"withdrawEnable": false,
"withdrawFee": "0.00000220",
"withdrawIntegerMultiple": "0.00000001",
"withdrawMax": "9999999999.99999999",
"withdrawMin": "0.00000440",
"sameAddress": true, // If the coin needs to provide memo to withdraw
"estimatedArrivalTime": 25,
"busy": false
},
{
"addressRegex": "^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$|^(bc1)[0-9A-Za-z]{39,59}$",
"coin": "BTC",
"depositEnable": true,
"isDefault": true,
"memoRegex": "",
"minConfirm": 1,
"name": "BTC",
"network": "BTC",
"resetAddressStatus": false,
"specialTips": "",
"unLockConfirm": 2,
"withdrawEnable": true,
"withdrawFee": "0.00050000",
"withdrawIntegerMultiple": "0.00000001",
"withdrawMax": "750",
"withdrawMin": "0.00100000",
"sameAddress": false,
"estimatedArrivalTime": 25,
"busy": false
}
],
"storage": "0.00000000",
"trading": true,
"withdrawAllEnable": true,
"withdrawing": "0.00000000"
}
]
GET /sapi/v1/capital/config/getall (HMAC SHA256)
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
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",
"walletBalance":"120.23811389"
}
],
"position":[
{
"entryPrice":"7130.41000000",
"markPrice":"7257.66239673",
"positionAmt":"0.01000000",
"symbol":"BTCUSDT",
"unRealizedProfit":"1.24029054" // Only show the value at the time of opening the position
}
]
},
"type":"futures",
"updateTime":1576281599000
}
]
}
GET /sapi/v1/accountSnapshot (HMAC SHA256)
Weight(IP): 2400
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| type | STRING | YES | "SPOT", "MARGIN", "FUTURES" |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | min 7, max 30, default 7 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- The query time period must be less then 30 days
- Support query within the last one month only
- If startTimeand endTime not sent, return records of the last 7 days by default
Disable Fast Withdraw Switch (USER_DATA)
Response:
{}
POST /sapi/v1/account/disableFastWithdrawSwitch (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Caution:
This request will disable fastwithdraw switch under your account.
You need to enable "trade" option for the api key which requests this endpoint.
Enable Fast Withdraw Switch (USER_DATA)
Response:
{}
POST /sapi/v1/account/enableFastWithdrawSwitch (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- This request will enable fastwithdraw switch under your account.
You need to enable "trade" option for the api key which requests this endpoint. - When Fast Withdraw Switch is on, transferring funds to a Binance account will be done instantly. There is no on-chain transaction, no transaction ID and no withdrawal fee.
Withdraw(USER_DATA)
Response:
{
"id":"7213fea8e94b4a5593d507237e5a555b"
}
POST /sapi/v1/capital/withdraw/apply (HMAC SHA256)
Submit a withdraw request.
Weight(UID): 600
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| coin | STRING | YES | |
| withdrawOrderId | STRING | NO | client id for withdraw |
| network | STRING | NO | |
| address | STRING | YES | |
| addressTag | STRING | NO | Secondary address identifier for coins like XRP,XMR etc. |
| amount | DECIMAL | YES | |
| transactionFeeFlag | BOOLEAN | NO | When making internal transfer, true for returning the fee to the destination account; false for returning the fee back to the departure account. Default false. |
| name | STRING | NO | Description of the address. Space in name should be encoded into %20. |
| walletType | INTEGER | NO | The wallet type for withdraw,0-spot wallet ,1-funding wallet.Default spot wallet |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- If
networknot send, return with default network of the coin. - You can get
networkandisDefaultinnetworkListof a coin in the response ofGet /sapi/v1/capital/config/getall (HMAC SHA256).
Deposit History (supporting network) (USER_DATA)
Response:
[
{
"id": "769800519366885376",
"amount": "0.001",
"coin": "BNB",
"network": "BNB",
"status": 0,
"address": "bnb136ns6lfw4zs5hg4n85vdthaad7hq5m4gtkgf23",
"addressTag": "101764890",
"txId": "98A3EA560C6B3336D348B6C83F0F95ECE4F1F5919E94BD006E5BF3BF264FACFC",
"insertTime": 1661493146000,
"transferType": 0,
"confirmTimes": "1/1",
"unlockConfirm": 0,
"walletType": 0
},
{
"id": "769754833590042625",
"amount":"0.50000000",
"coin":"IOTA",
"network":"IOTA",
"status":1,
"address":"SIZ9VLMHWATXKV99LH99CIGFJFUMLEHGWVZVNNZXRJJVWBPHYWPPBOSDORZ9EQSHCZAMPVAPGFYQAUUV9DROOXJLNW",
"addressTag":"",
"txId":"ESBFVQUTPIWQNJSPXFNHNYHSQNTGKRVKPRABQWTAXCDWOAKDKYWPTVG9BGXNVNKTLEJGESAVXIKIZ9999",
"insertTime":1599620082000,
"transferType":0,
"confirmTimes": "1/1",
"unlockConfirm": 0,
"walletType": 0
}
]
GET /sapi/v1/capital/deposit/hisrec (HMAC SHA256)
Fetch deposit history.
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| coin | STRING | NO | |
| status | INT | NO | 0(0:pending,6: credited but cannot withdraw, 1:success) |
| startTime | LONG | NO | Default: 90 days from current timestamp |
| endTime | LONG | NO | Default: present timestamp |
| offset | INT | NO | Default:0 |
| limit | INT | NO | Default:1000, Max:1000 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES | |
| txId | STRING | NO |
- Please notice the default
startTimeandendTimeto make sure that time interval is within 0-90 days. - If both
startTimeandendTimeare sent, time betweenstartTimeandendTimemust be less than 90 days.
Withdraw History (supporting network) (USER_DATA)
Response:
[
{
"address": "0x94df8b352de7f46f64b01d3666bf6e936e44ce60",
"amount": "8.91000000",
"applyTime": "2019-10-12 11:12:02",
"coin": "USDT",
"id": "b6ae22b3aa844210a7041aee7589627c",
"withdrawOrderId": "WITHDRAWtest123", // will not be returned if there's no withdrawOrderId for this withdraw.
"network": "ETH",
"transferType": 0, // 1 for internal transfer, 0 for external transfer
"status": 6,
"transactionFee": "0.004",
"confirmNo":3, // confirm times for withdraw
"info":"The address is not valid. Please confirm with the recipient", // reason for withdrawal failure
"txId": "0xb5ef8c13b968a406cc62a93a8bd80f9e9a906ef1b3fcf20a2e48573c17659268"
},
{
"address": "1FZdVHtiBqMrWdjPyRPULCUceZPJ2WLCsB",
"amount": "0.00150000",
"applyTime": "2019-09-24 12:43:45",
"coin": "BTC",
"id": "156ec387f49b41df8724fa744fa82719",
"network": "BTC",
"status": 6,
"transactionFee": "0.004",
"transferType": 0, // 1 for internal transfer, 0 for external transfer
"confirmNo":2,
"info":"",
"txId": "60fd9007ebfddc753455f95fafa808c4302c836e4d1eebc5a132c36c1d8ac354"
}
]
GET /sapi/v1/capital/withdraw/history (HMAC SHA256)
Fetch withdraw history.
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| coin | STRING | NO | |
| withdrawOrderId | STRING | NO | |
| status | INT | NO | 0(0:Email Sent,1:Cancelled 2:Awaiting Approval 3:Rejected 4:Processing 5:Failure 6:Completed) |
| offset | INT | NO | |
| limit | INT | NO | Default: 1000, Max: 1000 |
| startTime | LONG | NO | Default: 90 days from current timestamp |
| endTime | LONG | NO | Default: present timestamp |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
networkmay not be in the response for old withdraw.- Please notice the default
startTimeandendTimeto make sure that time interval is within 0-90 days. - If both
startTimeandendTimeare sent, time betweenstartTimeandendTimemust be less than 90 days. - If
withdrawOrderIdis sent, time betweenstartTimeandendTimemust be less than 7 days. - If
withdrawOrderIdis sent,startTimeandendTimeare not sent, will return last 7 days records by default.
Deposit Address (supporting network) (USER_DATA)
Response:
{
"address": "1HPn8Rx2y6nNSfagQBKy27GB99Vbzg89wv",
"coin": "BTC",
"tag": "",
"url": "https://btc.com/1HPn8Rx2y6nNSfagQBKy27GB99Vbzg89wv"
}
GET /sapi/v1/capital/deposit/address (HMAC SHA256)
Fetch deposit address with network.
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| coin | STRING | YES | |
| network | STRING | NO | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- If
networkis not send, return with default network of the coin. - You can get
networkandisDefaultinnetworkListin the response ofGet /sapi/v1/capital/config/getall (HMAC SHA256).
Account Status (USER_DATA)
Response:
{
"data": "Normal"
}
GET /sapi/v1/account/status
Fetch account status detail.
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Account API Trading Status (USER_DATA)
Response:
{
"data": { // API trading status detail
"isLocked": false, // API trading function is locked or not
"plannedRecoverTime": 0, // If API trading function is locked, this is the planned recover time
"triggerCondition": {
"GCR": 150, // Number of GTC orders
"IFER": 150, // Number of FOK/IOC orders
"UFR": 300 // Number of orders
},
"updateTime": 1547630471725
}
}
GET /sapi/v1/account/apiTradingStatus (HMAC SHA256)
Fetch account api trading status detail.
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
DustLog(USER_DATA)
Response
{
"total": 8, //Total counts of exchange
"userAssetDribblets": [
{
"operateTime": 1615985535000,
"totalTransferedAmount": "0.00132256", // Total transfered BNB amount for this exchange.
"totalServiceChargeAmount": "0.00002699", //Total service charge amount for this exchange.
"transId": 45178372831,
"userAssetDribbletDetails": [ //Details of this exchange.
{
"transId": 4359321,
"serviceChargeAmount": "0.000009",
"amount": "0.0009",
"operateTime": 1615985535000,
"transferedAmount": "0.000441",
"fromAsset": "USDT"
},
{
"transId": 4359321,
"serviceChargeAmount": "0.00001799",
"amount": "0.0009",
"operateTime": 1615985535000,
"transferedAmount": "0.00088156",
"fromAsset": "ETH"
}
]
},
{
"operateTime":1616203180000,
"totalTransferedAmount": "0.00058795",
"totalServiceChargeAmount": "0.000012",
"transId": 4357015,
"userAssetDribbletDetails": [
{
"transId": 4357015,
"serviceChargeAmount": "0.00001",
"amount": "0.001",
"operateTime": 1616203180000,
"transferedAmount": "0.00049",
"fromAsset": "USDT"
},
{
"transId": 4357015,
"serviceChargeAmount": "0.000002",
"amount": "0.0001",
"operateTime": 1616203180000,
"transferedAmount": "0.00009795",
"fromAsset": "ETH"
}
]
}
]
}
}
GET /sapi/v1/asset/dribblet (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- Only return last 100 records
- Only return records after 2020/12/01
Get Assets That Can Be Converted Into BNB (USER_DATA)
Response
{
"details": [
{
"asset": "ADA",
"assetFullName": "ADA",
"amountFree": "6.21", //Convertible amount
"toBTC": "0.00016848", //BTC amount
"toBNB": "0.01777302", //BNB amount(Not deducted commission fee)
"toBNBOffExchange": "0.01741756", //BNB amount(Deducted commission fee)
"exchange": "0.00035546" //Commission fee
}
],
"totalTransferBtc": "0.00016848",
"totalTransferBNB": "0.01777302",
"dribbletPercentage": "0.02" //Commission fee
}
POST /sapi/v1/asset/dust-btc (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Dust Transfer (USER_DATA)
Response:
{
"totalServiceCharge":"0.02102542",
"totalTransfered":"1.05127099",
"transferResult":[
{
"amount":"0.03000000",
"fromAsset":"ETH",
"operateTime":1563368549307,
"serviceChargeAmount":"0.00500000",
"tranId":2970932918,
"transferedAmount":"0.25000000"
},
{
"amount":"0.09000000",
"fromAsset":"LTC",
"operateTime":1563368549404,
"serviceChargeAmount":"0.01548000",
"tranId":2970932918,
"transferedAmount":"0.77400000"
},
{
"amount":"248.61878453",
"fromAsset":"TRX",
"operateTime":1563368549489,
"serviceChargeAmount":"0.00054542",
"tranId":2970932918,
"transferedAmount":"0.02727099"
}
]
}
POST /sapi/v1/asset/dust (HMAC SHA256)
Convert dust assets to BNB.
Weight(UID): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | ARRAY | YES | The asset being converted. For example: asset=BTC&asset=USDT |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- You need to open
Enable Spot & Margin Tradingpermission for the API Key which requests this endpoint.
Asset Dividend Record (USER_DATA)
Response:
{
"rows":[
{
"id":1637366104,
"amount":"10.00000000",
"asset":"BHFT",
"divTime":1563189166000,
"enInfo":"BHFT distribution",
"tranId":2968885920
},
{
"id":1631750237,
"amount":"10.00000000",
"asset":"BHFT",
"divTime":1563189165000,
"enInfo":"BHFT distribution",
"tranId":2968885920
}
],
"total":2
}
GET /sapi/v1/asset/assetDividend (HMAC SHA256)
Query asset dividend record.
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | NO | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | Default 20, max 500 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Asset Detail (USER_DATA)
Response:
{
"CTR": {
"minWithdrawAmount": "70.00000000", //min withdraw amount
"depositStatus": false,//deposit status (false if ALL of networks' are false)
"withdrawFee": 35, // withdraw fee
"withdrawStatus": true, //withdraw status (false if ALL of networks' are false)
"depositTip": "Delisted, Deposit Suspended" //reason
},
"SKY": {
"minWithdrawAmount": "0.02000000",
"depositStatus": true,
"withdrawFee": 0.01,
"withdrawStatus": true
}
}
GET /sapi/v1/asset/assetDetail (HMAC SHA256)
Fetch details of assets supported on Binance.
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | NO | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- Please get network and other deposit or withdraw details from
GET /sapi/v1/capital/config/getall.
Trade Fee (USER_DATA)
Response:
[
{
"symbol": "ADABNB",
"makerCommission": "0.001",
"takerCommission": "0.001"
},
{
"symbol": "BNBBTC",
"makerCommission": "0.001",
"takerCommission": "0.001"
}
]
GET /sapi/v1/asset/tradeFee (HMAC SHA256)
Fetch trade fee
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | NO | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
User Universal Transfer (USER_DATA)
Response:
{
"tranId":13526853623
}
POST /sapi/v1/asset/transfer (HMAC SHA256)
You need to enable Permits Universal Transfer option for the API Key which requests this endpoint.
Weight(UID): 900
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| type | ENUM | YES | |
| asset | STRING | YES | |
| amount | DECIMAL | YES | |
| fromSymbol | STRING | NO | |
| toSymbol | STRING | NO | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
-
fromSymbolmust be sent when type are ISOLATEDMARGIN_MARGIN and ISOLATEDMARGIN_ISOLATEDMARGIN toSymbolmust be sent when type are MARGIN_ISOLATEDMARGIN and ISOLATEDMARGIN_ISOLATEDMARGINENUM of transfer types:
- MAIN_UMFUTURE Spot account transfer to USDⓈ-M Futures account
- MAIN_CMFUTURE Spot account transfer to COIN-M Futures account
- MAIN_MARGIN Spot account transfer to Margin(cross)account
- UMFUTURE_MAIN USDⓈ-M Futures account transfer to Spot account
- UMFUTURE_MARGIN USDⓈ-M Futures account transfer to Margin(cross)account
- CMFUTURE_MAIN COIN-M Futures account transfer to Spot account
- CMFUTURE_MARGIN COIN-M Futures account transfer to Margin(cross) account
- MARGIN_MAIN Margin(cross)account transfer to Spot account
- MARGIN_UMFUTURE Margin(cross)account transfer to USDⓈ-M Futures
- MARGIN_CMFUTURE Margin(cross)account transfer to COIN-M Futures
- ISOLATEDMARGIN_MARGIN Isolated margin account transfer to Margin(cross) account
- MARGIN_ISOLATEDMARGIN Margin(cross) account transfer to Isolated margin account
- ISOLATEDMARGIN_ISOLATEDMARGIN Isolated margin account transfer to Isolated margin account
- MAIN_FUNDING Spot account transfer to Funding account
- FUNDING_MAIN Funding account transfer to Spot account
- FUNDING_UMFUTURE Funding account transfer to UMFUTURE account
- UMFUTURE_FUNDING UMFUTURE account transfer to Funding account
- MARGIN_FUNDING MARGIN account transfer to Funding account
- FUNDING_MARGIN Funding account transfer to Margin account
- FUNDING_CMFUTURE Funding account transfer to CMFUTURE account
- CMFUTURE_FUNDING CMFUTURE account transfer to Funding account
Query User Universal Transfer History (USER_DATA)
Response:
{
"total":2,
"rows":[
{
"asset":"USDT",
"amount":"1",
"type":"MAIN_UMFUTURE",
"status": "CONFIRMED",
"tranId": 11415955596,
"timestamp":1544433328000
},
{
"asset":"USDT",
"amount":"2",
"type":"MAIN_UMFUTURE",
"status": "CONFIRMED",
"tranId": 11366865406,
"timestamp":1544433328000
}
]
}
GET /sapi/v1/asset/transfer (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| type | ENUM | YES | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| current | INT | NO | Default 1 |
| size | INT | NO | Default 10, Max 100 |
| fromSymbol | STRING | NO | |
| toSymbol | STRING | NO | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
-
fromSymbolmust be sent when type are ISOLATEDMARGIN_MARGIN and ISOLATEDMARGIN_ISOLATEDMARGIN -
toSymbolmust be sent when type are MARGIN_ISOLATEDMARGIN and ISOLATEDMARGIN_ISOLATEDMARGIN - Support query within the last 6 months only
- If
startTimeandendTimenot sent, return records of the last 7 days by default
Funding Wallet (USER_DATA)
Response
[
{
"asset": "USDT",
"free": "1", // avalible balance
"locked": "0", // locked asset
"freeze": "0", // freeze asset
"withdrawing": "0",
"btcValuation": "0.00000091"
}
]
POST /sapi/v1/asset/get-funding-asset (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | NO | |
| needBtcValuation | STRING | NO | true or false |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- 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:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | NO | If asset is blank, then query all positive assets user have. |
| needBtcValuation | BOOLEAN | NO | Whether need btc valuation or not. |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- 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:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| clientTranId | STRING | YES | The unique user-defined transaction id, min length 20 |
| asset | STRING | YES | The current asset |
| amount | BigDecimal | YES | The amount must be positive number |
| targetAsset | String | YES | Target asset you want to convert |
| accountType | String | NO | Only 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:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| tranId | LONG | NO | The transaction id |
| clientTranId | STRING | NO | The user-defined transaction id |
| asset | STRING | NO | If it is blank, we will match deducted asset and target asset. |
| startTime | LONG | YES | inclusive, unit: ms |
| endTime | LONG | YES | exclusive, unit: ms |
| accountType | STRING | NO | MAIN: main account. CARD: funding account. If it is blank, we will query spot and card wallet, otherwise, we just query the corresponding wallet |
| current | INTEGER | NO | current page, default 1, the min value is 1 |
| size | INTEGER | NO | page size, default 10, the max value is 100 |
Get API Key Permission (USER_DATA)
Response
{
"ipRestrict": false,
"createTime": 1623840271000,
"enableWithdrawals": false, // This option allows you to withdraw via API. You must apply the IP Access Restriction filter in order to enable withdrawals
"enableInternalTransfer": true, // This option authorizes this key to transfer funds between your master account and your sub account instantly
"permitsUniversalTransfer": true, // Authorizes this key to be used for a dedicated universal transfer API to transfer multiple supported currencies. Each business's own transfer API rights are not affected by this authorization
"enableVanillaOptions": false, // Authorizes this key to Vanilla options trading
"enableReading": true,
"enableFutures": false, // API Key created before your futures account opened does not support futures API service
"enableMargin": false, // This option can be adjusted after the Cross Margin account transfer is completed
"enableSpotAndMarginTrading": false, // Spot and margin trading
"tradingAuthorityExpirationTime": 1628985600000 // Expiration time for spot and margin trading permission
}
GET /sapi/v1/account/apiRestrictions (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Sub-Account Endpoints
- The endpoints documented in this section are for Corporate Accounts.
- To become a corporate account, please refer to this document: Corporate Account Application
Create a Virtual Sub-account(For Master Account)
Response:
{
"email":"addsdd_virtual@aasaixwqnoemail.com"
}
POST /sapi/v1/sub-account/virtualSubAccount (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| subAccountString | STRING | YES | Please input a string. We will create a virtual email using that string for you to register |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- This request will generate a virtual sub account under your master account.
- You need to enable "trade" option for the API Key which requests this endpoint.
Query Sub-account List (For Master Account)
Response:
{
"subAccounts":[
{
"email":"testsub@gmail.com",
"isFreeze":false,
"createTime":1544433328000,
"isManagedSubAccount": false,
"isAssetManagementSubAccount": false
},
{
"email":"virtual@oxebmvfonoemail.com",
"isFreeze":false,
"createTime":1544433328000,
"isManagedSubAccount": false,
"isAssetManagementSubAccount": false
}
]
}
GET /sapi/v1/sub-account/list (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | NO | Sub-account email | |
| isFreeze | STRING | NO | true or false |
| page | INT | NO | Default value: 1 |
| limit | INT | NO | Default value: 1, Max value: 200 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Query Sub-account Spot Asset Transfer History (For Master Account)
Response:
[
{
"from":"aaa@test.com",
"to":"bbb@test.com",
"asset":"BTC",
"qty":"10",
"status": "SUCCESS",
"tranId": 6489943656,
"time":1544433328000
},
{
"from":"bbb@test.com",
"to":"ccc@test.com",
"asset":"ETH",
"qty":"2",
"status": "SUCCESS",
"tranId": 6489938713,
"time":1544433328000
}
]
GET /sapi/v1/sub-account/sub/transfer/history (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| fromEmail | STRING | NO | |
| toEmail | STRING | NO | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| page | INT | NO | Default value: 1 |
| limit | INT | NO | Default value: 500 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- fromEmail and toEmail cannot be sent at the same time.
- Return fromEmail equal master account email by default.
Query Sub-account Futures Asset Transfer History (For Master Account)
Response
{
"success":true,
"futuresType": 2,
"transfers":[
{
"from":"aaa@test.com",
"to":"bbb@test.com",
"asset":"BTC",
"qty":"1",
"tranId":11897001102,
"time":1544433328000
},
{
"from":"bbb@test.com",
"to":"ccc@test.com",
"asset":"ETH",
"qty":"2",
"tranId":11631474902,
"time":1544433328000
}
]
}
GET /sapi/v1/sub-account/futures/internalTransfer (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | YES | Sub-account email | |
| futuresType | LONG | YES | 1:USDT-margined Futures,2: Coin-margined Futures |
| startTime | LONG | NO | Default return the history with in 100 days |
| endTime | LONG | NO | Default return the history with in 100 days |
| page | INT | NO | Default value: 1 |
| limit | INT | NO | Default value: 50, Max value: 500 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Sub-account Futures Asset Transfer (For Master Account)
Response
{
"success":true,
"txnId":"2934662589"
}
POST /sapi/v1/sub-account/futures/internalTransfer (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| fromEmail | STRING | YES | Sender email |
| toEmail | STRING | YES | Recipient email |
| futuresType | LONG | YES | 1:USDT-margined Futures,2: Coin-margined Futures |
| asset | STRING | YES | |
| amount | DECIMAL | YES | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- Master account can transfer max 2000 times a minute
- There must be sufficient margin balance in futures wallet to execute transferring.
Query Sub-account Assets (For Master Account)
Response:
{
"balances":[
{
"asset":"ADA",
"free":10000,
"locked":0
},
{
"asset":"BNB",
"free":10003,
"locked":0
},
{
"asset":"BTC",
"free":11467.6399,
"locked":0
},
{
"asset":"ETH",
"free":10004.995,
"locked":0
},
{
"asset":"USDT",
"free":11652.14213,
"locked":0
}
]
}
GET /sapi/v3/sub-account/assets (HMAC SHA256)
Fetch sub-account assets
Weight(UID): 60
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | YES | Sub account email | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Query Sub-account Spot Assets Summary (For Master Account)
Response:
{
"totalCount":2,
"masterAccountTotalAsset": "0.23231201",
"spotSubUserAssetBtcVoList":[
{
"email":"sub123@test.com",
"totalAsset":"9999.00000000"
},
{
"email":"test456@test.com",
"totalAsset":"0.00000000"
}
]
}
Get BTC valued asset summary of subaccounts.
GET /sapi/v1/sub-account/spotSummary (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | NO | Sub account email | |
| page | LONG | NO | default 1 |
| size | LONG | NO | default 10, max 20 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Get Sub-account Deposit Address (For Master Account)
Response:
{
"address":"TDunhSa7jkTNuKrusUTU1MUHtqXoBPKETV",
"coin":"USDT",
"tag":"",
"url":"https://tronscan.org/#/address/TDunhSa7jkTNuKrusUTU1MUHtqXoBPKETV"
}
GET /sapi/v1/capital/deposit/subAddress (HMAC SHA256)
Fetch sub-account deposit address
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | YES | Sub account email | |
| coin | STRING | YES | |
| network | STRING | NO | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Get Sub-account Deposit History (For Master Account)
Response:
[
{
"id": "769800519366885376",
"amount": "0.001",
"coin": "BNB",
"network": "BNB",
"status": 0,
"address": "bnb136ns6lfw4zs5hg4n85vdthaad7hq5m4gtkgf23",
"addressTag": "101764890",
"txId": "98A3EA560C6B3336D348B6C83F0F95ECE4F1F5919E94BD006E5BF3BF264FACFC",
"insertTime": 1661493146000,
"transferType": 0,
"confirmTimes": "1/1",
"unlockConfirm": 0,
"walletType": 0
},
{
"id": "769754833590042625",
"amount":"0.50000000",
"coin":"IOTA",
"network":"IOTA",
"status":1,
"address":"SIZ9VLMHWATXKV99LH99CIGFJFUMLEHGWVZVNNZXRJJVWBPHYWPPBOSDORZ9EQSHCZAMPVAPGFYQAUUV9DROOXJLNW",
"addressTag":"",
"txId":"ESBFVQUTPIWQNJSPXFNHNYHSQNTGKRVKPRABQWTAXCDWOAKDKYWPTVG9BGXNVNKTLEJGESAVXIKIZ9999",
"insertTime":1599620082000,
"transferType":0,
"confirmTimes": "1/1",
"unlockConfirm": 0,
"walletType": 0
}
]
GET /sapi/v1/capital/deposit/subHisrec (HMAC SHA256)
Fetch sub-account deposit history
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | YES | Sub account email | |
| coin | STRING | NO | |
| status | INT | NO | 0(0:pending,6: credited but cannot withdraw, 1:success) |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | |
| offset | INT | NO | default:0 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES | |
| txId | STRING | NO |
Get Sub-account's Status on Margin/Futures (For Master Account)
Response
[
{
"email":"123@test.com", // user email
"isSubUserEnabled": true, // true or false
"isUserActive": true, // true or false
"insertTime": 1570791523523, // sub account create time
"isMarginEnabled": true, // true or false for margin
"isFutureEnabled": true, // true or false for futures.
"mobile": 1570791523523 // user mobile number
}
]
GET /sapi/v1/sub-account/status (HMAC SHA256)
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | NO | Sub-account email | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- If no email sent, all sub-accounts' information will be returned.
Enable Margin for Sub-account (For Master Account)
Response
{
"email":"123@test.com",
"isMarginEnabled": true
}
POST /sapi/v1/sub-account/margin/enable (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | YES | Sub-account email | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Get Detail on Sub-account's Margin Account (For Master Account)
Response
{
"email":"123@test.com",
"marginLevel": "11.64405625",
"totalAssetOfBtc": "6.82728457",
"totalLiabilityOfBtc": "0.58633215",
"totalNetAssetOfBtc": "6.24095242",
"marginTradeCoeffVo":
{
"forceLiquidationBar": "1.10000000", // Liquidation margin ratio
"marginCallBar": "1.50000000", // Margin call margin ratio
"normalBar": "2.00000000" // Initial margin ratio
},
"marginUserAssetVoList": [
{
"asset": "BTC",
"borrowed": "0.00000000",
"free": "0.00499500",
"interest": "0.00000000",
"locked": "0.00000000",
"netAsset": "0.00499500"
},
{
"asset": "BNB",
"borrowed": "201.66666672",
"free": "2346.50000000",
"interest": "0.00000000",
"locked": "0.00000000",
"netAsset": "2144.83333328"
},
{
"asset": "ETH",
"borrowed": "0.00000000",
"free": "0.00000000",
"interest": "0.00000000",
"locked": "0.00000000",
"netAsset": "0.00000000"
},
{
"asset": "USDT",
"borrowed": "0.00000000",
"free": "0.00000000",
"interest": "0.00000000",
"locked": "0.00000000",
"netAsset": "0.00000000"
}
]
}
GET /sapi/v1/sub-account/margin/account (HMAC SHA256)
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | YES | Sub-account email | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Get Summary of Sub-account's Margin Account (For Master Account)
Response
{
"totalAssetOfBtc": "4.33333333",
"totalLiabilityOfBtc": "2.11111112",
"totalNetAssetOfBtc": "2.22222221",
"subAccountList":[
{
"email":"123@test.com",
"totalAssetOfBtc": "2.11111111",
"totalLiabilityOfBtc": "1.11111111",
"totalNetAssetOfBtc": "1.00000000"
},
{
"email":"345@test.com",
"totalAssetOfBtc": "2.22222222",
"totalLiabilityOfBtc": "1.00000001",
"totalNetAssetOfBtc": "1.22222221"
}
]
}
GET /sapi/v1/sub-account/margin/accountSummary (HMAC SHA256)
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Enable Futures for Sub-account (For Master Account)
Response
{
"email":"123@test.com",
"isFuturesEnabled": true // true or false
}
POST /sapi/v1/sub-account/futures/enable (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | YES | Sub-account email | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Get Detail on Sub-account's Futures Account (For Master Account)
Response
{
"email": "abc@test.com",
"asset": "USDT",
"assets":[
{
"asset": "USDT",
"initialMargin": "0.00000000",
"maintenanceMargin": "0.00000000",
"marginBalance": "0.88308000",
"maxWithdrawAmount": "0.88308000",
"openOrderInitialMargin": "0.00000000",
"positionInitialMargin": "0.00000000",
"unrealizedProfit": "0.00000000",
"walletBalance": "0.88308000"
}
],
"canDeposit": true,
"canTrade": true,
"canWithdraw": true,
"feeTier": 2,
"maxWithdrawAmount": "0.88308000",
"totalInitialMargin": "0.00000000",
"totalMaintenanceMargin": "0.00000000",
"totalMarginBalance": "0.88308000",
"totalOpenOrderInitialMargin": "0.00000000",
"totalPositionInitialMargin": "0.00000000",
"totalUnrealizedProfit": "0.00000000",
"totalWalletBalance": "0.88308000",
"updateTime": 1576756674610
}
GET /sapi/v1/sub-account/futures/account (HMAC SHA256)
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | YES | Sub-account email | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Get Summary of Sub-account's Futures Account (For Master Account)
Response
{
"totalInitialMargin": "9.83137400",
"totalMaintenanceMargin": "0.41568700",
"totalMarginBalance": "23.03235621",
"totalOpenOrderInitialMargin": "9.00000000",
"totalPositionInitialMargin": "0.83137400",
"totalUnrealizedProfit": "0.03219710",
"totalWalletBalance": "22.15879444",
"asset": "USD", // The sum of BUSD and USDT
"subAccountList":[
{
"email": "123@test.com",
"totalInitialMargin": "9.00000000",
"totalMaintenanceMargin": "0.00000000",
"totalMarginBalance": "22.12659734",
"totalOpenOrderInitialMargin": "9.00000000",
"totalPositionInitialMargin": "0.00000000",
"totalUnrealizedProfit": "0.00000000",
"totalWalletBalance": "22.12659734",
"asset": "USD" //The sum of BUSD and USDT
},
{
"email": "345@test.com",
"totalInitialMargin": "0.83137400",
"totalMaintenanceMargin": "0.41568700",
"totalMarginBalance": "0.90575887",
"totalOpenOrderInitialMargin": "0.00000000",
"totalPositionInitialMargin": "0.83137400",
"totalUnrealizedProfit": "0.03219710",
"totalWalletBalance": "0.87356177",
"asset": "USD"
}
]
}
GET /sapi/v1/sub-account/futures/accountSummary (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Get Futures Position-Risk of Sub-account (For Master Account)
Response
[
{
"entryPrice": "9975.12000",
"leverage": "50", // current initial leverage
"maxNotional": "1000000", // notional value limit of current initial leverage
"liquidationPrice": "7963.54",
"markPrice": "9973.50770517",
"positionAmount": "0.010",
"symbol": "BTCUSDT",
"unrealizedProfit": "-0.01612295"
}
]
GET /sapi/v1/sub-account/futures/positionRisk (HMAC SHA256)
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | YES | Sub-account email | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Futures Transfer for Sub-account (For Master Account)
Response
{
"txnId":"2966662589"
}
POST /sapi/v1/sub-account/futures/transfer (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | YES | Sub-account email | |
| asset | STRING | YES | The asset being transferred, e.g., USDT |
| amount | DECIMAL | YES | The amount to be transferred |
| type | INT | YES | 1: 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 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Margin Transfer for Sub-account (For Master Account)
Response
{
"txnId":"2966662589"
}
POST /sapi/v1/sub-account/margin/transfer (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | YES | Sub-account email | |
| asset | STRING | YES | The asset being transferred, e.g., BTC |
| amount | DECIMAL | YES | The amount to be transferred |
| type | INT | YES | 1: transfer from subaccount's spot account to margin account 2: transfer from subaccount's margin account to its spot account |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Transfer to Sub-account of Same Master (For Sub-account)
Response
{
"txnId":"2966662589"
}
POST /sapi/v1/sub-account/transfer/subToSub (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| toEmail | STRING | YES | Sub-account email |
| asset | STRING | YES | |
| amount | DECIMAL | YES | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Transfer to Master (For Sub-account)
Response
{
"txnId":"2966662589"
}
POST /sapi/v1/sub-account/transfer/subToMaster (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | YES | |
| amount | DECIMAL | YES | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
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",
"tranId":11798835829,
"time":1544433325000
},
{
"counterParty":"subAccount",
"email":"sub2@test.com",
"type":1,
"asset":"ETH",
"qty":"2",
"fromAccountType":"SPOT",
"toAccountType":"SPOT",
"status":"SUCCESS",
"tranId":11798829519,
"time":1544433326000
}
]
GET /sapi/v1/sub-account/transfer/subUserHistory (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | NO | If not sent, result of all assets will be returned |
| type | INT | NO | 1: transfer in, 2: transfer out |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | Default 500 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- If type is not sent, the records of type 2: transfer out will be returned by default.
- If startTime and endTime are not sent, the recent 30-day data will be returned.
Universal Transfer (For Master Account)
Response
{
"tranId":11945860693,
"clientTranId":"test"
}
POST /sapi/v1/sub-account/universalTransfer (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| fromEmail | STRING | NO | |
| toEmail | STRING | NO | |
| fromAccountType | STRING | YES | "SPOT","USDT_FUTURE","COIN_FUTURE","MARGIN"(Cross),"ISOLATED_MARGIN" |
| toAccountType | STRING | YES | "SPOT","USDT_FUTURE","COIN_FUTURE","MARGIN"(Cross),"ISOLATED_MARGIN" |
| clientTranId | STRING | NO | Must be unique |
| symbol | STRING | NO | Only supported under ISOLATED_MARGIN type |
| asset | STRING | YES | |
| amount | DECIMAL | YES | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- 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:
SPOTtransfer toSPOT,USDT_FUTURE,COIN_FUTURE(regardless of master or sub)SPOT,USDT_FUTURE,COIN_FUTUREtransfer toSPOT(regardless of master or sub)- Master account
SPOTtransfer to sub-accountMARGIN(Cross),ISOLATED_MARGIN - Sub-account
MARGIN(Cross),ISOLATED_MARGINtransfer to master accountSPOT
Query Universal Transfer History (For Master Account)
Response
{
"result": [
{
"tranId": 92275823339,
"fromEmail": "abctest@gmail.com",
"toEmail": "deftest@gmail.com",
"asset": "BNB",
"amount": "0.01",
"createTimeStamp": 1640317374000,
"fromAccountType": "USDT_FUTURE",
"toAccountType": "SPOT",
"status": "SUCCESS",
"clientTranId": "test"
}
],
"totalCount": 1
}
GET /sapi/v1/sub-account/universalTransfer (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| fromEmail | STRING | NO | |
| toEmail | STRING | NO | |
| clientTranId | STRING | NO | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| page | INT | NO | Default 1 |
| limit | INT | NO | Default 500, Max 500 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- fromEmail and toEmail cannot be sent at the same time.
- Return fromEmail equal master account email by default.
- The query time period must be less then 30 days.
- If startTime and endTime not sent, return records of the last 30 days by default.
Get Detail on Sub-account's Futures Account V2 (For Master Account)
Response
USDT Margined Futures:
{
"futureAccountResp": {
"email": "abc@test.com",
"assets":[
{
"asset": "USDT",
"initialMargin": "0.00000000",
"maintenanceMargin": "0.00000000",
"marginBalance": "0.88308000",
"maxWithdrawAmount": "0.88308000",
"openOrderInitialMargin": "0.00000000",
"positionInitialMargin": "0.00000000",
"unrealizedProfit": "0.00000000",
"walletBalance": "0.88308000"
}
],
"canDeposit": true,
"canTrade": true,
"canWithdraw": true,
"feeTier": 2,
"maxWithdrawAmount": "0.88308000",
"totalInitialMargin": "0.00000000",
"totalMaintenanceMargin": "0.00000000",
"totalMarginBalance": "0.88308000",
"totalOpenOrderInitialMargin": "0.00000000",
"totalPositionInitialMargin": "0.00000000",
"totalUnrealizedProfit": "0.00000000",
"totalWalletBalance": "0.88308000",
"updateTime": 1576756674610
}
}
COIN Margined Futures:
{
"deliveryAccountResp": {
"email": "abc@test.com",
"assets":[
{
"asset": "BTC",
"initialMargin": "0.00000000",
"maintenanceMargin": "0.00000000",
"marginBalance": "0.88308000",
"maxWithdrawAmount": "0.88308000",
"openOrderInitialMargin": "0.00000000",
"positionInitialMargin": "0.00000000",
"unrealizedProfit": "0.00000000",
"walletBalance": "0.88308000"
}
],
"canDeposit": true,
"canTrade": true,
"canWithdraw": true,
"feeTier": 2,
"updateTime": 1598959682001
}
}
GET /sapi/v2/sub-account/futures/account (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | YES | Sub-account email | |
| futuresType | INT | YES | 1:USDT Margined Futures, 2:COIN Margined Futures |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Get Summary of Sub-account's Futures Account V2 (For Master Account)
Response
USDT Margined Futures:
{
"futureAccountSummaryResp": {
"totalInitialMargin": "9.83137400",
"totalMaintenanceMargin": "0.41568700",
"totalMarginBalance": "23.03235621",
"totalOpenOrderInitialMargin": "9.00000000",
"totalPositionInitialMargin": "0.83137400",
"totalUnrealizedProfit": "0.03219710",
"totalWalletBalance": "22.15879444",
"asset": "USD", //The sum of BUSD and USDT
"subAccountList":[
{
"email": "123@test.com",
"totalInitialMargin": "9.00000000",
"totalMaintenanceMargin": "0.00000000",
"totalMarginBalance": "22.12659734",
"totalOpenOrderInitialMargin": "9.00000000",
"totalPositionInitialMargin": "0.00000000",
"totalUnrealizedProfit": "0.00000000",
"totalWalletBalance": "22.12659734",
"asset": "USD" //The sum of BUSD and USDT
},
{
"email": "345@test.com",
"totalInitialMargin": "0.83137400",
"totalMaintenanceMargin": "0.41568700",
"totalMarginBalance": "0.90575887",
"totalOpenOrderInitialMargin": "0.00000000",
"totalPositionInitialMargin": "0.83137400",
"totalUnrealizedProfit": "0.03219710",
"totalWalletBalance": "0.87356177",
"asset": "USD"
}
]
}
}
COIN Margined Futures:
{
"deliveryAccountSummaryResp": {
"totalMarginBalanceOfBTC": "25.03221121",
"totalUnrealizedProfitOfBTC": "0.12233410",
"totalWalletBalanceOfBTC": "22.15879444",
"asset": "BTC",
"subAccountList":[
{
"email": "123@test.com",
"totalMarginBalance": "22.12659734",
"totalUnrealizedProfit": "0.00000000",
"totalWalletBalance": "22.12659734",
"asset": "BTC"
},
{
"email": "345@test.com",
"totalMarginBalance": "0.90575887",
"totalUnrealizedProfit": "0.03219710",
"totalWalletBalance": "0.87356177",
"asset": "BTC"
}
]
}
}
GET /sapi/v2/sub-account/futures/accountSummary (HMAC SHA256)
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| futuresType | INT | YES | 1:USDT Margined Futures, 2:COIN Margined Futures |
| page | INT | NO | default:1 |
| limit | INT | NO | default:10, max:20 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Get Futures Position-Risk of Sub-account V2 (For Master Account)
Response
USDT Margined Futures:
{
"futurePositionRiskVos": [
{
"entryPrice": "9975.12000",
"leverage": "50", // current initial leverage
"maxNotional": "1000000", // notional value limit of current initial leverage
"liquidationPrice": "7963.54",
"markPrice": "9973.50770517",
"positionAmount": "0.010",
"symbol": "BTCUSDT",
"unrealizedProfit": "-0.01612295"
}
]
}
COIN Margined Futures:
{
"deliveryPositionRiskVos": [
{
"entryPrice": "9975.12000",
"markPrice": "9973.50770517",
"leverage": "20",
"isolated": "false",
"isolatedWallet": "9973.50770517",
"isolatedMargin": "0.00000000",
"isAutoAddMargin": "false",
"positionSide": "BOTH",
"positionAmount": "1.230",
"symbol": "BTCUSD_201225",
"unrealizedProfit": "-0.01612295"
}
]
}
GET /sapi/v2/sub-account/futures/positionRisk (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | YES | Sub-account email | |
| futuresType | INT | YES | 1:USDT Margined Futures, 2:COIN Margined Futures |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Enable Leverage Token for Sub-account (For Master Account)
Response
{
"email":"123@test.com",
"enableBlvt":true
}
POST /sapi/v1/sub-account/blvt/enable (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | YES | Sub-account email | |
| enableBlvt | BOOLEAN | YES | Only true for now |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Enable or Disable IP Restriction for a Sub-account API Key (For Master Account)
Response:
{
"ipRestrict": "true",
"ipList": [
"0.0.0.0", // 0.0.0.0 is just an initial state reference (no extra meaning).You can use `POST /sapi/v1/sub-account/subAccountApi/ipRestriction/ipList` to add an IP whitelist
"69.210.67.14",
"8.34.21.10",
"thirdPartyName" //only return if you open third party IP list and input a third party name. You can use `POST /sapi/v1/sub-account/subAccountApi/ipRestriction/ipList` to add third party name.
],
"updateTime": 1636371437000,
"apiKey": "k5V49ldtn4tszj6W3hystegdfvmGbqDzjmkCtpTvC0G74WhK7yd4rfCTo4lShf"
}
POST /sapi/v1/sub-account/subAccountApi/ipRestriction (HMAC SHA256)
Weight(UID): 3000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | YES | Sub-account email | |
| subAccountApiKey | STRING | YES | |
| ipRestrict | BOOLEAN | YES | true or false |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Add IP List for a Sub-account API Key (For Master Account)
Response:
{
"ip": [
"8.34.21.101,5.24.40.1",
"thirdPartyName" //only return if you open third party IP list and input a third party name. You can use `POST /sapi/v1/sub-account/subAccountApi/ipRestriction` to add an IP whitelist.
],
"updateTime": 1636369557189,
"apiKey": "k5V49ldtn4tszj6W3hystegdfvmGbqDzjmkCtpTvC0G74WhK7yd4rfCTo4lShf"
}
POST /sapi/v1/sub-account/subAccountApi/ipRestriction/ipList (HMAC SHA256)
Before the usage of this endpoint, please ensure POST /sapi/v1/sub-account/subAccountApi/ipRestriction was used to enable the IP restriction
Weight(UID): 3000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | YES | Sub-account email | |
| subAccountApiKey | STRING | YES | |
| ipAddress | STRING | NO | Can be added in batches, separated by commas. Max 30 for an API key |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Get IP Restriction for a Sub-account API Key (For Master Account)
Response:
{
"ipRestrict": "true",
"ipList": [
"69.210.67.14",
"8.34.21.10"
],
"updateTime": 1636371437000,
"apiKey": "k5V49ldtn4tszj6W3hystegdfvmGbqDzjmkCtpTvC0G74WhK7yd4rfCTo4lShf"
}
GET /sapi/v1/sub-account/subAccountApi/ipRestriction (HMAC SHA256)
Weight(UID): 3000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | YES | Sub-account email | |
| subAccountApiKey | STRING | YES | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Delete IP List For a Sub-account API Key (For Master Account)
Response:
{
"ipRestrict": "true",
"ipList": [
"69.210.67.14",
"8.34.21.10",
"thirdPartyName" // only return if you open third party IP list and input a third party name. You can use `POST /sapi/v1/sub-account/subAccountApi/ipRestriction/ipList` to add third party name.
],
"updateTime": 1636371437000,
"apiKey": "k5V49ldtn4tszj6W3hystegdfvmGbqDzjmkCtpTvC0G74WhK7yd4rfCTo4lShf"
}
DELETE /sapi/v1/sub-account/subAccountApi/ipRestriction/ipList (HMAC SHA256)
Weight(UID): 3000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | YES | Sub-account email | |
| subAccountApiKey | STRING | YES | |
| ipAddress | STRING | NO | Can be added in batches, separated by commas |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Deposit Assets Into The Managed Sub-account(For Investor Master Account)
Response
{
"tranId":66157362489
}
POST /sapi/v1/managed-subaccount/deposit (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| toEmail | STRING | YES | |
| asset | STRING | YES | |
| amount | DECIMAL | YES | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- You need to enable
Enable Spot & Margin Tradingoption for the api key which requests this endpoint
Query Managed Sub-account Asset Details(For Investor Master Account)
Response
[
{
"coin": "INJ",
"name": "Injective Protocol",
"totalBalance": "0",
"availableBalance": "0",
"inOrder": "0",
"btcValue": "0"
},
{
"coin": "FILDOWN",
"name": "FILDOWN",
"totalBalance": "0",
"availableBalance": "0",
"inOrder": "0",
"btcValue": "0"
}
]
GET /sapi/v1/managed-subaccount/asset (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | YES | ||
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Withdrawl Assets From The Managed Sub-account(For Investor Master Account)
Response
{
"tranId":66157362489
}
POST /sapi/v1/managed-subaccount/withdraw (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| fromEmail | STRING | YES | |
| asset | STRING | YES | |
| amount | DECIMAL | YES | |
| transferDate | LONG | NO | Withdrawals is automatically occur on the transfer date(UTC0). If a date is not selected, the withdrawal occurs right now |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- You need to enable
Enable Spot & Margin Tradingoption for the api key which requests this endpoint
Query Managed Sub-account Snapshot(For Investor Master Account)
Response:
{
"code":200, // 200 for success; others are error codes
"msg":"", // error message
"snapshotVos":[
{
"data":{
"balances":[
{
"asset":"BTC",
"free":"0.09905021",
"locked":"0.00000000"
},
{
"asset":"USDT",
"free":"1.89109409",
"locked":"0.00000000"
}
],
"totalAssetOfBtc":"0.09942700"
},
"type":"spot",
"updateTime":1576281599000
}
]
}
OR
{
"code":200, // 200 for success; others are error codes
"msg":"", // error message
"snapshotVos":[
{
"data":{
"marginLevel":"2748.02909813",
"totalAssetOfBtc":"0.00274803",
"totalLiabilityOfBtc":"0.00000100",
"totalNetAssetOfBtc":"0.00274750",
"userAssets":[
{
"asset":"XRP",
"borrowed":"0.00000000",
"free":"1.00000000",
"interest":"0.00000000",
"locked":"0.00000000",
"netAsset":"1.00000000"
}
]
},
"type":"margin",
"updateTime":1576281599000
}
]
}
OR
{
"code":200, // 200 for success; others are error codes
"msg":"", // error message
"snapshotVos":[
{
"data":{
"assets":[
{
"asset":"USDT",
"marginBalance":"118.99782335",
"walletBalance":"120.23811389"
}
],
"position":[
{
"entryPrice":"7130.41000000",
"markPrice":"7257.66239673",
"positionAmt":"0.01000000",
"symbol":"BTCUSDT",
"unRealizedProfit":"1.24029054" // Only show the value at the time of opening the position
}
]
},
"type":"futures",
"updateTime":1576281599000
}
]
}
GET /sapi/v1/managed-subaccount/accountSnapshot (HMAC SHA256)
Weight(IP): 2400
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | YES | ||
| type | STRING | YES | "SPOT", "MARGIN"(cross), "FUTURES"(UM) |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | min 7, max 30, default 7 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- The query time period must be less then 30 days
- Support query within the last one month only
- If startTimeand endTime not sent, return records of the last 7 days by default
Market Data Endpoints
Test Connectivity
Response:
{}
GET /api/v3/ping
Test connectivity to the Rest API.
Weight(IP): 1
Parameters:
NONE
Data Source: Memory
Check Server Time
Response:
{
"serverTime": 1499827319559
}
GET /api/v3/time
Test connectivity to the Rest API and get the current server time.
Weight(IP): 1
Parameters:
NONE
Data Source: Memory
Exchange Information
Response:
{
"timezone": "UTC",
"serverTime": 1565246363776,
"rateLimits": [
{
//These are defined in the `ENUM definitions` section under `Rate Limiters (rateLimitType)`.
//All limits are optional
}
],
"exchangeFilters": [
//These are the defined filters in the `Filters` section.
//All filters are optional.
],
"symbols": [
{
"symbol": "ETHBTC",
"status": "TRADING",
"baseAsset": "ETH",
"baseAssetPrecision": 8,
"quoteAsset": "BTC",
"quotePrecision": 8,
"quoteAssetPrecision": 8,
"orderTypes": [
"LIMIT",
"LIMIT_MAKER",
"MARKET",
"STOP_LOSS",
"STOP_LOSS_LIMIT",
"TAKE_PROFIT",
"TAKE_PROFIT_LIMIT"
],
"icebergAllowed": true,
"ocoAllowed": true,
"quoteOrderQtyMarketAllowed": true,
"allowTrailingStop": false,
"cancelReplaceAllowed": false,
"isSpotTradingAllowed": true,
"isMarginTradingAllowed": true,
"filters": [
//These are defined in the Filters section.
//All filters are optional
],
"permissions": [
"SPOT",
"MARGIN"
]
}
]
}
GET /api/v3/exchangeInfo
Current exchange trading rules and symbol information
Weight(IP): 10
Parameters:
There are 4 possible options:
| Options | Example |
|---|---|
| No parameter | curl -X GET "https://api.binance.com/api/v3/exchangeInfo" |
| symbol | curl -X GET "https://api.binance.com/api/v3/exchangeInfo?symbol=BNBBTC" |
| symbols | curl -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"]' |
| permissions | curl -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
symbolorsymbolsdo not exist, the endpoint will throw an error saying the symbol is invalid. - All parameters are optional.
permissionscan support single or multiple values (e.g.SPOT,["MARGIN","LEVERAGED"])- If
permissionsparameter 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"])
- If one wants to view all symbols on
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:
| Limit | Weight |
|---|---|
| 1-100 | 1 |
| 101-500 | 5 |
| 501-1000 | 10 |
| 1001-5000 | 50 |
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| limit | INT | NO | Default 100; max 5000. If limit > 5000, then the response will truncate to 5000. |
Data Source: Memory
Recent Trades List
Response:
[
{
"id": 28457,
"price": "4.00000100",
"qty": "12.00000000",
"quoteQty": "48.000012",
"time": 1499865549590,
"isBuyerMaker": true,
"isBestMatch": true
}
]
GET /api/v3/trades
Get recent trades.
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| limit | INT | NO | Default 500; max 1000. |
Data Source: Memory
Old Trade Lookup (MARKET_DATA)
Response:
[
{
"id": 28457,
"price": "4.00000100",
"qty": "12.00000000",
"quoteQty": "48.000012",
"time": 1499865549590, // Trade executed timestamp, as same as `T` in the stream
"isBuyerMaker": true,
"isBestMatch": true
}
]
GET /api/v3/historicalTrades
Get older market trades.
Weight(IP): 5
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| limit | INT | NO | Default 500; max 1000. |
| fromId | LONG | NO | Trade id to fetch from. Default gets most recent trades. |
Data Source: Database
Compressed/Aggregate Trades List
Response:
[
{
"a": 26129, // Aggregate tradeId
"p": "0.01633102", // Price
"q": "4.70443515", // Quantity
"f": 27781, // First tradeId
"l": 27781, // Last tradeId
"T": 1498793709153, // Timestamp
"m": true, // Was the buyer the maker?
"M": true // Was the trade the best price match?
}
]
GET /api/v3/aggTrades
Get compressed, aggregate trades. Trades that fill at the time, from the same order, with the same price will have the quantity aggregated.
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| fromId | LONG | NO | id to get aggregate trades from INCLUSIVE. |
| startTime | LONG | NO | Timestamp in ms to get aggregate trades from INCLUSIVE. |
| endTime | LONG | NO | Timestamp in ms to get aggregate trades until INCLUSIVE. |
| limit | INT | NO | Default 500; max 1000. |
- If startTime and endTime are sent, time between startTime and endTime must be less than 1 hour.
- If fromId, startTime, and endTime are not sent, the most recent aggregate trades will be returned.
- Note that if a trade has the following values, this was a duplicate aggregate trade and marked as invalid:
- p = '0' // price
- q = '0' // qty
- f = -1 // first_trade_id
- l = -1 // last_trade_id
Data Source: Database
Kline/Candlestick Data
Response:
[
[
1499040000000, // Kline open time
"0.01634790", // Open price
"0.80000000", // High price
"0.01575800", // Low price
"0.01577100", // Close price
"148976.11427815", // Volume
1499644799999, // Kline Close time
"2434.19055334", // Quote asset volume
308, // Number of trades
"1756.87402397", // Taker buy base asset volume
"28.46694368", // Taker buy quote asset volume
"0" // Unused field, ignore.
]
]
GET /api/v3/klines
Kline/candlestick bars for a symbol.
Klines are uniquely identified by their open time.
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| interval | ENUM | YES | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | Default 500; max 1000. |
- If startTime and endTime are not sent, the most recent klines are returned.
Data Source: Database
UIKlines
Response:
[
[
1499040000000, // Kline open time
"0.01634790", // Open price
"0.80000000", // High price
"0.01575800", // Low price
"0.01577100", // Close price
"148976.11427815", // Volume
1499644799999, // Kline close time
"2434.19055334", // Quote asset volume
308, // Number of trades
"1756.87402397", // Taker buy base asset volume
"28.46694368", // Taker buy quote asset volume
"0" // Unused field. Ignore.
]
]
GET /api/v3/uiKlines
The request is similar to klines having the same parameters and response.
uiKlines return modified kline data, optimized for presentation of candlestick charts.
Weight: 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| interval | ENUM | YES | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | Default 500; max 1000. |
- If
startTimeandendTimeare not sent, the most recent klines are returned.
Data Source: Database
Current Average Price
Response:
{
"mins": 5,
"price": "9.35751834"
}
GET /api/v3/avgPrice
Current average price for a symbol.
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES |
Data Source: Memory
24hr Ticker Price Change Statistics
Response: - FULL
{
"symbol": "BNBBTC",
"priceChange": "-94.99999800",
"priceChangePercent": "-95.960",
"weightedAvgPrice": "0.29628482",
"prevClosePrice": "0.10002000",
"lastPrice": "4.00000200",
"lastQty": "200.00000000",
"bidPrice": "4.00000000",
"bidQty": "100.00000000",
"askPrice": "4.00000200",
"askQty": "100.00000000",
"openPrice": "99.00000000",
"highPrice": "100.00000000",
"lowPrice": "0.10000000",
"volume": "8913.30000000",
"quoteVolume": "15.30000000",
"openTime": 1499783499040,
"closeTime": 1499869899040,
"firstId": 28385, // First tradeId
"lastId": 28460, // Last tradeId
"count": 76 // Trade count
}
OR
[
{
"symbol": "BNBBTC",
"priceChange": "-94.99999800",
"priceChangePercent": "-95.960",
"weightedAvgPrice": "0.29628482",
"prevClosePrice": "0.10002000",
"lastPrice": "4.00000200",
"lastQty": "200.00000000",
"bidPrice": "4.00000000",
"bidQty": "100.00000000",
"askPrice": "4.00000200",
"askQty": "100.00000000",
"openPrice": "99.00000000",
"highPrice": "100.00000000",
"lowPrice": "0.10000000",
"volume": "8913.30000000",
"quoteVolume": "15.30000000",
"openTime": 1499783499040,
"closeTime": 1499869899040,
"firstId": 28385, // First tradeId
"lastId": 28460, // Last tradeId
"count": 76 // Trade count
}
]
Response - MINI
{
"symbol": "BNBBTC", // Symbol Name
"openPrice": "99.00000000", // Opening price of the Interval
"highPrice": "100.00000000", // Highest price in the interval
"lowPrice": "0.10000000", // Lowest price in the interval
"lastPrice": "4.00000200", // Closing price of the interval
"volume": "8913.30000000", // Total trade volume (in base asset)
"quoteVolume": "15.30000000", // Total trade volume (in quote asset)
"openTime": 1499783499040, // Start of the ticker interval
"closeTime": 1499869899040, // End of the ticker interval
"firstId": 28385, // First tradeId considered
"lastId": 28460, // Last tradeId considered
"count": 76 // Total trade count
}
OR
[
{
"symbol": "BNBBTC",
"openPrice": "99.00000000",
"highPrice": "100.00000000",
"lowPrice": "0.10000000",
"lastPrice": "4.00000200",
"volume": "8913.30000000",
"quoteVolume": "15.30000000",
"openTime": 1499783499040,
"closeTime": 1499869899040,
"firstId": 28385,
"lastId": 28460,
"count": 76
},
{
"symbol": "LTCBTC",
"openPrice": "0.07000000",
"highPrice": "0.07000000",
"lowPrice": "0.07000000",
"lastPrice": "0.07000000",
"volume": "11.00000000",
"quoteVolume": "0.77000000",
"openTime": 1656908192899,
"closeTime": 1656994592899,
"firstId": 0,
"lastId": 10,
"count": 11
}
]
GET /api/v3/ticker/24hr
24 hour rolling window price change statistics. Careful when accessing this with no symbol.
Weight(IP):
| Parameter | Symbols Provided | Weight |
|---|---|---|
| symbol | 1 | 1 |
| symbol parameter is omitted | 40 | |
| symbols | 1-20 | 1 |
| 21-100 | 20 | |
| 101 or more | 40 | |
| symbols parameter is omitted | 40 |
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | NO | Parameter symbol and symbols cannot be used in combination. If neither parameter is sent, tickers for all symbols will be returned in an array. Examples of accepted format for the symbols parameter: ["BTCUSDT","BNBUSDT"] or %5B%22BTCUSDT%22,%22BNBUSDT%22%5D |
| symbols | STRING | NO | |
| type | ENUM | NO | Supported values: FULL or MINI. If none provided, the default is FULL |
Data Source: Memory
Symbol Price Ticker
Response:
{
"symbol": "LTCBTC",
"price": "4.00000200"
}
OR
[
{
"symbol": "LTCBTC",
"price": "4.00000200"
},
{
"symbol": "ETHBTC",
"price": "0.07946600"
}
]
GET /api/v3/ticker/price
Latest price for a symbol or symbols.
Weight(IP):
| Parameter | Symbols Provided | Weight |
|---|---|---|
| symbol | 1 | 1 |
| symbol parameter is omitted | 2 | |
| symbols | Any | 2 |
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | NO | Parameter symbol and symbols cannot be used in combination. If neither parameter is sent, prices for all symbols will be returned in an array. Examples of accepted format for the symbols parameter: ["BTCUSDT","BNBUSDT"] or %5B%22BTCUSDT%22,%22BNBUSDT%22%5D |
| symbols | STRING | NO |
Data Source: Memory
Symbol Order Book Ticker
Response:
{
"symbol": "LTCBTC",
"bidPrice": "4.00000000",
"bidQty": "431.00000000",
"askPrice": "4.00000200",
"askQty": "9.00000000"
}
OR
[
{
"symbol": "LTCBTC",
"bidPrice": "4.00000000",
"bidQty": "431.00000000",
"askPrice": "4.00000200",
"askQty": "9.00000000"
},
{
"symbol": "ETHBTC",
"bidPrice": "0.07946700",
"bidQty": "9.00000000",
"askPrice": "100000.00000000",
"askQty": "1000.00000000"
}
]
GET /api/v3/ticker/bookTicker
Best price/qty on the order book for a symbol or symbols.
Weight(IP):
| Parameter | Symbols Provided | Weight |
|---|---|---|
| symbol | 1 | 1 |
| symbol parameter is omitted | 2 | |
| symbols | Any | 2 |
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | NO | Parameter symbol and symbols cannot be used in combination. If neither parameter is sent, bookTickers for all symbols will be returned in an array. Examples of accepted format for the symbols parameter: ["BTCUSDT","BNBUSDT"] or %5B%22BTCUSDT%22,%22BNBUSDT%22%5D |
| symbols | STRING | NO |
Data Source: Memory
Rolling window price change statistics
Response: - FULL
{
"symbol": "BNBBTC",
"priceChange": "-8.00000000", // Absolute price change
"priceChangePercent": "-88.889", // Relative price change in percent
"weightedAvgPrice": "2.60427807", // QuoteVolume / Volume
"openPrice": "9.00000000",
"highPrice": "9.00000000",
"lowPrice": "1.00000000",
"lastPrice": "1.00000000",
"volume": "187.00000000",
"quoteVolume": "487.00000000", // Sum of (price * volume) for all trades
"openTime": 1641859200000, // Open time for ticker window
"closeTime": 1642031999999, // Current Time of the Request
"firstId": 0, // Trade IDs
"lastId": 60,
"count": 61 // Number of trades in the interval
}
OR
[
{
"symbol": "BTCUSDT",
"priceChange": "-154.13000000", // Absolute price change
"priceChangePercent": "-0.740", // Relative price change in percent
"weightedAvgPrice": "20677.46305250", // QuoteVolume / Volume
"openPrice": "20825.27000000",
"highPrice": "20972.46000000",
"lowPrice": "20327.92000000",
"lastPrice": "20671.14000000",
"volume": "72.65112300",
"quoteVolume": "1502240.91155513", // Sum of (price * volume) for all trades
"openTime": 1655432400000, // Open time for ticker window
"closeTime": 1655446835460, // Close time for ticker window
"firstId": 11147809, // Trade IDs
"lastId": 11149775,
"count": 1967 // Number of trades in the interval
},
{
"symbol": "BNBBTC",
"priceChange": "0.00008530",
"priceChangePercent": "0.823",
"weightedAvgPrice": "0.01043129",
"openPrice": "0.01036170",
"highPrice": "0.01049850",
"lowPrice": "0.01033870",
"lastPrice": "0.01044700",
"volume": "166.67000000",
"quoteVolume": "1.73858301",
"openTime": 1655432400000,
"closeTime": 1655446835460,
"firstId": 2351674,
"lastId": 2352034,
"count": 361
}
]
Response - MINI
{
"symbol": "LTCBTC",
"openPrice": "0.10000000",
"highPrice": "2.00000000",
"lowPrice": "0.10000000",
"lastPrice": "2.00000000",
"volume": "39.00000000",
"quoteVolume": "13.40000000", // Sum of (price * volume) for all trades
"openTime": 1656986580000, // Open time for ticker window
"closeTime": 1657001016795, // Close time for ticker window
"firstId": 0, // Trade IDs
"lastId": 34,
"count": 35 // Number of trades in the interval
}
OR
[
{
"symbol": "BNBBTC",
"openPrice": "0.10000000",
"highPrice": "2.00000000",
"lowPrice": "0.10000000",
"lastPrice": "2.00000000",
"volume": "39.00000000",
"quoteVolume": "13.40000000", // Sum of (price * volume) for all trades
"openTime": 1656986880000, // Open time for ticker window
"closeTime": 1657001297799, // Close time for ticker window
"firstId": 0, // Trade IDs
"lastId": 34,
"count": 35 // Number of trades in the interval
},
{
"symbol": "LTCBTC",
"openPrice": "0.07000000",
"highPrice": "0.07000000",
"lowPrice": "0.07000000",
"lastPrice": "0.07000000",
"volume": "33.00000000",
"quoteVolume": "2.31000000",
"openTime": 1656986880000,
"closeTime": 1657001297799,
"firstId": 0,
"lastId": 32,
"count": 33
}
]
GET /api/v3/ticker
Note: This endpoint is different from the GET /api/v3/ticker/24hr endpoint.
The window used to compute statistics will be no more than 59999ms from the requested windowSize.
openTime for /api/v3/ticker always starts on a minute, while the closeTime is the current time of the request.
As such, the effective window will be up to 59999ms wider than windowSize.
E.g. If the closeTime is 1641287867099 (January 04, 2022 09:17:47:099 UTC) , and the windowSize is 1d. the openTime will be: 1641201420000 (January 3, 2022, 09:17:00 UTC)
Weight:(IP)
2 for each requested symbol regardless of windowSize
The weight for this request will cap at 100 once the number of symbols in the request is more than 50.
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | Either symbol or symbols must be provided Examples of accepted format for the symbols parameter: ["BTCUSDT","BNBUSDT"] or %5B%22BTCUSDT%22,%22BNBUSDT%22%5D The maximum number of symbols allowed in a request is 100. |
| symbols | |||
| windowSize | ENUM | NO | Defaults to 1d if no parameter provided Supported windowSize values: 1m,2m....59m for minutes 1h, 2h....23h - for hours 1d...7d - for days Units cannot be combined (e.g. 1d2h is not allowed) |
| type | ENUM | NO | Supported values: FULL or MINI. If none provided, the default is FULL |
Data Source: Database
Websocket Market Streams
- The base endpoint is: wss://stream.binance.com:9443 or wss://stream.binance.com:443
- Streams can be accessed either in a single raw stream or in a combined stream
- Raw streams are accessed at /ws/<streamName>
- Combined streams are accessed at /stream?streams=<streamName1>/<streamName2>/<streamName3>
- Combined stream events are wrapped as follows: {"stream":"<streamName>","data":<rawPayload>}
- All symbols for streams are lowercase
- A single connection to stream.binance.com is only valid for 24 hours; expect to be disconnected at the 24 hour mark
- The websocket server will send a
ping frameevery 3 minutes. If the websocket server does not receive apong frameback from the connection within a 10 minute period, the connection will be disconnected. Unsolicitedpong framesare allowed.
Live Subscribing/Unsubscribing to streams
- The following data can be sent through the websocket instance in order to subscribe/unsubscribe from streams. Examples can be seen below.
- The
idused in the JSON payloads is an unsigned INT used as an identifier to uniquely identify the messages going back and forth. - In the response, if the
resultreceived isnullthis means the request sent was a success.
Subscribe to a stream
Response
{
"result": null,
"id": 1
}
Request
{
"method": "SUBSCRIBE",
"params":
[
"btcusdt@aggTrade",
"btcusdt@depth"
],
"id": 1
}
Unsubscribe to a stream
Response
{
"result": null,
"id": 312
}
- Request
{
"method": "UNSUBSCRIBE",
"params":
[
"btcusdt@depth"
],
"id": 312
}
Listing Subscriptions
Response
{
"result": [
"btcusdt@aggTrade"
],
"id": 3
}
- Request
{
"method": "LIST_SUBSCRIPTIONS",
"id": 3
}
Setting Properties
Currently, the only property can be set is to set whether combined stream payloads are enabled or not.
The combined property is set to false when connecting using /ws/ ("raw streams") and true when connecting using /stream/.
Response
{
"result": null,
"id": 5
}
- Request
{
"method": "SET_PROPERTY",
"params":
[
"combined",
true
],
"id": 5
}
Retrieving Properties
Response
{
"result": true, // Indicates that combined is set to true.
"id": 2
}
- Request
{
"method": "GET_PROPERTY",
"params":
[
"combined"
],
"id": 2
}
Error Messages
| Error Message | Description |
|---|---|
| {"code": 0, "msg": "Unknown property", "id": '%s'} | Parameter used in the SET_PROPERTY or GET_PROPERTY was invalid |
| {"code": 1, "msg": "Invalid value type: expected Boolean", "id": '%s'} | Value should only be true or false |
| {"code": 2, "msg": "Invalid request: property name must be a string"} | Property name provided was invalid |
| {"code": 2, "msg": "Invalid request: request ID must be an unsigned integer"} | Parameter id had to be provided or the value provided in the id parameter is an unsupported type |
{"code": 2, "msg": "Invalid request: unknown variant %s, expected one of SUBSCRIBE, UNSUBSCRIBE, LIST_SUBSCRIPTIONS, SET_PROPERTY, GET_PROPERTY at line 1 column 28"} |
Possible typo in the provided method or provided method was neither of the expected values |
| {"code": 2, "msg": "Invalid request: too many parameters"} | Unnecessary parameters provided in the data |
| {"code": 2, "msg": "Invalid request: property name must be a string"} | Property name was not provided |
{"code": 2, "msg": "Invalid request: missing field method at line 1 column 73"} |
method was not provided in the data |
| {"code":3,"msg":"Invalid JSON: expected value at line %s column %s"} | JSON data sent has incorrect syntax. |
Aggregate Trade Streams
Payload:
{
"e": "aggTrade", // Event type
"E": 123456789, // Event time
"s": "BNBBTC", // Symbol
"a": 12345, // Aggregate trade ID
"p": "0.001", // Price
"q": "100", // Quantity
"f": 100, // First trade ID
"l": 105, // Last trade ID
"T": 123456785, // Trade time
"m": true, // Is the buyer the market maker?
"M": true // Ignore
}
The Aggregate Trade Streams push trade information that is aggregated for a single taker order.
Stream Name: <symbol>@aggTrade
Update Speed: Real-time
Trade Streams
Payload:
{
"e": "trade", // Event type
"E": 123456789, // Event time
"s": "BNBBTC", // Symbol
"t": 12345, // Trade ID
"p": "0.001", // Price
"q": "100", // Quantity
"b": 88, // Buyer order ID
"a": 50, // Seller order ID
"T": 123456785, // Trade time
"m": true, // Is the buyer the market maker?
"M": true // Ignore
}
The Trade Streams push raw trade information; each trade has a unique buyer and seller.
Stream Name: <symbol>@trade
Update Speed: Real-time
Kline/Candlestick Streams
Payload:
{
"e": "kline", // Event type
"E": 123456789, // Event time
"s": "BNBBTC", // Symbol
"k": {
"t": 123400000, // Kline start time
"T": 123460000, // Kline close time
"s": "BNBBTC", // Symbol
"i": "1m", // Interval
"f": 100, // First trade ID
"L": 200, // Last trade ID
"o": "0.0010", // Open price
"c": "0.0020", // Close price
"h": "0.0025", // High price
"l": "0.0015", // Low price
"v": "1000", // Base asset volume
"n": 100, // Number of trades
"x": false, // Is this kline closed?
"q": "1.0000", // Quote asset volume
"V": "500", // Taker buy base asset volume
"Q": "0.500", // Taker buy quote asset volume
"B": "123456" // Ignore
}
}
The Kline/Candlestick Stream push updates to the current klines/candlestick every second.
Stream Name: <symbol>@kline_<interval>
Update Speed: 2000ms
Kline/Candlestick chart intervals:
s-> seconds; m -> minutes; h -> hours; d -> days; w -> weeks; M -> months
- 1s
- 1m
- 3m
- 5m
- 15m
- 30m
- 1h
- 2h
- 4h
- 6h
- 8h
- 12h
- 1d
- 3d
- 1w
- 1M
Individual Symbol Mini Ticker Stream
Payload:
{
"e": "24hrMiniTicker", // Event type
"E": 123456789, // Event time
"s": "BNBBTC", // Symbol
"c": "0.0025", // Close price
"o": "0.0010", // Open price
"h": "0.0025", // High price
"l": "0.0010", // Low price
"v": "10000", // Total traded base asset volume
"q": "18" // Total traded quote asset volume
}
24hr rolling window mini-ticker statistics. These are NOT the statistics of the UTC day, but a 24hr rolling window for the previous 24hrs.
Stream Name: <symbol>@miniTicker
Update Speed: 1000ms
All Market Mini Tickers Stream
Payload:
[
{
// Same as <symbol>@miniTicker payload
}
]
24hr rolling window mini-ticker statistics for all symbols that changed in an array. These are NOT the statistics of the UTC day, but a 24hr rolling window for the previous 24hrs. Note that only tickers that have changed will be present in the array.
Stream Name: !miniTicker@arr
Update Speed: 1000ms
Individual Symbol Ticker Streams
Payload:
{
"e": "24hrTicker", // Event type
"E": 123456789, // Event time
"s": "BNBBTC", // Symbol
"p": "0.0015", // Price change
"P": "250.00", // Price change percent
"w": "0.0018", // Weighted average price
"x": "0.0009", // First trade(F)-1 price (first trade before the 24hr rolling window)
"c": "0.0025", // Last price
"Q": "10", // Last quantity
"b": "0.0024", // Best bid price
"B": "10", // Best bid quantity
"a": "0.0026", // Best ask price
"A": "100", // Best ask quantity
"o": "0.0010", // Open price
"h": "0.0025", // High price
"l": "0.0010", // Low price
"v": "10000", // Total traded base asset volume
"q": "18", // Total traded quote asset volume
"O": 0, // Statistics open time
"C": 86400000, // Statistics close time
"F": 0, // First trade ID
"L": 18150, // Last trade Id
"n": 18151 // Total number of trades
}
24hr rolling window ticker statistics for a single symbol. These are NOT the statistics of the UTC day, but a 24hr rolling window for the previous 24hrs.
Stream Name: <symbol>@ticker
Update Speed: 1000ms
All Market Tickers Stream
Payload:
[
{
// Same as <symbol>@ticker payload
}
]
24hr rolling window ticker statistics for all symbols that changed in an array. These are NOT the statistics of the UTC day, but a 24hr rolling window for the previous 24hrs. Note that only tickers that have changed will be present in the array.
Stream Name: !ticker@arr
Update Speed: 1000ms
Individual Symbol Rolling Window Statistics Streams
Payload:
{
"e": "1hTicker", // Event type
"E": 123456789, // Event time
"s": "BNBBTC", // Symbol
"p": "0.0015", // Price change
"P": "250.00", // Price change percent
"o": "0.0010", // Open price
"h": "0.0025", // High price
"l": "0.0010", // Low price
"c": "0.0025", // Last price
"w": "0.0018", // Weighted average price
"v": "10000", // Total traded base asset volume
"q": "18", // Total traded quote asset volume
"O": 0, // Statistics open time
"C": 86400000, // Statistics close time
"F": 0, // First trade ID
"L": 18150, // Last trade Id
"n": 18151 // Total number of trades
}
Rolling window ticker statistics for a single symbol, computed over multiple windows.
Stream Name: <symbol>@ticker_<window_size>
Window Sizes: 1h,4h,1d
Update Speed: 1000ms
Note: This stream is different from the <symbol>@ticker stream.
The open time O always starts on a minute, while the closing time C is the current time of the update.
As such, the effective window might be up to 59999ms wider that <window_size>.
All Market Rolling Window Statistics Streams
Payload:
[
{
// Same as <symbol>@ticker_<window-size> payload,
// one for each symbol updated within the interval.
}
]
Rolling window ticker statistics for all market symbols, computed over multiple windows. Note that only tickers that have changed will be present in the array.
Stream Name: !ticker_<window-size>@arr
Window Size: 1h,4h,1d
Update Speed: 1000ms
Individual Symbol Book Ticker Streams
Payload:
{
"u":400900217, // order book updateId
"s":"BNBUSDT", // symbol
"b":"25.35190000", // best bid price
"B":"31.21000000", // best bid qty
"a":"25.36520000", // best ask price
"A":"40.66000000" // best ask qty
}
Pushes any update to the best bid or ask's price or quantity in real-time for a specified symbol.
Multiple <symbol>@bookTicker streams can be subscribed to over one connection.
Stream Name: <symbol>@bookTicker
Update Speed: Real-time
All Book Tickers Stream
Payload:
{
// Same as <symbol>@bookTicker payload
}
Pushes any update to the best bid or ask's price or quantity in real-time for all symbols.
Stream Name: !bookTicker
Update Speed: Real-time
Partial Book Depth Streams
Payload:
{
"lastUpdateId": 160, // Last update ID
"bids": [ // Bids to be updated
[
"0.0024", // Price level to be updated
"10" // Quantity
]
],
"asks": [ // Asks to be updated
[
"0.0026", // Price level to be updated
"100" // Quantity
]
]
}
Top
Stream Names: <symbol>@depth<levels> OR <symbol>@depth<levels>@100ms.
Update Speed: 1000ms or 100ms
Diff. Depth Stream
Payload:
{
"e": "depthUpdate", // Event type
"E": 123456789, // Event time
"s": "BNBBTC", // Symbol
"U": 157, // First update ID in event
"u": 160, // Final update ID in event
"b": [ // Bids to be updated
[
"0.0024", // Price level to be updated
"10" // Quantity
]
],
"a": [ // Asks to be updated
[
"0.0026", // Price level to be updated
"100" // Quantity
]
]
}
Stream Name: <symbol>@depth OR <symbol>@depth@100ms
Update Speed: 1000ms or 100ms
Order book price and quantity depth updates used to locally manage an order book.
How to manage a local order book correctly
- Open a stream to wss://stream.binance.com:9443/ws/bnbbtc@depth.
- Buffer the events you receive from the stream.
- Get a depth snapshot from https://api.binance.com/api/v3/depth?symbol=BNBBTC&limit=1000 .
- Drop any event where
uis <=lastUpdateIdin the snapshot. - The first processed event should have
U<=lastUpdateId+1 ANDu>=lastUpdateId+1. - While listening to the stream, each new event's
Ushould be equal to the previous event'su+1. - The data in each event is the absolute quantity for a price level.
- If the quantity is 0, remove the price level.
- Receiving an event that removes a price level that is not in your local order book can happen and is normal.
Note: Due to depth snapshots having a limit on the number of price levels, a price level outside of the initial snapshot that doesn't have a quantity change won't have an update in the Diff. Depth Stream. Consequently, those price levels will not be visible in the local order book even when applying all updates from the Diff. Depth Stream correctly and cause the local order book to have some slight differences with the real order book. However, for most use cases the depth limit of 5000 is enough to understand the market and trade effectively.
Spot Account/Trade
Test New Order (TRADE)
Response:
{}
POST /api/v3/order/test (HMAC SHA256)
Test new order creation and signature/recvWindow long. Creates and validates a new order but does not send it into the matching engine.
Weight: 1
Parameters:
Same as POST /api/v3/order
Data Source: Memory
New Order (TRADE)
Response ACK:
{
"symbol": "BTCUSDT",
"orderId": 28,
"orderListId": -1, //Unless OCO, value will be -1
"clientOrderId": "6gCrw2kRUAF9CvJDGP16IP",
"transactTime": 1507725176595
}
Response RESULT:
{
"symbol": "BTCUSDT",
"orderId": 28,
"orderListId": -1, //Unless OCO, value will be -1
"clientOrderId": "6gCrw2kRUAF9CvJDGP16IP",
"transactTime": 1507725176595,
"price": "0.00000000",
"origQty": "10.00000000",
"executedQty": "10.00000000",
"cummulativeQuoteQty": "10.00000000",
"status": "FILLED",
"timeInForce": "GTC",
"type": "MARKET",
"side": "SELL",
"strategyId": 1, // This is only visible if the field was populated on order placement.
"strategyType": 1000000 // This is only visible if the field was populated on order placement.
}
Response FULL:
{
"symbol": "BTCUSDT",
"orderId": 28,
"orderListId": -1, //Unless OCO, value will be -1
"clientOrderId": "6gCrw2kRUAF9CvJDGP16IP",
"transactTime": 1507725176595,
"price": "0.00000000",
"origQty": "10.00000000",
"executedQty": "10.00000000",
"cummulativeQuoteQty": "10.00000000",
"status": "FILLED",
"timeInForce": "GTC",
"type": "MARKET",
"side": "SELL",
"strategyId": 1, // This is only visible if the field was populated on order placement.
"strategyType": 1000000 // This is only visible if the field was populated on order placement.
"fills": [
{
"price": "4000.00000000",
"qty": "1.00000000",
"commission": "4.00000000",
"commissionAsset": "USDT",
"tradeId": 56
},
{
"price": "3999.00000000",
"qty": "5.00000000",
"commission": "19.99500000",
"commissionAsset": "USDT",
"tradeId": 57
},
{
"price": "3998.00000000",
"qty": "2.00000000",
"commission": "7.99600000",
"commissionAsset": "USDT",
"tradeId": 58
},
{
"price": "3997.00000000",
"qty": "1.00000000",
"commission": "3.99700000",
"commissionAsset": "USDT",
"tradeId": 59
},
{
"price": "3995.00000000",
"qty": "1.00000000",
"commission": "3.99500000",
"commissionAsset": "USDT",
"tradeId": 60
}
]
}
POST /api/v3/order (HMAC SHA256)
Send in a new order.
Weight(UID): 1 Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| side | ENUM | YES | |
| type | ENUM | YES | |
| timeInForce | ENUM | NO | |
| quantity | DECIMAL | NO | |
| quoteOrderQty | DECIMAL | NO | |
| price | DECIMAL | NO | |
| newClientOrderId | STRING | NO | A unique id among open orders. Automatically generated if not sent. |
| strategyId | INT | NO | |
| strategyType | INT | NO | The value cannot be less than 1000000. |
| stopPrice | DECIMAL | NO | Used with STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, and TAKE_PROFIT_LIMIT orders. |
| trailingDelta | LONG | NO | Used with STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, and TAKE_PROFIT_LIMIT orders. For more details on SPOT implementation on trailing stops, please refer to Trailing Stop FAQ |
| icebergQty | DECIMAL | NO | Used with LIMIT, STOP_LOSS_LIMIT, and TAKE_PROFIT_LIMIT to create an iceberg order. |
| newOrderRespType | ENUM | NO | Set the response JSON. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK. |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Additional mandatory parameters based on type:
| Type | Additional mandatory parameters |
|---|---|
LIMIT |
timeInForce, quantity, price |
MARKET |
quantity or quoteOrderQty |
STOP_LOSS |
quantity, stopPrice or trailingDelta |
STOP_LOSS_LIMIT |
timeInForce, quantity, price, stopPrice or trailingDelta |
TAKE_PROFIT |
quantity, stopPrice or trailingDelta |
TAKE_PROFIT_LIMIT |
timeInForce, quantity, price, stopPrice or trailingDelta |
LIMIT_MAKER |
quantity, price |
Other info:
LIMIT_MAKERareLIMITorders that will be rejected if they would immediately match and trade as a taker.STOP_LOSSandTAKE_PROFITwill execute aMARKETorder when thestopPriceis reached.- Any
LIMITorLIMIT_MAKERtype order can be made an iceberg order by sending anicebergQty. - Any order with an
icebergQtyMUST havetimeInForceset toGTC. MARKETorders using thequantityfield specifies the amount of thebase assetthe user wants to buy or sell at the market price.- For example, sending a
MARKETorder on BTCUSDT will specify how much BTC the user is buying or selling.
- For example, sending a
MARKETorders usingquoteOrderQtyspecifies the amount the user wants to spend (when buying) or receive (when selling) thequoteasset; the correctquantitywill be determined based on the market liquidity andquoteOrderQty.- Using BTCUSDT as an example:
- On the
BUYside, the order will buy as many BTC asquoteOrderQtyUSDT can. - On the
SELLside, the order will sell as much BTC needed to receivequoteOrderQtyUSDT.
- On the
- Using BTCUSDT as an example:
MARKETorders usingquoteOrderQtywill not breakLOT_SIZEfilter rules; the order will execute aquantitythat will have the notional value as close as possible toquoteOrderQty.- same
newClientOrderIdcan be accepted only when the previous one is filled, otherwise the order will be rejected. - For
STOP_LOSS,STOP_LOSS_LIMIT,TAKE_PROFIT_LIMITandTAKE_PROFITorders,trailingDeltacan be combined withstopPrice.
Trigger order price rules against market price for both MARKET and LIMIT versions:
- Price above market price:
STOP_LOSSBUY,TAKE_PROFITSELL - Price below market price:
STOP_LOSSSELL,TAKE_PROFITBUY
Data Source: Matching Engine
Cancel Order (TRADE)
Response:
{
"symbol": "LTCBTC",
"origClientOrderId": "myOrder1",
"orderId": 4,
"orderListId": -1, //Unless part of an OCO, the value will always be -1.
"clientOrderId": "cancelMyOrder1",
"price": "2.00000000",
"origQty": "1.00000000",
"executedQty": "0.00000000",
"cummulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY"
}
DELETE /api/v3/order (HMAC SHA256)
Cancel an active order.
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| orderId | LONG | NO | |
| origClientOrderId | STRING | NO | |
| newClientOrderId | STRING | NO | Used to uniquely identify this cancel. Automatically generated by default. |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Either orderId or origClientOrderId must be sent.
If both orderId and origClientOrderId are provided, orderId takes precedence.
Data Source: Matching Engine
Cancel all Open Orders on a Symbol (TRADE)
Response:
[
{
"symbol": "BTCUSDT",
"origClientOrderId": "E6APeyTJvkMvLMYMqu1KQ4",
"orderId": 11,
"orderListId": -1,
"clientOrderId": "pXLV6Hz6mprAcVYpVMTGgx",
"price": "0.089853",
"origQty": "0.178622",
"executedQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY"
},
{
"symbol": "BTCUSDT",
"origClientOrderId": "A3EF2HCwxgZPFMrfwbgrhv",
"orderId": 13,
"orderListId": -1,
"clientOrderId": "pXLV6Hz6mprAcVYpVMTGgx",
"price": "0.090430",
"origQty": "0.178622",
"executedQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY"
},
{
"orderListId": 1929,
"contingencyType": "OCO",
"listStatusType": "ALL_DONE",
"listOrderStatus": "ALL_DONE",
"listClientOrderId": "2inzWQdDvZLHbbAmAozX2N",
"transactionTime": 1585230948299,
"symbol": "BTCUSDT",
"orders": [
{
"symbol": "BTCUSDT",
"orderId": 20,
"clientOrderId": "CwOOIPHSmYywx6jZX77TdL"
},
{
"symbol": "BTCUSDT",
"orderId": 21,
"clientOrderId": "461cPg51vQjV3zIMOXNz39"
}
],
"orderReports": [
{
"symbol": "BTCUSDT",
"origClientOrderId": "CwOOIPHSmYywx6jZX77TdL",
"orderId": 20,
"orderListId": 1929,
"clientOrderId": "pXLV6Hz6mprAcVYpVMTGgx",
"price": "0.668611",
"origQty": "0.690354",
"executedQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "STOP_LOSS_LIMIT",
"side": "BUY",
"stopPrice": "0.378131",
"icebergQty": "0.017083"
},
{
"symbol": "BTCUSDT",
"origClientOrderId": "461cPg51vQjV3zIMOXNz39",
"orderId": 21,
"orderListId": 1929,
"clientOrderId": "pXLV6Hz6mprAcVYpVMTGgx",
"price": "0.008791",
"origQty": "0.690354",
"executedQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT_MAKER",
"side": "BUY",
"icebergQty": "0.639962"
}
]
}
]
DELETE /api/v3/openOrders
Cancels all active orders on a symbol.
This includes OCO orders.
Weight(IP): 1
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Data Source: Matching Engine
Query Order (USER_DATA)
Response:
{
"symbol": "LTCBTC",
"orderId": 1,
"orderListId": -1, //Unless OCO, value will be -1
"clientOrderId": "myOrder1",
"price": "0.1",
"origQty": "1.0",
"executedQty": "0.0",
"cummulativeQuoteQty": "0.0",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.0",
"icebergQty": "0.0",
"time": 1499827319559,
"updateTime": 1499827319559,
"isWorking": true,
"origQuoteOrderQty": "0.000000"
}
GET /api/v3/order (HMAC SHA256)
Check an order's status.
Weight(IP): 2
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| orderId | LONG | NO | |
| origClientOrderId | STRING | NO | |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Notes:
- Either
orderIdororigClientOrderIdmust be sent. - For some historical orders
cummulativeQuoteQtywill be < 0, meaning the data is not available at this time.
Data Source: Memory => Database
Cancel an Existing Order and Send a New Order (TRADE)
Response SUCCESS:
//Both the cancel order placement and new order placement succeeded.
{
"cancelResult": "SUCCESS",
"newOrderResult": "SUCCESS",
"cancelResponse": {
"symbol": "BTCUSDT",
"origClientOrderId": "DnLo3vTAQcjha43lAZhZ0y",
"orderId": 9,
"orderListId": -1,
"clientOrderId": "osxN3JXAtJvKvCqGeMWMVR",
"price": "0.01000000",
"origQty": "0.000100",
"executedQty": "0.00000000",
"cummulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "SELL"
},
"newOrderResponse": {
"symbol": "BTCUSDT",
"orderId": 10,
"orderListId": -1,
"clientOrderId": "wOceeeOzNORyLiQfw7jd8S",
"transactTime": 1652928801803,
"price": "0.02000000",
"origQty": "0.040000",
"executedQty": "0.00000000",
"cummulativeQuoteQty": "0.00000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"fills": []
}
}
Response when Cancel Order Fails with STOP_ON_FAILURE:
{
"code": -2022,
"msg": "Order cancel-replace failed.",
"data": {
"cancelResult": "FAILURE",
"newOrderResult": "NOT_ATTEMPTED",
"cancelResponse": {
"code": -2011,
"msg": "Unknown order sent."
},
"newOrderResponse": null
}
}
Response when Cancel Order Succeeds but New Order Placement Fails:
{
"code": -2021,
"msg": "Order cancel-replace partially failed.",
"data": {
"cancelResult": "SUCCESS",
"newOrderResult": "FAILURE",
"cancelResponse": {
"symbol": "BTCUSDT",
"origClientOrderId": "86M8erehfExV8z2RC8Zo8k",
"orderId": 3,
"orderListId": -1,
"clientOrderId": "G1kLo6aDv2KGNTFcjfTSFq",
"price": "0.006123",
"origQty": "10000.000000",
"executedQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT_MAKER",
"side": "SELL"
},
"newOrderResponse": {
"code": -2010,
"msg": "Order would immediately match and take."
}
}
}
Response when Cancel Order fails with ALLOW_FAILURE:
{
"code": -2021,
"msg": "Order cancel-replace partially failed.",
"data": {
"cancelResult": "FAILURE",
"newOrderResult": "SUCCESS",
"cancelResponse": {
"code": -2011,
"msg": "Unknown order sent."
},
"newOrderResponse": {
"symbol": "BTCUSDT",
"orderId": 11,
"orderListId": -1,
"clientOrderId": "pfojJMg6IMNDKuJqDxvoxN",
"transactTime": 1648540168818
}
}
}
Response when both Cancel Order and New Order Placement fail:
{
"code": -2022,
"msg": "Order cancel-replace failed.",
"data": {
"cancelResult": "FAILURE",
"newOrderResult": "FAILURE",
"cancelResponse": {
"code": -2011,
"msg": "Unknown order sent."
},
"newOrderResponse": {
"code": -2010,
"msg": "Order would immediately match and take."
}
}
}
POST /api/v3/order/cancelReplace
Cancels an existing order and places a new order on the same symbol.
Filters and Order Count are evaluated before the processing of the cancellation and order placement occurs.
A new order that was not attempted (i.e. when newOrderResult: NOT_ATTEMPTED), will still increase the order count by 1.
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| side | ENUM | YES | |
| type | ENUM | YES | |
| cancelReplaceMode | ENUM | YES | The allowed values are: STOP_ON_FAILURE - If the cancel request fails, the new order placement will not be attempted. ALLOW_FAILURE - new order placement will be attempted even if cancel request fails. |
| timeInForce | ENUM | NO | |
| quantity | DECIMAL | NO | |
| quoteOrderQty | DECIMAL | NO | |
| price | DECIMAL | NO | |
| cancelNewClientOrderId | STRING | NO | Used to uniquely identify this cancel. Automatically generated by default. |
| cancelOrigClientOrderId | STRING | NO | Either the cancelOrigClientOrderId or cancelOrderId must be provided. If both are provided, cancelOrderId takes precedence. |
| cancelOrderId | LONG | NO | Either the cancelOrigClientOrderId or cancelOrderId must be provided. If both are provided, cancelOrderId takes precedence. |
| newClientOrderId | STRING | NO | Used to identify the new order. |
| strategyId | INT | NO | |
| strategyType | INT | NO | The value cannot be less than 1000000. |
| stopPrice | DECIMAL | NO | |
| trailingDelta | LONG | NO | |
| icebergQty | DECIMAL | NO | |
| newOrderRespType | ENUM | NO | Allowed values: ACK, RESULT, FULL MARKET and LIMIT orders types default to FULL; all other orders default to ACK |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Similar to POST /api/v3/order, additional mandatory parameters are determined by type.
Response format varies depending on whether the processing of the message succeeded, partially succeeded, or failed.
Data Source: Matching Engine
Current Open Orders (USER_DATA)
Response:
[
{
"symbol": "LTCBTC",
"orderId": 1,
"orderListId": -1, //Unless OCO, the value will always be -1
"clientOrderId": "myOrder1",
"price": "0.1",
"origQty": "1.0",
"executedQty": "0.0",
"cummulativeQuoteQty": "0.0",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.0",
"icebergQty": "0.0",
"time": 1499827319559,
"updateTime": 1499827319559,
"isWorking": true,
"origQuoteOrderQty": "0.000000"
}
]
GET /api/v3/openOrders (HMAC SHA256)
Get all open orders on a symbol. Careful when accessing this with no symbol.
Weight(IP): 3 for a single symbol; 40 when the symbol parameter is omitted;
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | NO | |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
- If the symbol is not sent, orders for all symbols will be returned in an array.
Data Source: Memory => Database
All Orders (USER_DATA)
Response:
[
{
"symbol": "LTCBTC",
"orderId": 1,
"orderListId": -1, //Unless OCO, the value will always be -1
"clientOrderId": "myOrder1",
"price": "0.1",
"origQty": "1.0",
"executedQty": "0.0",
"cummulativeQuoteQty": "0.0",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.0",
"icebergQty": "0.0",
"time": 1499827319559,
"updateTime": 1499827319559,
"isWorking": true,
"origQuoteOrderQty": "0.000000"
}
]
GET /api/v3/allOrders (HMAC SHA256)
Get all account orders; active, canceled, or filled.
Weight(IP): 10 with symbol
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| orderId | LONG | NO | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | Default 500; max 1000. |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Notes:
- If
orderIdis set, it will get orders >= thatorderId. Otherwise most recent orders are returned. - For some historical orders
cummulativeQuoteQtywill be < 0, meaning the data is not available at this time. - If
startTimeand/orendTimeprovided,orderIdis not required.
Data Source: Database
New OCO (TRADE)
Response:
{
"orderListId": 0,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "JYVpp3F0f5CAG15DhtrqLp",
"transactionTime": 1563417480525,
"symbol": "LTCBTC",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 2,
"clientOrderId": "Kk7sqHb9J6mJWTMDVW7Vos"
},
{
"symbol": "LTCBTC",
"orderId": 3,
"clientOrderId": "xTXKaGYd4bluPVp78IVRvl"
}
],
"orderReports": [
{
"symbol": "LTCBTC",
"orderId": 2,
"orderListId": 0,
"clientOrderId": "Kk7sqHb9J6mJWTMDVW7Vos",
"transactTime": 1563417480525,
"price": "0.000000",
"origQty": "0.624363",
"executedQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "STOP_LOSS",
"side": "BUY",
"stopPrice": "0.960664"
},
{
"symbol": "LTCBTC",
"orderId": 3,
"orderListId": 0,
"clientOrderId": "xTXKaGYd4bluPVp78IVRvl",
"transactTime": 1563417480525,
"price": "0.036435",
"origQty": "0.624363",
"executedQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT_MAKER",
"side": "BUY"
}
]
}
POST /api/v3/order/oco (HMAC SHA256)
Send in a new OCO
Weight(UID): 2 Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| listClientOrderId | STRING | NO | A unique Id for the entire orderList |
| side | ENUM | YES | |
| quantity | DECIMAL | YES | |
| limitClientOrderId | STRING | NO | A unique Id for the limit order |
| limitStrategyId | INT | NO | |
| limitStrategyType | INT | NO | The value cannot be less than 1000000. |
| price | DECIMAL | YES | |
| limitIcebergQty | DECIMAL | NO | |
| trailingDelta | LONG | NO | |
| stopClientOrderId | STRING | NO | A unique Id for the stop loss/stop loss limit leg |
| stopPrice | DECIMAL | YES | |
| stopStrategyId | INT | NO | |
| stopStrategyType | INT | NO | The value cannot be less than 1000000. |
| stopLimitPrice | DECIMAL | NO | If provided, stopLimitTimeInForce is required. |
| stopIcebergQty | DECIMAL | NO | |
| stopLimitTimeInForce | ENUM | NO | Valid values are GTC/FOK/IOC |
| newOrderRespType | ENUM | NO | Set the response JSON. |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Other Info:
- Price Restrictions:
SELL: Limit Price > Last Price > Stop PriceBUY: Limit Price < Last Price < Stop Price
- Quantity Restrictions:
- Both legs must have the same quantity
ICEBERGquantities however do not have to be the same.
- Order Rate Limit
OCOcounts as 2 orders against the order rate limit.
Data Source: Matching Engine
Cancel OCO (TRADE)
Response:
{
"orderListId": 0,
"contingencyType": "OCO",
"listStatusType": "ALL_DONE",
"listOrderStatus": "ALL_DONE",
"listClientOrderId": "C3wyj4WVEktd7u9aVBRXcN",
"transactionTime": 1574040868128,
"symbol": "LTCBTC",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 2,
"clientOrderId": "pO9ufTiFGg3nw2fOdgeOXa"
},
{
"symbol": "LTCBTC",
"orderId": 3,
"clientOrderId": "TXOvglzXuaubXAaENpaRCB"
}
],
"orderReports": [
{
"symbol": "LTCBTC",
"origClientOrderId": "pO9ufTiFGg3nw2fOdgeOXa",
"orderId": 2,
"orderListId": 0,
"clientOrderId": "unfWT8ig8i0uj6lPuYLez6",
"price": "1.00000000",
"origQty": "10.00000000",
"executedQty": "0.00000000",
"cummulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "STOP_LOSS_LIMIT",
"side": "SELL",
"stopPrice": "1.00000000"
},
{
"symbol": "LTCBTC",
"origClientOrderId": "TXOvglzXuaubXAaENpaRCB",
"orderId": 3,
"orderListId": 0,
"clientOrderId": "unfWT8ig8i0uj6lPuYLez6",
"price": "3.00000000",
"origQty": "10.00000000",
"executedQty": "0.00000000",
"cummulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT_MAKER",
"side": "SELL"
}
]
}
DELETE /api/v3/orderList (HMAC SHA256)
Cancel an entire Order List.
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| orderListId | LONG | NO | Either orderListId or listClientOrderId must be provided |
| listClientOrderId | STRING | NO | Either orderListId or listClientOrderId must be provided |
| newClientOrderId | STRING | NO | Used to uniquely identify this cancel. Automatically generated by default |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Additional notes:
- Canceling an individual leg will cancel the entire OCO
- If both
orderListIdandlistClientOrderIDare provided,orderIdtakes precedence.
Data Source: Matching Engine
Query OCO (USER_DATA)
Response:
{
"orderListId": 27,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "h2USkA5YQpaXHPIrkd96xE",
"transactionTime": 1565245656253,
"symbol": "LTCBTC",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 4,
"clientOrderId": "qD1gy3kc3Gx0rihm9Y3xwS"
},
{
"symbol": "LTCBTC",
"orderId": 5,
"clientOrderId": "ARzZ9I00CPM8i3NhmU9Ega"
}
]
}
GET /api/v3/orderList (HMAC SHA256)
Retrieves a specific OCO based on provided optional parameters
Weight(IP): 2
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| orderListId | LONG | NO | Either orderListId or origClientOrderId must be provided |
| origClientOrderId | STRING | NO | Either orderListId or origClientOrderId must be provided |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Data Source: Database
Query all OCO (USER_DATA)
Response:
[
{
"orderListId": 29,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "amEEAXryFzFwYF1FeRpUoZ",
"transactionTime": 1565245913483,
"symbol": "LTCBTC",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 4,
"clientOrderId": "oD7aesZqjEGlZrbtRpy5zB"
},
{
"symbol": "LTCBTC",
"orderId": 5,
"clientOrderId": "Jr1h6xirOxgeJOUuYQS7V3"
}
]
},
{
"orderListId": 28,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "hG7hFNxJV6cZy3Ze4AUT4d",
"transactionTime": 1565245913407,
"symbol": "LTCBTC",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 2,
"clientOrderId": "j6lFOfbmFMRjTYA7rRJ0LP"
},
{
"symbol": "LTCBTC",
"orderId": 3,
"clientOrderId": "z0KCjOdditiLS5ekAFtK81"
}
]
}
]
GET /api/v3/allOrderList (HMAC SHA256)
Retrieves all OCO based on provided optional parameters
Weight(IP): 10
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| fromId | LONG | NO | If supplied, neither startTime or endTime can be provided |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | Default Value: 500; Max Value: 1000 |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Data Source: Database
Query Open OCO (USER_DATA)
Response:
[
{
"orderListId": 31,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "wuB13fmulKj3YjdqWEcsnp",
"transactionTime": 1565246080644,
"symbol": "LTCBTC",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 4,
"clientOrderId": "r3EH2N76dHfLoSZWIUw1bT"
},
{
"symbol": "LTCBTC",
"orderId": 5,
"clientOrderId": "Cv1SnyPD3qhqpbjpYEHbd2"
}
]
}
]
GET /api/v3/openOrderList (HMAC SHA256)
Weight(IP): 3
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Data Source: Database
Account Information (USER_DATA)
Response:
{
"makerCommission": 15,
"takerCommission": 15,
"buyerCommission": 0,
"sellerCommission": 0,
"canTrade": true,
"canWithdraw": true,
"canDeposit": true,
"brokered": false,
"updateTime": 123456789,
"accountType": "SPOT",
"balances": [
{
"asset": "BTC",
"free": "4723846.89208129",
"locked": "0.00000000"
},
{
"asset": "LTC",
"free": "4763368.68006011",
"locked": "0.00000000"
}
],
"permissions": [
"SPOT"
]
}
GET /api/v3/account (HMAC SHA256)
Get current account information.
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Data Source: Memory => Database
Account Trade List (USER_DATA)
Response:
[
{
"symbol": "BNBBTC",
"id": 28457,
"orderId": 100234,
"orderListId": -1, //Unless OCO, the value will always be -1
"price": "4.00000100",
"qty": "12.00000000",
"quoteQty": "48.000012",
"commission": "10.10000000",
"commissionAsset": "BNB",
"time": 1499865549590,
"isBuyer": true,
"isMaker": false,
"isBestMatch": true
}
]
GET /api/v3/myTrades (HMAC SHA256)
Get trades for a specific account and symbol.
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| orderId | LONG | NO | This can only be used in combination with symbol. |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| fromId | LONG | NO | TradeId to fetch from. Default gets most recent trades. |
| limit | INT | NO | Default 500; max 1000. |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Notes:
- If
fromIdis set, it will get id >= thatfromId. Otherwise most recent trades are returned. - The time between
startTimeandendTimecan't be longer than 24 hours.
Data Source: Memory => Database
Query Current Order Count Usage (TRADE)
Response:
[
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 10000,
"count": 0
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 20000,
"count": 0
}
]
GET /api/v3/rateLimit/order
Displays the user's current order count usage for all intervals.
Weight(IP): 20
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Data Source: Memory
Margin Account/Trade
Cross Margin Account Transfer (MARGIN)
Response:
{
//transaction id
"tranId": 100000001
}
POST /sapi/v1/margin/transfer (HMAC SHA256)
Execute transfer between spot account and cross margin account.
Weight(IP): 600
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | YES | The asset being transferred, e.g., BTC |
| amount | DECIMAL | YES | The amount to be transferred |
| type | INT | YES | 1: transfer from main account to cross margin account 2: transfer from cross margin account to main account |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Margin Account Borrow (MARGIN)
Response:
{
//transaction id
"tranId": 100000001
}
POST /sapi/v1/margin/loan (HMAC SHA256)
Apply for a loan.
Weight(UID): 3000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | YES | |
| isIsolated | STRING | NO | for isolated margin or not, "TRUE", "FALSE",default "FALSE" |
| symbol | STRING | NO | isolated symbol |
| amount | DECIMAL | YES | |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
- If "isIsolated" = "TRUE", "symbol" must be sent
- "isIsolated" = "FALSE" for crossed margin loan
Margin Account Repay (MARGIN)
Response:
{
//transaction id
"tranId": 100000001
}
POST /sapi/v1/margin/repay (HMAC SHA256)
Repay loan for margin account.
Weight(UID): 3000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | YES | |
| isIsolated | STRING | NO | for isolated margin or not, "TRUE", "FALSE",default "FALSE" |
| symbol | STRING | NO | isolated symbol |
| amount | DECIMAL | YES | |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
- If "isIsolated" = "TRUE", "symbol" must be sent
- "isIsolated" = "FALSE" for crossed margin repay
Query Margin Asset (MARKET_DATA)
Response:
{
"assetFullName": "Binance Coin",
"assetName": "BNB",
"isBorrowable": false,
"isMortgageable": true,
"userMinBorrow": "0.00000000",
"userMinRepay": "0.00000000"
}
GET /sapi/v1/margin/asset
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | YES |
Query Cross Margin Pair (MARKET_DATA)
Response:
{
"id":323355778339572400,
"symbol":"BTCUSDT",
"base":"BTC",
"quote":"USDT",
"isMarginTrade":true,
"isBuyAllowed":true,
"isSellAllowed":true
}
GET /sapi/v1/margin/pair
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES |
Get All Margin Assets (MARKET_DATA)
Response:
[
{
"assetFullName": "USD coin",
"assetName": "USDC",
"isBorrowable": true,
"isMortgageable": true,
"userMinBorrow": "0.00000000",
"userMinRepay": "0.00000000"
},
{
"assetFullName": "BNB-coin",
"assetName": "BNB",
"isBorrowable": true,
"isMortgageable": true,
"userMinBorrow": "1.00000000",
"userMinRepay": "0.00000000"
},
{
"assetFullName": "Tether",
"assetName": "USDT",
"isBorrowable": true,
"isMortgageable": true,
"userMinBorrow": "1.00000000",
"userMinRepay": "0.00000000"
},
{
"assetFullName": "etherum",
"assetName": "ETH",
"isBorrowable": true,
"isMortgageable": true,
"userMinBorrow": "0.00000000",
"userMinRepay": "0.00000000"
},
{
"assetFullName": "Bitcoin",
"assetName": "BTC",
"isBorrowable": true,
"isMortgageable": true,
"userMinBorrow": "0.00000000",
"userMinRepay": "0.00000000"
}
]
GET /sapi/v1/margin/allAssets
Weight(IP): 1
Parameters:
None
Get All Cross Margin Pairs (MARKET_DATA)
Response:
[
{
"base": "BNB",
"id": 351637150141315861,
"isBuyAllowed": true,
"isMarginTrade": true,
"isSellAllowed": true,
"quote": "BTC",
"symbol": "BNBBTC"
},
{
"base": "TRX",
"id": 351637923235429141,
"isBuyAllowed": true,
"isMarginTrade": true,
"isSellAllowed": true,
"quote": "BTC",
"symbol": "TRXBTC"
},
{
"base": "XRP",
"id": 351638112213990165,
"isBuyAllowed": true,
"isMarginTrade": true,
"isSellAllowed": true,
"quote": "BTC",
"symbol": "XRPBTC"
},
{
"base": "ETH",
"id": 351638524530850581,
"isBuyAllowed": true,
"isMarginTrade": true,
"isSellAllowed": true,
"quote": "BTC",
"symbol": "ETHBTC"
},
{
"base": "BNB",
"id": 376870400832855109,
"isBuyAllowed": true,
"isMarginTrade": true,
"isSellAllowed": true,
"quote": "USDT",
"symbol": "BNBUSDT"
}
]
GET /sapi/v1/margin/allPairs
Weight(IP): 1
Parameters:
None
Query Margin PriceIndex (MARKET_DATA)
Response:
{
"calcTime": 1562046418000,
"price": "0.00333930",
"symbol": "BNBBTC"
}
GET /sapi/v1/margin/priceIndex
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES |
Margin Account New Order (TRADE)
Response ACK:
{
"symbol": "BTCUSDT",
"orderId": 28,
"clientOrderId": "6gCrw2kRUAF9CvJDGP16IP",
"isIsolated": true, // if isolated margin
"transactTime": 1507725176595
}
Response RESULT:
{
"symbol": "BTCUSDT",
"orderId": 28,
"clientOrderId": "6gCrw2kRUAF9CvJDGP16IP",
"transactTime": 1507725176595,
"price": "1.00000000",
"origQty": "10.00000000",
"executedQty": "10.00000000",
"cummulativeQuoteQty": "10.00000000",
"status": "FILLED",
"timeInForce": "GTC",
"type": "MARKET",
"isIsolated": true, // if isolated margin
"side": "SELL"
}
Response FULL:
{
"symbol": "BTCUSDT",
"orderId": 28,
"clientOrderId": "6gCrw2kRUAF9CvJDGP16IP",
"transactTime": 1507725176595,
"price": "1.00000000",
"origQty": "10.00000000",
"executedQty": "10.00000000",
"cummulativeQuoteQty": "10.00000000",
"status": "FILLED",
"timeInForce": "GTC",
"type": "MARKET",
"side": "SELL",
"marginBuyBorrowAmount": 5, // will not return if no margin trade happens
"marginBuyBorrowAsset": "BTC", // will not return if no margin trade happens
"isIsolated": true, // if isolated margin
"fills": [
{
"price": "4000.00000000",
"qty": "1.00000000",
"commission": "4.00000000",
"commissionAsset": "USDT"
},
{
"price": "3999.00000000",
"qty": "5.00000000",
"commission": "19.99500000",
"commissionAsset": "USDT"
},
{
"price": "3998.00000000",
"qty": "2.00000000",
"commission": "7.99600000",
"commissionAsset": "USDT"
},
{
"price": "3997.00000000",
"qty": "1.00000000",
"commission": "3.99700000",
"commissionAsset": "USDT"
},
{
"price": "3995.00000000",
"qty": "1.00000000",
"commission": "3.99500000",
"commissionAsset": "USDT"
}
]
}
POST /sapi/v1/margin/order (HMAC SHA256)
Post a new order for margin account.
Weight(UID): 6
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| isIsolated | STRING | NO | for isolated margin or not, "TRUE", "FALSE",default "FALSE" |
| side | ENUM | YES | BUY SELL |
| type | ENUM | YES | |
| quantity | DECIMAL | NO | |
| quoteOrderQty | DECIMAL | NO | |
| price | DECIMAL | NO | |
| stopPrice | DECIMAL | NO | Used with STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, and TAKE_PROFIT_LIMIT orders. |
| newClientOrderId | STRING | NO | A unique id among open orders. Automatically generated if not sent. |
| icebergQty | DECIMAL | NO | Used with LIMIT, STOP_LOSS_LIMIT, and TAKE_PROFIT_LIMIT to create an iceberg order. |
| newOrderRespType | ENUM | NO | Set the response JSON. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK. |
| sideEffectType | ENUM | NO | NO_SIDE_EFFECT, MARGIN_BUY, AUTO_REPAY; default NO_SIDE_EFFECT. |
| timeInForce | ENUM | NO | GTC,IOC,FOK |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Margin Account Cancel Order (TRADE)
Response:
{
"symbol": "LTCBTC",
"isIsolated": true, // if isolated margin
"orderId": 28,
"origClientOrderId": "myOrder1",
"clientOrderId": "cancelMyOrder1",
"price": "1.00000000",
"origQty": "10.00000000",
"executedQty": "8.00000000",
"cummulativeQuoteQty": "8.00000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "SELL"
}
DELETE /sapi/v1/margin/order (HMAC SHA256)
Cancel an active order for margin account.
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| isIsolated | STRING | NO | for isolated margin or not, "TRUE", "FALSE",default "FALSE" |
| orderId | LONG | NO | |
| origClientOrderId | STRING | NO | |
| newClientOrderId | STRING | NO | Used to uniquely identify this cancel. Automatically generated by default. |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
- Either orderId or origClientOrderId must be sent.
Margin Account Cancel all Open Orders on a Symbol (TRADE)
Response:
[
{
"symbol": "BTCUSDT",
"isIsolated": true, // if isolated margin
"origClientOrderId": "E6APeyTJvkMvLMYMqu1KQ4",
"orderId": 11,
"orderListId": -1,
"clientOrderId": "pXLV6Hz6mprAcVYpVMTGgx",
"price": "0.089853",
"origQty": "0.178622",
"executedQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY"
},
{
"symbol": "BTCUSDT",
"isIsolated": false, // if isolated margin
"origClientOrderId": "A3EF2HCwxgZPFMrfwbgrhv",
"orderId": 13,
"orderListId": -1,
"clientOrderId": "pXLV6Hz6mprAcVYpVMTGgx",
"price": "0.090430",
"origQty": "0.178622",
"executedQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY"
},
{
"orderListId": 1929,
"contingencyType": "OCO",
"listStatusType": "ALL_DONE",
"listOrderStatus": "ALL_DONE",
"listClientOrderId": "2inzWQdDvZLHbbAmAozX2N",
"transactionTime": 1585230948299,
"symbol": "BTCUSDT",
"isIsolated": true, // if isolated margin
"orders": [
{
"symbol": "BTCUSDT",
"orderId": 20,
"clientOrderId": "CwOOIPHSmYywx6jZX77TdL"
},
{
"symbol": "BTCUSDT",
"orderId": 21,
"clientOrderId": "461cPg51vQjV3zIMOXNz39"
}
],
"orderReports": [
{
"symbol": "BTCUSDT",
"origClientOrderId": "CwOOIPHSmYywx6jZX77TdL",
"orderId": 20,
"orderListId": 1929,
"clientOrderId": "pXLV6Hz6mprAcVYpVMTGgx",
"price": "0.668611",
"origQty": "0.690354",
"executedQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "STOP_LOSS_LIMIT",
"side": "BUY",
"stopPrice": "0.378131",
"icebergQty": "0.017083"
},
{
"symbol": "BTCUSDT",
"origClientOrderId": "461cPg51vQjV3zIMOXNz39",
"orderId": 21,
"orderListId": 1929,
"clientOrderId": "pXLV6Hz6mprAcVYpVMTGgx",
"price": "0.008791",
"origQty": "0.690354",
"executedQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT_MAKER",
"side": "BUY",
"icebergQty": "0.639962"
}
]
}
]
DELETE /sapi/v1/margin/openOrders (HMAC SHA256)
Cancels all active orders on a symbol for margin account.
This includes OCO orders.
Weight(IP): 1
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| isIsolated | STRING | NO | for isolated margin or not, "TRUE", "FALSE",default "FALSE" |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Get Cross Margin Transfer History (USER_DATA)
Response:
{
"rows": [
{
"amount": "0.10000000",
"asset": "BNB",
"status": "CONFIRMED",
"timestamp": 1566898617,
"txId": 5240372201,
"type": "ROLL_IN"
},
{
"amount": "5.00000000",
"asset": "USDT",
"status": "CONFIRMED",
"timestamp": 1566888436,
"txId": 5239810406,
"type": "ROLL_OUT"
},
{
"amount": "1.00000000",
"asset": "EOS",
"status": "CONFIRMED",
"timestamp": 1566888403,
"txId": 5239808703,
"type": "ROLL_IN"
}
],
"total": 3
}
GET /sapi/v1/margin/transfer (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | NO | |
| type | STRING | NO | Transfer Type: ROLL_IN, ROLL_OUT |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| current | LONG | NO | Currently querying page. Start from 1. Default:1 |
| size | LONG | NO | Default:10 Max:100 |
| archived | STRING | NO | Default: false. Set to true for archived data from 6 months ago |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
- Response in descending order
- The max interval between
startTimeandendTimeis 30 days. - Returns data for last 7 days by default
- Set
archivedtotrueto query data from 6 months ago
Query Loan Record (USER_DATA)
Response:
{
"rows": [
{
"isolatedSymbol": "BNBUSDT", // isolated symbol, will not be returned for crossed margin
"txId": 12807067523,
"asset": "BNB",
"principal": "0.84624403",
"timestamp": 1555056425000,
"status": "CONFIRMED" //one of PENDING (pending execution), CONFIRMED (successfully loaned), FAILED (execution failed, nothing happened to your account);
}
],
"total": 1
}
GET /sapi/v1/margin/loan (HMAC SHA256)
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | YES | |
| isolatedSymbol | STRING | NO | isolated symbol |
| txId | LONG | NO | the tranId in POST /sapi/v1/margin/loan |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| current | LONG | NO | Currently querying page. Start from 1. Default:1 |
| size | LONG | NO | Default:10 Max:100 |
| archived | STRING | NO | Default: false. Set to true for archived data from 6 months ago |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
- txId or startTime must be sent. txId takes precedence.
- Response in descending order
- If isolatedSymbol is not sent, crossed margin data will be returned
- The max interval between
startTimeandendTimeis 30 days. - If
startTimeandendTimenot sent, return records of the last 7 days by default - Set
archivedtotrueto query data from 6 months ago
Query Repay Record (USER_DATA)
Response:
{
"rows": [
{
"isolatedSymbol": "BNBUSDT", // isolated symbol, will not be returned for crossed margin
"amount": "14.00000000", //Total amount repaid
"asset": "BNB",
"interest": "0.01866667", //Interest repaid
"principal": "13.98133333", //Principal repaid
"status": "CONFIRMED", //one of PENDING (pending execution), CONFIRMED (successfully execution), FAILED (execution failed, nothing happened to your account)
"timestamp": 1563438204000,
"txId": 2970933056
}
],
"total": 1
}
GET /sapi/v1/margin/repay (HMAC SHA256)
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | YES | |
| isolatedSymbol | STRING | NO | isolated symbol |
| txId | LONG | NO | return of /sapi/v1/margin/repay |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| current | LONG | NO | Currently querying page. Start from 1. Default:1 |
| size | LONG | NO | Default:10 Max:100 |
| archived | STRING | NO | Default: false. Set to true for archived data from 6 months ago |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
- txId or startTime must be sent. txId takes precedence.
- Response in descending order
- If isolatedSymbol is not sent, crossed margin data will be returned
- The max interval between
startTimeandendTimeis 30 days. - If
startTimeandendTimenot sent, return records of the last 7 days by default - Set
archivedtotrueto query data from 6 months ago
Get Interest History (USER_DATA)
Response:
{
"rows":[
{
"isolatedSymbol": "BNBUSDT", // isolated symbol, will not be returned for crossed margin
"asset": "BNB",
"rawAsset": "BTC", // will not be returned for isolated margin
"interest": "0.02414667",
"interestAccuredTime": 1566813600000,
"interestRate": "0.01600000",
"principal": "36.22000000",
"type": "ON_BORROW"
}
],
"total": 1
}
GET /sapi/v1/margin/interestHistory (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | NO | |
| isolatedSymbol | STRING | NO | isolated symbol |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| current | LONG | NO | Currently querying page. Start from 1. Default:1 |
| size | LONG | NO | Default:10 Max:100 |
| archived | STRING | NO | Default: false. Set to true for archived data from 6 months ago |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
- Response in descending order
- If isolatedSymbol is not sent, crossed margin data will be returned
- The max interval between
startTimeandendTimeis 30 days. - If
startTimeandendTimenot sent, return records of the last 7 days by default - Set
archivedtotrueto query data from 6 months ago typein response has 4 enums:PERIODICinterest charged per hourON_BORROWfirst interest charged on borrowPERIODIC_CONVERTEDinterest charged per hour converted into BNBON_BORROW_CONVERTEDfirst interest charged on borrow converted into BNB
Get Force Liquidation Record (USER_DATA)
Response:
{
"rows": [
{
"avgPrice": "0.00388359",
"executedQty": "31.39000000",
"orderId": 180015097,
"price": "0.00388110",
"qty": "31.39000000",
"side": "SELL",
"symbol": "BNBBTC",
"timeInForce": "GTC",
"isIsolated": true,
"updatedTime": 1558941374745
}
],
"total": 1
}
GET /sapi/v1/margin/forceLiquidationRec (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| isolatedSymbol | STRING | NO | |
| current | LONG | NO | Currently querying page. Start from 1. Default:1 |
| size | LONG | NO | Default:10 Max:100 |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
- Response in descending order
Query Cross Margin Account Details (USER_DATA)
Response:
{
"borrowEnabled": true,
"marginLevel": "11.64405625",
"totalAssetOfBtc": "6.82728457",
"totalLiabilityOfBtc": "0.58633215",
"totalNetAssetOfBtc": "6.24095242",
"tradeEnabled": true,
"transferEnabled": true,
"userAssets": [
{
"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/margin/account (HMAC SHA256)
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Query Margin Account's Order (USER_DATA)
Response:
{
"clientOrderId": "ZwfQzuDIGpceVhKW5DvCmO",
"cummulativeQuoteQty": "0.00000000",
"executedQty": "0.00000000",
"icebergQty": "0.00000000",
"isWorking": true,
"orderId": 213205622,
"origQty": "0.30000000",
"price": "0.00493630",
"side": "SELL",
"status": "NEW",
"stopPrice": "0.00000000",
"symbol": "BNBBTC",
"isIsolated": true,
"time": 1562133008725,
"timeInForce": "GTC",
"type": "LIMIT",
"updateTime": 1562133008725
}
GET /sapi/v1/margin/order (HMAC SHA256)
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| isIsolated | STRING | NO | for isolated margin or not, "TRUE", "FALSE",default "FALSE" |
| orderId | LONG | NO | |
| origClientOrderId | STRING | NO | |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
- Either orderId or origClientOrderId must be sent.
- For some historical orders cummulativeQuoteQty will be < 0, meaning the data is not available at this time.
Query Margin Account's Open Orders (USER_DATA)
Response:
[
{
"clientOrderId": "qhcZw71gAkCCTv0t0k8LUK",
"cummulativeQuoteQty": "0.00000000",
"executedQty": "0.00000000",
"icebergQty": "0.00000000",
"isWorking": true,
"orderId": 211842552,
"origQty": "0.30000000",
"price": "0.00475010",
"side": "SELL",
"status": "NEW",
"stopPrice": "0.00000000",
"symbol": "BNBBTC",
"isIsolated": true,
"time": 1562040170089,
"timeInForce": "GTC",
"type": "LIMIT",
"updateTime": 1562040170089
}
]
GET /sapi/v1/margin/openOrders (HMAC SHA256)
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | NO | |
| isIsolated | STRING | NO | for isolated margin or not, "TRUE", "FALSE",default "FALSE" |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
- If the symbol is not sent, orders for all symbols will be returned in an array.
- When all symbols are returned, the number of requests counted against the rate limiter is equal to the number of symbols currently trading on the exchange.
- If isIsolated ="TRUE", symbol must be sent.
Query Margin Account's All Orders (USER_DATA)
Response:
[
{
"clientOrderId": "D2KDy4DIeS56PvkM13f8cP",
"cummulativeQuoteQty": "0.00000000",
"executedQty": "0.00000000",
"icebergQty": "0.00000000",
"isWorking": false,
"orderId": 41295,
"origQty": "5.31000000",
"price": "0.22500000",
"side": "SELL",
"status": "CANCELED",
"stopPrice": "0.18000000",
"symbol": "BNBBTC",
"isIsolated": false,
"time": 1565769338806,
"timeInForce": "GTC",
"type": "TAKE_PROFIT_LIMIT",
"updateTime": 1565769342148
},
{
"clientOrderId": "gXYtqhcEAs2Rn9SUD9nRKx",
"cummulativeQuoteQty": "0.00000000",
"executedQty": "0.00000000",
"icebergQty": "1.00000000",
"isWorking": true,
"orderId": 41296,
"origQty": "6.65000000",
"price": "0.18000000",
"side": "SELL",
"status": "CANCELED",
"stopPrice": "0.00000000",
"symbol": "BNBBTC",
"isIsolated": false,
"time": 1565769348687,
"timeInForce": "GTC",
"type": "LIMIT",
"updateTime": 1565769352226
},
{
"clientOrderId": "duDq1BqohhcMmdMs9FSuDy",
"cummulativeQuoteQty": "0.39450000",
"executedQty": "2.63000000",
"icebergQty": "0.00000000",
"isWorking": true,
"orderId": 41297,
"origQty": "2.63000000",
"price": "0.00000000",
"side": "SELL",
"status": "FILLED",
"stopPrice": "0.00000000",
"symbol": "BNBBTC",
"isIsolated": false,
"time": 1565769358139,
"timeInForce": "GTC",
"type": "MARKET",
"updateTime": 1565769358139
}
]
GET /sapi/v1/margin/allOrders (HMAC SHA256)
Weight(IP): 200
Request Limit
60times/min per IP
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| isIsolated | STRING | NO | for isolated margin or not, "TRUE", "FALSE",default "FALSE" |
| orderId | LONG | NO | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | Default 500; max 500. |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
- If orderId is set, it will get orders >= that orderId. Otherwise most recent orders are returned.
- For some historical orders cummulativeQuoteQty will be < 0, meaning the data is not available at this time.
Margin Account New OCO (TRADE)
Response:
{
"orderListId": 0,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "JYVpp3F0f5CAG15DhtrqLp",
"transactionTime": 1563417480525,
"symbol": "LTCBTC",
"marginBuyBorrowAmount": "5", // will not return if no margin trade happens
"marginBuyBorrowAsset": "BTC", // will not return if no margin trade happens
"isIsolated": false, // if isolated margin
"orders": [
{
"symbol": "LTCBTC",
"orderId": 2,
"clientOrderId": "Kk7sqHb9J6mJWTMDVW7Vos"
},
{
"symbol": "LTCBTC",
"orderId": 3,
"clientOrderId": "xTXKaGYd4bluPVp78IVRvl"
}
],
"orderReports": [
{
"symbol": "LTCBTC",
"orderId": 2,
"orderListId": 0,
"clientOrderId": "Kk7sqHb9J6mJWTMDVW7Vos",
"transactTime": 1563417480525,
"price": "0.000000",
"origQty": "0.624363",
"executedQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "STOP_LOSS",
"side": "BUY",
"stopPrice": "0.960664"
},
{
"symbol": "LTCBTC",
"orderId": 3,
"orderListId": 0,
"clientOrderId": "xTXKaGYd4bluPVp78IVRvl",
"transactTime": 1563417480525,
"price": "0.036435",
"origQty": "0.624363",
"executedQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT_MAKER",
"side": "BUY"
}
]
}
POST /sapi/v1/margin/order/oco (HMAC SHA256)
Send in a new OCO for a margin account
Weight(UID): 6
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| isIsolated | STRING | NO | for isolated margin or not, "TRUE", "FALSE",default "FALSE" |
| listClientOrderId | STRING | NO | A unique Id for the entire orderList |
| side | ENUM | YES | |
| quantity | DECIMAL | YES | |
| limitClientOrderId | STRING | NO | A unique Id for the limit order |
| price | DECIMAL | YES | |
| limitIcebergQty | DECIMAL | NO | |
| stopClientOrderId | STRING | NO | A unique Id for the stop loss/stop loss limit leg |
| stopPrice | DECIMAL | YES | |
| stopLimitPrice | DECIMAL | NO | If provided, stopLimitTimeInForce is required. |
| stopIcebergQty | DECIMAL | NO | |
| stopLimitTimeInForce | ENUM | NO | Valid values are GTC/FOK/IOC |
| newOrderRespType | ENUM | NO | Set the response JSON. |
| sideEffectType | ENUM | NO | NO_SIDE_EFFECT, MARGIN_BUY, AUTO_REPAY; default NO_SIDE_EFFECT. |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Other Info:
- Price Restrictions:
SELL: Limit Price > Last Price > Stop PriceBUY: Limit Price < Last Price < Stop Price
- Quantity Restrictions:
- Both legs must have the same quantity
ICEBERGquantities however do not have to be the same.
- Order Rate Limit
OCOcounts as 2 orders against the order rate limit.
Margin Account Cancel OCO (TRADE)
Response:
{
"orderListId": 0,
"contingencyType": "OCO",
"listStatusType": "ALL_DONE",
"listOrderStatus": "ALL_DONE",
"listClientOrderId": "C3wyj4WVEktd7u9aVBRXcN",
"transactionTime": 1574040868128,
"symbol": "LTCBTC",
"isIsolated": false, // if isolated margin
"orders": [
{
"symbol": "LTCBTC",
"orderId": 2,
"clientOrderId": "pO9ufTiFGg3nw2fOdgeOXa"
},
{
"symbol": "LTCBTC",
"orderId": 3,
"clientOrderId": "TXOvglzXuaubXAaENpaRCB"
}
],
"orderReports": [
{
"symbol": "LTCBTC",
"origClientOrderId": "pO9ufTiFGg3nw2fOdgeOXa",
"orderId": 2,
"orderListId": 0,
"clientOrderId": "unfWT8ig8i0uj6lPuYLez6",
"price": "1.00000000",
"origQty": "10.00000000",
"executedQty": "0.00000000",
"cummulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "STOP_LOSS_LIMIT",
"side": "SELL",
"stopPrice": "1.00000000"
},
{
"symbol": "LTCBTC",
"origClientOrderId": "TXOvglzXuaubXAaENpaRCB",
"orderId": 3,
"orderListId": 0,
"clientOrderId": "unfWT8ig8i0uj6lPuYLez6",
"price": "3.00000000",
"origQty": "10.00000000",
"executedQty": "0.00000000",
"cummulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT_MAKER",
"side": "SELL"
}
]
}
DELETE /sapi/v1/margin/orderList (HMAC SHA256)
Cancel an entire Order List for a margin account.
Weight(UID): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| isIsolated | STRING | NO | for isolated margin or not, "TRUE", "FALSE",default "FALSE" |
| orderListId | LONG | NO | Either orderListId or listClientOrderId must be provided |
| listClientOrderId | STRING | NO | Either orderListId or listClientOrderId must be provided |
| newClientOrderId | STRING | NO | Used to uniquely identify this cancel. Automatically generated by default |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Additional notes:
- Canceling an individual leg will cancel the entire OCO
Query Margin Account's OCO (USER_DATA)
Response:
{
"orderListId": 27,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "h2USkA5YQpaXHPIrkd96xE",
"transactionTime": 1565245656253,
"symbol": "LTCBTC",
"isIsolated": false, // if isolated margin
"orders": [
{
"symbol": "LTCBTC",
"orderId": 4,
"clientOrderId": "qD1gy3kc3Gx0rihm9Y3xwS"
},
{
"symbol": "LTCBTC",
"orderId": 5,
"clientOrderId": "ARzZ9I00CPM8i3NhmU9Ega"
}
]
}
GET /sapi/v1/margin/orderList (HMAC SHA256)
Retrieves a specific OCO based on provided optional parameters
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| isIsolated | STRING | NO | for isolated margin or not, "TRUE", "FALSE",default "FALSE" |
| symbol | STRING | NO | mandatory for isolated margin, not supported for cross margin |
| orderListId | LONG | NO | Either orderListId or origClientOrderId must be provided |
| origClientOrderId | STRING | NO | Either orderListId or origClientOrderId must be provided |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Query Margin Account's all OCO (USER_DATA)
Response:
[
{
"orderListId": 29,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "amEEAXryFzFwYF1FeRpUoZ",
"transactionTime": 1565245913483,
"symbol": "LTCBTC",
"isIsolated": true, // if isolated margin
"orders": [
{
"symbol": "LTCBTC",
"orderId": 4,
"clientOrderId": "oD7aesZqjEGlZrbtRpy5zB"
},
{
"symbol": "LTCBTC",
"orderId": 5,
"clientOrderId": "Jr1h6xirOxgeJOUuYQS7V3"
}
]
},
{
"orderListId": 28,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "hG7hFNxJV6cZy3Ze4AUT4d",
"transactionTime": 1565245913407,
"symbol": "LTCBTC",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 2,
"clientOrderId": "j6lFOfbmFMRjTYA7rRJ0LP"
},
{
"symbol": "LTCBTC",
"orderId": 3,
"clientOrderId": "z0KCjOdditiLS5ekAFtK81"
}
]
}
]
GET /sapi/v1/margin/allOrderList (HMAC SHA256)
Retrieves all OCO for a specific margin account based on provided optional parameters
Weight(IP): 200
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| isIsolated | STRING | NO | for isolated margin or not, "TRUE", "FALSE",default "FALSE" |
| symbol | STRING | NO | mandatory for isolated margin, not supported for cross margin |
| fromId | LONG | NO | If supplied, neither startTime or endTime can be provided |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | Default Value: 500; Max Value: 1000 |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Query Margin Account's Open OCO (USER_DATA)
Response:
[
{
"orderListId": 31,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "wuB13fmulKj3YjdqWEcsnp",
"transactionTime": 1565246080644,
"symbol": "LTCBTC",
"isIsolated": false, // if isolated margin
"orders": [
{
"symbol": "LTCBTC",
"orderId": 4,
"clientOrderId": "r3EH2N76dHfLoSZWIUw1bT"
},
{
"symbol": "LTCBTC",
"orderId": 5,
"clientOrderId": "Cv1SnyPD3qhqpbjpYEHbd2"
}
]
}
]
GET /sapi/v1/margin/openOrderList (HMAC SHA256)
Weight(IP): 10
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| isIsolated | STRING | NO | for isolated margin or not, "TRUE", "FALSE",default "FALSE" |
| symbol | STRING | NO | mandatory for isolated margin, not supported for cross margin |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Query Margin Account's Trade List (USER_DATA)
Response:
[
{
"commission": "0.00006000",
"commissionAsset": "BTC",
"id": 34,
"isBestMatch": true,
"isBuyer": false,
"isMaker": false,
"orderId": 39324,
"price": "0.02000000",
"qty": "3.00000000",
"symbol": "BNBBTC",
"isIsolated": false,
"time": 1561973357171
}
]
GET /sapi/v1/margin/myTrades (HMAC SHA256)
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| isIsolated | STRING | NO | for isolated margin or not, "TRUE", "FALSE",default "FALSE" |
| orderId | LONG | NO | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| fromId | LONG | NO | TradeId to fetch from. Default gets most recent trades. |
| limit | INT | NO | Default 500; max 1000. |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
- If fromId is set, it will get trades >= that fromId. Otherwise most recent trades are returned.
Query Max Borrow (USER_DATA)
Response:
{
"amount": "1.69248805", // account's currently max borrowable amount with sufficient system availability
"borrowLimit": "60" // max borrowable amount limited by the account level
}
GET /sapi/v1/margin/maxBorrowable (HMAC SHA256)
Weight(IP): 50
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | YES | |
| isolatedSymbol | STRING | NO | isolated symbol |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
- If isolatedSymbol is not sent, crossed margin data will be sent.
borrowLimitis also available from https://www.binance.com/en/margin-fee
Query Max Transfer-Out Amount (USER_DATA)
Response:
{
"amount": "3.59498107"
}
GET /sapi/v1/margin/maxTransferable (HMAC SHA256)
Weight(IP): 50
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | YES | |
| isolatedSymbol | STRING | NO | isolated symbol |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
- If isolatedSymbol is not sent, crossed margin data will be sent.
Get Summary of Margin account (USER_DATA)
Response:
{
"normalBar": "1.5",
"marginCallBar": "1.3",
"forceLiquidationBar": "1.1"
}
GET /sapi/v1/margin/tradeCoeff (HMAC SHA256)
Get personal margin level information
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| STRING | YES | ||
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Isolated Margin Account Transfer (MARGIN)
Response:
{
//transaction id
"tranId": 100000001
}
POST /sapi/v1/margin/isolated/transfer (HMAC SHA256)
Weight(UID): 600
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | YES | asset,such as BTC |
| symbol | STRING | YES | |
| transFrom | STRING | YES | "SPOT", "ISOLATED_MARGIN" |
| transTo | STRING | YES | "SPOT", "ISOLATED_MARGIN" |
| amount | DECIMAL | YES | |
| recvWindow | LONG | NO | No more than 60000 |
| timestamp | LONG | YES |
Get Isolated Margin Transfer History (USER_DATA)
Response:
{
"rows": [
{
"amount": "0.10000000",
"asset": "BNB",
"status": "CONFIRMED",
"timestamp": 1566898617000,
"txId": 5240372201,
"transFrom": "SPOT",
"transTo": "ISOLATED_MARGIN"
},
{
"amount": "5.00000000",
"asset": "USDT",
"status": "CONFIRMED",
"timestamp": 1566888436123,
"txId": 5239810406,
"transFrom": "ISOLATED_MARGIN",
"transTo": "SPOT"
}
],
"total": 2
}
GET /sapi/v1/margin/isolated/transfer (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | NO | |
| symbol | STRING | YES | |
| transFrom | STRING | NO | "SPOT", "ISOLATED_MARGIN" |
| transTo | STRING | NO | "SPOT", "ISOLATED_MARGIN" |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| current | LONG | NO | Current page, default 1 |
| size | LONG | NO | Default 10, max 100 |
| archived | STRING | NO | Default: false. Set to true for archived data from 6 months ago |
| recvWindow | LONG | NO | No more than 60000 |
| timestamp | LONG | YES |
- The max interval between
startTimeandendTimeis 30 days. - If
startTimeandendTimenot sent, return records of the last 7 days by default - Set
archivedtotrueto query data from 6 months ago
Query Isolated Margin Account Info (USER_DATA)
Response:
If "symbols" is not sent
{
"assets":[
{
"baseAsset":
{
"asset": "BTC",
"borrowEnabled": true,
"borrowed": "0.00000000",
"free": "0.00000000",
"interest": "0.00000000",
"locked": "0.00000000",
"netAsset": "0.00000000",
"netAssetOfBtc": "0.00000000",
"repayEnabled": true,
"totalAsset": "0.00000000"
},
"quoteAsset":
{
"asset": "USDT",
"borrowEnabled": true,
"borrowed": "0.00000000",
"free": "0.00000000",
"interest": "0.00000000",
"locked": "0.00000000",
"netAsset": "0.00000000",
"netAssetOfBtc": "0.00000000",
"repayEnabled": true,
"totalAsset": "0.00000000"
},
"symbol": "BTCUSDT",
"isolatedCreated": true,
"enabled": true, // true-enabled, false-disabled
"marginLevel": "0.00000000",
"marginLevelStatus": "EXCESSIVE", // "EXCESSIVE", "NORMAL", "MARGIN_CALL", "PRE_LIQUIDATION", "FORCE_LIQUIDATION"
"marginRatio": "0.00000000",
"indexPrice": "10000.00000000",
"liquidatePrice": "1000.00000000",
"liquidateRate": "1.00000000",
"tradeEnabled": true
}
],
"totalAssetOfBtc": "0.00000000",
"totalLiabilityOfBtc": "0.00000000",
"totalNetAssetOfBtc": "0.00000000"
}
If "symbols" is sent
{
"assets":[
{
"baseAsset":
{
"asset": "BTC",
"borrowEnabled": true,
"borrowed": "0.00000000",
"free": "0.00000000",
"interest": "0.00000000",
"locked": "0.00000000",
"netAsset": "0.00000000",
"netAssetOfBtc": "0.00000000",
"repayEnabled": true,
"totalAsset": "0.00000000"
},
"quoteAsset":
{
"asset": "USDT",
"borrowEnabled": true,
"borrowed": "0.00000000",
"free": "0.00000000",
"interest": "0.00000000",
"locked": "0.00000000",
"netAsset": "0.00000000",
"netAssetOfBtc": "0.00000000",
"repayEnabled": true,
"totalAsset": "0.00000000"
},
"symbol": "BTCUSDT",
"isolatedCreated": true,
"enabled": true, // true-enabled, false-disabled
"marginLevel": "0.00000000",
"marginLevelStatus": "EXCESSIVE", // "EXCESSIVE", "NORMAL", "MARGIN_CALL", "PRE_LIQUIDATION", "FORCE_LIQUIDATION"
"marginRatio": "0.00000000",
"indexPrice": "10000.00000000",
"liquidatePrice": "1000.00000000",
"liquidateRate": "1.00000000",
"tradeEnabled": true
}
]
}
GET /sapi/v1/margin/isolated/account (HMAC SHA256)
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbols | STRING | NO | Max 5 symbols can be sent; separated by ",". e.g. "BTCUSDT,BNBUSDT,ADAUSDT" |
| recvWindow | LONG | NO | No more than 60000 |
| timestamp | LONG | YES |
- If "symbols" is not sent, all isolated assets will be returned.
- If "symbols" is sent, only the isolated assets of the sent symbols will be returned.
Disable Isolated Margin Account (TRADE)
Response:
{
"success": true,
"symbol": "BTCUSDT"
}
DELETE /sapi/v1/margin/isolated/account (HMAC SHA256)
Disable isolated margin account for a specific symbol. Each trading pair can only be deactivated once every 24 hours.
Weight(UID): 300
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| recvWindow | LONG | NO | No more than 60000 |
| timestamp | LONG | YES |
Enable Isolated Margin Account (TRADE)
Response:
{
"success": true,
"symbol": "BTCUSDT"
}
POST /sapi/v1/margin/isolated/account (HMAC SHA256)
Enable isolated margin account for a specific symbol(Only supports activation of previously disabled accounts).
Weight(UID): 300
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| recvWindow | LONG | NO | No more than 60000 |
| timestamp | LONG | YES |
Query Enabled Isolated Margin Account Limit (USER_DATA)
Response:
{
"enabledAccount": 5,
"maxAccount": 20
}
GET /sapi/v1/margin/isolated/accountLimit (HMAC SHA256)
Query enabled isolated margin account limit.
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| recvWindow | LONG | NO | No more than 60000 |
| timestamp | LONG | YES |
Query Isolated Margin Symbol (USER_DATA)
Response:
{
"symbol":"BTCUSDT",
"base":"BTC",
"quote":"USDT",
"isMarginTrade":true,
"isBuyAllowed":true,
"isSellAllowed":true
}
GET /sapi/v1/margin/isolated/pair (HMAC SHA256)
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| recvWindow | LONG | NO | No more than 60000 |
| timestamp | LONG | YES |
Get All Isolated Margin Symbol(USER_DATA)
Response:
[
{
"base": "BNB",
"isBuyAllowed": true,
"isMarginTrade": true,
"isSellAllowed": true,
"quote": "BTC",
"symbol": "BNBBTC"
},
{
"base": "TRX",
"isBuyAllowed": true,
"isMarginTrade": true,
"isSellAllowed": true,
"quote": "BTC",
"symbol": "TRXBTC"
}
]
GET /sapi/v1/margin/isolated/allPairs (HMAC SHA256)
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| recvWindow | LONG | NO | No more than 60000 |
| timestamp | LONG | YES |
Toggle BNB Burn On Spot Trade And Margin Interest (USER_DATA)
Response:
{
"spotBNBBurn":true,
"interestBNBBurn": false
}
POST /sapi/v1/bnbBurn (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| spotBNBBurn | STRING | NO | "true" or "false"; Determines whether to use BNB to pay for trading fees on SPOT |
| interestBNBBurn | STRING | NO | "true" or "false"; Determines whether to use BNB to pay for margin loan's interest |
| recvWindow | LONG | NO | No more than 60000 |
| timestamp | LONG | YES |
- "spotBNBBurn" and "interestBNBBurn" should be sent at least one.
Get BNB Burn Status (USER_DATA)
Response:
{
"spotBNBBurn":true,
"interestBNBBurn": false
}
GET /sapi/v1/bnbBurn (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| recvWindow | LONG | NO | No more than 60000 |
| timestamp | LONG | YES |
Query Margin Interest Rate History (USER_DATA)
Response:
[
{
"asset": "BTC",
"dailyInterestRate": "0.00025000",
"timestamp": 1611544731000,
"vipLevel": 1
},
{
"asset": "BTC",
"dailyInterestRate": "0.00035000",
"timestamp": 1610248118000,
"vipLevel": 1
}
]
GET /sapi/v1/margin/interestRateHistory (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | YES | |
| vipLevel | INT | NO | Default: user's vip level |
| startTime | LONG | NO | Default: 7 days ago |
| endTime | LONG | NO | Default: present. Maximum range: 1 months. |
| recvWindow | LONG | NO | No more than 60000 |
| timestamp | LONG | YES |
Query Cross Margin Fee Data (USER_DATA)
Response:
[
{
"vipLevel": 0,
"coin": "BTC",
"transferIn": true,
"borrowable": true,
"dailyInterest": "0.00026125",
"yearlyInterest": "0.0953",
"borrowLimit": "180",
"marginablePairs": [
"BNBBTC",
"TRXBTC",
"ETHBTC",
"BTCUSDT"
]
}
]
GET /sapi/v1/margin/crossMarginData (HMAC SHA256)
Get cross margin fee data collection with any vip level or user's current specific data as https://www.binance.com/en/margin-fee
Weight(IP): 1 when coin is specified; 5 when the coin parameter is omitted
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| vipLevel | INT | NO | User's current specific margin data will be returned if vipLevel is omitted |
| coin | STRING | NO | |
| recvWindow | LONG | NO | No more than 60000 |
| timestamp | LONG | YES |
Query Isolated Margin Fee Data (USER_DATA)
Response:
[
{
"vipLevel": 0,
"symbol": "BTCUSDT",
"leverage": "10",
"data": [
{
"coin": "BTC",
"dailyInterest": "0.00026125",
"borrowLimit": "270"
},
{
"coin": "USDT",
"dailyInterest": "0.000475",
"borrowLimit": "2100000"
}
]
}
]
GET /sapi/v1/margin/isolatedMarginData (HMAC SHA256)
Get isolated margin fee data collection with any vip level or user's current specific data as https://www.binance.com/en/margin-fee
Weight(IP): 1 when a single is specified; 10 when the symbol parameter is omitted
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| vipLevel | INT | NO | User's current specific margin data will be returned if vipLevel is omitted |
| symbol | STRING | NO | |
| recvWindow | LONG | NO | No more than 60000 |
| timestamp | LONG | YES |
Query Isolated Margin Tier Data (USER_DATA)
Response:
[
{
"symbol": "BTCUSDT",
"tier": 1,
"effectiveMultiple": "10",
"initialRiskRatio": "1.111",
"liquidationRiskRatio": "1.05",
"baseAssetMaxBorrowable": "9",
"quoteAssetMaxBorrowable": "70000"
}
]
GET /sapi/v1/margin/isolatedMarginTier (HMAC SHA256)
Get isolated margin tier data collection with any tier as https://www.binance.com/en/margin-data
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| tier | INTEGER | NO | All margin tier data will be returned if tier is omitted |
| recvWindow | LONG | NO | No more than 60000 |
| timestamp | LONG | YES |
Query Current Margin Order Count Usage (TRADE)
Response:
[
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 10000,
"count": 0
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 20000,
"count": 0
}
]
GET /sapi/v1/margin/rateLimit/order
Displays the user's current margin order count usage for all intervals.
Weight(IP): 20
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| isIsolated | STRING | NO | for isolated margin or not, "TRUE", "FALSE",default "FALSE" |
| symbol | STRING | NO | isolated symbol, mandatory for isolated margin |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Margin 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/margin/dribblet (HMAC SHA256)
Query the historical information of user's margin account small-value asset conversion BNB.
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
User Data Streams
- The base API endpoint is: https://api.binance.com
- A User Data Stream
listenKeyis valid for 60 minutes after creation. - Doing a
PUTon alistenKeywill extend its validity for 60 minutes. - Doing a
DELETEon alistenKeywill close the stream and invalidate thelistenKey. - Doing a
POSTon an account with an activelistenKeywill return the currently activelistenKeyand extend its validity for 60 minutes. - The base websocket endpoint is: wss://stream.binance.com:9443
- User Data Streams are accessed at /ws/<listenKey> or /stream?streams=<listenKey>
- A single connection to stream.binance.com is only valid for 24 hours; expect to be disconnected at the 24 hour mark
LISTEN KEY (SPOT)
Create a ListenKey (USER_STREAM)
Response:
{
"listenKey": "pqia91ma19a5s61cv6a81va65sdf19v8a65a1a5s61cv6a81va65sdf19v8a65a1"
}
POST /api/v3/userDataStream
Start a new user data stream. The stream will close after 60 minutes unless a keepalive is sent. If the account has an active listenKey, that listenKey will be returned and its validity will be extended for 60 minutes.
Weight: 1
Parameters:
NONE
Data Source: Memory
Ping/Keep-alive a ListenKey (USER_STREAM)
Response:
{}
PUT /api/v3/userDataStream
Keepalive a user data stream to prevent a time out. User data streams will close after 60 minutes. It's recommended to send a ping about every 30 minutes.
Weight: 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| listenKey | STRING | YES |
Data Source: Memory
Close a ListenKey (USER_STREAM)
Response:
{}
DELETE /api/v3/userDataStream
Close out a user data stream.
Weight: 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| listenKey | STRING | YES |
Data Source: Memory
LISTEN KEY (MARGIN)
Create a ListenKey (USER_STREAM)
Response:
{"listenKey": "T3ee22BIYuWqmvne0HNq2A2WsFlEtLhvWCtItw6ffhhdmjifQ2tRbuKkTHhr"}
POST /sapi/v1/userDataStream
Weight: 1
Parameters:
NONE
Ping/Keep-alive a ListenKey (USER_STREAM)
Response:
{}
PUT /sapi/v1/userDataStream
Weight: 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| listenKey | STRING | YES |
Close a ListenKey (USER_STREAM)
Response:
{}
DELETE /sapi/v1/userDataStream
Weight: 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| listenKey | STRING | YES |
LISTEN KEY (ISOLATED MARGIN)
Generate a Listen Key (USER_STREAM)
Response:
{
"listenKey": "T3ee22BIYuWqmvne0HNq2A2WsFlEtLhvWCtItw6ffhhdmjifQ2tRbuKkTHhr"
}
POST /sapi/v1/userDataStream/isolated
Weight: 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES |
Ping/Keep-alive a Listen Key (USER_STREAM)
Response:
{}
PUT /sapi/v1/userDataStream/isolated
Weight: 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| listenKey | STRING | YES |
Close a ListenKey (USER_STREAM)
Response:
{}
DELETE /sapi/v1/userDataStream/isolated
Weight: 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | |
| listenKey | STRING | YES |
Payload: Account Update
outboundAccountPosition is sent any time an account balance has changed and contains the assets that were possibly changed by the event that generated the balance change.
Payload:
{
"e": "outboundAccountPosition", //Event type
"E": 1564034571105, //Event Time
"u": 1564034571073, //Time of last account update
"B": [ //Balances Array
{
"a": "ETH", //Asset
"f": "10000.000000", //Free
"l": "0.000000" //Locked
}
]
}
Payload: Balance Update
Balance Update occurs during the following:
- Deposits or withdrawals from the account
- Transfer of funds between accounts (e.g. Spot to Margin)
Payload
{
"e": "balanceUpdate", //Event Type
"E": 1573200697110, //Event Time
"a": "BTC", //Asset
"d": "100.00000000", //Balance Delta
"T": 1573200697068 //Clear Time
}
Payload: Order Update
Orders are updated with the executionReport event.
Check the Public API Definitions and below for relevant enum definitions.
Average price can be found by doing Z divided by z.
Payload:
{
"e": "executionReport", // Event type
"E": 1499405658658, // Event time
"s": "ETHBTC", // Symbol
"c": "mUvoqJxFIILMdfAW5iGSOW", // Client order ID
"S": "BUY", // Side
"o": "LIMIT", // Order type
"f": "GTC", // Time in force
"q": "1.00000000", // Order quantity
"p": "0.10264410", // Order price
"P": "0.00000000", // Stop price
"d": 4, // Trailing Delta; This is only visible if the order was a trailing stop order.
"F": "0.00000000", // Iceberg quantity
"g": -1, // OrderListId
"C": "", // Original client order ID; This is the ID of the order being canceled
"x": "NEW", // Current execution type
"X": "NEW", // Current order status
"r": "NONE", // Order reject reason; will be an error code.
"i": 4293153, // Order ID
"l": "0.00000000", // Last executed quantity
"z": "0.00000000", // Cumulative filled quantity
"L": "0.00000000", // Last executed price
"n": "0", // Commission amount
"N": null, // Commission asset
"T": 1499405658657, // Transaction time
"t": -1, // Trade ID
"I": 8641984, // Ignore
"w": true, // Is the order on the book?
"m": false, // Is this trade the maker side?
"M": false, // Ignore
"O": 1499405658657, // Order creation time
"Z": "0.00000000", // Cumulative quote asset transacted quantity
"Y": "0.00000000", // Last quote asset transacted quantity (i.e. lastPrice * lastQty)
"Q": "0.00000000", // Quote Order Qty
"j": 1, // Strategy ID; This is only visible if the strategyId parameter was provided upon order placement
"J": 1000000 // Strategy Type; This is only visible if the strategyType parameter was provided upon order placement
}
Execution types:
- NEW - The order has been accepted into the engine.
- CANCELED - The order has been canceled by the user.
- REPLACED (currently unused)
- REJECTED - The order has been rejected and was not processed (This message appears only with Cancel Replace Orders wherein the new order placement is rejected but the request to cancel request succeeds.)
- TRADE - Part of the order or all of the order's quantity has filled.
- EXPIRED - The 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)
If the order is an OCO, an event will be displayed named ListStatus in addition to the executionReport event.
Payload
{
"e": "listStatus", //Event Type
"E": 1564035303637, //Event Time
"s": "ETHBTC", //Symbol
"g": 2, //OrderListId
"c": "OCO", //Contingency Type
"l": "EXEC_STARTED", //List Status Type
"L": "EXECUTING", //List Order Status
"r": "NONE", //List Reject Reason
"C": "F4QN4G8DlFATFlIUQ0cjdD", //List Client Order ID
"T": 1564035303625, //Transaction Time
"O": [ //An array of objects
{
"s": "ETHBTC", //Symbol
"i": 17, // orderId
"c": "AJYsMjErWJesZvqlJCTUgL" //ClientOrderId
},
{
"s": "ETHBTC",
"i": 18,
"c": "bfYPSQdLoqAJeNrOr9adzq"
}
]
}
Savings Endpoints
- The endpoints below allow you to interact with Binance Savings, previously known as Binance Lending.
- For more information on this, please refer to the Binance Savings page
Get Flexible Product List (USER_DATA)
Response:
[
{
"asset": "BTC",
"avgAnnualInterestRate": "0.05000000"
"tierAnnualInterestRate": {
"0-5BTC": 0.05,
"5-10BTC": 0.03,
">10BTC": 0.01
},
"canPurchase": true,
"canRedeem": true,
"dailyInterestPerThousand": "0.00685000", //abandoned
"featured": true,
"minPurchaseAmount": "0.01000000",
"productId": "BTC001",
"purchasedAmount": "16.32467016",
"status": "PURCHASING", //PREHEATING: Warming up; PURCHASING: Subscribing; END: Finish
"upLimit": "200.00000000",
"upLimitPerUser": "5.00000000"
},
{
"asset": "BUSD",
"avgAnnualInterestRate": "0.01228590",
"tierAnnualInterestRate":"",
"canPurchase": true,
"canRedeem": true,
"dailyInterestPerThousand": "0.03836000", //abandoned
"featured": true,
"minPurchaseAmount": "0.10000000",
"productId": "BUSD001",
"purchasedAmount": "10.38932339",
"status": "PURCHASING", //PREHEATING: Warming up; PURCHASING: Subscribing; END: Finish
"upLimit": "100000.00000000",
"upLimitPerUser": "50000.00000000"
}
]
GET /sapi/v1/lending/daily/product/list (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| status | ENUM | NO | "ALL", "SUBSCRIBABLE", "UNSUBSCRIBABLE"; Default: "ALL" |
| featured | STRING | NO | "ALL", "TRUE"; Default: "ALL" |
| current | LONG | NO | Current query page. Default: 1, Min: 1 |
| size | LONG | NO | Default: 50, Max: 100 |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Get Left Daily Purchase Quota of Flexible Product (USER_DATA)
Response:
{
"asset": "BUSD",
"leftQuota": "50000.00000000"
}
GET /sapi/v1/lending/daily/userLeftQuota (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| productId | STRING | YES | |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Purchase Flexible Product (USER_DATA)
Response:
{
"purchaseId": 40607
}
POST /sapi/v1/lending/daily/purchase (HMAC SHA256)
Weight(IP): 1
Rate Limit: 1/3s per account
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| productId | STRING | YES | |
| amount | DECIMAL | YES | |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
- You need to open
Enable Spot & Margin Tradingpermission for the API Key which requests this endpoint.
Get Left Daily Redemption Quota of Flexible Product (USER_DATA)
Response:
{
"asset": "USDT",
"dailyQuota": "10000000.00000000",
"leftQuota": "0.00000000",
"minRedemptionAmount": "0.10000000"
}
GET /sapi/v1/lending/daily/userRedemptionQuota (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| productId | STRING | YES | |
| type | ENUM | YES | "FAST", "NORMAL" |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Redeem Flexible Product (USER_DATA)
Response:
{}
POST /sapi/v1/lending/daily/redeem (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| productId | STRING | YES | |
| amount | DECIMAL | YES | |
| type | ENUM | YES | "FAST", "NORMAL" |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
- You need to open
Enable Spot & Margin Tradingpermission for the API Key which requests this endpoint.
Get Flexible Product Position (USER_DATA)
Response:
[
{
"tierAnnualInterestRate": {
"0-5BTC": 0.05,
"5-10BTC": 0.03,
">10BTC": 0.01
},
"annualInterestRate":"0.02599895",
"asset": "USDT",
"avgAnnualInterestRate": "0.02599895",
"canRedeem": true,
"dailyInterestRate": "0.00007123",
"freeAmount": "75.46000000",
"freezeAmount": "0.00000000", // abandoned
"lockedAmount": "0.00000000", // abandoned
"productId": "USDT001",
"productName": "USDT",
"redeemingAmount": "0.00000000",
"todayPurchasedAmount": "0.00000000",
"totalAmount": "75.46000000",
"totalInterest": "0.22759183"
}
]
GET /sapi/v1/lending/daily/token/position (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | NO | |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Get Fixed and Activity Project List(USER_DATA)
Response:
[
{
"asset": "USDT",
"displayPriority": 1,
"duration": 90,
"interestPerLot": "1.35810000",
"interestRate": "0.05510000",
"lotSize": "100.00000000",
"lotsLowLimit": 1,
"lotsPurchased": 74155,
"lotsUpLimit": 80000,
"maxLotsPerUser": 2000,
"needKyc": false,
"projectId": "CUSDT90DAYSS001",
"projectName": "USDT",
"status": "PURCHASING",
"type": "CUSTOMIZED_FIXED",
"withAreaLimitation": false
}
]
GET /sapi/v1/lending/project/list (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | NO | |
| type | ENUM | YES | "ACTIVITY", "CUSTOMIZED_FIXED" |
| status | ENUM | NO | "ALL", "SUBSCRIBABLE", "UNSUBSCRIBABLE"; default "ALL" |
| isSortAsc | BOOLEAN | NO | default "true" |
| sortBy | ENUM | NO | "START_TIME", "LOT_SIZE", "INTEREST_RATE", "DURATION"; default "START_TIME" |
| current | LONG | NO | Currently querying page. Start from 1. Default:1 |
| size | LONG | NO | Default:10, Max:100 |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Purchase Fixed/Activity Project (USER_DATA)
Response:
{
"purchaseId": "18356"
}
POST /sapi/v1/lending/customizedFixed/purchase (HMAC SHA256)
Weight(IP): 1
Rate Limit: 1/3s per account
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| projectId | STRING | YES | |
| lot | LONG | YES | |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
- You need to open
Enable Spot & Margin Tradingpermission for the API Key which requests this endpoint.
Get Fixed/Activity Project Position (USER_DATA)
Response:
[
{
"asset": "USDT",
"canTransfer": true,
"createTimestamp": 1587010770000,
"duration": 14,
"endTime": 1588291200000,
"interest": "0.19950000",
"interestRate": "0.05201250",
"lot": 1,
"positionId": 51724,
"principal": "100.00000000",
"projectId": "CUSDT14DAYSS001",
"projectName": "USDT",
"purchaseTime": 1587010771000,
"redeemDate": "2020-05-01",
"startTime": 1587081600000,
"status": "HOLDING",
"type": "CUSTOMIZED_FIXED"
}
]
GET /sapi/v1/lending/project/position/list (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | NO | |
| projectId | STRING | NO | |
| status | ENUM | NO | "HOLDING", "REDEEMED" |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Lending Account (USER_DATA)
Response:
{
"positionAmountVos": [
{
"amount": "75.46000000",
"amountInBTC": "0.01044819",
"amountInUSDT": "75.46000000",
"asset": "USDT"
},
{
"amount": "1.67072036",
"amountInBTC": "0.00023163",
"amountInUSDT": "1.67289230",
"asset": "BUSD"
}
],
"totalAmountInBTC": "0.01067982",
"totalAmountInUSDT": "77.13289230",
"totalFixedAmountInBTC": "0.00000000",
"totalFixedAmountInUSDT": "0.00000000",
"totalFlexibleInBTC": "0.01067982",
"totalFlexibleInUSDT": "77.13289230"
}
GET /sapi/v1/lending/union/account (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
Get Purchase Record (USER_DATA)
Response:
Flexible Products
[
{
"amount": "100.00000000",
"asset": "USDT",
"createTime": 1575018510000,
"lendingType": "DAILY",
"productName": "USDT",
"purchaseId": 26055,
"status": "SUCCESS"
}
]
Fixed/Activity Products
[
{
"amount": "100.00000000",
"asset": "USDT",
"createTime": 1575018453000,
"lendingType": "ACTIVITY",
"lot": 1,
"productName": "【Special】USDT 7D (8%)",
"purchaseId": 36857,
"status": "SUCCESS"
}
]
GET /sapi/v1/lending/union/purchaseRecord (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| lendingType | ENUM | YES | "DAILY" for flexible, "ACTIVITY" for activity, "CUSTOMIZED_FIXED" for fixed |
| asset | STRING | NO | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| current | LONG | NO | Currently querying page. Start from 1. Default:1 |
| size | LONG | NO | Default:10, Max:100 |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
- The time between
startTimeandendTimecannot be longer than 30 days. - If
startTimeandendTimeare both not sent, then the last 30 days' data will be returned.
Get Redemption Record (USER_DATA)
Response:
Flexible Products
[
{
"amount": "10.54000000",
"asset": "USDT",
"createTime": 1577257222000,
"principal": "10.54000000",
"projectId": "USDT001",
"projectName": "USDT",
"status": "PAID",
"type": "FAST"
}
]
Fixed/Activity Products
[
{
"amount": "0.07070000",
"asset": "USDT",
"createTime": 1566200161000,
"interest": "0.00070000",
"principal": "0.07000000",
"projectId": "test06",
"projectName": "USDT 1 day (10% anniualized)",
"startTime": 1566198000000,
"status": "PAID"
}
]
GET /sapi/v1/lending/union/redemptionRecord (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| lendingType | ENUM | YES | "DAILY" for flexible, "ACTIVITY" for activity, "CUSTOMIZED_FIXED" for fixed |
| asset | STRING | NO | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| current | LONG | NO | Currently querying page. Start from 1. Default:1 |
| size | LONG | NO | Default:10, Max:100 |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
- The time between
startTimeandendTimecannot be longer than 30 days. - If
startTimeandendTimeare both not sent, then the last 30 days' data will be returned.
Get Interest History (USER_DATA)
Response:
[
{
"asset": "BUSD",
"interest": "0.00006408",
"lendingType": "DAILY",
"productName": "BUSD",
"time": 1577233578000
},
{
"asset": "USDT",
"interest": "0.00687654",
"lendingType": "DAILY",
"productName": "USDT",
"time": 1577233562000
}
]
GET /sapi/v1/lending/union/interestHistory (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| lendingType | ENUM | YES | "DAILY" for flexible, "ACTIVITY" for activity, "CUSTOMIZED_FIXED" for fixed |
| asset | STRING | NO | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| current | LONG | NO | Currently querying page. Start from 1. Default:1 |
| size | LONG | NO | Default:10, Max:100 |
| recvWindow | LONG | NO | The value cannot be greater than 60000 |
| timestamp | LONG | YES |
- The time between
startTimeandendTimecannot be longer than 30 days. - If
startTimeandendTimeare both not sent, then the last 30 days' data will be returned.
Change Fixed/Activity Position to Daily Position(USER_DATA)
Response:
{
"dailyPurchaseId": 862290,
"success": true,
"time": 1577233578000
}
POST /sapi/v1/lending/positionChanged (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| projectId | STRING | YES | |
| lot | LONG | YES | |
| positionId | LONG | NO | for fixed position |
| recvWindow | LONG | NO | no more than 60000 |
| timestamp | LONG | YES |
- PositionId is mandatory parameter for fixed position.
- You need to open
Enable Spot & Margin Tradingpermission for the API Key which requests this endpoint.
Staking Endpoints
The endpoints below allow you to interact with Staking. For more information on this, please refer to the Staking page
Get Staking Product List(USER_DATA)
Response:
[
{
"projectId": "Axs*90",
"detail": {
"asset":"AXS", //Lock up asset
"rewardAsset":"AXS", //Earn Asset
"duration":90, //Lock period(days)
"renewable":true, //Project supports renewal
"apy": "1.2069"
},
"quota": {
"totalPersonalQuota":"2", //Total Personal quota
"minimum":"0.001" //Minimum amount per order
}
},
{
"projectId": "Fio*90",
"detail": {
"asset":"FIO",
"rewardAsset":"FIO",
"duration":90,
"renewable":true,
"apy":"1.0769"
},
"quota": {
"totalPersonalQuota":"600",
"minimum":"0.1"
}
}
]
GET /sapi/v1/staking/productList (HMAC SHA256)
Get available Staking product list
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| product | ENUM | YES | "STAKING" for Locked Staking, "F_DEFI" for flexible DeFi Staking, "L_DEFI" for locked DeFi Staking |
| asset | STRING | NO | |
| current | LONG | NO | Currently querying page. Start from 1. Default:1 |
| size | LONG | NO | Default:10, Max:100 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Purchase Staking Product(USER_DATA)
Response:
{
"positionId":"12345",
"success":true
}
POST /sapi/v1/staking/purchase (HMAC SHA256)
Weight(IP): 1
Rate Limit: 1/3s per account
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| product | ENUM | YES | "STAKING" for Locked Staking, "F_DEFI" for flexible DeFi Staking, "L_DEFI" for locked DeFi Staking |
| productId | STRING | YES | |
| amount | DECIMAL | YES | |
| renewable | STRING | NO | true or false, default false. Active if product is "STAKING" or "L_DEFI" |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- You need to open
Enable Spot & Margin Tradingpermission for the API Key which requests this endpoint.
Redeem Staking Product(USER_DATA)
Response:
{
"success":true
}
POST /sapi/v1/staking/redeem (HMAC SHA256)
Redeem Staking product. Locked staking and Locked DeFI staking belong to early redemption, redeeming in advance will result in loss of interest that you have earned.
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| product | ENUM | YES | "STAKING" for Locked Staking, "F_DEFI" for flexible DeFi Staking, "L_DEFI" for locked DeFi Staking |
| positionId | STRING | NO | "1234", Mandatory if product is "STAKING" or "L_DEFI" |
| productId | STRING | YES | |
| amount | DECIMAL | NO | Mandatory if product is "F_DEFI" |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- You need to open
Enable Spot & Margin Tradingpermission for the API Key which requests this endpoint.
Get Staking Product Position(USER_DATA)
Response:
[
{
"positionId":"123123", //Staking position ID
"projectId": "Axs*90", //Staking project ID
"asset":"AXS", //Locked asset
"amount":"122.09202928", //Locked Amount
"purchaseTime": "1646182276000", //Subscription time
"duration": "60", //Lock period(days)
"accrualDays": "4", //Accrue days
"rewardAsset":"AXS", //Earned asset
"APY":"0.2032",
"rewardAmt": "5.17181528", //Earned amount
"extraRewardAsset":"BNB", //Rewards assets of extra staking type
"extraRewardAPY":"0.0203", //APY of extra staking type
"estExtraRewardAmt": "5.17181528", //Rewards of extra staking type, distribute when order expires
"nextInterestPay": "1.29295383", //Next estimated interest payment
"nextInterestPayDate": "1646697600000", //Next interest payment date
"payInterestPeriod": "1", //Interest cycle
"redeemAmountEarly": "2802.24068892", //Early redemption amount
"interestEndDate": "1651449600000", //Interest accrual end date
"deliverDate": "1651536000000", //Redemption arrival time
"redeemPeriod": "1", //Redemption interval
"redeemingAmt":"232.2323", //Amount under redemption
"partialAmtDeliverDate":"1651536000000", //Arrival time of partial redemption amount of order
"canRedeemEarly": true, //When it is true, early redemption can be operated
"renewable":true, //When it is true, auto staking can be operated
"type":"AUTO", //Order type is auto-staking or normal
"status": "HOLDING"
}
]
GET /sapi/v1/staking/position (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| product | ENUM | YES | "STAKING" for Locked Staking, "F_DEFI" for flexible DeFi Staking, "L_DEFI" for locked DeFi Staking |
| productId | STRING | NO | |
| asset | STRING | NO | |
| current | LONG | NO | Currently querying the page. Start from 1. Default:1 |
| size | LONG | NO | Default:10, Max:100 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Get Staking History(USER_DATA)
Response:
[
{
"positionId":"123123",
"time":1575018510000,
"asset":"BNB",
"project":"BSC", //DeFi Staking’s project
"amount":"21312.23223",
"lockPeriod":"30",
"deliverDate":"1575018510000", //Redemption date
"type":"AUTO", // display only for subscription
"status":"success"
}
]
GET /sapi/v1/staking/stakingRecord (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| product | ENUM | YES | "STAKING" for Locked Staking, "F_DEFI" for flexible DeFi Staking, "L_DEFI" for locked DeFi Staking |
| txnType | ENUM | YES | "SUBSCRIPTION", "REDEMPTION", "INTEREST" |
| asset | STRING | NO | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| current | LONG | NO | Currently querying the page. Start from 1. Default:1 |
| size | LONG | NO | Default:10, Max:100 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- The time between
startTimeandendTimecannot be longer than 3 months. - If
startTimeandendTimeare both not sent, then the last 30 days' data will be returned.
Set Auto Staking(USER_DATA)
Response:
{
"success":true
}
POST /sapi/v1/staking/setAutoStaking (HMAC SHA256)
Set auto staking on Locked Staking or Locked DeFi Staking
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| product | ENUM | YES | "STAKING" for Locked Staking, "L_DEFI" for locked DeFi Staking |
| positionId | STRING | YES | |
| renewable | STRING | YES | true or false |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Get Personal Left Quota of Staking Product(USER_DATA)
Response:
[
{
"leftPersonalQuota": "1000" // User left quota
}
]
GET /sapi/v1/staking/personalLeftQuota(HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| product | ENUM | YES | "STAKING" for Locked Staking, "F_DEFI" for flexible DeFi Staking, "L_DEFI" for locked DeFi Staking |
| productId | STRING | YES | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Mining Endpoints
- The endpoints below allow to interact with Binance Pool.
- For more information on this, please refer to the Binance Pool page
Acquiring Algorithm (MARKET_DATA)
Response:
{
"code": 0,
"msg": "",
"data": [
{
"algoName": "sha256", // Algorithm name
"algoId": 1, // Algorithm ID
"poolIndex": 0, // Sequence
"unit": "h/s" // Unit
}
]
}
GET /sapi/v1/mining/pub/algoList (HMAC SHA256)
Weight(IP): 1
Parameter:
None
Acquiring CoinName (MARKET_DATA)
GET /sapi/v1/mining/pub/coinList (HMAC SHA256)
Weight(IP): 1
Parameter:
None
Response:
{
"code": 0,
"msg": "",
"data": [
{
"coinName": "BTC", // Currencyname
"coinId": 1, // id
"poolIndex": 0, // Sort
"algoId": 1, // Algorithm
"algoName": "sha256" //Name of algorithm
}
]
}
Request for Detail Miner List (USER_DATA)
Response:
{
"code": 0,
"msg": "",
"data": [
{
"workerName": "bhdc1.16A10404B", //Mining Account name
"type": "H_hashrate", // Type of hourly hashrate
"hashrateDatas": [
{
"time": 1587902400000, // Time
"hashrate": "0", // Hashrate
"reject": 0 //Rejection Rate
},
{
"time": 1587906000000,
"hashrate": "0",
"reject": 0
}
]
},
{
"workerName": "bhdc1.16A10404B", //Mining Account name
"type": "D_hashrate", //Type of daily hashrate
"hashrateDatas": [
{
"time": 1587902400000, // Time
"hashrate": "0", // Hashrate
"reject": 0 //Rejection Rate
},
{
"time": 1587906000000,
"hashrate": "0",
"reject": 0
}
]
}
]
}
GET /sapi/v1/mining/worker/detail (HMAC SHA256)
Weight(IP): 5
Parameter:
| Name | Type | Mandatory | Description | For Example |
|---|---|---|---|---|
| algo | STRING | YES | Algorithm(sha256) | sha256 |
| userName | STRING | YES | Mining account | test |
| workerName | STRING | YES | Miner’s name(required) | bhdc1.16A10404B |
| recvWindow | LONG | NO | ||
| timestamp | LONG | YES |
Request for Miner List (USER_DATA)
Response:
{
"code": 0,
"msg": "",
"data": {
"workerDatas": [
{
"workerId": "1420554439452400131", //Miner ID
"workerName": "2X73", //Miner's name
"status": 3, // Status:1 valid, 2 invalid, 3 no longer valid
"hashRate": 0, // Real-time rate
"dayHashRate": 0, //24H Hashrate
"rejectRate": 0, //Real-time Rejection Rate
"lastShareTime": 1587712919000 // Last submission time
},
{
"workerId": "7893926126382807951",
"workerName": "AZDC1.1A10101",
"status": 2,
"hashRate": 29711247541680,
"dayHashRate": 12697781298013.66,
"rejectRate": 0,
"lastShareTime": 1587969727000
}
],
"totalNum": 18530, // Total amount
"pageSize": 20 // Rows per page
}
}
GET /sapi/v1/mining/worker/list (HMAC SHA256)
Weight(IP): 5
Parameter:
| Name | Type | Mandatory | Description | For Example |
|---|---|---|---|---|
| algo | STRING | YES | Algorithm(sha256) | sha256 |
| userName | STRING | YES | Mining account | test |
| pageIndex | INTEGER | NO | Page number,default is first page,start form 1 | |
| sort | INTEGER | NO | sort sequence(default=0)0 positive sequence,1 negative sequence | |
| sortColumn | INTEGER | NO | Sort by( default 1): 1: miner name, 2: real-time computing power, 3: daily average computing power, 4: real-time rejection rate, 5: last submission time |
|
| workerStatus | INTEGER | NO | miners status(default=0)0 all,1 valid,2 invalid,3failure | |
| recvWindow | LONG | NO | ||
| timestamp | LONG | YES |
Earnings List(USER_DATA)
Response:
{
"code": 0,
"msg": "",
"data": {
"accountProfits": [
{
"time": 1586188800000, // Mining date
"type": 31, // 0:Mining Wallet,5:Mining Address,7:Pool Savings,8:Transferred,31:Income Transfer ,32:Hashrate Resale-Mining Wallet 33:Hashrate Resale-Pool Savings
"hashTransfer": null, // Transferred Hashrate
"transferAmount": null, // Transferred Income
"dayHashRate": 129129903378244, // Daily Hashrate
"profitAmount": 8.6083060304, //Earnings Amount
"coinName":"BTC", // Coin Type
"status": 2 //Status:0:Unpaid, 1:Paying 2:Paid
},
{
"time": 1607529600000,
"coinName": "BTC",
"type": 0,
"dayHashRate": 9942053925926,
"profitAmount": 0.85426469,
"hashTransfer": 200000000000,
"transferAmount": 0.02180958,
"status": 2
},
{
"time": 1607443200000,
"coinName": "BTC",
"type": 31,
"dayHashRate": 200000000000,
"profitAmount": 0.02905916,
"hashTransfer": null,
"transferAmount": null,
"status": 2
}
],
"totalNum": 3, // Total Rows
"pageSize": 20 // Rows per page
}
}
GET /sapi/v1/mining/payment/list (HMAC SHA256)
Weight(IP): 5
Parameter:
| Name | Type | Mandatory | Description | Example |
|---|---|---|---|---|
| algo | STRING | YES | Transfer algorithm(sha256) | sha256 |
| userName | STRING | YES | Mining account | test |
| coin | STRING | NO | Coin name | |
| startDate | Long | NO | Search date, millisecond timestamp, while empty query all | |
| endDate | Long | NO | Search date, millisecond timestamp, while empty query all | |
| pageIndex | INTEGER | NO | Page number, empty default first page, starting from 1 | |
| pageSize | INTEGER | NO | Number of pages, minimum 10, maximum 200 | |
| recvWindow | LONG | NO | ||
| timestamp | LONG | YES |
Extra Bonus List (USER_DATA)
Response:
{
"code": 0,
"msg": "",
"data": {
"otherProfits": [
{
"time": 1607443200000, // Mining date
"coinName": "BTC", // Coin Name
"type": 4, // 1: Merged Mining, 2: Activity Bonus, 3:Rebate 4:Smart Pool 6:Income Transfer 7:Pool Savings
"profitAmount": 0.0011859, //Amount
"status": 2 //Status:0:Unpaid, 1:Paying 2:Paid
}
],
"totalNum": 3, // Total Rows
"pageSize": 20 // Rows per page
}
}
GET /sapi/v1/mining/payment/other (HMAC SHA256)
Weight(IP): 5
Parameter:
| Name | Type | Mandatory | Description | Example |
|---|---|---|---|---|
| algo | STRING | YES | Transfer algorithm(sha256) | sha256 |
| userName | STRING | YES | Mining Account | test |
| coin | STRING | NO | Coin Name | |
| startDate | Long | NO | Search date, millisecond timestamp, while empty query all | |
| endDate | Long | NO | Search date, millisecond timestamp, while empty query all | |
| pageIndex | INTEGER | NO | Page number, empty default first page, starting from 1 | |
| pageSize | INTEGER | NO | Number of pages, minimum 10, maximum 200 | |
| recvWindow | LONG | NO | ||
| timestamp | LONG | YES |
Hashrate Resale List (USER_DATA)
Response:
{
"code": 0,
"msg": "",
"data": {
"configDetails": [
{
"configId": 168, // Mining ID
"poolUsername": "123", //Transfer out of subaccount
"toPoolUsername": "user1", // Transfer into subaccount
"algoName": "Ethash", // Transfer algorithm
"hashRate": 5000000, // Transferred Hashrate quantity
"startDay": 20201210, // Start date
"endDay": 20210405, //End date
"status": 1 //Status:0 Processing,1:Cancelled,2:Terminated
},
{
"configId": 166,
"poolUsername": "pop",
"toPoolUsername": "111111",
"algoName": "Ethash",
"hashRate": 3320000,
"startDay": 20201226,
"endDay": 20201227,
"status": 0
}
],
"totalNum": 21,
"pageSize": 200
}
}
GET /sapi/v1/mining/hash-transfer/config/details/list (HMAC SHA256)
Weight(IP): 5
Parameter:
| Name | Type | Mandatory | Description | Example |
|---|---|---|---|---|
| pageIndex | INTEGER | NO | Page number, empty default first page, starting from 1 | |
| pageSize | INTEGER | NO | Number of pages, minimum 10, maximum 200 | |
| recvWindow | LONG | NO | ||
| timestamp | LONG | YES |
Hashrate Resale Detail (USER_DATA)
Response:
{
"code": 0,
"msg": "",
"data": {
"profitTransferDetails": [{
"poolUsername": "test4001", // Transfer out of sub-account
"toPoolUsername": "pop", // Transfer into subaccount
"algoName": "sha256", // Transfer algorithm
"hashRate": 200000000000, // Transferred Hashrate quantity
"day": 20201213, // Transfer date
"amount": 0.2256872, // Transferred income
"coinName": "BTC" // Coin Name
},
{
"poolUsername": "test4001",
"toPoolUsername": "pop",
"algoName": "sha256",
"hashRate": 200000000000,
"day": 20201213,
"amount": 0.2256872,
"coinName": "BTC"
}
],
"totalNum": 8,
"pageSize": 200
}
}
GET /sapi/v1/mining/hash-transfer/profit/details (HMAC SHA256)
Weight(IP): 5
Parameter:
| Name | Type | Mandatory | Description | Example |
|---|---|---|---|---|
| configId | INTEGER | YES | Mining ID | 168 |
| userName | STRING | YES | Mining Account | test |
| pageIndex | INTEGER | NO | Page number, empty default first page, starting from 1 | |
| pageSize | INTEGER | NO | Number of pages, minimum 10, maximum 200 | |
| recvWindow | LONG | NO | ||
| timestamp | LONG | YES |
Hashrate Resale Request (USER_DATA)
Response:
{
"code": 0,
"msg": "",
"data": 171 // Mining Account
}
POST /sapi/v1/mining/hash-transfer/config (HMAC SHA256)
Weight(IP): 5
Parameter:
| Name | Type | Mandatory | Description | Example |
|---|---|---|---|---|
| userName | STRING | YES | Mining Account | test |
| algo | STRING | YES | Transfer algorithm(sha256) | sha256 |
| endDate | Long | YES | Resale End Time (Millisecond timestamp) | 1617659086000 |
| startDate | Long | YES | Resale Start Time(Millisecond timestamp) | 1607659086000 |
| toPoolUser | STRING | YES | Mining Account | S19pro |
| hashRate | Long | YES | Resale hashrate h/s must be transferred (BTC is greater than 500000000000 ETH is greater than 500000) | 100000000 |
| recvWindow | LONG | NO | ||
| timestamp | LONG | YES |
Cancel hashrate resale configuration(USER_DATA)
Response:
{
"code": 0,
"msg": "",
"data": true
}
POST /sapi/v1/mining/hash-transfer/config/cancel (HMAC SHA256)
Weight(IP): 5
Parameter:
| Name | Type | Mandatory | Description | Example |
|---|---|---|---|---|
| configId | INTEGER | YES | Mining ID | 168 |
| userName | STRING | YES | Mining Account | test |
| recvWindow | LONG | NO | ||
| timestamp | LONG | YES |
Statistic List (USER_DATA)
Response:
{
"code": 0,
"msg": "",
"data": {
"fifteenMinHashRate": "457835490067496409.00000000", // 15 mins hashrate
"dayHashRate": "214289268068874127.65000000", // 24H Hashrate
"validNum": 0, // Effective quantity
"invalidNum": 17562, // Invalid quantity
"profitToday":{ // Today's estimate
"BTC":"0.00314332",
"BSV":"56.17055953",
"BCH":"106.61586001"
},
"profitYesterday":{ // Yesterday's earnings
"BTC":"0.00314332",
"BSV":"56.17055953",
"BCH":"106.61586001"
},
"userName": "test", // Mining account
"unit": "h/s", // Hashrate unit
"algo": "sha256" // Algorithm
}
}
GET /sapi/v1/mining/statistics/user/status (HMAC SHA256)
Weight(IP): 5
Parameter:
| Name | Type | Mandatory | Description | For Example |
|---|---|---|---|---|
| algo | STRING | YES | Algorithm(sha256) | sha256 |
| userName | STRING | YES | Mining account | test |
| recvWindow | LONG | NO | ||
| timestamp | LONG | YES |
Account List (USER_DATA)
Response:
{
"code": 0,
"msg": "",
"data": [
{
"type": "H_hashrate", //Type of hourly hashrate
"userName": "test", // Mining account
"list": [
{
"time": 1585267200000, // Time
"hashrate": "0.00000000", // Hashrate
"reject": "0.00000000" //Rejection Rate
},
{
"time": 1585353600000,
"hashrate": "0.00000000",
"reject": "0.00000000"
}
]
},
{
"type": "D_hashrate", //Type of daily hashrate
"userName": "test", // Mining account
"list": [
{
"time": 1587906000000, // Time
"hashrate": "0.00000000", // Hashrate
"reject": "0.00000000" //Rejection Rate
},
{
"time": 1587909600000,
"hashrate": "0.00000000",
"reject": "0.00000000"
}
]
}
]
}
GET /sapi/v1/mining/statistics/user/list (HMAC SHA256)
Weight(IP): 5
Parameter:
| Name | Type | Mandatory | Description | For Example |
|---|---|---|---|---|
| algo | STRING | YES | Algorithm(sha256) | sha256 |
| userName | STRING | YES | Mining account | test |
| recvWindow | LONG | NO | ||
| timestamp | LONG | YES |
Mining Account Earning (USER_DATA)
Response:
{
"code": 0,
"msg": "",
"data": {
"accountProfits": [
{
"time": 1607443200000,
"coinName": "BTC", // Coin
"type": 2, // 0:Referral 1:Refund 2:Rebate
"puid": 59985472, //Sub-account id
"subName": "vdvaghani", //Mining account
"amount": 0.09186957 //Amount
}
],
"totalNum": 3, // Total records
"pageSize": 20 // Size of one page
}
}
GET /sapi/v1/mining/payment/uid (HMAC SHA256)
Weight(IP): 5
Parameter:
| Name | Type | Mandatory | Description | For Example |
|---|---|---|---|---|
| algo | STRING | YES | Algorithm(sha256) | sha256 |
| startDate | Long | NO | Millisecond timestamp | |
| endDate | Long | NO | Millisecond timestamp | |
| pageIndex | INTEGER | NO | Default 1 | |
| pageSize | INTEGER | NO | Min 10,Max 200 | |
| recvWindow | LONG | NO | ||
| timestamp | LONG | YES |
Futures
New Future Account Transfer (USER_DATA)
Response:
{
"tranId": 100000001 //transaction id
}
POST /sapi/v1/futures/transfer (HMAC SHA256)
Execute transfer between spot account and futures account.
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | YES | The asset being transferred, e.g., USDT |
| amount | DECIMAL | YES | The amount to be transferred |
| type | INT | YES | 1: transfer from spot account to USDT-Ⓜ futures account. 2: transfer from USDT-Ⓜ futures account to spot account. 3: transfer from spot account to COIN-Ⓜ futures account. 4: transfer from COIN-Ⓜ futures account to spot account. |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Get Future Account Transaction History List (USER_DATA)
Response:
{
"rows": [
{
"asset": "USDT",
"tranId": 100000001,
"amount": "40.84624400",
"type": "1", // one of 1( from spot to USDT-Ⓜ), 2( from USDT-Ⓜ to spot), 3( from spot to COIN-Ⓜ), and 4( from COIN-Ⓜ to spot)
"timestamp": 1555056425000,
"status": "CONFIRMED" //one of PENDING (pending to execution), CONFIRMED (successfully transfered), FAILED (execution failed, nothing happened to your account);
}
],
"total": 1
}
GET /sapi/v1/futures/transfer (HMAC SHA256)
Weight(IP): 10
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | YES | |
| startTime | LONG | YES | |
| endTime | LONG | NO | |
| current | LONG | NO | Currently querying page. Start from 1. Default:1 |
| size | LONG | NO | Default:10 Max:100 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- Support query within the last 6 months only
- If
startTimeandendTimenot sent, return records of the last 7 days by default
Cross-Collateral Borrow History (USER_DATA)
Response:
{
"rows":[
{
"confirmedTime": 1582540328433,
"coin": "USDT",
"collateralRate": "0.89991001", // collateralLevel
"leftTotal": "4.5",
"leftPrincipal": "4.5",
"deadline": 4736102399000,
"collateralCoin": "BUSD",
"collateralAmount": "5.0",
"orderStatus": "PENDING",
"borrowId": "438648398970089472"
}
],
"total": 1
}
GET /sapi/v1/futures/loan/borrow/history (HMAC SHA256)
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| coin | STRING | NO | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | LONG | NO | default 500, max 1000 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Weight(IP): 10
Cross-Collateral Repayment History (USER_DATA)
Response:
{
"rows":[
{
"coin": "USDT",
"amount": "1.68",
"collateralCoin": "BUSD",
"repayType": "NORMAL", // "COLLATERAL" for collateral repayment
"releasedCollateral": "1.80288889",
"price": "1.001", // Loan/collateral exchange rate
"repayCollateral": "10010", // Only for collateral repayment
"confirmedTime": 1582781327575,
"updateTime": 1582794387516, // time
"status": "PENDING",
"repayId": "439659223998894080"
}
],
"total": 1
}
GET /sapi/v1/futures/loan/repay/history HMAC SHA256)
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| coin | STRING | NO | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | LONG | NO | default 500, max 1000 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Weight(IP): 10
Cross-Collateral Wallet V2 (USER_DATA)
Response:
{
"totalCrossCollateral":"5.8238577133",
"totalBorrowed":"5.07000000",
"totalInterest":"0.0", // New for interest collection
"interestFreeLimit": "100000", // New for interest free limit
"asset": "USD", // New for USD value
"crossCollaterals":[
{
"loanCoin":"USDT",
"collateralCoin":"BUSD",
"locked":"5.82211108",
"loanAmount": "5.07",
"currentCollateralRate": "0.87168984", // collateralLevel
"interestFreeLimitUsed": "5.07", // New for interest free limit
"principalForInterest": "0.0", // New for interest collection
"interest": "0.0" // New for interest collection
},
{
"loanCoin":"BUSD",
"collateralCoin":"BTC",
"locked":"0",
"loanAmount": "0",
"currentCollateralRate": "0", // collateralLevel
"interestFreeLimitUsed": "0", // New for interest free limit
"principalForInterest": "0.0", // New for interest collection
"interest": "0.0" // New for interest collection
}
]
}
GET /sapi/v2/futures/loan/wallet (HMAC SHA256)
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Weight(IP): 1
Adjust Cross-Collateral LTV History (USER_DATA)
Response:
{
"rows":[
{
"amount": ".17398184",
"collateralCoin": "BUSD",
"coin": "USDT",
"preCollateralRate":"0.87054861",
"afterCollateralRate":"0.89736451",
"direction": "REDUCED",
"status": "COMPLETED",
"adjustTime": 1583978243588
}
],
"total": 1
}
GET /sapi/v1/futures/loan/adjustCollateral/history (HMAC SHA256)
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| loanCoin | STRING | NO | |
| collateralCoin | STRING | NO | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | LONG | NO | default 500, max 1000 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- All data will be returned if loanCoin or collateralCoin is not sent
Weight(IP): 10
Cross-Collateral Liquidation History (USER_DATA)
Response:
{
"rows":[
{
"collateralAmountForLiquidation":"10.12345678",
"collateralCoin": "BUSD",
"forceLiquidationStartTime": 1583978243588,
"coin": "USDT",
"restCollateralAmountAfterLiquidation": "15.12345678",
"restLoanAmount": "11.12345678",
"status": "PENDING"
}
],
"total": 1
}
GET /sapi/v1/futures/loan/liquidationHistory (HMAC SHA256)
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| loanCoin | STRING | NO | |
| collateralCoin | STRING | NO | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | LONG | NO | default 500, max 1000 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- All data will be returned if loanCoin or collateralCoin is not sent
Weight(IP): 10
Cross-Collateral Interest History (USER_DATA)
Response:
{
"rows":[
{
"collateralCoin": "BUSD",
"interestCoin": "USDT",
"interest": "2.354",
"interestFreeLimitUsed": "0", // New for interest free limit
"principalForInterest": "10000",
"interestRate": "0.002",
"time": 1582794387516
}
],
"total": 1
}
GET /sapi/v1/futures/loan/interestHistory (HMAC SHA256)
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| collateralCoin | STRING | NO | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| current | LONG | NO | Currently querying page. Start from 1. Default:1 |
| limit | LONG | NO | Default:500 Max:1000 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Weight(IP): 1
Futures Algo Endpoints
Binance Futures Execution Algorithm API solution aims to provide users ability to programmatically leverage Binance in-house algorithmic trading capability to automate order execution strategy, improve execution transparency and give users smart access to the available market liquidity.
FAQ: Volume Participation(VP) Introduction
FAQ: Time-Weighted Average Price(Twap) Introduction
Volume Participation(VP) New Order (TRADE)
Response:
{
"clientAlgoId": "00358ce6a268403398bd34eaa36dffe7",
"success": true,
"code": 0,
"msg": "OK"
}
POST /sapi/v1/algo/futures/newOrderVp (HMAC SHA256)
Send in a VP new order. Only support on USDⓈ-M Contracts.
Weight(UID): 3000
Noted:
- You need to enable
Futures Trading Permissionfor the api key which requests this endpoint. - Base URL: https://api.binance.com
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | Trading symbol eg. BTCUSDT |
| side | ENUM | YES | Trading side ( BUY or SELL ) |
| positionSide | ENUM | NO | Default BOTH for One-way Mode ; LONG or SHORT for Hedge Mode. It must be sent in Hedge Mode. |
| quantity | DECIMAL | YES | Quantity of base asset; The notional (quantity * mark price(base asset)) must be more than the equivalent of 10,000 USDT and less than the equivalent of 1,000,000 USDT |
| urgency | ENUM | YES | Represent the relative speed of the current execution; ENUM: LOW, MEDIUM, HIGH |
| clientAlgoId | STRING | NO | A unique id among Algo orders (length should be 32 characters), If it is not sent, we will give default value |
| reduceOnly | BOOLEAN | NO | "true" or "false". Default "false"; Cannot be sent in Hedge Mode; Cannot be sent when you open a position |
| limitPrice | DECIMAL | NO | Limit price of the order; If it is not sent, will place order by market price by default |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Other Info:
- Total Algo open orders max allowed:
10orders. - Leverage of symbols and position mode will be the same as your futures account settings. You can set up through the trading page or fapi.
- Receiving
"success": truedoes not mean that your order will be executed. Please use the query order endpoints(GET sapi/v1/algo/futures/openOrdersorGET sapi/v1/algo/futures/historicalOrders) to check the order status. For example: Your futures balance is insufficient, or open position with reduce only or position side is inconsistent with your own setting. In these cases you will receive"success": true, but the order status will beexpiredafter we check it.
Time-Weighted Average Price(Twap) New Order (TRADE)
Response:
{
"clientAlgoId": "65ce1630101a480b85915d7e11fd5078",
"success": true,
"code": 0,
"msg": "OK"
}
POST /sapi/v1/algo/futures/newOrderTwap (HMAC SHA256)
Send in a Twap new order. Only support on USDⓈ-M Contracts.
Weight(UID): 3000
Noted:
- You need to enable
Futures Trading Permissionfor the api key which requests this endpoint. - Base URL: https://api.binance.com
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | YES | Trading symbol eg. BTCUSDT |
| side | ENUM | YES | Trading side ( BUY or SELL ) |
| positionSide | ENUM | NO | Default BOTH for One-way Mode ; LONG or SHORT for Hedge Mode. It must be sent in Hedge Mode. |
| quantity | DECIMAL | YES | Quantity of base asset; The notional (quantity * mark price(base asset)) must be more than the equivalent of 10,000 USDT and less than the equivalent of 1,000,000 USDT |
| duration | LONG | YES | Duration for TWAP orders in seconds. [300, 86400];Less than 5min => defaults to 5 min; Greater than 24h => defaults to 24h |
| clientAlgoId | STRING | NO | A unique id among Algo orders (length should be 32 characters), If it is not sent, we will give default value |
| reduceOnly | BOOLEAN | NO | "true" or "false". Default "false"; Cannot be sent in Hedge Mode; Cannot be sent when you open a position |
| limitPrice | DECIMAL | NO | Limit price of the order; If it is not sent, will place order by market price by default |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Other Info:
- Total Algo open orders max allowed:
10orders. - Leverage of symbols and position mode will be the same as your futures account settings. You can set up through the trading page or fapi.
- Receiving
"success": truedoes not mean that your order will be executed. Please use the query order endpoints(GET sapi/v1/algo/futures/openOrdersorGET sapi/v1/algo/futures/historicalOrders) to check the order status. For example: Your futures balance is insufficient, or open position with reduce only or position side is inconsistent with your own setting. In these cases you will receive"success": true, but the order status will beexpiredafter we check it. quantity* 60 /durationshould be larger than minQtydurationcannot be less than 5 mins or more than 24 hours.- For delivery contracts, TWAP end time should be one hour earlier than the delivery time of the symbol.
Cancel Algo Order (TRADE)
Response:
{
"algoId": 14511,
"success": true,
"code": 0,
"msg": "OK"
}
DELETE /sapi/v1/algo/futures/order (HMAC SHA256)
Cancel an active order.
Weight(IP): 1
Noted:
- You need to enable
Futures Trading Permissionfor the api key which requests this endpoint. - Base URL: https://api.binance.com
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| algoId | LONG | YES | eg. 14511 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Query Current Algo Open Orders (USER_DATA)
Response:
{
"total": 1,
"orders": [
{
"algoId": 14517,
"symbol": "ETHUSDT",
"side": "SELL",
"positionSide": "SHORT",
"totalQty": "5.000",
"executedQty": "0.000",
"executedAmt": "0.00000000",
"avgPrice": "0.00",
"clientAlgoId": "d7096549481642f8a0bb69e9e2e31f2e",
"bookTime": 1649756817004,
"endTime": 0,
"algoStatus": "WORKING",
"algoType": "VP",
"urgency": "LOW"
}
]
}
GET /sapi/v1/algo/futures/openOrders (HMAC SHA256)
Weight(IP): 1
Noted:
- You need to enable
Futures Trading Permissionfor the api key which requests this endpoint. - Base URL: https://api.binance.com
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Query Historical Algo Orders (USER_DATA)
Response:
{
"total": 1,
"orders": [
{
"algoId": 14518,
"symbol": "BNBUSDT",
"side": "BUY",
"positionSide": "BOTH",
"totalQty": "100.00",
"executedQty": "0.00",
"executedAmt": "0.00000000",
"avgPrice": "0.000",
"clientAlgoId": "acacab56b3c44bef9f6a8f8ebd2a8408",
"bookTime": 1649757019503,
"endTime": 1649757088101,
"algoStatus": "CANCELLED",
"algoType": "VP",
"urgency": "LOW"
}
]
}
GET /sapi/v1/algo/futures/historicalOrders (HMAC SHA256)
Weight(IP): 1
Noted:
- You need to enable
Futures Trading Permissionfor the api key which requests this endpoint. - Base URL: https://api.binance.com
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| symbol | STRING | NO | Trading symbol eg. BTCUSDT |
| side | ENUM | NO | BUY or SELL |
| startTime | LONG | NO | in milliseconds eg.1641522717552 |
| endTime | LONG | NO | in milliseconds eg.1641522526562 |
| page | INT | NO | Default is 1 |
| pageSize | INT | NO | MIN 1, MAX 100; Default 100 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Query Sub Orders (USER_DATA)
Response:
{
"total": 1,
"executedQty": "1.000",
"executedAmt": "3229.44000000",
"subOrders": [
{
"algoId": 13723,
"orderId": 8389765519993908929,
"orderStatus": "FILLED",
"executedQty": "1.000",
"executedAmt": "3229.44000000",
"feeAmt": "-1.61471999",
"feeAsset": "USDT",
"bookTime": 1649319001964,
"avgPrice": "3229.44",
"side": "SELL",
"symbol": "ETHUSDT",
"subId": 1,
"timeInForce": "IMMEDIATE_OR_CANCEL",
"origQty": "1.000"
}
]
}
GET /sapi/v1/algo/futures/subOrders (HMAC SHA256)
Get respective sub orders for a specified algoId
Weight(IP): 1
Noted:
- You need to enable
Futures Trading Permissionfor the api key which requests this endpoint. - Base URL: https://api.binance.com
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| algoId | LONG | YES | |
| page | INT | NO | Default is 1 |
| pageSize | INT | NO | MIN 1, MAX 100; Default 100 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Portfolio Margin Endpoints
The Binance Portfolio Margin Program is a cross-asset margin program supporting consolidated margin balance across trading products with over 200+ effective crypto collaterals. It is designed for professional traders, market makers, and institutional users looking to actively trade & hedge cross-asset and optimize risk-management in a consolidated setup.
Only Portfolio Margin Account is accessible to these endpoints. To enroll, kindly refer to: How to Enroll into the Binance Portfolio Margin Program
Get Portfolio Margin Account Info (USER_DATA)
Response:
{
"uniMMR": "5167.92171923", // Portfolio margin account maintenance margin rate
"accountEquity": "122607.35137903", // Account equity, unit:USD
"accountMaintMargin": "23.72469206", // Portfolio margin account maintenance margin, unit:USD
"accountStatus": "NORMAL" // Portfolio margin account status:"NORMAL", "MARGIN_CALL", "SUPPLY_MARGIN", "REDUCE_ONLY", "ACTIVE_LIQUIDATION", "FORCE_LIQUIDATION", "BANKRUPTED"
}
GET /sapi/v1/portfolio/account (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Portfolio Margin Collateral Rate (MARKET_DATA)
Response:
[
{
"asset": "USDC",
"collateralRate": "1.0000"
},
{
"asset": "BUSD",
"collateralRate": "1.0000"
},
]
GET /sapi/v1/portfolio/collateralRate
Portfolio Margin Collateral Rate
Weight(IP): 50
Parameters: None
Query Portfolio Margin Bankruptcy Loan Amount (USER_DATA)
Response:
{
"asset": "BUSD",
"amount": "579.45", // portfolio margin bankruptcy loan amount in BUSD
}
GET /sapi/v1/portfolio/pmLoan
Query Portfolio Margin Bankruptcy Loan Amount
Weight(UID): 500
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- If there’s no portfolio margin bankruptcy loan, the amount would be 0
Portfolio Margin Bankruptcy Loan Repay
Response:
{
"tranId": 58203331886213504
}
POST /sapi/v1/portfolio/repay
Repay Portfolio Margin Bankruptcy Loan
Weight(UID): 3000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
BLVT Endpoints
Get BLVT Info (MARKET_DATA)
Response:
[
{
"tokenName": "BTCDOWN",
"description": "3X Short Bitcoin Token",
"underlying": "BTC",
"tokenIssued": "717953.95",
"basket": "-821.474 BTCUSDT Futures",
"currentBaskets":[
{
"symbol":"BTCUSDT",
"amount":"-1183.984",
"notionalValue":"-22871089.96704"
}
],
"nav": "4.79",
"realLeverage": "-2.316",
"fundingRate": "0.001020",
"dailyManagementFee": "0.0001",
"purchaseFeePct": "0.0010",
"dailyPurchaseLimit": "100000.00",
"redeemFeePct": "0.0010",
"dailyRedeemLimit": "1000000.00",
"timestamp":1583127900000
},
{
"tokenName": "LINKUP",
"description": "3X LONG ChainLink Token",
"underlying": "LINK",
"tokenIssued": "163846.99",
"basket": "417288.870 LINKUSDT Futures",
"currentBaskets":[
{
"symbol":"LINKUSDT",
"amount":"1640883.83",
"notionalValue":"22596611.22293"
}
],
"nav": "9.60",
"realLeverage": "2.597",
"fundingRate": "-0.000917",
"dailyManagementFee": "0.0001",
"purchaseFeePct": "0.0010",
"dailyPurchaseLimit": "100000.00",
"redeemFeePct": "0.0010",
"dailyRedeemLimit": "1000000.00",
"timestamp":1583127900000
}
]
GET /sapi/v1/blvt/tokenInfo
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| tokenName | STRING | NO | BTCDOWN, BTCUP |
Historical BLVT NAV Kline/Candlestick
The BLVT NAV system is based on Binance Futures, so the endpoint is based on fapi
Please go to here to check the endpoint and operate in accordance with the fapi usage specifications.
Subscribe BLVT (USER_DATA)
Response:
{
"id": 123,
"status": "S", // S, P, and F for "success", "pending", and "failure"
"tokenName": "LINKUP",
"amount": "0.95590905", // subscribed token amount
"cost": "9.99999995", // subscription cost in usdt
"timestamp":1600249972899
}
POST /sapi/v1/blvt/subscribe (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| tokenName | STRING | YES | BTCDOWN, BTCUP |
| cost | DECIMAL | YES | spot balance |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- You need to open
Enable Spot&Margin Tradingpermission for the API Key which requests this endpoint.
Query Subscription Record (USER_DATA)
Response:
[
{
"id": 1,
"tokenName": "LINKUP",
"amount": "0.54216292", // Subscription amount
"nav": "18.42621386", // NAV price of subscription
"fee": "0.00999000", // Subscription fee in usdt
"totalCharge": "9.99999991", // Subscription cost in usdt
"timestamp":1599127217916
}
]
GET /sapi/v1/blvt/subscribe/record (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| tokenName | STRING | NO | BTCDOWN, BTCUP |
| id | LONG | NO | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | default 1000, max 1000 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- Only the data of the latest 90 days is available
Redeem BLVT (USER_DATA)
Response:
{
"id": 123,
"status": "S", // S, P, and F for "success", "pending", and "failure"
"tokenName": "LINKUP",
"redeemAmount": "0.95590905", // Redemption token amount
"amount": "10.05022099", // Redemption value in usdt
"timestamp":1600250279614
}
POST /sapi/v1/blvt/redeem (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| tokenName | STRING | YES | BTCDOWN, BTCUP |
| amount | DECIMAL | YES | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- You need to open
Enable Spot&Margin Tradingpermission for the API Key which requests this endpoint.
Query Redemption Record (USER_DATA)
Response:
[
{
"id": 1,
"tokenName": "LINKUP",
"amount": "0.54216292", // Redemption amount
"nav": "18.36345064", // NAV of redemption
"fee": "0.00995598", // Reemption fee
"netProceed": "9.94602604", // Net redemption value in usdt
"timestamp":1599128003050
}
]
GET /sapi/v1/blvt/redeem/record (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| tokenName | STRING | NO | BTCDOWN, BTCUP |
| id | LONG | NO | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | default 1000, max 1000 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- Only the data of the latest 90 days is available
Get BLVT User Limit Info (USER_DATA)
Response:
[
{
"tokenName": "LINKUP",
"userDailyTotalPurchaseLimit": "1000", // USDT
"userDailyTotalRedeemLimit": "1000" // USDT
},
{
"tokenName": "LINKDOWN",
"userDailyTotalPurchaseLimit": "1000", // USDT
"userDailyTotalRedeemLimit": "50000" // USDT
}
]
GET /sapi/v1/blvt/userLimit (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| tokenName | STRING | NO | BTCDOWN, BTCUP |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Websocket BLVT Info Streams
Payload:
{
"e":"nav", // Event type
"E":1600245286355, // Event time
"s":"TRXDOWN", // BLVT name
"m":74164.75496502663, // Token issued
"b":[ // Baskets
{
"s":"TRXUSDT", // futures symbol
"n":-87988261 // position
}
],
"n":14.78454447, // BLVT NAV
"l":2.1786579638117898, // Real leverage
"t":3, // Target leverage
"f":-0.0048925 // Funding ratio
}
Stream Name: <tokenName>@tokenNav
- Note: You should use the base url:
wss://nbstream.binance.com/lvt-pfor this stream - Note: tokenName must be uppercase, e.g. "TRXDOWN@tokenNav"
Update Speed: 3s
Websocket BLVT NAV Kline/Candlestick Streams
Payload:
{
"e":"kline", // Event name
"E":1600243159447, // Event time
"s":"TRXDOWN", // BLVT name
"k":{
"t":1600243140000, // Kline start time
"T":1600243199999, // Kline close time
"s":"TRXDOWN", // BLVT name
"i":"1m", // Interval
"f":1600243140484, // First NAV update time
"L":1600243159424, // Last NAV update time
"o":"14.56800297", // Open NAV price
"c":"14.59766270", // CLose NAV price
"h":"14.63325437", // Highest NAV price
"l":"14.56207102", // Lowest NAV price
"v":"2.22524220", // Real leverage
"n":33, // Number of NAV update
"x":false, // Ignore
"q":"0", // Ignore
"V":"73.42663923", // Ignore
"Q":"0", // Ignore
"B":"0" // Ignore
}
}
Stream Name: <tokenName>@nav_kline_<interval>
- Note: You should use the base url:
wss://nbstream.binance.com/lvt-pfor this stream - Note: tokenName must be uppercase, e.g. "TRXDOWN@nav_kline_1d"
Update Speed: 300ms
Kline/Candlestick chart intervals:
m -> minutes; h -> hours; d -> days; w -> weeks; M -> months
- 1m
- 3m
- 5m
- 15m
- 30m
- 1h
- 2h
- 4h
- 6h
- 8h
- 12h
- 1d
- 3d
- 1w
- 1M
BSwap Endpoints
- The endpoints below allow you to interact with BSwap.
- For more information on this, please refer to the BSwap page
List All Swap Pools (MARKET_DATA)
Response:
[
{
"poolId": 2,
"poolName": "BUSD/USDT",
"assets": [
"BUSD",
"USDT"
]
},
{
"poolId": 3,
"poolName": "BUSD/DAI",
"assets": [
"BUSD",
"DAI"
]
},
{
"poolId": 4,
"poolName": "USDT/DAI",
"assets": [
"USDT",
"DAI"
]
}
]
GET /sapi/v1/bswap/pools
Get metadata about all swap pools.
Weight(IP): 1
Parameters:
None
Get liquidity information of a pool (USER_DATA)
Response:
[
{
"poolId": 2,
"poolNmae": "BUSD/USDT",
"updateTime": 1565769342148,
"liquidity": {
"BUSD": 100000315.79,
"USDT": 99999245.54
},
"share": {
"shareAmount": 12415,
"sharePercentage": 0.00006207,
"asset": {
"BUSD": 6207.02,
"USDT": 6206.95
}
}
}
]
GET /sapi/v1/bswap/liquidity (HMAC SHA256)
Get liquidity information and user share of a pool.
Weight(IP):
1 for one pool
10 when the poolId parameter is omitted
Rate Limit: 3/1s per account and per pool
Parameter:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| poolId | LONG | NO | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Add Liquidity (TRADE)
Response:
{
"operationId": 12341
}
POST /sapi/v1/bswap/liquidityAdd (HMAC SHA256)
Add liquidity to a pool.
Weight(UID): 1000 (Additional: 1 request every three seconds)
Parameter:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| poolId | LONG | YES | |
| type | STRING | NO | "SINGLE" to add a single token; "COMBINATION" to add dual tokens. Default "SINGLE" |
| asset | STRING | YES | |
| quantity | DECIMAL | YES | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- You need to open
Enable Spot & Margin Tradingpermission for the API Key which requests this endpoint.
Remove Liquidity (TRADE)
Response:
{
"operationId": 12341
}
POST /sapi/v1/bswap/liquidityRemove (HMAC SHA256)
Remove liquidity from a pool, type include SINGLE and COMBINATION, asset is mandatory for single asset removal
Weight(UID): 1000 (Additional: 1 request every three seconds)
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| poolId | LONG | YES | |
| type | STRING | YES | SINGLE for single asset removal, COMBINATION for combination of all coins removal |
| asset | LIST | NO | Mandatory for single asset removal |
| shareAmount | DECIMAL | YES | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- You need to open
Enable Spot & Margin Tradingpermission for the API Key which requests this endpoint.
Get Liquidity Operation Record (USER_DATA)
Response:
[
{
"operationId": 12341,
"poolId": 2,
"poolName": "BUSD/USDT",
"operation": "ADD", // "ADD" or "REMOVE"
"status": 1, // 0: pending, 1: success, 2: failed
"updateTime": 1565769342148,
"shareAmount": "10.1"
}
]
GET /sapi/v1/bswap/liquidityOps (HMAC SHA256)
Get liquidity operation (add/remove) records.
Weight(UID): 3000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| operationId | LONG | NO | |
| poolId | LONG | NO | |
| operation | ENUM | NO | ADD or REMOVE |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | LONG | NO | default 3, max 100 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Request Quote (USER_DATA)
Response:
{
"quoteAsset": "USDT",
"baseAsset": "BUSD",
"quoteQty": 300000,
"baseQty": 299975,
"price": 1.00008334,
"slippage": 0.00007245,
"fee": 120
}
GET /sapi/v1/bswap/quote (HMAC SHA256)
Request a quote for swap quote asset (selling asset) for base asset (buying asset), essentially price/exchange rates.
quoteQty is quantity of quote asset (to sell).
Please be noted the quote is for reference only, the actual price will change as the liquidity changes, it's recommended to swap immediate after request a quote for slippage prevention.
Weight(UID): 150
Rate Limit: 3/1s per account and per pool
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| quoteAsset | STRING | YES | |
| baseAsset | STRING | YES | |
| quoteQty | DECIMAL | YES | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Swap (TRADE)
Response:
{
"swapId": 2314
}
POST /sapi/v1/bswap/swap (HMAC SHA256)
Swap quoteAsset for baseAsset.
Weight(UID): 1000 (Additional: 1 request every two seconds)
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| quoteAsset | STRING | YES | |
| baseAsset | STRING | YES | |
| quoteQty | DECIMAL | YES | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- You need to open
Enable Spot & Margin Tradingpermission for the API Key which requests this endpoint.
Get Swap History (USER_DATA)
Response:
[
{
"swapId": 2314,
"swapTime": 1565770342148,
"status": 0, // 0: pending, 1: success, 2: failed
"quoteAsset": "USDT",
"baseAsset": "BUSD",
"quoteQty": 300000,
"baseQty": 299975,
"price": 1.00008334,
"fee": 120
}
]
GET /sapi/v1/bswap/swap (HMAC SHA256)
Get swap history.
Weight(UID): 3000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| swapId | LONG | NO | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| status | INT | NO | 0: pending for swap, 1: success, 2: failed |
| quoteAsset | STRING | NO | |
| baseAsset | STRING | NO | |
| limit | LONG | NO | default 3, max 100 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Get Pool Configure (USER_DATA)
Response:
[
{
"poolId": 2,
"poolNmae": "BUSD/USDT",
"updateTime": 1565769342148,
"liquidity": {
"constantA": 2000, //"NA" if pool is an innovation pool
"minRedeemShare": 0.1,
"slippageTolerance":0.2 //The swap proceeds only when the slippage is within the set range
},
"assetConfigure":{
"BUSD": {
"minAdd":10,
"maxAdd": 20,
"minSwap": 10,
"maxSwap": 30
},
"USDT": {
"minAdd":10,
"maxAdd": 20,
"minSwap": 10,
"maxSwap": 30
}
}
}
]
GET /sapi/v1/bswap/poolConfigure (HMAC SHA256)
Weight(IP): 150
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| poolId | LONG | NO | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Add Liquidity Preview (USER_DATA)
Response:
{
"quoteAsset": "USDT",
"baseAsset": "BUSD", //Display when type is "COMBINATION"
"quoteAmt": 300000,
"baseAmt": 299975, // Display when type is "COMBINATION"
"price": 1.00008334,
"share":1.23,
"slippage": 0.00007245, //Display when type is "SINGLE"
"fee": 120, //Display when type is "SINGLE"
}
GET /sapi/v1/bswap/addLiquidityPreview (HMAC SHA256)
Calculate expected share amount for adding liquidity in single or dual token.
Weight(IP): 150
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| poolId | LONG | YES | |
| type | STRING | YES | "SINGLE" for adding a single token;"COMBINATION" for adding dual tokens |
| quoteAsset | STRING | YES | |
| quoteQty | DECIMAL | YES | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Remove Liquidity Preview (USER_DATA)
Response:
{
"quoteAsset": "USDT",
"baseAsset": "BUSD", //Display when type is "COMBINATION"
"quoteAmt": 300000,
"baseAmt": 299975, //Display when type is "COMBINATION"
"price": 1.00008334,
"slippage": 0.00007245, //Display when type is "SINGLE"
"fee": 120 //Display when type is "SINGLE"
}
GET /sapi/v1/bswap/removeLiquidityPreview (HMAC SHA256)
Calculate the expected asset amount of single token redemption or dual token redemption.
Weight(IP): 150
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| poolId | LONG | YES | |
| type | STRING | YES | Type is "SINGLE", remove and obtain a single token;Type is "COMBINATION", remove and obtain dual token. |
| quoteAsset | STRING | YES | |
| shareAmount | DECIMAL | YES | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Get Unclaimed Rewards Record (USER_DATA)
Response:
{
"totalUnclaimedRewards": {
"BUSD": 100000315.79,
"BNB": 0.00000001,
"USDT": 0.00000002
},
"details":{
"BNB/USDT":{
"BUSD": 100000315.79,
"USDT": 0.00000002
},
"BNB/BTC":{
"BNB": 0.00000001
}
}
}
GET /sapi/v1/bswap/unclaimedRewards (HMAC SHA256)
Get unclaimed rewards record.
Weight(UID): 1000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| type | INT | NO | 0: Swap rewards,1:Liquidity rewards, default to 0 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Claim Rewards (TRADE)
Response:
{
"success":true
}
POST /sapi/v1/bswap/claimRewards (HMAC SHA256)
Claim swap rewards or liquidity rewards
Weight(UID): 1000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| type | INT | NO | 0: Swap rewards,1:Liquidity rewards, default to 0 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- You need to open
Enable Spot & Margin Tradingpermission for the API Key which requests this endpoint.
Get Claimed History (USER_DATA)
Response:
[
{
"poolId":52,
"poolName":"BNB/USDT",
"assetRewards": "BNB",
"claimTime":1565769342148,
"claimAmount":0.00000023,
"status":1 // 0: pending, 1: success
}
]
GET /sapi/v1/bswap/claimedHistory (HMAC SHA256)
Get history of claimed rewards.
Weight(UID): 1000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| poolId | LONG | NO | |
| assetRewards | STRING | NO | |
| type | INT | NO | 0: Swap rewards,1:Liquidity rewards, default to 0 |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | LONG | NO | Default 3, max 100 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Fiat Endpoints
Get Fiat Deposit/Withdraw History (USER_DATA)
Response:
{
"code": "000000",
"message": "success",
"data": [
{
"orderNo":"7d76d611-0568-4f43-afb6-24cac7767365",
"fiatCurrency": "BRL",
"indicatedAmount": "10.00",
"amount": "10.00",
"totalFee": "0.00", // Trade fee
"method": "BankAccount", // Trade method
"status": "Expired", // Processing, Failed, Successful, Finished, Refunding, Refunded, Refund Failed, Order Partial credit Stopped
"createTime": 1626144956000,
"updateTime": 1626400907000
}
],
"total": 1,
"success": true
}
GET /sapi/v1/fiat/orders (HMAC SHA256)
Weight(UID): 90000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| transactionType | STRING | YES | 0-deposit,1-withdraw |
| beginTime | LONG | NO | |
| endTime | LONG | NO | |
| page | INT | NO | default 1 |
| rows | INT | NO | default 100, max 500 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- If beginTime and endTime are not sent, the recent 30-day data will be returned.
Get Fiat Payments History (USER_DATA)
Response:
{
"code": "000000",
"message": "success",
"data": [
{
"orderNo": "353fca443f06466db0c4dc89f94f027a",
"sourceAmount": "20.0", // Fiat trade amount
"fiatCurrency": "EUR", // Fiat token
"obtainAmount": "4.462", // Crypto trade amount
"cryptoCurrency": "LUNA", // Crypto token
"totalFee": "0.2", // Trade fee
"price": "4.437472",
"status": "Failed", // Processing, Completed, Failed, Refunded
"paymentMethod": "Credit Card",
"createTime": 1624529919000,
"updateTime": 1624529919000
}
],
"total": 1,
"success": true
}
GET /sapi/v1/fiat/payments (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| transactionType | STRING | YES | 0-buy,1-sell |
| beginTime | LONG | NO | |
| endTime | LONG | NO | |
| page | INT | NO | default 1 |
| rows | INT | NO | default 100, max 500 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- If beginTime and endTime are not sent, the recent 30-day data will be returned.
- paymentMethod: Only when requesting payments history for buy (transactionType=0), response contains paymentMethod representing the way of purchase. Now we have:
- Cash Balance
- Credit Card
- Online Banking
- Bank Transfer
C2C Endpoints
Get C2C Trade History (USER_DATA)
Response:
{
"code": "000000",
"message": "success",
"data": [
{
"orderNumber":"20219644646554779648",
"advNo": "11218246497340923904",
"tradeType": "SELL",
"asset": "BUSD",
"fiat": "CNY",
"fiatSymbol": "¥",
"amount": "5000.00000000", // Quantity (in Crypto)
"totalPrice": "33400.00000000",
"unitPrice": "6.68", // Unit Price (in Fiat)
"orderStatus": "COMPLETED", // PENDING, TRADING, BUYER_PAYED, DISTRIBUTING, COMPLETED, IN_APPEAL, CANCELLED, CANCELLED_BY_SYSTEM
"createTime": 1619361369000,
"commission": "0", // Transaction Fee (in Crypto)
"counterPartNickName": "ab***",
"advertisementRole": "TAKER"
}
],
"total": 1,
"success": true
}
GET /sapi/v1/c2c/orderMatch/listUserOrderHistory (HMAC SHA256)
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| tradeType | STRING | YES | BUY, SELL |
| startTimestamp | LONG | NO | |
| endTimestamp | LONG | NO | |
| page | INT | NO | default 1 |
| rows | INT | NO | default 100, max 100 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- If startTimestamp and endTimestamp are not sent, the recent 30-day data will be returned.
- The max interval between startTimestamp and endTimestamp is 30 days.
- Only the last 6 months of data can be retrieved. To view the complete P2P order history, you can download it from https://c2c.binance.com/en/fiatOrder
Crypto Loans Endpoints
Get Crypto Loans Income History (USER_DATA)
Response:
[
{
"asset": "BUSD",
"type": "borrowIn",
"amount": "100",
"timestamp": 1633771139847,
"tranId": "80423589583"
},
{
"asset": "BUSD",
"type": "borrowIn",
"amount": "100",
"timestamp": 1634638371496,
"tranId": "81685123491"
}
]
GET /sapi/v1/loan/income (HMAC SHA256)
Weight(UID): 6000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| asset | STRING | NO | |
| type | STRING | NO | All types will be returned by default. Enum:borrowIn ,collateralSpent, repayAmount, collateralReturn(Collateral return after repayment), addCollateral, removeCollateral, collateralReturnAfterLiquidation |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | default 20, max 100 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- If startTime and endTime are not sent, the recent 7-day data will be returned.
- The max interval between startTime and endTime is 30 days.
Borrow - Crypto Loan Borrow (TRADE)
Response:
{
"loanCoin": "BUSD",
"loanAmount": "100.5",
"collateralCoin": "BNB",
"collateralAmount": "50.5",
"hourlyInterestRate": "0.001234",
"orderId": "100000001"
}
POST /sapi/v1/loan/borrow
Weight(UID): 6000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| loanCoin | STRING | YES | |
| loanAmount | DECIMAL | NO | Mandatory when collateralAmount is empty |
| collateralCoin | STRING | YES | |
| collateralAmount | DECIMAL | NO | Mandatory when loanAmount is empty |
| loanTerm | INT | YES | 7/14/30/90/180 days |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Borrow - Get Loan Borrow History (USER_DATA)
Response:
{
"rows": [
{
"orderId": 100000001,
"loanCoin": "BUSD",
"initialLoanAmount": "10000",
"hourlyInterestRate": "0.000057"
"loanTerm": "7"
"collateralCoin": "BNB",
"initialCollateralAmount": "49.27565492"
"borrowTime": 1575018510000
"status": "Repaid" // Accruing_Interest, Overdue, Liquidating, Repaying, Repaid, Liquidated, Pending, Failed
}
],
"total": 1
}
GET /sapi/v1/loan/borrow/history
Weight(IP): 400
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| orderId | LONG | NO | orderId in POST /sapi/v1/loan/borrow |
| loanCoin | STRING | NO | |
| collateralCoin | STRING | NO | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| current | LONG | NO | Current querying page. Start from 1; default: 1; max: 1000. |
| limit | LONG | NO | Default: 10; max: 100. |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- If startTime and endTime are not sent, the recent 90-day data will be returned.
- The max interval between startTime and endTime is 180 days.
Borrow - Get Loan Ongoing Orders (USER_DATA)
Response:
{
"rows": [
{
"orderId": 100000001,
"loanCoin": "BUSD",
"totalDebt": "10000",
"residualInterest":"10.27687923"
"collateralCoin": "BNB",
"collateralAmount": "49.27565492"
"currentLTV": "0.57"
"expirationTime": 1575018510000
}
],
"total": 1
}
GET /sapi/v1/loan/ongoing/orders
Weight(IP): 400
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| orderId | LONG | NO | orderId in POST /sapi/v1/loan/borrow |
| loanCoin | STRING | NO | |
| collateralCoin | STRING | NO | |
| current | LONG | NO | Current querying page. Start from 1; default: 1; max: 1000 |
| limit | LONG | NO | Default: 10; max: 100 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Repay - Crypto Loan Repay (TRADE)
Response:
{
"loanCoin": "BUSD"
"remainingPrincipal": "100.5"
"remainingInterest": "0"
"collateralCoin": "BNB"
"remainingCollateral": "5.253"
"currentLTV": "0.25"
"repayStatus": "Repaid" // Repaid, Repaying
}
or
{
"loanCoin": "BUSD"
"collateralCoin": "BNB"
"repayStatus": "Repaying" // Repaid, Repaying
}
POST /sapi/v1/loan/repay
Weight(UID): 6000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| orderId | LONG | YES | |
| amount | DECIMAL | YES | |
| type | INT | NO | Default: 1. 1 for "repay with borrowed coin"; 2 for "repay with collateral". |
| collateralReturn | BOOLEAN | NO | Default: TRUE. TRUE: Return extra collateral to spot account; FALSE: Keep extra collateral in the order. |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Repay - Get Loan Repayment History (USER_DATA)
Response:
{
"rows": [
{
"loanCoin": "BUSD",
"repayAmount": "10000",
"collateralCoin": "BNB",
"collateralUsed": "0"
"collateralReturn": "49.27565492"
"repayType": "1" // 1 for "repay with borrowed coin", 2 for "repay with collateral"
"repayStatus": "Repaid" // Repaid, Repaying, Failed
"repayTime": 1575018510000
"orderId": 756783308056935434
}
],
"total": 1
}
GET /sapi/v1/loan/repay/history
Weight(IP): 400
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| orderId | LONG | NO | |
| loanCoin | STRING | NO | |
| collateralCoin | STRING | NO | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| current | LONG | NO | Current querying page. Start from 1; default: 1; max: 1000 |
| limit | LONG | NO | Default: 10; max: 100 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- If startTime and endTime are not sent, the recent 90-day data will be returned.
- The max interval between startTime and endTime is 180 days.
Adjust LTV - Crypto Loan Adjust LTV (TRADE)
Response:
{
"loanCoin": "BUSD",
"collateralCoin": "BNB",
"direction": "ADDITIONAL",
"amount": "5.235",
"currentLTV": "0.52"
}
POST /sapi/v1/loan/adjust/ltv
Weight(UID): 6000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| orderId | LONG | YES | |
| amount | DECIMAL | YES | |
| direction | ENUM | YES | "ADDITIONAL", "REDUCED" |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Adjust LTV - Get Loan LTV Adjustment History (USER_DATA)
Response:
{
"rows": [
{
"loanCoin": "BUSD",
"collateralCoin": "BNB",
"direction": "ADDITIONAL",
"amount": "5.235",
"preLTV": "0.78",
"afterLTV": "0.56",
"adjustTime": 1575018510000,
"orderId": 756783308056935434
}
],
"total": 1
}
GET /sapi/v1/loan/ltv/adjustment/history
Weight(IP): 400
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| orderId | LONG | NO | |
| loanCoin | STRING | NO | |
| collateralCoin | STRING | NO | |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| current | LONG | NO | Current querying page. Start from 1; default: 1; max: 1000 |
| limit | LONG | NO | Default: 10; max: 100 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- If startTime and endTime are not sent, the recent 90-day data will be returned.
- The max interval between startTime and endTime is 180 days.
Get Loanable Assets Data (USER_DATA)
Response:
{
"rows": [
{
"loanCoin": "BUSD",
"_7dHourlyInterestRate": "0.00000491",
"_7dDailyInterestRate": "0.000118",
"_14dHourlyInterestRate": "0.00000491",
"_14dDailyInterestRate": "0.000118",
"_30dHourlyInterestRate": "0.00000567",
"_30dDailyInterestRate": "0.000136",
"_90dHourlyInterestRate": "0.00000596",
"_90dDailyInterestRate": "0.000143",
"_180dHourlyInterestRate": "0.00000631",
"_180dDailyInterestRate": "0.000151",
"minLimit": "100"
"maxLimit": "1000000"
"vipLevel": 1
}
],
"total": 1
}
GET /sapi/v1/loan/loanable/data
Get interest rate and borrow limit of loanable assets. The borrow limit is shown in USD value.
Weight(IP): 400
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| loanCoin | STRING | NO | |
| vipLevel | INT | NO | Default: user's vip level. Send "-1" to check specified configuration |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Get Collateral Assets Data (USER_DATA)
Response:
{
"rows": [
{
"collateralCoin": "BNB",
"initialLTV": "0.65",
"marginCallLTV": "0.75",
"liquidationLTV": "0.83",
"maxLimit": "1000000"
"vipLevel": 1
}
],
"total": 1
}
GET /sapi/v1/loan/collateral/data
Get LTV information and collateral limit of collateral assets. The collateral limit is shown in USD value.
Weight(IP): 400
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| collateralCoin | STRING | NO | |
| vipLevel | INT | NO | Default: user's vip level. Send "-1" to check specified configuration |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Check Collateral Repay Rate (USER_DATA)
Response:
{
"loanlCoin": "BUSD",
"collateralCoin": "BNB",
"repayAmount": "1000",
"rate": "300.36781234" // rate of collateral coin/loan coin
}
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.
Weight(IP): 6000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| loanCoin | STRING | YES | |
| collateralCoin | STRING | YES | |
| repayAmount | DECIMAL | YES | repay amount of loanCoin |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Crypto Loan Customize Margin Call (TRADE)
Response:
{
"rows": [
{
"orderId": "100000001"
"collateralCoin": "BNB"
"preMarginCall": "0.8"
"afterMarginCall": "0.7"
"customizeTime": 1575018510000
}
],
"total": 1
}
POST /sapi/v1/loan/customize/margin_call
Customize margin call for ongoing orders only.
Weight(UID): 6000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| orderId | LONG | NO | Mandatory when collateralCoin is empty. Send either orderId or collateralCoin, if both parameters are sent, take orderId only. |
| collateralCoin | STRING | NO | Mandatory when orderID is empty. Send either orderId or collateralCoin, if both parameters are sent, take orderId only. |
| marginCall | DECIMAL | YES | |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Pay Endpoints
Get Pay Trade History (USER_DATA)
Response:
{
"code": "000000",
"message": "success",
"data": [
{
"orderType": "C2C", // Enum:PAY(C2B Merchant Acquiring Payment), PAY_REFUND(C2B Merchant Acquiring Payment,refund), C2C(C2C Transfer Payment),CRYPTO_BOX(Crypto box), CRYPTO_BOX_RF(Crypto Box, refund), C2C_HOLDING(Transfer to new Binance user), C2C_HOLDING_RF(Transfer to new Binance user,refund), PAYOUT(B2C Disbursement Payment)
"transactionId": "M_P_71505104267788288",
"transactionTime": 1610090460133, //trade timestamp
"amount": "23.72469206", //order amount(up to 8 decimal places), positive is income, negative is expenditure
"currency": "BNB",
"walletType": 1, // 1 for funding wallet and 2 for spot wallet
"fundsDetail": [ // details
{
"currency": "USDT", //asset
"amount": "1.2"
},
{
"currency": "ETH",
"amount": "0.0001"
}
]
}
],
"success": true
}
GET /sapi/v1/pay/transactions (HMAC SHA256)
Weight(UID): 3000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | default 100, max 100 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- If startTime and endTime are not sent, the recent 90 days' data will be returned.
- The max interval between startTime and endTime is 90 days.
- Support for querying orders within the last 18 months.
Convert Endpoints
Get Convert Trade History (USER_DATA)
Response:
{
"list": [
{
"quoteId": "f3b91c525b2644c7bc1e1cd31b6e1aa6",
"orderId": 940708407462087195,
"orderStatus": "SUCCESS", // order status
"fromAsset": "USDT", // from asset
"fromAmount": "20", // from amount
"toAsset": "BNB", // to asset
"toAmount": "0.06154036", // to amount
"ratio": "0.00307702", // price ratio
"inverseRatio": "324.99", // inverse price
"createTime": 1624248872184
}
],
"startTime": 1623824139000,
"endTime": 1626416139000,
"limit": 100,
"moreData": false
}
GET /sapi/v1/convert/tradeFlow (HMAC SHA256)
Weight(UID): 3000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| startTime | LONG | YES | |
| endTime | LONG | YES | |
| limit | INT | NO | Default 100, Max 1000 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- The max interval between startTime and endTime is 30 days.
Rebate Endpoints
Get Spot Rebate History Records (USER_DATA)
Response:
{
"status": "OK",
"type": "GENERAL",
"code": "000000000",
"data": {
"page": 1, // current page
"totalRecords": 2, // total records
"totalPageNum": 1, // total pages
"data": [
{
"asset": "USDT", // rebate asset
"type": 1, // rebate type:1 is commission rebate,2 is referral kickback
"amount": "0.0001126",
"updateTime": 1637651320000
},
{
"asset": "ETH",
"type": 1,
"amount": "0.00000056",
"updateTime": 1637928379000
}
]
}
}
GET /sapi/v1/rebate/taxQuery (HMAC SHA256)
Weight(UID): 12000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| page | INT | NO | Default 1 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- The max interval between startTime and endTime is 30 days.
- If startTime and endTime are not sent, the recent 7 days' data will be returned.
- The earliest startTime is supported on June 10, 2020
NFT Endpoints
Get NFT Transaction History (USER_DATA)
Response:
{
"total": 2, //total records
"list": [
{
"orderNo": "1_470502070600699904", // 0: purchase order, 1: sell order, 2: royalty income, 3: primary market order, 4: mint fee
"tokens": [
{
"network": "BSC", // NFT Network
"tokenId": "216000000496", // NFT Token ID
"contractAddress": "MYSTERY_BOX0000087" // NFT Contract Address
}
],
"tradeTime": 1626941236000,
"tradeAmount": "19.60000000",
"tradeCurrency": "BNB"
},
{
"orderNo": "1_488306442479116288",
"tokens": [
{
"network": "BSC",
"tokenId": "132900000007",
"contractAddress": "0xAf12111a592e408DAbC740849fcd5e68629D9fb6"
}
],
"tradeTime": 1631186130000,
"tradeAmount": "192.00000000",
"tradeCurrency": "BNB"
}
]
}
GET /sapi/v1/nft/history/transactions (HMAC SHA256)
Weight(UID): 3000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| orderType | INT | YES | 0: purchase order, 1: sell order, 2: royalty income, 3: primary market order, 4: mint fee |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | Default 50, Max 50 |
| page | INT | NO | Default 1 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- The max interval between startTime and endTime is 90 days.
- If startTime and endTime are not sent, the recent 7 days' data will be returned.
Get NFT Deposit History(USER_DATA)
Response:
{
"total": 2,
"list": [
{
"network": "ETH", // NFT Network
"txID": null, // Transaction ID
"contractAdrress": "0xe507c961ee127d4439977a61af39c34eafee0dc6", // NFT Contract Address
"tokenId": "10014", // NFT Token ID
"timestamp": 1629986047000
},
{
"network": "BSC",
"txID": null,
"contractAdrress": "0x058451b463bab04f52c0799d55c4094f507acfa9",
"tokenId": "10016",
"timestamp": 1630083581000
}
]
}
GET /sapi/v1/nft/history/deposit (HMAC SHA256)
Weight(UID): 3000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | Default 50, Max 50 |
| page | INT | NO | Default 1 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- The max interval between startTime and endTime is 90 days.
- If startTime and endTime are not sent, the recent 7 days' data will be returned.
Get NFT Withdraw History (USER_DATA)
Response:
{
"total": 178,
"list": [
{
"network": "ETH",
"txID": "0x2be5eed31d787fdb4880bc631c8e76bdfb6150e137f5cf1732e0416ea206f57f",
"contractAdrress": "0xe507c961ee127d4439977a61af39c34eafee0dc6", // NFT Contract Address
"tokenId": "1000001247", // NFT Token ID
"timestamp": 1633674433000,
"fee": 0.1, // Withdraw Fee
"feeAsset": "ETH" // Asset
},
{
"network": "ETH",
"txID": "0x3b3aea5c0a4faccd6f306641e6deb9713ab229ac233be3be227f580311e4362a",
"contractAdrress": "0xe507c961ee127d4439977a61af39c34eafee0dc6",
"tokenId": "40000030",
"timestamp": 1633677022000,
"fee": 0.1,
"feeAsset": "ETH"
}
]
}
GET /sapi/v1/nft/history/withdraw (HMAC SHA256)
Weight(UID): 3000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | Default 50, Max 50 |
| page | INT | NO | Default 1 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
- The max interval between startTime and endTime is 90 days.
- If startTime and endTime are not sent, the recent 7 days' data will be returned.
Get NFT Asset (USER_DATA)
Response:
{
"total": 347,
"list": [
{
"network": "BSC", // NFT Network
"contractAddress": "REGULAR11234567891779", // NFT Contract Address
"tokenId": "100900000017" // NFT Token ID
},
{
"network": "BSC",
"contractAddress": "SSMDQ8W59",
"tokenId": "200500000011"
},
{
"network": "BSC",
"contractAddress": "SSMDQ8W59",
"tokenId": "200500000019"
}
]
}
GET /sapi/v1/nft/user/getAsset (HMAC SHA256)
Weight(UID): 3000
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| limit | INT | NO | Default 50, Max 50 |
| page | INT | NO | Default 1 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Binance Code Endpoints
Binance Code (or Binance Gift Card Code) allows simple crypto transfer and exchange through secured and prepaid codes that give access to crypto assets. Binance Code API solution is to facilitate instant creation, redemption and value-checking for Binance Code. Binance Code product feature consists of two parts: "Reference Number" and "Binance Code". The Reference Number can be circulated in public, and it is used to verify the validity of the Binance Code; Binance Code should be kept carefully, because as long as someone knows the “Binance Code”, he can redeem it anytime.
Note:The following endpoints do not currently support sub-account requests
Create a Binance Code (USER_DATA)
Response:
{
"code": "000000",
"message": "success",
"data": {
"referenceNo": "0033002327977405", //Reference Number
"code": "AOGANK3NB4GIT3C6" //Binance Code
},
"success": true
}
POST /sapi/v1/giftcard/createCode (HMAC SHA256)
This API is for creating a Binance Code. To get started with, please make sure:
- You have a Binance account
- You have passed kyc
- You have a sufficient balance in your Binance funding wallet
- You need
Enable Withdrawalsfor the API Key which requests this endpoint.
Weight(IP): 1
Daily creation volume: 2 BTC / 24H Daily creation times: 200 Codes / 24H
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| token | STRING | YES | The coin type contained in the Binance Code |
| amount | DOUBLE | YES | The amount of the coin |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Redeem a Binance Code (USER_DATA)
Response:
{
"code": "000000",
"message": "success",
"data": {
"token":"BNB", //coin
"amount":"10", //amount
"referenceNo": "0033002327977405", //Reference Number
"identityNo": "10316281761814589440" //ignore
},
"success": true
}
POST /sapi/v1/giftcard/redeemCode (HMAC SHA256)
This API is for redeeming the Binance Code. Once redeemed, the coins will be deposited in your funding wallet.
Please note that if you enter the wrong code 5 times within 24 hours, you will no longer be able to redeem any Binance Code that day.
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| code | STRING | YES | Binance Code to be redeemed, supports both Plaintext & Encrypted code. |
| externalUid | STRING | NO | Each external unique ID represents a unique user on the partner platform. The function helps you to identify the redemption behavior of different users, such as redemption frequency and amount. It also helps risk and limit control of a single account, such as daily limit on redemption volume, frequency, and incorrect number of entries. This will also prevent a single user account reach the partner's daily redemption limits. We strongly recommend you to use this feature and transfer us the User ID of your users if you have different users redeeming Binance codes on your platform. To protect user data privacy, you may choose to transfer the user id in any desired format (max. 400 characters). |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Notes:
Parameter code can be sent in two formats:
- Plaintext
- Encrypted
Sending code in Encrypted format provides more security than sending it as a plaintext. To send card code in encrypted format the following steps must be followed:
- Fetch RSA public key from api stated below.
- Use the below algorithm to encrypt the card code using the RSA public key fetched above:
RSA/ECB/OAEPWithSHA-256AndMGF1Padding
A sample code snippet (JAVA) is stated below for reference, the same approach can be used for different languages like C#, PERL, PYTHON, SHELL etc.:
private static PublicKey getPublicKey(String publicKey) throws Exception {
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
byte[] decodedKey = Base64.decodeBase64(publicKey.getBytes());
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(decodedKey);
return keyFactory.generatePublic(keySpec);
}
public static String encrypt(String content, String publicKeyString) throws Exception {
if (StringUtils.isAnyEmpty(new CharSequence[]{content, publicKeyString})) {
throw new IllegalArgumentException("invalid content or privateKey.");
} else {
Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING", "BC");
cipher.init(Cipher.ENCRYPT_MODE, getPublicKey(publicKeyString));
return new String(Base64.encodeBase64URLSafe(cipher.doFinal(content.getBytes("UTF-8"))));
}
}
static {
Security.addProvider(new BouncyCastleProvider());
}
Verify a Binance Code (USER_DATA)
Response:
{
"code": "000000",
"message": "success",
"data": {
"valid":true,
"token":"BNB", // coin
"amount":"0.00000001" // amount
},
"success": true
}
GET /sapi/v1/giftcard/verify (HMAC SHA256)
This API is for verifying whether the Binance Code is valid or not by entering Reference Number.
Please note that if you enter the wrong Binance code 5 times within an hour, you will no longer be able to verify any Binance code for that hour.
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| referenceNo | STRING | YES | Reference Number |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Fetch RSA Public Key (USER_DATA)
Response:
{
"code": "000000",
"message": "success",
"data": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCXBBVKLAc1GQ5FsIFFqOHrPTox5noBONIKr+IAedTR9FkVxq6e65updEbfdhRNkMOeYIO2i0UylrjGC0X8YSoIszmrVHeV0l06Zh1oJuZos1+7N+WLuz9JvlPaawof3GUakTxYWWCa9+8KIbLKsoKMdfS96VT+8iOXO3quMGKUmQIDAQAB",
"success": true
}
GET /sapi/v1/giftcard/cryptography/rsa-public-key (HMAC SHA256)
This API is for fetching the RSA Public Key. This RSA Public key will be used to encrypt the card code.
Please note that the RSA Public key fetched is valid only for the current day.
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Buy a Binance Code (TRADE)
Response:
{
"code": "000000",
"message": "success",
"data": {
"referenceNo": "0033002327977405",
"code": "AOGANK3NB4GIT3C6"
},
"success": true
}
POST /sapi/v1/giftcard/buyCode (HMAC SHA256)
- This API is for buying a fixed-value Binance Code, which means your Binance Code will be redeemable to a token that is different to the token that you are paying in. If the token you’re paying and the redeemable token are the same, please use the Create Binance Code endpoint.
- You can use supported crypto currency or fiat token as baseToken to buy Binance Code that is redeemable to your chosen faceToken.
Once successfully purchased, the amount of baseToken would be deducted from your funding wallet.
To get started with, please make sure:
- You have a Binance account
- You have passed kyc
- You have a sufficient balance in your Binance funding wallet
- You need Enable Withdrawals for the API Key which requests this endpoint.
Weight(IP): 1
- Daily creation volume: 2 BTC / 24H
- Daily creation times: 200 Codes / 24H
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| baseToken | STRING | YES | The token you want to pay, example: BUSD |
| faceToken | STRING | YES | The token you want to buy, example: BNB. If faceToken = baseToken, it's the same as createCode endpoint. |
| baseTokenAmount | DOUBLE | YES | The base token asset quantity, example : 1.002 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Fetch Token Limit (USER_DATA)
Response:
{
"code": "000000",
"message": "success",
"data": [
{
"coin": "BNB",
"fromMin": "0.01",
"fromMax": "1"
}
],
"success":true
}
GET /sapi/v1/giftcard/buyCode/token-limit (HMAC SHA256)
This API is to help you verify which tokens are available for you to purchase fixed-value gift cards as mentioned in section 2 and its’ limitation.
Weight(IP): 1
Parameters:
| Name | Type | Mandatory | Description |
|---|---|---|---|
| baseToken | STRING | YES | The token you want to pay, example: BUSD |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
Error Codes
The error JSON payload:
{
"code":-1121,
"msg":"Invalid symbol."
}
Errors consist of two parts: an error code and a message. Codes are universal, but messages can vary.
10xx - General Server or Network issues
-1000 UNKNOWN
- An unknown error occurred while processing the request.
- An unknown error occurred while processing the request.[%s]
-1001 DISCONNECTED
- Internal error; unable to process your request. Please try again.
-1002 UNAUTHORIZED
- You are not authorized to execute this request.
-1003 TOO_MANY_REQUESTS
- Too many requests queued.
- Too much request weight used; please use the websocket for live updates to avoid polling the API.
- 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.
- Way too much request weight used; IP banned until %s. Please use the websocket for live updates to avoid bans.
-1004 SERVER_BUSY
- Server is busy, please wait and try again
-1006 UNEXPECTED_RESP
- An unexpected response was received from the message bus. Execution status unknown.
-1007 TIMEOUT
- Timeout waiting for response from backend server. Send status unknown; execution status unknown.
-1008 SERVER_BUSY
- Spot server is currently overloaded with other requests. Please try again in a few minutes.
-1014 UNKNOWN_ORDER_COMPOSITION
- Unsupported order combination.
-1015 TOO_MANY_ORDERS
- Too many new orders.
- Too many new orders; current limit is %s orders per %s.
-1016 SERVICE_SHUTTING_DOWN
- This service is no longer available.
-1020 UNSUPPORTED_OPERATION
- This operation is not supported.
-1021 INVALID_TIMESTAMP
- Timestamp for this request is outside of the recvWindow.
- Timestamp for this request was 1000ms ahead of the server's time.
-1022 INVALID_SIGNATURE
- Signature for this request is not valid.
-1099 Not found, authenticated, or authorized
- This replaces error code -1999
11xx - 2xxx Request issues
-1100 ILLEGAL_CHARS
- Illegal characters found in a parameter.
- Illegal characters found in a parameter. %s
- Illegal characters found in parameter
%s; legal range is%s.
-1101 TOO_MANY_PARAMETERS
- Too many parameters sent for this endpoint.
- Too many parameters; expected
%sand received%s. - Duplicate values for a parameter detected.
-1102 MANDATORY_PARAM_EMPTY_OR_MALFORMED
- A mandatory parameter was not sent, was empty/null, or malformed.
- Mandatory parameter
%swas not sent, was empty/null, or malformed. - Param
%sor%smust be sent, but both were empty/null!
-1103 UNKNOWN_PARAM
- An unknown parameter was sent.
-1104 UNREAD_PARAMETERS
- Not all sent parameters were read.
- Not all sent parameters were read; read
%sparameter(s) but was sent%s.
-1105 PARAM_EMPTY
- A parameter was empty.
- Parameter
%swas empty.
-1106 PARAM_NOT_REQUIRED
- A parameter was sent when not required.
- Parameter
%ssent when not required.
-1111 BAD_PRECISION
- Precision is over the maximum defined for this asset.
-1112 NO_DEPTH
- No orders on book for symbol.
-1114 TIF_NOT_REQUIRED
- TimeInForce parameter sent when not required.
-1115 INVALID_TIF
- Invalid timeInForce.
-1116 INVALID_ORDER_TYPE
- Invalid orderType.
-1117 INVALID_SIDE
- Invalid side.
-1118 EMPTY_NEW_CL_ORD_ID
- New client order ID was empty.
-1119 EMPTY_ORG_CL_ORD_ID
- Original client order ID was empty.
-1120 BAD_INTERVAL
- Invalid interval.
-1121 BAD_SYMBOL
- Invalid symbol.
-1125 INVALID_LISTEN_KEY
- This listenKey does not exist.
-1127 MORE_THAN_XX_HOURS
- Lookup interval is too big.
- More than %s hours between startTime and endTime.
-1128 OPTIONAL_PARAMS_BAD_COMBO
- Combination of optional parameters invalid.
-1130 INVALID_PARAMETER
- Invalid data sent for a parameter.
- Data sent for parameter
%sis not valid.
-1131 BAD_RECV_WINDOW
- recvWindow must be less than 60000
-1134 BAD_STRATEGY_TYPE
strategyTypewas less than 1000000.
-2010 NEW_ORDER_REJECTED
- NEW_ORDER_REJECTED
-2011 CANCEL_REJECTED
- CANCEL_REJECTED
-2013 NO_SUCH_ORDER
- Order does not exist.
-2014 BAD_API_KEY_FMT
- API-key format invalid.
-2015 REJECTED_MBX_KEY
- Invalid API-key, IP, or permissions for action.
-2016 NO_TRADING_WINDOW
- No trading window could be found for the symbol. Try ticker/24hrs instead.
3xxx-5xxx SAPI-specific issues
-3000 INNER_FAILURE
- Internal server error.
-3001 NEED_ENABLE_2FA
- Please enable 2FA first.
-3002 ASSET_DEFICIENCY
- We don't have this asset.
-3003 NO_OPENED_MARGIN_ACCOUNT
- Margin account does not exist.
-3004 TRADE_NOT_ALLOWED
- Trade not allowed.
-3005 TRANSFER_OUT_NOT_ALLOWED
- Transferring out not allowed.
-3006 EXCEED_MAX_BORROWABLE
- Your borrow amount has exceed maximum borrow amount.
-3007 HAS_PENDING_TRANSACTION
- You have pending transaction, please try again later.
-3008 BORROW_NOT_ALLOWED
- Borrow not allowed.
-3009 ASSET_NOT_MORTGAGEABLE
- This asset are not allowed to transfer into margin account currently.
-3010 REPAY_NOT_ALLOWED
- Repay not allowed.
-3011 BAD_DATE_RANGE
- Your input date is invalid.
-3012 ASSET_ADMIN_BAN_BORROW
- Borrow is banned for this asset.
-3013 LT_MIN_BORROWABLE
- Borrow amount less than minimum borrow amount.
-3014 ACCOUNT_BAN_BORROW
- Borrow is banned for this account.
-3015 REPAY_EXCEED_LIABILITY
- Repay amount exceeds borrow amount.
-3016 LT_MIN_REPAY
- Repay amount less than minimum repay amount.
-3017 ASSET_ADMIN_BAN_MORTGAGE
- This asset are not allowed to transfer into margin account currently.
-3018 ACCOUNT_BAN_MORTGAGE
- Transferring in has been banned for this account.
-3019 ACCOUNT_BAN_ROLLOUT
- Transferring out has been banned for this account.
-3020 EXCEED_MAX_ROLLOUT
- Transfer out amount exceeds max amount.
-3021 PAIR_ADMIN_BAN_TRADE
- Margin account are not allowed to trade this trading pair.
-3022 ACCOUNT_BAN_TRADE
- You account's trading is banned.
-3023 WARNING_MARGIN_LEVEL
- You can't transfer out/place order under current margin level.
-3024 FEW_LIABILITY_LEFT
- The unpaid debt is too small after this repayment.
-3025 INVALID_EFFECTIVE_TIME
- Your input date is invalid.
-3026 VALIDATION_FAILED
- Your input param is invalid.
-3027 NOT_VALID_MARGIN_ASSET
- Not a valid margin asset.
-3028 NOT_VALID_MARGIN_PAIR
- Not a valid margin pair.
-3029 TRANSFER_FAILED
- Transfer failed.
-3036 ACCOUNT_BAN_REPAY
- This account is not allowed to repay.
-3037 PNL_CLEARING
- PNL is clearing. Wait a second.
-3038 LISTEN_KEY_NOT_FOUND
- Listen key not found.
-3041 BALANCE_NOT_CLEARED
- Balance is not enough
-3042 PRICE_INDEX_NOT_FOUND
- PriceIndex not available for this margin pair.
-3043 TRANSFER_IN_NOT_ALLOWED
- Transferring in not allowed.
-3044 SYSTEM_BUSY
- System busy.
-3045 SYSTEM
- The system doesn't have enough asset now.
-3999 NOT_WHITELIST_USER
- This function is only available for invited users.
-4001 CAPITAL_INVALID
- Invalid operation.
-4002 CAPITAL_IG
- Invalid get.
-4003 CAPITAL_IEV
- Your input email is invalid.
-4004 CAPITAL_UA
- You don't login or auth.
-4005 CAPAITAL_TOO_MANY_REQUEST
- Too many new requests.
-4006 CAPITAL_ONLY_SUPPORT_PRIMARY_ACCOUNT
- Support main account only.
-4007 CAPITAL_ADDRESS_VERIFICATION_NOT_PASS
- Address validation is not passed.
-4008 CAPITAL_ADDRESS_TAG_VERIFICATION_NOT_PASS
- Address tag validation is not passed.
-4010 CAPITAL_WHITELIST_EMAIL_CONFIRM
- White list mail has been confirmed.
-4011 CAPITAL_WHITELIST_EMAIL_EXPIRED
- White list mail is invalid.
-4012 CAPITAL_WHITELIST_CLOSE
- White list is not opened.
-4013 CAPITAL_WITHDRAW_2FA_VERIFY
- 2FA is not opened.
-4014 CAPITAL_WITHDRAW_LOGIN_DELAY
- Withdraw is not allowed within 2 min login.
-4015 CAPITAL_WITHDRAW_RESTRICTED_MINUTE
- Withdraw is limited.
-4016 CAPITAL_WITHDRAW_RESTRICTED_PASSWORD
- Within 24 hours after password modification, withdrawal is prohibited.
-4017 CAPITAL_WITHDRAW_RESTRICTED_UNBIND_2FA
- Within 24 hours after the release of 2FA, withdrawal is prohibited.
-4018 CAPITAL_WITHDRAW_ASSET_NOT_EXIST
- We don't have this asset.
-4019 CAPITAL_WITHDRAW_ASSET_PROHIBIT
- Current asset is not open for withdrawal.
-4021 CAPITAL_WITHDRAW_AMOUNT_MULTIPLE
- Asset withdrawal must be an %s multiple of %s.
-4022 CAPITAL_WITHDRAW_MIN_AMOUNT
- Not less than the minimum pick-up quantity %s.
-4023 CAPITAL_WITHDRAW_MAX_AMOUNT
- Within 24 hours, the withdrawal exceeds the maximum amount.
-4024 CAPITAL_WITHDRAW_USER_NO_ASSET
- You don't have this asset.
-4025 CAPITAL_WITHDRAW_USER_ASSET_LESS_THAN_ZERO
- The number of hold asset is less than zero.
-4026 CAPITAL_WITHDRAW_USER_ASSET_NOT_ENOUGH
- You have insufficient balance.
-4027 CAPITAL_WITHDRAW_GET_TRAN_ID_FAILURE
- Failed to obtain tranId.
-4028 CAPITAL_WITHDRAW_MORE_THAN_FEE
- The amount of withdrawal must be greater than the Commission.
-4029 CAPITAL_WITHDRAW_NOT_EXIST
- The withdrawal record does not exist.
-4030 CAPITAL_WITHDRAW_CONFIRM_SUCCESS
- Confirmation of successful asset withdrawal.
-4031 CAPITAL_WITHDRAW_CANCEL_FAILURE
- Cancellation failed.
-4032 CAPITAL_WITHDRAW_CHECKSUM_VERIFY_FAILURE
- Withdraw verification exception.
-4033 CAPITAL_WITHDRAW_ILLEGAL_ADDRESS
- Illegal address.
-4034 CAPITAL_WITHDRAW_ADDRESS_CHEAT
- The address is suspected of fake.
-4035 CAPITAL_WITHDRAW_NOT_WHITE_ADDRESS
- This address is not on the whitelist. Please join and try again.
-4036 CAPITAL_WITHDRAW_NEW_ADDRESS
- The new address needs to be withdrawn in {0} hours.
-4037 CAPITAL_WITHDRAW_RESEND_EMAIL_FAIL
- Re-sending Mail failed.
-4038 CAPITAL_WITHDRAW_RESEND_EMAIL_TIME_OUT
- Please try again in 5 minutes.
-4039 CAPITAL_USER_EMPTY
- The user does not exist.
-4040 CAPITAL_NO_CHARGE
- This address not charged.
-4041 CAPITAL_MINUTE_TOO_SMALL
- Please try again in one minute.
-4042 CAPITAL_CHARGE_NOT_RESET
- This asset cannot get deposit address again.
-4043 CAPITAL_ADDRESS_TOO_MUCH
- More than 100 recharge addresses were used in 24 hours.
-4044 CAPITAL_BLACKLIST_COUNTRY_GET_ADDRESS
- This is a blacklist country.
-4045 CAPITAL_GET_ASSET_ERROR
- Failure to acquire assets.
-4046 CAPITAL_AGREEMENT_NOT_CONFIRMED
- Agreement not confirmed.
-4047 CAPITAL_DATE_INTERVAL_LIMIT
- Time interval must be within 0-90 days
-5001 ASSET_DRIBBLET_CONVERT_SWITCH_OFF
- Don't allow transfer to micro assets.
-5002 ASSET_ASSET_NOT_ENOUGH
- You have insufficient balance.
-5003 ASSET_USER_HAVE_NO_ASSET
- You don't have this asset.
-5004 USER_OUT_OF_TRANSFER_FLOAT
- The residual balances have exceeded 0.001BTC, Please re-choose.
- The residual balances of %s have exceeded 0.001BTC, Please re-choose.
-5005 USER_ASSET_AMOUNT_IS_TOO_LOW
- The residual balances of the BTC is too low
- The residual balances of %s is too low, Please re-choose.
-5006 USER_CAN_NOT_REQUEST_IN_24_HOURS
- Only transfer once in 24 hours.
-5007 AMOUNT_OVER_ZERO
- Quantity must be greater than zero.
-5008 ASSET_WITHDRAW_WITHDRAWING_NOT_ENOUGH
- Insufficient amount of returnable assets.
-5009 PRODUCT_NOT_EXIST
- Product does not exist.
-5010 TRANSFER_FAIL
- Asset transfer fail.
-5011 FUTURE_ACCT_NOT_EXIST
- future account not exists.
-5012 TRANSFER_PENDING
- Asset transfer is in pending.
-5021 PARENT_SUB_HAVE_NO_RELATION
- This parent sub have no relation
-5012 FUTURE_ACCT_OR_SUBRELATION_NOT_EXIST
- future account or sub relation not exists.
6XXX - Savings Issues
-6001 DAILY_PRODUCT_NOT_EXIST
- Daily product not exists.
-6003 DAILY_PRODUCT_NOT_ACCESSIBLE
- Product not exist or you don't have permission
-6004 DAILY_PRODUCT_NOT_PURCHASABLE
- Product not in purchase status
-6005 DAILY_LOWER_THAN_MIN_PURCHASE_LIMIT
- Smaller than min purchase limit
-6006 DAILY_REDEEM_AMOUNT_ERROR
- Redeem amount error
-6007 DAILY_REDEEM_TIME_ERROR
- Not in redeem time
-6008 DAILY_PRODUCT_NOT_REDEEMABLE
- Product not in redeem status
-6009 REQUEST_FREQUENCY_TOO_HIGH
- Request frequency too high
-6011 EXCEEDED_USER_PURCHASE_LIMIT
- Exceeding the maximum num allowed to purchase per user
-6012 BALANCE_NOT_ENOUGH
- Balance not enough
-6013 PURCHASING_FAILED
- Purchasing failed
-6014 UPDATE_FAILED
- Exceed up-limit allowed to purchased
-6015 EMPTY_REQUEST_BODY
- Empty request body
-6016 PARAMS_ERR
- Parameter err
-6017 NOT_IN_WHITELIST
- Not in whitelist
-6018 ASSET_NOT_ENOUGH
- Asset not enough
-6019 PENDING
- Need confirm
-6020 PROJECT_NOT_EXISTS
- Project not exists
70xx - Futures
-7001 FUTURES_BAD_DATE_RANGE
- Date range is not supported.
-7002 FUTURES_BAD_TYPE
- Data request type is not supported.
20xxx - Futures Algo
-20121
- Invalid symbol.
-20124
- Invalid algo id or it has been completed.
-20130
- Invalid data sent for a parameter.
-20132
- The client algo id is duplicated.
-20194
- Duration is too short to execute all required quantity.
-20195
- The total size is too small.
-20196
- The total size is too large.
-20198
- Reach the max open orders allowed.
-9xxx Filter failures
| Error message | Description |
|---|---|
| "Filter failure: PRICE_FILTER" | price is too high, too low, and/or not following the tick size rule for the symbol. |
| "Filter failure: PERCENT_PRICE" | price is X% too high or X% too low from the average weighted price over the last Y minutes. |
| "Filter failure: PERCENT_PRICE_BY_SIDE" | price is X% too high or Y% too low from the lastPrice on that side (i.e. BUY/SELL) |
| "Filter failure: LOT_SIZE" | quantity is too high, too low, and/or not following the step size rule for the symbol. |
| "Filter failure: MIN_NOTIONAL" | price * quantity is too low to be a valid order for the symbol. |
| "Filter failure: ICEBERG_PARTS" | ICEBERG order would break into too many parts; icebergQty is too small. |
| "Filter failure: MARKET_LOT_SIZE" | MARKET order's quantity is too high, too low, and/or not following the step size rule for the symbol. |
| "Filter failure: MAX_POSITION" | The account's position has reached the maximum defined limit. This is composed of the sum of the balance of the base asset, and the sum of the quantity of all open BUYorders. |
| "Filter failure: MAX_NUM_ORDERS" | Account has too many open orders on the symbol. |
| "Filter failure: MAX_NUM_ALGO_ORDERS" | Account has too many open stop loss and/or take profit orders on the symbol. |
| "Filter failure: MAX_NUM_ICEBERG_ORDERS" | Account has too many open iceberg orders on the symbol. |
| "Filter failure: TRAILING_DELTA" | trailingDelta is not within the defined range of the filter for that order type. |
| "Filter failure: EXCHANGE_MAX_NUM_ORDERS" | Account has too many open orders on the exchange. |
| "Filter failure: EXCHANGE_MAX_NUM_ALGO_ORDERS" | Account has too many open stop loss and/or take profit orders on the exchange. |
10xxx - Crypto Loans
-10001 SYSTEM_MAINTENANCE
- The system is under maintenance, please try again later.
-10002 INVALID_INPUT
- Invalid input parameters.
-10005 NO_RECORDS
- No records found.
-10007 COIN_NOT_LOANABLE
- This coin is not loanable.
-10008 COIN_NOT_LOANABLE
- This coin is not loanable
-10009 COIN_NOT_COLLATERAL
- This coin can not be used as collateral.
-10010 COIN_NOT_COLLATERAL
- This coin can not be used as collateral.
-10011 INSUFFICIENT_ASSET
- Insufficient spot assets.
-10012 INVALID_AMOUNT
- Invalid repayment amount.
-10013 INSUFFICIENT_AMOUNT
- Insufficient collateral amount.
-10015 DEDUCTION_FAILED
- Collateral deduction failed.
-10016 LOAN_FAILED
- Failed to provide loan.
-10017 REPAY_EXCEED_DEBT
- Repayment amount exceeds debt.
-10018 INVALID_AMOUNT
- Invalid repayment amount.
-10019 CONFIG_NOT_EXIST
- Configuration does not exists.
-10020 UID_NOT_EXIST
- User ID does not exist.
-10021 ORDER_NOT_EXIST
- Order does not exist.
-10022 INVALID_AMOUNT
- Invalid adjustment amount.
-10023 ADJUST_LTV_FAILED
- Failed to adjust LTV.
-10024 ADJUST_LTV_NOT_SUPPORTED
- LTV adjustment not supported.
-10025 REPAY_FAILED
- Repayment failed.
-10026 INVALID_PARAMETER
- Invalid parameter.
-10028 INVALID_PARAMETER
- Invalid parameter.
-10029 AMOUNT_TOO_SMALL
- Loan amount is too small.
-10030 AMOUNT_TOO_LARGE
- Loan amount is too much.
-10031 QUOTA_REACHED
- Individual loan quota reached.
-10032 REPAY_NOT_AVAILABLE
- Repayment is temporarily unavailable.
-10034 REPAY_NOT_AVAILABLE
- Repay with collateral is not available currently, please try to repay with borrowed coin.
-10039 AMOUNT_TOO_SMALL
- Repayment amount is too small.
-10040 AMOUNT_TOO_LARGE
- Repayment amount is too large.
-10041 INSUFFICIENT_AMOUNT
- Due to high demand, there are currently insufficient loanable assets for {0}. Please adjust your borrow amount or try again tomorrow.
-10042 ASSET_NOT_SUPPORTED
- asset %s is not supported
-10043 ASSET_NOT_SUPPORTED
- {0} borrowing is currently not supported.
-10044 QUOTA_REACHED
- Collateral amount has reached the limit. Please reduce your collateral amount or try with other collaterals.
-10045 COLLTERAL_REPAY_NOT_SUPPORTED
- The loan coin does not support collateral repayment. Please try again later.
-10046 EXCEED_MAX_ADJUSTMENT
- Collateral Adjustment exceeds the maximum limit. Please try again.
-10047 REGION_NOT_SUPPORTED
- This coin is currently not supported in your location due to local regulations.
13xxx - BLVT
-13000 BLVT_FORBID_REDEEM
- Redeption of the token is forbiden now
-13001 BLVT_EXCEED_DAILY_LIMIT
- Exceeds individual 24h redemption limit of the token
-13002 BLVT_EXCEED_TOKEN_DAILY_LIMIT
- Exceeds total 24h redemption limit of the token
-13003 BLVT_FORBID_PURCHASE
- Subscription of the token is forbiden now
-13004 BLVT_EXCEED_DAILY_PURCHASE_LIMIT
- Exceeds individual 24h subscription limit of the token
-13005 BLVT_EXCEED_TOKEN_DAILY_PURCHASE_LIMIT
- Exceeds total 24h subscription limit of the token
-13006 BLVT_PURCHASE_LESS_MIN_AMOUNT
- Subscription amount is too small
-13007 BLVT_PURCHASE_AGREEMENT_NOT_SIGN
- The Agreement is not signed
12xxx - Liquid Swap
-12014 TOO MANY REQUESTS
- More than 1 request in 2 seconds
18xxx - Binance Code
-18002
- The total amount of codes you created has exceeded the 24-hour limit, please try again after UTC 0
-18003
- Too many codes created in 24 hours, please try again after UTC 0
-18004
- Too many invalid redeem attempts in 24 hours, please try again after UTC 0
-18005
- Too many invalid verify attempts, please try later
-18006
- The amount is too small, please re-enter
-18007
- This token is not currently supported, please re-enter
21xxx - Portfolio Margin Account
-21001 USER_IS_NOT_UNIACCOUNT
- Request ID is not a Portfolio Margin Account.
-21002 UNI_ACCOUNT_CANT_TRANSFER_FUTURE
- Portfolio Margin Account doesn't support transfer from margin to futures.
-21003 NET_ASSET_MUST_LTE_RATIO
- Fail to retrieve margin assets.
-21004 USER_NO_LIABILITY
- User doesn’t have portfolio margin bankruptcy loan
-21005 NO_ENOUGH_ASSET
- User’s spot wallet doesn’t have enough BUSD to repay portfolio margin bankruptcy loan
-21006 HAD_IN_PROCESS_REPAY
- User had portfolio margin bankruptcy loan repayment in process
-21007 IN_FORCE_LIQUIDATION
- User failed to repay portfolio margin bankruptcy loan since liquidation was in process
Order Rejection Issues
Error messages like these are indicated when the error is coming specifically from the matching engine:
-1010 ERROR_MSG_RECEIVED-2010 NEW_ORDER_REJECTED-2011 CANCEL_REJECTED
The following messages which will indicate the specific error:
| Error message | Description |
|---|---|
| "Unknown order sent." | The order (by either orderId, clientOrderId, origClientOrderId) could not be found. |
| "Duplicate order sent." | The clientOrderId is already in use. |
| "Market is closed." | The symbol is not trading. |
| "Account has insufficient balance for requested action." | Not enough funds to complete the action. |
| "Market orders are not supported for this symbol." | MARKET is not enabled on the symbol. |
| "Iceberg orders are not supported for this symbol." | icebergQty is not enabled on the symbol |
| "Stop loss orders are not supported for this symbol." | STOP_LOSS is not enabled on the symbol |
| "Stop loss limit orders are not supported for this symbol." | STOP_LOSS_LIMIT is not enabled on the symbol |
| "Take profit orders are not supported for this symbol." | TAKE_PROFIT is not enabled on the symbol |
| "Take profit limit orders are not supported for this symbol." | TAKE_PROFIT_LIMIT is not enabled on the symbol |
| "Price * QTY is zero or less." | price * quantity is too low |
| "IcebergQty exceeds QTY." | icebergQty must be less than the order quantity |
| "This action is disabled on this account." | Contact customer support; some actions have been disabled on the account. |
| "Unsupported order combination" | The orderType, timeInForce, stopPrice, and/or icebergQty combination isn't allowed. |
| "Order would trigger immediately." | The order's stop price is not valid when compared to the last traded price. |
| "Cancel order is invalid. Check origClientOrderId and orderId." | No origClientOrderId or orderId was sent in. |
| "Order would immediately match and take." | LIMIT_MAKER order type would immediately match and trade, and not be a pure maker order. |
| "The relationship of the prices for the orders is not correct." | The prices set in the OCO is breaking the Price rules. The rules are: SELL Orders: Limit Price > Last Price > Stop Price BUY Orders: Limit Price < Last Price < Stop Price |
| "OCO orders are not supported for this symbol" | OCO is not enabled on the symbol. |
| "Quote order qty market orders are not support for this symbol." | MARKET orders using the parameter quoteOrderQty are not enabled on this symbol. |
| "Trailing stop orders are not supported for this symbol." | Orders using trailingDelta are not enabled on the symbol. |
| "Order cancel-replace is not supported for this symbol." | POST /api/v3/order/cancelReplace is not enabled for the symbol. |
Errors regarding POST /api/v3/order/cancelReplace
-2021 Order cancel-replace partially failed
This code is sent when either the cancellation of the order failed or the new order placement failed but not both.
-2022 Order cancel-replace failed.
This code is sent when both the cancellation of the order failed and the new order placement failed.
Notes
Request Parameters
Email Address
Email address should be encoded. e.g. alice@test.com should be encoded into alice%40test.com