diff --git a/docs/endpointFunctionList.md b/docs/endpointFunctionList.md
index ca842290..d0240d10 100644
--- a/docs/endpointFunctionList.md
+++ b/docs/endpointFunctionList.md
@@ -4,8 +4,8 @@
-
-
+
+
@@ -14,7 +14,7 @@ Each REST client is a JavaScript class, which provides functions individually ma
The following table shows all methods available in each REST client, whether the method requires authentication (automatically handled if API keys are provided), as well as the exact endpoint each method is connected to.
-This can be used to easily find which method to call, once you have [found which endpoint you're looking to use](https://github.com/tiagosiebler/awesome-crypto-examples/wiki/How-to-find-SDK-functions-that-match-API-docs-endpoint).
+This can be used to easily find which method to call, once you have [found which endpoint you're looking to use](https://github.com/sieblyio/awesome-crypto-examples/wiki/How-to-find-SDK-functions-that-match-API-docs-endpoint).
All REST clients are in the [src](/src) folder. For usage examples, make sure to check the [examples](/examples) folder.
@@ -52,528 +52,531 @@ This table includes all endpoints from the official Exchange API docs and corres
| Function | AUTH | HTTP Method | Endpoint |
| -------- | :------: | :------: | -------- |
-| [testConnectivity()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L784) | | GET | `api/v3/ping` |
-| [getExchangeInfo()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L788) | | GET | `api/v3/exchangeInfo` |
-| [getOrderBook()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L808) | | GET | `api/v3/depth` |
-| [getRecentTrades()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L812) | | GET | `api/v3/trades` |
-| [getHistoricalTrades()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L816) | | GET | `api/v3/historicalTrades` |
-| [getHistoricalBlockTrades()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L820) | | GET | `api/v3/historicalBlockTrades` |
-| [getAggregateTrades()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L826) | | GET | `api/v3/aggTrades` |
-| [getKlines()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L832) | | GET | `api/v3/klines` |
-| [getUIKlines()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L836) | | GET | `api/v3/uiKlines` |
-| [getAvgPrice()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L840) | | GET | `api/v3/avgPrice` |
-| [getExecutionRules()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L844) | | GET | `api/v3/executionRules?symbols=` |
-| [getReferencePrice()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L859) | | GET | `api/v3/referencePrice` |
-| [getReferencePriceCalculation()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L865) | | GET | `api/v3/referencePrice/calculation` |
-| [get24hrChangeStatistics()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L872) | | GET | `api/v3/ticker/24hr?symbols=` |
-| [getTradingDayTicker()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L902) | | GET | `api/v3/ticker/tradingDay?symbols=` |
-| [getSymbolPriceTicker()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L917) | | GET | `api/v3/ticker/price?symbols=` |
-| [getSymbolOrderBookTicker()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L934) | | GET | `api/v3/ticker/bookTicker?symbols=` |
-| [getRollingWindowTicker()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L951) | | GET | `api/v3/ticker?symbols=` |
-| [submitNewOrder()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L973) | :closed_lock_with_key: | POST | `api/v3/order` |
-| [testNewOrder()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L981) | :closed_lock_with_key: | POST | `api/v3/order/test` |
-| [getOrder()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L989) | :closed_lock_with_key: | GET | `api/v3/order` |
-| [cancelOrder()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L993) | :closed_lock_with_key: | DELETE | `api/v3/order` |
-| [cancelAllSymbolOrders()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L997) | :closed_lock_with_key: | DELETE | `api/v3/openOrders` |
-| [replaceOrder()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1003) | :closed_lock_with_key: | POST | `api/v3/order/cancelReplace` |
-| [amendOrderKeepPriority()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1017) | :closed_lock_with_key: | PUT | `fapi/v1/order/amend/keepPriority` |
-| [getOpenOrders()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1024) | :closed_lock_with_key: | GET | `api/v3/openOrders` |
-| [getAllOrders()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1028) | :closed_lock_with_key: | GET | `api/v3/allOrders` |
-| [submitNewOCO()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1035) | :closed_lock_with_key: | POST | `api/v3/order/oco` |
-| [submitNewOrderList()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1042) | :closed_lock_with_key: | POST | `api/v3/orderList/oco` |
-| [submitNewOrderListOTO()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1051) | :closed_lock_with_key: | POST | `api/v3/orderList/oto` |
-| [submitNewOrderListOTOCO()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1060) | :closed_lock_with_key: | POST | `api/v3/orderList/otoco` |
-| [submitNewOrderListOPO()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1070) | :closed_lock_with_key: | POST | `api/v3/orderList/opo` |
-| [submitNewOrderListOPOCO()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1079) | :closed_lock_with_key: | POST | `api/v3/orderList/opoco` |
-| [cancelOCO()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1089) | :closed_lock_with_key: | DELETE | `api/v3/orderList` |
-| [getOCO()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1094) | :closed_lock_with_key: | GET | `api/v3/orderList` |
-| [getAllOCO()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1098) | :closed_lock_with_key: | GET | `api/v3/allOrderList` |
-| [getAllOpenOCO()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1105) | :closed_lock_with_key: | GET | `api/v3/openOrderList` |
-| [submitNewSOROrder()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1112) | :closed_lock_with_key: | POST | `api/v3/sor/order` |
-| [testNewSOROrder()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1123) | :closed_lock_with_key: | POST | `api/v3/sor/order/test` |
-| [getAccountInformation()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1139) | :closed_lock_with_key: | GET | `api/v3/account` |
-| [getAccountTradeList()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1145) | :closed_lock_with_key: | GET | `api/v3/myTrades` |
-| [getOrderRateLimit()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1151) | :closed_lock_with_key: | GET | `api/v3/rateLimit/order` |
-| [getPreventedMatches()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1155) | :closed_lock_with_key: | GET | `api/v3/myPreventedMatches` |
-| [getAllocations()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1161) | :closed_lock_with_key: | GET | `api/v3/myAllocations` |
-| [getCommissionRates()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1165) | :closed_lock_with_key: | GET | `api/v3/account/commission` |
-| [getCrossMarginCollateralRatio()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1175) | :closed_lock_with_key: | GET | `sapi/v1/margin/crossMarginCollateralRatio` |
-| [getAllCrossMarginPairs()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1184) | | GET | `sapi/v1/margin/allPairs` |
-| [getIsolatedMarginAllSymbols()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1188) | :closed_lock_with_key: | GET | `sapi/v1/margin/isolated/allPairs` |
-| [getAllMarginAssets()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1194) | | GET | `sapi/v1/margin/allAssets` |
-| [getMarginDelistSchedule()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1198) | :closed_lock_with_key: | GET | `sapi/v1/margin/delist-schedule` |
-| [getIsolatedMarginTierData()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1202) | :closed_lock_with_key: | GET | `sapi/v1/margin/isolatedMarginTier` |
-| [queryMarginPriceIndex()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1208) | | GET | `sapi/v1/margin/priceIndex` |
-| [getMarginAvailableInventory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1214) | :closed_lock_with_key: | GET | `sapi/v1/margin/available-inventory` |
-| [getLeverageBracket()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1220) | :closed_lock_with_key: | GET | `sapi/v1/margin/leverageBracket` |
-| [getNextHourlyInterestRate()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1230) | :closed_lock_with_key: | GET | `sapi/v1/margin/next-hourly-interest-rate` |
-| [getMarginInterestHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1236) | :closed_lock_with_key: | GET | `sapi/v1/margin/interestHistory` |
-| [submitMarginAccountBorrowRepay()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1243) | :closed_lock_with_key: | POST | `sapi/v1/margin/borrow-repay` |
-| [getMarginAccountBorrowRepayRecords()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1249) | :closed_lock_with_key: | GET | `sapi/v1/margin/borrow-repay` |
-| [getMarginInterestRateHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1255) | :closed_lock_with_key: | GET | `sapi/v1/margin/interestRateHistory` |
-| [queryMaxBorrow()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1261) | :closed_lock_with_key: | GET | `sapi/v1/margin/maxBorrowable` |
-| [getMarginForceLiquidationRecord()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1273) | :closed_lock_with_key: | GET | `sapi/v1/margin/forceLiquidationRec` |
-| [getSmallLiabilityExchangeCoins()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1282) | :closed_lock_with_key: | GET | `sapi/v1/margin/exchange-small-liability` |
-| [getSmallLiabilityExchangeHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1286) | :closed_lock_with_key: | GET | `sapi/v1/margin/exchange-small-liability-history` |
-| [marginAccountCancelOpenOrders()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1298) | :closed_lock_with_key: | DELETE | `sapi/v1/margin/openOrders` |
-| [marginAccountCancelOCO()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1304) | :closed_lock_with_key: | DELETE | `sapi/v1/margin/orderList` |
-| [marginAccountCancelOrder()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1309) | :closed_lock_with_key: | DELETE | `sapi/v1/margin/order` |
-| [marginAccountNewOCO()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1315) | :closed_lock_with_key: | POST | `sapi/v1/margin/order/oco` |
-| [marginAccountNewOrder()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1322) | :closed_lock_with_key: | POST | `sapi/v1/margin/order` |
-| [getMarginOrderCountUsage()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1330) | :closed_lock_with_key: | GET | `sapi/v1/margin/rateLimit/order` |
-| [queryMarginAccountAllOCO()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1336) | :closed_lock_with_key: | GET | `sapi/v1/margin/allOrderList` |
-| [queryMarginAccountAllOrders()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1342) | :closed_lock_with_key: | GET | `sapi/v1/margin/allOrders` |
-| [queryMarginAccountOCO()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1348) | :closed_lock_with_key: | GET | `sapi/v1/margin/orderList` |
-| [queryMarginAccountOpenOCO()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1352) | :closed_lock_with_key: | GET | `sapi/v1/margin/openOrderList` |
-| [queryMarginAccountOpenOrders()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1359) | :closed_lock_with_key: | GET | `sapi/v1/margin/openOrders` |
-| [queryMarginAccountOrder()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1363) | :closed_lock_with_key: | GET | `sapi/v1/margin/order` |
-| [queryMarginAccountTradeList()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1367) | :closed_lock_with_key: | GET | `sapi/v1/margin/myTrades` |
-| [submitSmallLiabilityExchange()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1373) | :closed_lock_with_key: | POST | `sapi/v1/margin/exchange-small-liability` |
-| [submitManualLiquidation()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1380) | :closed_lock_with_key: | POST | `sapi/v1/margin/manual-liquidation` |
-| [submitMarginOTOOrder()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1389) | :closed_lock_with_key: | POST | `sapi/v1/margin/order/oto` |
-| [submitMarginOTOCOOrder()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1401) | :closed_lock_with_key: | POST | `sapi/v1/margin/order/otoco` |
-| [createMarginSpecialLowLatencyKey()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1414) | :closed_lock_with_key: | POST | `sapi/v1/margin/apiKey` |
-| [deleteMarginSpecialLowLatencyKey()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1420) | :closed_lock_with_key: | DELETE | `sapi/v1/margin/apiKey` |
-| [updateMarginIPForSpecialLowLatencyKey()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1428) | :closed_lock_with_key: | PUT | `sapi/v1/margin/apiKey/ip` |
-| [getMarginSpecialLowLatencyKeys()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1439) | :closed_lock_with_key: | GET | `sapi/v1/margin/api-key-list` |
-| [getMarginSpecialLowLatencyKey()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1448) | :closed_lock_with_key: | GET | `sapi/v1/margin/apiKey` |
-| [getMarginLiquidationLoan()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1458) | :closed_lock_with_key: | GET | `sapi/v1/margin/liquidation-loan` |
-| [repayMarginLiquidationLoan()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1465) | :closed_lock_with_key: | POST | `sapi/v1/margin/liquidation-loan/repay` |
-| [getMarginLiquidationLoanRepayHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1474) | :closed_lock_with_key: | GET | `sapi/v1/margin/liquidation-loan/repay-history` |
-| [exitMarginSpecialKeyMode()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1486) | :closed_lock_with_key: | POST | `sapi/v1/margin/exit-special-key-mode` |
-| [getCrossMarginTransferHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1496) | :closed_lock_with_key: | GET | `sapi/v1/margin/transfer` |
-| [queryMaxTransferOutAmount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1502) | :closed_lock_with_key: | GET | `sapi/v1/margin/maxTransferable` |
-| [updateCrossMarginMaxLeverage()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1514) | :closed_lock_with_key: | POST | `sapi/v1/margin/max-leverage` |
-| [disableIsolatedMarginAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1520) | :closed_lock_with_key: | DELETE | `sapi/v1/margin/isolated/account` |
-| [enableIsolatedMarginAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1527) | :closed_lock_with_key: | POST | `sapi/v1/margin/isolated/account` |
-| [getBNBBurn()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1534) | :closed_lock_with_key: | GET | `sapi/v1/bnbBurn` |
-| [getMarginSummary()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1538) | :closed_lock_with_key: | GET | `sapi/v1/margin/tradeCoeff` |
-| [queryCrossMarginAccountDetails()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1542) | :closed_lock_with_key: | GET | `sapi/v1/margin/account` |
-| [getCrossMarginFeeData()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1546) | :closed_lock_with_key: | GET | `sapi/v1/margin/crossMarginData` |
-| [getIsolatedMarginAccountLimit()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1552) | :closed_lock_with_key: | GET | `sapi/v1/margin/isolated/accountLimit` |
-| [getIsolatedMarginAccountInfo()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1559) | :closed_lock_with_key: | GET | `sapi/v1/margin/isolated/account` |
-| [getIsolatedMarginFeeData()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1565) | :closed_lock_with_key: | GET | `sapi/v1/margin/isolatedMarginData` |
-| [toggleBNBBurn()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1571) | :closed_lock_with_key: | POST | `sapi/v1/bnbBurn` |
-| [getMarginCapitalFlow()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1579) | :closed_lock_with_key: | GET | `sapi/v1/margin/capital-flow` |
-| [queryLoanRecord()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1588) | :closed_lock_with_key: | GET | `sapi/v1/margin/loan` |
-| [queryRepayRecord()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1597) | :closed_lock_with_key: | GET | `sapi/v1/margin/repay` |
-| [isolatedMarginAccountTransfer()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1606) | :closed_lock_with_key: | POST | `sapi/v1/margin/isolated/transfer` |
-| [getBalances()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1618) | :closed_lock_with_key: | GET | `sapi/v1/capital/config/getall` |
-| [withdraw()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1622) | :closed_lock_with_key: | POST | `sapi/v1/capital/withdraw/apply` |
-| [getWithdrawHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1626) | :closed_lock_with_key: | GET | `sapi/v1/capital/withdraw/history` |
-| [getWithdrawAddresses()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1632) | :closed_lock_with_key: | GET | `sapi/v1/capital/withdraw/address/list` |
-| [getWithdrawQuota()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1636) | :closed_lock_with_key: | GET | `sapi/v1/capital/withdraw/quota` |
-| [getDepositHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1643) | :closed_lock_with_key: | GET | `sapi/v1/capital/deposit/hisrec` |
-| [getDepositAddress()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1647) | :closed_lock_with_key: | GET | `sapi/v1/capital/deposit/address` |
-| [getDepositAddresses()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1653) | :closed_lock_with_key: | GET | `sapi/v1/capital/deposit/address/list` |
-| [submitDepositCredit()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1659) | :closed_lock_with_key: | POST | `sapi/v1/capital/deposit/credit-apply` |
-| [getAutoConvertStablecoins()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1668) | :closed_lock_with_key: | GET | `sapi/v1/capital/contract/convertible-coins` |
-| [setConvertibleCoins()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1675) | :closed_lock_with_key: | POST | `sapi/v1/capital/contract/convertible-coins` |
-| [getAssetDetail()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1688) | :closed_lock_with_key: | GET | `sapi/v1/asset/assetDetail` |
-| [getWalletBalances()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1694) | :closed_lock_with_key: | GET | `sapi/v1/asset/wallet/balance` |
-| [getUserAsset()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1700) | :closed_lock_with_key: | POST | `sapi/v3/asset/getUserAsset` |
-| [submitUniversalTransfer()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1704) | :closed_lock_with_key: | POST | `sapi/v1/asset/transfer` |
-| [getUniversalTransferHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1710) | :closed_lock_with_key: | GET | `sapi/v1/asset/transfer` |
-| [getDust()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1716) | :closed_lock_with_key: | POST | `sapi/v1/asset/dust-btc` |
-| [convertDustToBnb()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1720) | :closed_lock_with_key: | POST | `sapi/v1/asset/dust` |
-| [convertDustAssets()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1727) | :closed_lock_with_key: | POST | `sapi/v1/asset/dust-convert/convert` |
-| [queryDustConvertibleAssets()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1734) | :closed_lock_with_key: | POST | `sapi/v1/asset/dust-convert/query-convertible-assets` |
-| [getDustLog()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1743) | :closed_lock_with_key: | GET | `sapi/v1/asset/dribblet` |
-| [getAssetDividendRecord()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1747) | :closed_lock_with_key: | GET | `sapi/v1/asset/assetDividend` |
-| [getTradeFee()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1751) | :closed_lock_with_key: | GET | `sapi/v1/asset/tradeFee` |
-| [getFundingAsset()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1755) | :closed_lock_with_key: | POST | `sapi/v1/asset/get-funding-asset` |
-| [getCloudMiningHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1759) | :closed_lock_with_key: | GET | `sapi/v1/asset/ledger-transfer/cloud-mining/queryByPage` |
-| [getDelegationHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1769) | :closed_lock_with_key: | GET | `sapi/v1/asset/custody/transfer-history` |
-| [submitNewFutureAccountTransfer()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1799) | :closed_lock_with_key: | POST | `sapi/v1/futures/transfer` |
-| [getFutureAccountTransferHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1809) | :closed_lock_with_key: | GET | `sapi/v1/futures/transfer` |
-| [getCrossCollateralBorrowHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1818) | :closed_lock_with_key: | GET | `sapi/v1/futures/loan/borrow/history` |
-| [getCrossCollateralRepaymentHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1825) | :closed_lock_with_key: | GET | `sapi/v1/futures/loan/repay/history` |
-| [getCrossCollateralWalletV2()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1832) | :closed_lock_with_key: | GET | `sapi/v2/futures/loan/wallet` |
-| [getAdjustCrossCollateralLTVHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1839) | :closed_lock_with_key: | GET | `sapi/v1/futures/loan/adjustCollateral/history` |
-| [getCrossCollateralLiquidationHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1851) | :closed_lock_with_key: | GET | `sapi/v1/futures/loan/liquidationHistory` |
-| [getCrossCollateralInterestHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1860) | :closed_lock_with_key: | GET | `sapi/v1/futures/loan/interestHistory` |
-| [getAccountInfo()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1872) | :closed_lock_with_key: | GET | `sapi/v1/account/info` |
-| [getDailyAccountSnapshot()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1876) | :closed_lock_with_key: | GET | `sapi/v1/accountSnapshot` |
-| [disableFastWithdrawSwitch()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1882) | :closed_lock_with_key: | POST | `sapi/v1/account/disableFastWithdrawSwitch` |
-| [enableFastWithdrawSwitch()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1886) | :closed_lock_with_key: | POST | `sapi/v1/account/enableFastWithdrawSwitch` |
-| [getAccountStatus()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1890) | :closed_lock_with_key: | GET | `sapi/v1/account/status` |
-| [getApiTradingStatus()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1894) | :closed_lock_with_key: | GET | `sapi/v1/account/apiTradingStatus` |
-| [getApiKeyPermissions()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1898) | :closed_lock_with_key: | GET | `sapi/v1/account/apiRestrictions` |
-| [withdrawTravelRule()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1914) | :closed_lock_with_key: | POST | `sapi/v1/localentity/withdraw/apply` |
-| [getTravelRuleWithdrawHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1925) | :closed_lock_with_key: | GET | `sapi/v1/localentity/withdraw/history` |
-| [getTravelRuleWithdrawHistoryV2()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1934) | :closed_lock_with_key: | GET | `sapi/v2/localentity/withdraw/history` |
-| [submitTravelRuleDepositQuestionnaire()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1946) | :closed_lock_with_key: | PUT | `sapi/v1/localentity/deposit/provide-info` |
-| [getTravelRuleDepositHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1955) | :closed_lock_with_key: | GET | `sapi/v1/localentity/deposit/history` |
-| [getOnboardedVASPList()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1966) | :closed_lock_with_key: | GET | `sapi/v1/localentity/vasp` |
-| [getTravelRuleCountryList()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1970) | :closed_lock_with_key: | GET | `sapi/v1/localentity/country/list` |
-| [getTravelRuleRegionList()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1974) | :closed_lock_with_key: | GET | `sapi/v1/localentity/region/list` |
-| [getSystemStatus()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1986) | | GET | `sapi/v1/system/status` |
-| [getDelistSchedule()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L1990) | :closed_lock_with_key: | GET | `sapi/v1/spot/delist-schedule` |
-| [createVirtualSubAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2000) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/virtualSubAccount` |
-| [getSubAccountList()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2006) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/list` |
-| [subAccountEnableFutures()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2012) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/futures/enable` |
-| [subAccountEnableMargin()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2020) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/margin/enable` |
-| [enableOptionsForSubAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2024) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/eoptions/enable` |
-| [subAccountEnableLeverageToken()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2034) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/blvt/enable` |
-| [getSubAccountStatusOnMarginOrFutures()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2040) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/status` |
-| [getSubAccountFuturesPositionRisk()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2046) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/futures/positionRisk` |
-| [getSubAccountFuturesPositionRiskV2()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2054) | :closed_lock_with_key: | GET | `sapi/v2/sub-account/futures/positionRisk` |
-| [getSubAccountTransactionStatistics()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2060) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/transaction-statistics` |
-| [getSubAccountIPRestriction()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2075) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/subAccountApi/ipRestriction` |
-| [subAccountDeleteIPList()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2084) | :closed_lock_with_key: | DELETE | `sapi/v1/sub-account/subAccountApi/ipRestriction/ipList` |
-| [subAccountAddIPRestriction()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2093) | :closed_lock_with_key: | POST | `sapi/v2/sub-account/subAccountApi/ipRestriction` |
-| [subAccountAddIPList()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2106) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/subAccountApi/ipRestriction/ipList` |
-| [subAccountEnableOrDisableIPRestriction()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2119) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/subAccountApi/ipRestriction` |
-| [subAccountFuturesTransfer()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2134) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/futures/transfer` |
-| [getSubAccountFuturesAccountDetail()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2140) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/futures/account` |
-| [getSubAccountDetailOnFuturesAccountV2()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2146) | :closed_lock_with_key: | GET | `sapi/v2/sub-account/futures/account` |
-| [getSubAccountDetailOnMarginAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2152) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/margin/account` |
-| [getSubAccountDepositAddress()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2158) | :closed_lock_with_key: | GET | `sapi/v1/capital/deposit/subAddress` |
-| [getSubAccountDepositHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2164) | :closed_lock_with_key: | GET | `sapi/v1/capital/deposit/subHisrec` |
-| [getSubAccountFuturesAccountSummary()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2170) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/futures/accountSummary` |
-| [getSubAccountSummaryOnFuturesAccountV2()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2174) | :closed_lock_with_key: | GET | `sapi/v2/sub-account/futures/accountSummary` |
-| [getSubAccountsSummaryOfMarginAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2183) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/margin/accountSummary` |
-| [subAccountMarginTransfer()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2187) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/margin/transfer` |
-| [getSubAccountAssets()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2193) | :closed_lock_with_key: | GET | `sapi/v3/sub-account/assets` |
-| [getSubAccountAssetsMaster()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2199) | :closed_lock_with_key: | GET | `sapi/v4/sub-account/assets` |
-| [getSubAccountFuturesAssetTransferHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2205) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/futures/internalTransfer` |
-| [getSubAccountSpotAssetTransferHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2214) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/sub/transfer/history` |
-| [getSubAccountSpotAssetsSummary()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2220) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/spotSummary` |
-| [getSubAccountUniversalTransferHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2226) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/universalTransfer` |
-| [subAccountFuturesAssetTransfer()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2232) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/futures/internalTransfer` |
-| [subAccountTransferHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2241) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/transfer/subUserHistory` |
-| [subAccountTransferToMaster()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2250) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/transfer/subToMaster` |
-| [subAccountTransferToSameMaster()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2256) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/transfer/subToSub` |
-| [subAccountUniversalTransfer()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2262) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/universalTransfer` |
-| [subAccountMovePosition()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2268) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/futures/move-position` |
-| [getSubAccountFuturesPositionMoveHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2277) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/futures/move-position` |
-| [depositAssetsIntoManagedSubAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2292) | :closed_lock_with_key: | POST | `sapi/v1/managed-subaccount/deposit` |
-| [getManagedSubAccountDepositAddress()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2298) | :closed_lock_with_key: | GET | `sapi/v1/managed-subaccount/deposit/address` |
-| [withdrawAssetsFromManagedSubAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2307) | :closed_lock_with_key: | POST | `sapi/v1/managed-subaccount/withdraw` |
-| [getManagedSubAccountTransfersParent()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2313) | :closed_lock_with_key: | GET | `sapi/v1/managed-subaccount/queryTransLogForTradeParent` |
-| [getManagedSubAccountTransferLog()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2325) | :closed_lock_with_key: | GET | `sapi/v1/managed-subaccount/query-trans-log` |
-| [getManagedSubAccountTransfersInvestor()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2337) | :closed_lock_with_key: | GET | `sapi/v1/managed-subaccount/queryTransLogForInvestor` |
-| [getManagedSubAccounts()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2349) | :closed_lock_with_key: | GET | `sapi/v1/managed-subaccount/info` |
-| [getManagedSubAccountSnapshot()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2356) | :closed_lock_with_key: | GET | `sapi/v1/managed-subaccount/accountSnapshot` |
-| [getManagedSubAccountAssetDetails()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2365) | :closed_lock_with_key: | GET | `sapi/v1/managed-subaccount/asset` |
-| [getManagedSubAccountMarginAssets()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2371) | :closed_lock_with_key: | GET | `sapi/v1/managed-subaccount/marginAsset` |
-| [getManagedSubAccountFuturesAssets()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2378) | :closed_lock_with_key: | GET | `sapi/v1/managed-subaccount/fetch-future-asset` |
-| [getAutoInvestAssets()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2394) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/all/asset` |
-| [getAutoInvestSourceAssets()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2401) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/source-asset/list` |
-| [getAutoInvestTargetAssets()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2410) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/target-asset/list` |
-| [getAutoInvestTargetAssetsROI()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2419) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/target-asset/roi/list` |
-| [getAutoInvestIndex()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2428) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/index/info` |
-| [getAutoInvestPlans()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2434) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/plan/list` |
-| [submitAutoInvestOneTimeTransaction()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2452) | :closed_lock_with_key: | POST | `sapi/v1/lending/auto-invest/one-off` |
-| [updateAutoInvestPlanStatus()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2468) | :closed_lock_with_key: | POST | `sapi/v1/lending/auto-invest/plan/edit-status` |
-| [updateAutoInvestmentPlan()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2477) | :closed_lock_with_key: | POST | `sapi/v1/lending/auto-invest/plan/edit` |
-| [submitAutoInvestRedemption()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2494) | :closed_lock_with_key: | POST | `sapi/v1/lending/auto-invest/redeem` |
-| [getAutoInvestSubscriptionTransactions()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2502) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/history/list` |
-| [getOneTimeTransactionStatus()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2508) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/one-off/status` |
-| [submitAutoInvestmentPlan()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2517) | :closed_lock_with_key: | POST | `sapi/v1/lending/auto-invest/plan/add` |
-| [getAutoInvestRedemptionHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2532) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/redeem/history` |
-| [getAutoInvestPlan()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2541) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/plan/id` |
-| [getAutoInvestUserIndex()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2545) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/index/user-summary` |
-| [getAutoInvestRebalanceHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2554) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/rebalance/history` |
-| [getConvertPairs()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2569) | :closed_lock_with_key: | GET | `sapi/v1/convert/exchangeInfo` |
-| [getConvertAssetInfo()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2573) | :closed_lock_with_key: | GET | `sapi/v1/convert/assetInfo` |
-| [convertQuoteRequest()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2583) | :closed_lock_with_key: | POST | `sapi/v1/convert/getQuote` |
-| [acceptQuoteRequest()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2587) | :closed_lock_with_key: | POST | `sapi/v1/convert/acceptQuote` |
-| [getConvertTradeHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2591) | :closed_lock_with_key: | GET | `sapi/v1/convert/tradeFlow` |
-| [getOrderStatus()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2595) | :closed_lock_with_key: | GET | `sapi/v1/convert/orderStatus` |
-| [submitConvertLimitOrder()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2599) | :closed_lock_with_key: | POST | `sapi/v1/convert/limit/placeOrder` |
-| [cancelConvertLimitOrder()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2603) | :closed_lock_with_key: | POST | `sapi/v1/convert/limit/cancelOrder` |
-| [getConvertLimitOpenOrders()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2607) | :closed_lock_with_key: | GET | `sapi/v1/convert/limit/queryOpenOrders` |
-| [getEthStakingAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2622) | :closed_lock_with_key: | GET | `sapi/v1/eth-staking/account` |
-| [getEthStakingAccountV2()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2626) | :closed_lock_with_key: | GET | `sapi/v2/eth-staking/account` |
-| [getEthStakingQuota()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2630) | :closed_lock_with_key: | GET | `sapi/v1/eth-staking/eth/quota` |
-| [subscribeEthStakingV1()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2643) | :closed_lock_with_key: | POST | `sapi/v1/eth-staking/eth/stake` |
-| [subscribeEthStakingV2()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2649) | :closed_lock_with_key: | POST | `sapi/v2/eth-staking/eth/stake` |
-| [redeemEth()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2655) | :closed_lock_with_key: | POST | `sapi/v1/eth-staking/eth/redeem` |
-| [wrapBeth()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2659) | :closed_lock_with_key: | POST | `sapi/v1/eth-staking/wbeth/wrap` |
-| [getEthStakingHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2669) | :closed_lock_with_key: | GET | `sapi/v1/eth-staking/eth/history/stakingHistory` |
-| [getEthRedemptionHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2679) | :closed_lock_with_key: | GET | `sapi/v1/eth-staking/eth/history/redemptionHistory` |
-| [getBethRewardsHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2689) | :closed_lock_with_key: | GET | `sapi/v1/eth-staking/eth/history/rewardsHistory` |
-| [getWbethRewardsHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2699) | :closed_lock_with_key: | GET | `sapi/v1/eth-staking/eth/history/wbethRewardsHistory` |
-| [getEthRateHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2708) | :closed_lock_with_key: | GET | `sapi/v1/eth-staking/eth/history/rateHistory` |
-| [getBethWrapHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2718) | :closed_lock_with_key: | GET | `sapi/v1/eth-staking/wbeth/history/wrapHistory` |
-| [getBethUnwrapHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2728) | :closed_lock_with_key: | GET | `sapi/v1/eth-staking/wbeth/history/unwrapHistory` |
-| [getBfusdAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2744) | :closed_lock_with_key: | GET | `sapi/v1/bfusd/account` |
-| [getBfusdQuota()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2748) | :closed_lock_with_key: | GET | `sapi/v1/bfusd/quota` |
-| [subscribeBfusd()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2752) | :closed_lock_with_key: | POST | `sapi/v1/bfusd/subscribe` |
-| [redeemBfusd()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2758) | :closed_lock_with_key: | POST | `sapi/v1/bfusd/redeem` |
-| [getBfusdSubscriptionHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2762) | :closed_lock_with_key: | GET | `sapi/v1/bfusd/history/subscriptionHistory` |
-| [getBfusdRedemptionHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2768) | :closed_lock_with_key: | GET | `sapi/v1/bfusd/history/redemptionHistory` |
-| [getBfusdRewardsHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2774) | :closed_lock_with_key: | GET | `sapi/v1/bfusd/history/rewardsHistory` |
-| [getBfusdRateHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2780) | :closed_lock_with_key: | GET | `sapi/v1/bfusd/history/rateHistory` |
-| [getRwusdAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2792) | :closed_lock_with_key: | GET | `sapi/v1/rwusd/account` |
-| [getRwusdQuota()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2796) | :closed_lock_with_key: | GET | `sapi/v1/rwusd/quota` |
-| [subscribeRwusd()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2800) | :closed_lock_with_key: | POST | `sapi/v1/rwusd/subscribe` |
-| [redeemRwusd()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2806) | :closed_lock_with_key: | POST | `sapi/v1/rwusd/redeem` |
-| [getRwusdSubscriptionHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2810) | :closed_lock_with_key: | GET | `sapi/v1/rwusd/history/subscriptionHistory` |
-| [getRwusdRedemptionHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2816) | :closed_lock_with_key: | GET | `sapi/v1/rwusd/history/redemptionHistory` |
-| [getRwusdRewardsHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2822) | :closed_lock_with_key: | GET | `sapi/v1/rwusd/history/rewardsHistory` |
-| [getRwusdRateHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2828) | :closed_lock_with_key: | GET | `sapi/v1/rwusd/history/rateHistory` |
-| [getStakingProducts()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2837) | :closed_lock_with_key: | GET | `sapi/v1/staking/productList` |
-| [getStakingProductPosition()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2848) | :closed_lock_with_key: | GET | `sapi/v1/staking/position` |
-| [getStakingHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2860) | :closed_lock_with_key: | GET | `sapi/v1/staking/stakingRecord` |
-| [getPersonalLeftQuotaOfStakingProduct()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2867) | :closed_lock_with_key: | GET | `sapi/v1/staking/personalLeftQuota` |
-| [getSolStakingAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2880) | :closed_lock_with_key: | GET | `sapi/v1/sol-staking/account` |
-| [getSolStakingQuota()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2884) | :closed_lock_with_key: | GET | `sapi/v1/sol-staking/sol/quota` |
-| [subscribeSolStaking()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2894) | :closed_lock_with_key: | POST | `sapi/v1/sol-staking/sol/stake` |
-| [redeemSol()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2900) | :closed_lock_with_key: | POST | `sapi/v1/sol-staking/sol/redeem` |
-| [claimSolBoostRewards()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2904) | :closed_lock_with_key: | POST | `sapi/v1/sol-staking/sol/claim` |
-| [getSolStakingHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2916) | :closed_lock_with_key: | GET | `sapi/v1/sol-staking/sol/history/stakingHistory` |
-| [getSolRedemptionHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2926) | :closed_lock_with_key: | GET | `sapi/v1/sol-staking/sol/history/redemptionHistory` |
-| [getBnsolRewardsHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2936) | :closed_lock_with_key: | GET | `sapi/v1/sol-staking/sol/history/bnsolRewardsHistory` |
-| [getBnsolRateHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2947) | :closed_lock_with_key: | GET | `sapi/v1/sol-staking/sol/history/rateHistory` |
-| [getSolBoostRewardsHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2957) | :closed_lock_with_key: | GET | `sapi/v1/sol-staking/sol/history/boostRewardsHistory` |
-| [getSolUnclaimedRewards()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2967) | :closed_lock_with_key: | GET | `sapi/v1/sol-staking/sol/history/unclaimedRewards` |
-| [getOnchainYieldsLockedProducts()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2982) | :closed_lock_with_key: | GET | `sapi/v1/onchain-yields/locked/list` |
-| [getOnchainYieldsLockedPersonalLeftQuota()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2988) | :closed_lock_with_key: | GET | `sapi/v1/onchain-yields/locked/personalLeftQuota` |
-| [getOnchainYieldsLockedPosition()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L2997) | :closed_lock_with_key: | GET | `sapi/v1/onchain-yields/locked/position` |
-| [getOnchainYieldsAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3003) | :closed_lock_with_key: | GET | `sapi/v1/onchain-yields/account` |
-| [getOnchainYieldsLockedSubscriptionPreview()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3013) | :closed_lock_with_key: | GET | `sapi/v1/onchain-yields/locked/subscriptionPreview` |
-| [subscribeOnchainYieldsLockedProduct()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3022) | :closed_lock_with_key: | POST | `sapi/v1/onchain-yields/locked/subscribe` |
-| [setOnchainYieldsLockedAutoSubscribe()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3028) | :closed_lock_with_key: | POST | `sapi/v1/onchain-yields/locked/setAutoSubscribe` |
-| [setOnchainYieldsLockedRedeemOption()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3037) | :closed_lock_with_key: | POST | `sapi/v1/onchain-yields/locked/setRedeemOption` |
-| [redeemOnchainYieldsLockedProduct()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3046) | :closed_lock_with_key: | POST | `sapi/v1/onchain-yields/locked/redeem` |
-| [getOnchainYieldsLockedSubscriptionRecord()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3058) | :closed_lock_with_key: | GET | `sapi/v1/onchain-yields/locked/history/subscriptionRecord` |
-| [getOnchainYieldsLockedRewardsHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3067) | :closed_lock_with_key: | GET | `sapi/v1/onchain-yields/locked/history/rewardsRecord` |
-| [getOnchainYieldsLockedRedemptionRecord()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3076) | :closed_lock_with_key: | GET | `sapi/v1/onchain-yields/locked/history/redemptionRecord` |
-| [getSoftStakingProductList()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3091) | :closed_lock_with_key: | GET | `sapi/v1/soft-staking/list` |
-| [setSoftStaking()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3097) | :closed_lock_with_key: | GET | `sapi/v1/soft-staking/set` |
-| [getSoftStakingRewardsHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3103) | :closed_lock_with_key: | GET | `sapi/v1/soft-staking/history/rewardsRecord` |
-| [getFuturesLeadTraderStatus()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3118) | :closed_lock_with_key: | GET | `sapi/v1/copyTrading/futures/userStatus` |
-| [getFuturesLeadTradingSymbolWhitelist()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3122) | :closed_lock_with_key: | GET | `sapi/v1/copyTrading/futures/leadSymbol` |
-| [getMiningAlgos()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3134) | | GET | `sapi/v1/mining/pub/algoList` |
-| [getMiningCoins()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3138) | | GET | `sapi/v1/mining/pub/coinList` |
-| [getHashrateResales()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3142) | :closed_lock_with_key: | GET | `sapi/v1/mining/hash-transfer/config/details/list` |
-| [getMiners()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3151) | :closed_lock_with_key: | GET | `sapi/v1/mining/worker/list` |
-| [getMinerDetails()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3155) | :closed_lock_with_key: | GET | `sapi/v1/mining/worker/detail` |
-| [getExtraBonuses()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3161) | :closed_lock_with_key: | GET | `sapi/v1/mining/payment/other` |
-| [getMiningEarnings()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3167) | :closed_lock_with_key: | GET | `sapi/v1/mining/payment/list` |
-| [cancelHashrateResaleConfig()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3173) | :closed_lock_with_key: | POST | `sapi/v1/mining/hash-transfer/config/cancel` |
-| [getHashrateResale()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3182) | :closed_lock_with_key: | GET | `sapi/v1/mining/hash-transfer/profit/details` |
-| [getMiningAccountEarnings()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3191) | :closed_lock_with_key: | GET | `sapi/v1/mining/payment/uid` |
-| [getMiningStatistics()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3197) | :closed_lock_with_key: | GET | `sapi/v1/mining/statistics/user/status` |
-| [submitHashrateResale()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3203) | :closed_lock_with_key: | POST | `sapi/v1/mining/hash-transfer/config` |
-| [getMiningAccounts()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3207) | :closed_lock_with_key: | GET | `sapi/v1/mining/statistics/user/list` |
-| [submitVpNewOrder()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3219) | :closed_lock_with_key: | POST | `sapi/v1/algo/futures/newOrderVp` |
-| [submitTwapNewOrder()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3226) | :closed_lock_with_key: | POST | `sapi/v1/algo/futures/newOrderTwap` |
-| [cancelAlgoOrder()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3233) | :closed_lock_with_key: | DELETE | `sapi/v1/algo/futures/order` |
-| [getAlgoSubOrders()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3239) | :closed_lock_with_key: | GET | `sapi/v1/algo/futures/subOrders` |
-| [getAlgoOpenOrders()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3245) | :closed_lock_with_key: | GET | `sapi/v1/algo/futures/openOrders` |
-| [getAlgoHistoricalOrders()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3252) | :closed_lock_with_key: | GET | `sapi/v1/algo/futures/historicalOrders` |
-| [submitSpotAlgoTwapOrder()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3265) | :closed_lock_with_key: | POST | `sapi/v1/algo/spot/newOrderTwap` |
-| [cancelSpotAlgoOrder()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3272) | :closed_lock_with_key: | DELETE | `sapi/v1/algo/spot/order` |
-| [getSpotAlgoSubOrders()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3278) | :closed_lock_with_key: | GET | `sapi/v1/algo/spot/subOrders` |
-| [getSpotAlgoOpenOrders()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3284) | :closed_lock_with_key: | GET | `sapi/v1/algo/spot/openOrders` |
-| [getSpotAlgoHistoricalOrders()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3291) | :closed_lock_with_key: | GET | `sapi/v1/algo/spot/historicalOrders` |
-| [getCryptoLoanFlexibleCollateralAssets()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3306) | :closed_lock_with_key: | GET | `sapi/v2/loan/flexible/collateral/data` |
-| [getCryptoLoanFlexibleAssets()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3315) | :closed_lock_with_key: | GET | `sapi/v2/loan/flexible/loanable/data` |
-| [borrowCryptoLoanFlexible()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3328) | :closed_lock_with_key: | POST | `sapi/v2/loan/flexible/borrow` |
-| [repayCryptoLoanFlexible()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3334) | :closed_lock_with_key: | POST | `sapi/v2/loan/flexible/repay` |
-| [repayCryptoLoanFlexibleWithCollateral()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3340) | :closed_lock_with_key: | POST | `sapi/v2/loan/flexible/repay/collateral` |
-| [adjustCryptoLoanFlexibleLTV()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3346) | :closed_lock_with_key: | POST | `sapi/v2/loan/flexible/adjust/ltv` |
-| [getCryptoLoanFlexibleLTVAdjustmentHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3358) | :closed_lock_with_key: | GET | `sapi/v2/loan/flexible/ltv/adjustment/history` |
-| [getFlexibleLoanCollateralRepayRate()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3370) | :closed_lock_with_key: | GET | `sapi/v2/loan/flexible/repay/rate` |
-| [getLoanFlexibleBorrowHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3381) | :closed_lock_with_key: | GET | `sapi/v2/loan/flexible/borrow/history` |
-| [getCryptoLoanFlexibleOngoingOrders()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3390) | :closed_lock_with_key: | GET | `sapi/v2/loan/flexible/ongoing/orders` |
-| [getFlexibleLoanLiquidationHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3399) | :closed_lock_with_key: | GET | `sapi/v2/loan/flexible/liquidation/history` |
-| [getLoanFlexibleRepaymentHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3408) | :closed_lock_with_key: | GET | `sapi/v2/loan/flexible/repay/history` |
-| [getCryptoLoanLoanableAssets()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3426) | :closed_lock_with_key: | GET | `sapi/v1/loan/loanable/data` |
-| [getCryptoLoanCollateralRepayRate()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3433) | :closed_lock_with_key: | GET | `sapi/v1/loan/repay/collateral/rate` |
-| [getCryptoLoanCollateralAssetsData()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3442) | :closed_lock_with_key: | GET | `sapi/v1/loan/collateral/data` |
-| [getCryptoLoansIncomeHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3451) | :closed_lock_with_key: | GET | `sapi/v1/loan/income` |
-| [borrowCryptoLoan()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3466) | :closed_lock_with_key: | POST | `sapi/v1/loan/borrow` |
-| [repayCryptoLoan()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3475) | :closed_lock_with_key: | POST | `sapi/v1/loan/repay` |
-| [adjustCryptoLoanLTV()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3484) | :closed_lock_with_key: | POST | `sapi/v1/loan/adjust/ltv` |
-| [customizeCryptoLoanMarginCall()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3493) | :closed_lock_with_key: | POST | `sapi/v1/loan/customize/margin_call` |
-| [getCryptoLoanOngoingOrders()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3509) | :closed_lock_with_key: | GET | `sapi/v1/loan/ongoing/orders` |
-| [getCryptoLoanBorrowHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3516) | :closed_lock_with_key: | GET | `sapi/v1/loan/borrow/history` |
-| [getCryptoLoanLTVAdjustmentHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3523) | :closed_lock_with_key: | GET | `sapi/v1/loan/ltv/adjustment/history` |
-| [getCryptoLoanRepaymentHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3532) | :closed_lock_with_key: | GET | `sapi/v1/loan/repay/history` |
-| [getSimpleEarnAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3544) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/account` |
-| [getFlexibleSavingProducts()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3548) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/flexible/list` |
-| [getSimpleEarnLockedProductList()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3555) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/locked/list` |
-| [getFlexibleProductPosition()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3564) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/flexible/position` |
-| [getLockedProductPosition()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3573) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/locked/position` |
-| [getFlexiblePersonalLeftQuota()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3582) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/flexible/personalLeftQuota` |
-| [getLockedPersonalLeftQuota()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3591) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/locked/personalLeftQuota` |
-| [purchaseFlexibleProduct()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3606) | :closed_lock_with_key: | POST | `sapi/v1/simple-earn/flexible/subscribe` |
-| [subscribeSimpleEarnLockedProduct()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3612) | :closed_lock_with_key: | POST | `sapi/v1/simple-earn/locked/subscribe` |
-| [redeemFlexibleProduct()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3618) | :closed_lock_with_key: | POST | `sapi/v1/simple-earn/flexible/redeem` |
-| [redeemLockedProduct()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3624) | :closed_lock_with_key: | POST | `sapi/v1/simple-earn/locked/redeem` |
-| [setFlexibleAutoSubscribe()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3630) | :closed_lock_with_key: | POST | `sapi/v1/simple-earn/flexible/setAutoSubscribe` |
-| [setLockedAutoSubscribe()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3639) | :closed_lock_with_key: | POST | `sapi/v1/simple-earn/locked/setAutoSubscribe` |
-| [getFlexibleSubscriptionPreview()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3648) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/flexible/subscriptionPreview` |
-| [getLockedSubscriptionPreview()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3657) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/locked/subscriptionPreview` |
-| [setLockedProductRedeemOption()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3666) | :closed_lock_with_key: | POST | `sapi/v1/simple-earn/locked/setRedeemOption` |
-| [getFlexibleSubscriptionRecord()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3684) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/flexible/history/subscriptionRecord` |
-| [getLockedSubscriptionRecord()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3696) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/locked/history/subscriptionRecord` |
-| [getFlexibleRedemptionRecord()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3708) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/flexible/history/redemptionRecord` |
-| [getLockedRedemptionRecord()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3720) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/locked/history/redemptionRecord` |
-| [getFlexibleRewardsHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3730) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/flexible/history/rewardsRecord` |
-| [getLockedRewardsHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3740) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/locked/history/rewardsRecord` |
-| [getCollateralRecord()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3750) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/flexible/history/collateralRecord` |
-| [getRateHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3760) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/flexible/history/rateHistory` |
-| [getVipBorrowInterestRate()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3776) | :closed_lock_with_key: | GET | `sapi/v1/loan/vip/request/interestRate` |
-| [getVipLoanInterestRateHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3782) | :closed_lock_with_key: | GET | `sapi/v1/loan/vip/interestRateHistory` |
-| [getVipLoanableAssets()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3791) | :closed_lock_with_key: | GET | `sapi/v1/loan/vip/loanable/data` |
-| [getVipCollateralAssets()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3798) | :closed_lock_with_key: | GET | `sapi/v1/loan/vip/collateral/data` |
-| [getVipLoanOpenOrders()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3811) | :closed_lock_with_key: | GET | `sapi/v1/loan/vip/ongoing/orders` |
-| [getVipLoanRepaymentHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3818) | :closed_lock_with_key: | GET | `sapi/v1/loan/vip/repay/history` |
-| [checkVipCollateralAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3827) | :closed_lock_with_key: | GET | `sapi/v1/loan/vip/collateral/account` |
-| [getVipApplicationStatus()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3834) | :closed_lock_with_key: | GET | `sapi/v1/loan/vip/request/data` |
-| [renewVipLoan()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3847) | :closed_lock_with_key: | POST | `sapi/v1/loan/vip/renew` |
-| [repayVipLoan()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3851) | :closed_lock_with_key: | POST | `sapi/v1/loan/vip/repay` |
-| [borrowVipLoan()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3855) | :closed_lock_with_key: | POST | `sapi/v1/loan/vip/borrow` |
-| [getVipLoanFixedRateMarket()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3859) | :closed_lock_with_key: | GET | `sapi/v1/loan/vip/fixed/market` |
-| [borrowVipLoanFixedRate()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3866) | :closed_lock_with_key: | POST | `sapi/v1/loan/vip/fixed/borrow` |
-| [getDualInvestmentProducts()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3878) | :closed_lock_with_key: | GET | `sapi/v1/dci/product/list` |
-| [subscribeDualInvestmentProduct()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3893) | :closed_lock_with_key: | POST | `sapi/v1/dci/product/subscribe` |
-| [getDualInvestmentPositions()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3899) | :closed_lock_with_key: | GET | `sapi/v1/dci/product/positions` |
-| [getDualInvestmentAccounts()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3908) | :closed_lock_with_key: | GET | `sapi/v1/dci/product/accounts` |
-| [getVipLoanAccruedInterest()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3912) | :closed_lock_with_key: | GET | `sapi/v1/loan/vip/accruedInterest` |
-| [updateAutoCompoundStatus()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3919) | :closed_lock_with_key: | POST | `sapi/v1/dci/product/auto_compound/edit-status` |
-| [createGiftCard()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3934) | :closed_lock_with_key: | POST | `sapi/v1/giftcard/createCode` |
-| [createDualTokenGiftCard()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3938) | :closed_lock_with_key: | POST | `sapi/v1/giftcard/buyCode` |
-| [redeemGiftCard()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3942) | :closed_lock_with_key: | POST | `sapi/v1/giftcard/redeemCode` |
-| [verifyGiftCard()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3946) | :closed_lock_with_key: | GET | `sapi/v1/giftcard/verify` |
-| [getTokenLimit()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3950) | :closed_lock_with_key: | GET | `sapi/v1/giftcard/buyCode/token-limit` |
-| [getRsaPublicKey()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3954) | :closed_lock_with_key: | GET | `sapi/v1/giftcard/cryptography/rsa-public-key` |
-| [getNftTransactionHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3964) | :closed_lock_with_key: | GET | `sapi/v1/nft/history/transactions` |
-| [getNftDepositHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3971) | :closed_lock_with_key: | GET | `sapi/v1/nft/history/deposit` |
-| [getNftWithdrawHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3978) | :closed_lock_with_key: | GET | `sapi/v1/nft/history/withdraw` |
-| [getNftAsset()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3985) | :closed_lock_with_key: | GET | `sapi/v1/nft/user/getAsset` |
-| [getC2CTradeHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L3998) | :closed_lock_with_key: | GET | `sapi/v1/c2c/orderMatch/listUserOrderHistory` |
-| [getFiatOrderHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4013) | :closed_lock_with_key: | GET | `sapi/v1/fiat/orders` |
-| [getFiatPaymentsHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4019) | :closed_lock_with_key: | GET | `sapi/v1/fiat/payments` |
-| [fiatWithdraw()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4025) | :closed_lock_with_key: | POST | `/sapi/v2/fiat/withdraw` |
-| [fiatDeposit()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4029) | :closed_lock_with_key: | POST | `sapi/v1/fiat/deposit` |
-| [getFiatOrderDetail()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4033) | :closed_lock_with_key: | GET | `sapi/v1/fiat/get-order-detail` |
-| [getSpotRebateHistoryRecords()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4045) | :closed_lock_with_key: | GET | `sapi/v1/rebate/taxQuery` |
-| [getPortfolioMarginIndexPrice()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4058) | | GET | `sapi/v1/portfolio/asset-index-price` |
-| [getPortfolioMarginAssetLeverage()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4064) | :closed_lock_with_key: | GET | `sapi/v1/portfolio/margin-asset-leverage` |
-| [getPortfolioMarginProCollateralRate()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4070) | | GET | `sapi/v1/portfolio/collateralRate` |
-| [getPortfolioMarginProTieredCollateralRate()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4076) | | GET | `sapi/v2/portfolio/collateralRate` |
-| [getPortfolioMarginProAccountInfo()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4087) | :closed_lock_with_key: | GET | `sapi/v1/portfolio/account` |
-| [setPortfolioMarginMarginCallLevel()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4091) | :closed_lock_with_key: | POST | `sapi/v1/portfolio/margin-call-level` |
-| [getPortfolioMarginMarginCallLevel()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4097) | :closed_lock_with_key: | GET | `sapi/v1/portfolio/margin-call-level` |
-| [deletePortfolioMarginMarginCallLevel()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4101) | :closed_lock_with_key: | DELETE | `sapi/v1/portfolio/margin-call-level` |
-| [bnbTransfer()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4105) | :closed_lock_with_key: | POST | `sapi/v1/portfolio/bnb-transfer` |
-| [submitPortfolioMarginProFullTransfer()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4111) | :closed_lock_with_key: | POST | `sapi/v1/portfolio/auto-collection` |
-| [submitPortfolioMarginProSpecificTransfer()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4117) | :closed_lock_with_key: | POST | `sapi/v1/portfolio/asset-collection` |
-| [repayPortfolioMarginProBankruptcyLoan()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4123) | :closed_lock_with_key: | POST | `sapi/v1/portfolio/repay` |
-| [getPortfolioMarginProBankruptcyLoanAmount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4131) | :closed_lock_with_key: | GET | `sapi/v1/portfolio/pmLoan` |
-| [repayFuturesNegativeBalance()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4135) | :closed_lock_with_key: | POST | `sapi/v1/portfolio/repay-futures-negative-balance` |
-| [updateAutoRepayFuturesStatus()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4141) | :closed_lock_with_key: | POST | `sapi/v1/portfolio/repay-futures-switch` |
-| [getAutoRepayFuturesStatus()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4147) | :closed_lock_with_key: | GET | `sapi/v1/portfolio/repay-futures-switch` |
-| [getPortfolioMarginProInterestHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4153) | :closed_lock_with_key: | GET | `sapi/v1/portfolio/interest-history` |
-| [getPortfolioMarginProSpanAccountInfo()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4159) | :closed_lock_with_key: | GET | `sapi/v2/portfolio/account` |
-| [getPortfolioMarginProAccountBalance()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4163) | :closed_lock_with_key: | GET | `sapi/v1/portfolio/balance` |
-| [mintPortfolioMarginBFUSD()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4173) | :closed_lock_with_key: | POST | `sapi/v1/portfolio/mint` |
-| [redeemPortfolioMarginBFUSD()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4183) | :closed_lock_with_key: | POST | `sapi/v1/portfolio/redeem` |
-| [getPortfolioMarginBankruptcyLoanRepayHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4191) | :closed_lock_with_key: | GET | `sapi/v1/portfolio/pmLoan-history` |
-| [transferLDUSDTPortfolioMargin()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4206) | :closed_lock_with_key: | POST | `sapi/v1/portfolio/earn-asset-transfer` |
-| [getTransferableEarnAssetBalanceForPortfolioMargin()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4219) | :closed_lock_with_key: | GET | `sapi/v1/portfolio/earn-asset-balance` |
-| [getFuturesTickLevelOrderbookDataLink()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4236) | :closed_lock_with_key: | GET | `sapi/v1/futures/histDataLink` |
-| [getBlvtInfo()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4250) | | GET | `sapi/v1/blvt/tokenInfo` |
-| [subscribeBlvt()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4254) | :closed_lock_with_key: | POST | `sapi/v1/blvt/subscribe` |
-| [getBlvtSubscriptionRecord()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4258) | :closed_lock_with_key: | GET | `sapi/v1/blvt/subscribe/record` |
-| [redeemBlvt()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4264) | :closed_lock_with_key: | POST | `sapi/v1/blvt/redeem` |
-| [getBlvtRedemptionRecord()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4268) | :closed_lock_with_key: | GET | `sapi/v1/blvt/redeem/record` |
-| [getBlvtUserLimitInfo()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4274) | :closed_lock_with_key: | GET | `sapi/v1/blvt/userLimit` |
-| [getPayTransactions()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4285) | :closed_lock_with_key: | GET | `sapi/v1/pay/transactions` |
-| [getInstLoanRiskUnit()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4295) | :closed_lock_with_key: | GET | `sapi/v1/margin/loan-group/ltv-details` |
-| [closeInstLoanRiskUnit()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4301) | :closed_lock_with_key: | DELETE | `sapi/v1/margin/loan-group` |
-| [addInstLoanCollateralAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4305) | :closed_lock_with_key: | POST | `sapi/v1/margin/loan-group/edit-member` |
-| [getActiveInstLoanRiskUnits()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4311) | :closed_lock_with_key: | GET | `sapi/v1/margin/loan-groups/activated` |
-| [getClosedInstLoanRiskUnits()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4315) | :closed_lock_with_key: | GET | `sapi/v1/margin/loan-groups/closed` |
-| [getInstLoanForceLiquidationRecord()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4327) | :closed_lock_with_key: | GET | `sapi/v1/margin/loan-group/force-liquidation` |
-| [transferInstLoanRiskUnit()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4341) | :closed_lock_with_key: | POST | `sapi/v1/margin/loan-group/transfer-out` |
-| [getInstitutionalLoanMaxBorrowable()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4353) | :closed_lock_with_key: | GET | `sapi/v1/margin/loan-group/max-borrowable` |
-| [borrowInstitutionalLoan()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4359) | :closed_lock_with_key: | POST | `sapi/v1/margin/loan-group/borrow` |
-| [getInstLoanInterestHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4365) | :closed_lock_with_key: | GET | `sapi/v1/margin/loan-group/interest-history` |
-| [repayInstitutionalLoan()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4374) | :closed_lock_with_key: | POST | `sapi/v1/margin/loan-group/repay` |
-| [getInstLoanBorrowRepayRecords()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4380) | :closed_lock_with_key: | GET | `sapi/v1/margin/loan-group/borrow-repay` |
-| [getMarginInterestRebateBalance()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4386) | :closed_lock_with_key: | GET | `sapi/v1/margin/loan-group/interest-rebate-balance` |
-| [getMarginInterestRebateBalanceRecords()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4390) | :closed_lock_with_key: | GET | `sapi/v1/margin/loan-group/interest-rebate-balance/records` |
-| [getAlphaTokenList()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4405) | | GET | `bapi/defi/v1/public/wallet-direct/buw/wallet/cex/alpha/all/token/list` |
-| [getAlphaExchangeInfo()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4412) | | GET | `bapi/defi/v1/public/alpha-trade/get-exchange-info` |
-| [getAlphaAggTrades()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4419) | | GET | `bapi/defi/v1/public/alpha-trade/agg-trades` |
-| [getAlphaKlines()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4427) | | GET | `bapi/defi/v1/public/alpha-trade/klines` |
-| [getAlphaTicker()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4435) | | GET | `bapi/defi/v1/public/alpha-trade/ticker` |
-| [getAlphaFullDepth()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4443) | | GET | `bapi/defi/v1/public/alpha-trade/fullDepth` |
-| [createBrokerSubAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4459) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccount` |
-| [getBrokerSubAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4465) | :closed_lock_with_key: | GET | `sapi/v1/broker/subAccount` |
-| [enableMarginBrokerSubAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4471) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccount/futures` |
-| [createApiKeyBrokerSubAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4477) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccountApi` |
-| [changePermissionApiKeyBrokerSubAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4483) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccountApi/permission` |
-| [changeComissionBrokerSubAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4489) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccountApi/permission` |
-| [enableUniversalTransferApiKeyBrokerSubAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4495) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccountApi/permission/universalTransfer` |
-| [updateIpRestrictionForSubAccountApiKey()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4504) | :closed_lock_with_key: | POST | `sapi/v2/broker/subAccountApi/ipRestriction` |
-| [deleteIPRestrictionForSubAccountApiKey()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4518) | :closed_lock_with_key: | DELETE | `sapi/v1/broker/subAccountApi/ipRestriction/ipList` |
-| [deleteApiKeyBrokerSubAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4534) | :closed_lock_with_key: | DELETE | `sapi/v1/broker/subAccountApi` |
-| [getSubAccountBrokerIpRestriction()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4540) | :closed_lock_with_key: | GET | `sapi/v1/broker/subAccountApi/ipRestriction` |
-| [getApiKeyBrokerSubAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4556) | :closed_lock_with_key: | GET | `sapi/v1/broker/subAccountApi` |
-| [getBrokerInfo()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4562) | :closed_lock_with_key: | GET | `sapi/v1/broker/info` |
-| [updateSubAccountBNBBurn()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4566) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccount/bnbBurn/spot` |
-| [updateSubAccountMarginInterestBNBBurn()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4576) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccount/bnbBurn/marginInterest` |
-| [getSubAccountBNBBurnStatus()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4589) | :closed_lock_with_key: | GET | `sapi/v1/broker/subAccount/bnbBurn/status` |
-| [deleteBrokerSubAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4605) | :closed_lock_with_key: | DELETE | `/sapi/v1/broker/subAccount` |
-| [transferBrokerSubAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4615) | :closed_lock_with_key: | POST | `sapi/v1/broker/transfer` |
-| [getBrokerSubAccountHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4621) | :closed_lock_with_key: | GET | `sapi/v1/broker/transfer` |
-| [submitBrokerSubFuturesTransfer()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4627) | :closed_lock_with_key: | POST | `sapi/v1/broker/transfer/futures` |
-| [getSubAccountFuturesTransferHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4642) | :closed_lock_with_key: | GET | `sapi/v1/broker/transfer/futures` |
-| [getBrokerSubDepositHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4654) | :closed_lock_with_key: | GET | `sapi/v1/broker/subAccount/depositHist` |
-| [getBrokerSubAccountSpotAssets()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4660) | :closed_lock_with_key: | GET | `sapi/v1/broker/subAccount/spotSummary` |
-| [getSubAccountMarginAssetInfo()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4669) | :closed_lock_with_key: | GET | `sapi/v1/broker/subAccount/marginSummary` |
-| [querySubAccountFuturesAssetInfo()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4678) | :closed_lock_with_key: | GET | `sapi/v3/broker/subAccount/futuresSummary` |
-| [universalTransferBroker()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4687) | :closed_lock_with_key: | POST | `sapi/v1/broker/universalTransfer` |
-| [getUniversalTransferBroker()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4694) | :closed_lock_with_key: | GET | `sapi/v1/broker/universalTransfer` |
-| [updateBrokerSubAccountCommission()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4706) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccountApi/commission` |
-| [updateBrokerSubAccountFuturesCommission()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4712) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccountApi/commission/futures` |
-| [getBrokerSubAccountFuturesCommission()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4721) | :closed_lock_with_key: | GET | `sapi/v1/broker/subAccountApi/commission/futures` |
-| [updateBrokerSubAccountCoinFuturesCommission()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4730) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccountApi/commission/coinFutures` |
-| [getBrokerSubAccountCoinFuturesCommission()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4739) | :closed_lock_with_key: | GET | `sapi/v1/broker/subAccountApi/commission/coinFutures` |
-| [getBrokerSpotCommissionRebate()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4748) | :closed_lock_with_key: | GET | `sapi/v1/broker/rebate/recentRecord` |
-| [getBrokerFuturesCommissionRebate()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4754) | :closed_lock_with_key: | GET | `sapi/v1/broker/rebate/futures/recentRecord` |
-| [getBrokerIfNewSpotUser()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4791) | :closed_lock_with_key: | GET | `sapi/v1/apiReferral/ifNewUser` |
-| [getBrokerSubAccountDepositHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4802) | :closed_lock_with_key: | GET | `sapi/v1/bv1/apiReferral/ifNewUser` |
-| [enableFuturesBrokerSubAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4821) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccount` |
-| [enableMarginApiKeyBrokerSubAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4831) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccount/margin` |
-| [getSpotUserDataListenKey()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4872) | | POST | `api/v3/userDataStream` |
-| [keepAliveSpotUserDataListenKey()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4876) | | PUT | `api/v3/userDataStream?listenKey=${listenKey}` |
-| [closeSpotUserDataListenKey()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4880) | | DELETE | `api/v3/userDataStream?listenKey=${listenKey}` |
-| [getMarginUserDataListenKey()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4887) | | POST | `sapi/v1/userDataStream` |
-| [keepAliveMarginUserDataListenKey()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4891) | | PUT | `sapi/v1/userDataStream?listenKey=${listenKey}` |
-| [closeMarginUserDataListenKey()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4895) | | DELETE | `sapi/v1/userDataStream?listenKey=${listenKey}` |
-| [getIsolatedMarginUserDataListenKey()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4900) | | POST | `sapi/v1/userDataStream/isolated?${serialiseParams(params` |
-| [keepAliveIsolatedMarginUserDataListenKey()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4908) | | PUT | `sapi/v1/userDataStream/isolated?${serialiseParams(params` |
-| [closeIsolatedMarginUserDataListenKey()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4917) | | DELETE | `sapi/v1/userDataStream/isolated?${serialiseParams(params` |
-| [getMarginRiskUserDataListenKey()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4929) | | POST | `sapi/v1/margin/listen-key` |
-| [keepAliveMarginRiskUserDataListenKey()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4933) | | PUT | `sapi/v1/margin/listen-key?listenKey=${listenKey}` |
-| [closeMarginRiskUserDataListenKey()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4937) | | DELETE | `sapi/v1/margin/listen-key` |
-| [getMarginListenToken()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4945) | :closed_lock_with_key: | POST | `sapi/v1/userListenToken` |
-| [getBSwapLiquidity()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4967) | :closed_lock_with_key: | GET | `sapi/v1/bswap/liquidity` |
-| [addBSwapLiquidity()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4974) | :closed_lock_with_key: | POST | `sapi/v1/bswap/liquidityAdd` |
-| [removeBSwapLiquidity()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4983) | :closed_lock_with_key: | POST | `sapi/v1/bswap/liquidityRemove` |
-| [getBSwapOperations()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L4992) | :closed_lock_with_key: | GET | `sapi/v1/bswap/liquidityOps` |
-| [getLeftDailyPurchaseQuotaFlexibleProduct()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L5007) | :closed_lock_with_key: | GET | `sapi/v1/lending/daily/userLeftQuota` |
-| [getLeftDailyRedemptionQuotaFlexibleProduct()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L5016) | :closed_lock_with_key: | GET | `sapi/v1/lending/daily/userRedemptionQuota` |
-| [purchaseFixedAndActivityProject()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L5030) | :closed_lock_with_key: | POST | `sapi/v1/lending/customizedFixed/purchase` |
-| [getFixedAndActivityProjects()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L5040) | :closed_lock_with_key: | GET | `sapi/v1/lending/project/list` |
-| [getFixedAndActivityProductPosition()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L5049) | :closed_lock_with_key: | GET | `sapi/v1/lending/project/position/list` |
-| [getLendingAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L5058) | :closed_lock_with_key: | GET | `sapi/v1/lending/union/account` |
-| [getPurchaseRecord()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L5065) | :closed_lock_with_key: | GET | `sapi/v1/lending/union/purchaseRecord` |
-| [getRedemptionRecord()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L5072) | :closed_lock_with_key: | GET | `sapi/v1/lending/union/redemptionRecord` |
-| [getInterestHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L5079) | :closed_lock_with_key: | GET | `sapi/v1/lending/union/interestHistory` |
-| [changeFixedAndActivityPositionToDailyPosition()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L5086) | :closed_lock_with_key: | POST | `sapi/v1/lending/positionChanged` |
-| [enableConvertSubAccount()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L5103) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccount/convert` |
-| [convertBUSD()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L5111) | :closed_lock_with_key: | POST | `sapi/v1/asset/convert-transfer` |
-| [getConvertBUSDHistory()](https://github.com/tiagosiebler/binance/blob/master/src/main-client.ts#L5118) | :closed_lock_with_key: | GET | `sapi/v1/asset/convert-transfer/queryByPage` |
+| [testConnectivity()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L788) | | GET | `api/v3/ping` |
+| [getExchangeInfo()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L792) | | GET | `api/v3/exchangeInfo` |
+| [getOrderBook()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L812) | | GET | `api/v3/depth` |
+| [getRecentTrades()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L816) | | GET | `api/v3/trades` |
+| [getHistoricalTrades()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L820) | | GET | `api/v3/historicalTrades` |
+| [getHistoricalBlockTrades()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L824) | | GET | `api/v3/historicalBlockTrades` |
+| [getAggregateTrades()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L830) | | GET | `api/v3/aggTrades` |
+| [getKlines()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L836) | | GET | `api/v3/klines` |
+| [getUIKlines()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L840) | | GET | `api/v3/uiKlines` |
+| [getAvgPrice()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L844) | | GET | `api/v3/avgPrice` |
+| [getExecutionRules()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L848) | | GET | `api/v3/executionRules?symbols=` |
+| [getReferencePrice()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L863) | | GET | `api/v3/referencePrice` |
+| [getReferencePriceCalculation()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L869) | | GET | `api/v3/referencePrice/calculation` |
+| [get24hrChangeStatistics()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L876) | | GET | `api/v3/ticker/24hr?symbols=` |
+| [getTradingDayTicker()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L906) | | GET | `api/v3/ticker/tradingDay?symbols=` |
+| [getSymbolPriceTicker()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L921) | | GET | `api/v3/ticker/price?symbols=` |
+| [getSymbolOrderBookTicker()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L938) | | GET | `api/v3/ticker/bookTicker?symbols=` |
+| [getRollingWindowTicker()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L955) | | GET | `api/v3/ticker?symbols=` |
+| [submitNewOrder()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L977) | :closed_lock_with_key: | POST | `api/v3/order` |
+| [testNewOrder()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L985) | :closed_lock_with_key: | POST | `api/v3/order/test` |
+| [getOrder()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L993) | :closed_lock_with_key: | GET | `api/v3/order` |
+| [cancelOrder()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L997) | :closed_lock_with_key: | DELETE | `api/v3/order` |
+| [cancelAllSymbolOrders()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1001) | :closed_lock_with_key: | DELETE | `api/v3/openOrders` |
+| [replaceOrder()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1007) | :closed_lock_with_key: | POST | `api/v3/order/cancelReplace` |
+| [amendOrderKeepPriority()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1021) | :closed_lock_with_key: | PUT | `fapi/v1/order/amend/keepPriority` |
+| [getOpenOrders()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1028) | :closed_lock_with_key: | GET | `api/v3/openOrders` |
+| [getAllOrders()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1032) | :closed_lock_with_key: | GET | `api/v3/allOrders` |
+| [submitNewOCO()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1039) | :closed_lock_with_key: | POST | `api/v3/order/oco` |
+| [submitNewOrderList()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1046) | :closed_lock_with_key: | POST | `api/v3/orderList/oco` |
+| [submitNewOrderListOTO()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1055) | :closed_lock_with_key: | POST | `api/v3/orderList/oto` |
+| [submitNewOrderListOTOCO()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1064) | :closed_lock_with_key: | POST | `api/v3/orderList/otoco` |
+| [submitNewOrderListOPO()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1074) | :closed_lock_with_key: | POST | `api/v3/orderList/opo` |
+| [submitNewOrderListOPOCO()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1083) | :closed_lock_with_key: | POST | `api/v3/orderList/opoco` |
+| [cancelOCO()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1093) | :closed_lock_with_key: | DELETE | `api/v3/orderList` |
+| [getOCO()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1098) | :closed_lock_with_key: | GET | `api/v3/orderList` |
+| [getAllOCO()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1102) | :closed_lock_with_key: | GET | `api/v3/allOrderList` |
+| [getAllOpenOCO()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1109) | :closed_lock_with_key: | GET | `api/v3/openOrderList` |
+| [submitNewSOROrder()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1116) | :closed_lock_with_key: | POST | `api/v3/sor/order` |
+| [testNewSOROrder()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1127) | :closed_lock_with_key: | POST | `api/v3/sor/order/test` |
+| [getAccountInformation()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1143) | :closed_lock_with_key: | GET | `api/v3/account` |
+| [getAccountTradeList()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1149) | :closed_lock_with_key: | GET | `api/v3/myTrades` |
+| [getOrderRateLimit()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1155) | :closed_lock_with_key: | GET | `api/v3/rateLimit/order` |
+| [getPreventedMatches()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1159) | :closed_lock_with_key: | GET | `api/v3/myPreventedMatches` |
+| [getAllocations()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1165) | :closed_lock_with_key: | GET | `api/v3/myAllocations` |
+| [getCommissionRates()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1169) | :closed_lock_with_key: | GET | `api/v3/account/commission` |
+| [getCrossMarginCollateralRatio()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1179) | :closed_lock_with_key: | GET | `sapi/v1/margin/crossMarginCollateralRatio` |
+| [getAllCrossMarginPairs()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1188) | | GET | `sapi/v1/margin/allPairs` |
+| [getIsolatedMarginAllSymbols()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1192) | :closed_lock_with_key: | GET | `sapi/v1/margin/isolated/allPairs` |
+| [getAllMarginAssets()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1198) | | GET | `sapi/v1/margin/allAssets` |
+| [getMarginDelistSchedule()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1202) | :closed_lock_with_key: | GET | `sapi/v1/margin/delist-schedule` |
+| [getIsolatedMarginTierData()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1206) | :closed_lock_with_key: | GET | `sapi/v1/margin/isolatedMarginTier` |
+| [queryMarginPriceIndex()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1212) | | GET | `sapi/v1/margin/priceIndex` |
+| [getMarginAvailableInventory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1218) | :closed_lock_with_key: | GET | `sapi/v1/margin/available-inventory` |
+| [getLeverageBracket()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1224) | :closed_lock_with_key: | GET | `sapi/v1/margin/leverageBracket` |
+| [getNextHourlyInterestRate()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1234) | :closed_lock_with_key: | GET | `sapi/v1/margin/next-hourly-interest-rate` |
+| [getMarginInterestHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1240) | :closed_lock_with_key: | GET | `sapi/v1/margin/interestHistory` |
+| [submitMarginAccountBorrowRepay()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1247) | :closed_lock_with_key: | POST | `sapi/v1/margin/borrow-repay` |
+| [getMarginAccountBorrowRepayRecords()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1253) | :closed_lock_with_key: | GET | `sapi/v1/margin/borrow-repay` |
+| [getMarginInterestRateHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1259) | :closed_lock_with_key: | GET | `sapi/v1/margin/interestRateHistory` |
+| [queryMaxBorrow()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1265) | :closed_lock_with_key: | GET | `sapi/v1/margin/maxBorrowable` |
+| [getMarginForceLiquidationRecord()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1277) | :closed_lock_with_key: | GET | `sapi/v1/margin/forceLiquidationRec` |
+| [getSmallLiabilityExchangeCoins()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1286) | :closed_lock_with_key: | GET | `sapi/v1/margin/exchange-small-liability` |
+| [getSmallLiabilityExchangeHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1290) | :closed_lock_with_key: | GET | `sapi/v1/margin/exchange-small-liability-history` |
+| [marginAccountCancelOpenOrders()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1302) | :closed_lock_with_key: | DELETE | `sapi/v1/margin/openOrders` |
+| [marginAccountCancelOCO()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1308) | :closed_lock_with_key: | DELETE | `sapi/v1/margin/orderList` |
+| [marginAccountCancelOrder()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1313) | :closed_lock_with_key: | DELETE | `sapi/v1/margin/order` |
+| [marginAccountNewOCO()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1319) | :closed_lock_with_key: | POST | `sapi/v1/margin/order/oco` |
+| [marginAccountNewOrder()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1326) | :closed_lock_with_key: | POST | `sapi/v1/margin/order` |
+| [getMarginOrderCountUsage()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1334) | :closed_lock_with_key: | GET | `sapi/v1/margin/rateLimit/order` |
+| [queryMarginAccountAllOCO()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1340) | :closed_lock_with_key: | GET | `sapi/v1/margin/allOrderList` |
+| [queryMarginAccountAllOrders()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1346) | :closed_lock_with_key: | GET | `sapi/v1/margin/allOrders` |
+| [queryMarginAccountOCO()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1352) | :closed_lock_with_key: | GET | `sapi/v1/margin/orderList` |
+| [queryMarginAccountOpenOCO()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1356) | :closed_lock_with_key: | GET | `sapi/v1/margin/openOrderList` |
+| [queryMarginAccountOpenOrders()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1363) | :closed_lock_with_key: | GET | `sapi/v1/margin/openOrders` |
+| [queryMarginAccountOrder()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1367) | :closed_lock_with_key: | GET | `sapi/v1/margin/order` |
+| [queryMarginAccountTradeList()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1371) | :closed_lock_with_key: | GET | `sapi/v1/margin/myTrades` |
+| [submitSmallLiabilityExchange()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1377) | :closed_lock_with_key: | POST | `sapi/v1/margin/exchange-small-liability` |
+| [submitManualLiquidation()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1384) | :closed_lock_with_key: | POST | `sapi/v1/margin/manual-liquidation` |
+| [submitMarginOTOOrder()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1393) | :closed_lock_with_key: | POST | `sapi/v1/margin/order/oto` |
+| [submitMarginOTOCOOrder()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1405) | :closed_lock_with_key: | POST | `sapi/v1/margin/order/otoco` |
+| [createMarginSpecialLowLatencyKey()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1418) | :closed_lock_with_key: | POST | `sapi/v1/margin/apiKey` |
+| [deleteMarginSpecialLowLatencyKey()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1424) | :closed_lock_with_key: | DELETE | `sapi/v1/margin/apiKey` |
+| [updateMarginIPForSpecialLowLatencyKey()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1432) | :closed_lock_with_key: | PUT | `sapi/v1/margin/apiKey/ip` |
+| [getMarginSpecialLowLatencyKeys()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1443) | :closed_lock_with_key: | GET | `sapi/v1/margin/api-key-list` |
+| [getMarginSpecialLowLatencyKey()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1452) | :closed_lock_with_key: | GET | `sapi/v1/margin/apiKey` |
+| [getMarginLiquidationLoan()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1462) | :closed_lock_with_key: | GET | `sapi/v1/margin/liquidation-loan` |
+| [repayMarginLiquidationLoan()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1469) | :closed_lock_with_key: | POST | `sapi/v1/margin/liquidation-loan/repay` |
+| [getMarginLiquidationLoanRepayHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1478) | :closed_lock_with_key: | GET | `sapi/v1/margin/liquidation-loan/repay-history` |
+| [exitMarginSpecialKeyMode()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1490) | :closed_lock_with_key: | POST | `sapi/v1/margin/exit-special-key-mode` |
+| [getCrossMarginTransferHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1500) | :closed_lock_with_key: | GET | `sapi/v1/margin/transfer` |
+| [queryMaxTransferOutAmount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1506) | :closed_lock_with_key: | GET | `sapi/v1/margin/maxTransferable` |
+| [updateCrossMarginMaxLeverage()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1518) | :closed_lock_with_key: | POST | `sapi/v1/margin/max-leverage` |
+| [disableIsolatedMarginAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1524) | :closed_lock_with_key: | DELETE | `sapi/v1/margin/isolated/account` |
+| [enableIsolatedMarginAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1531) | :closed_lock_with_key: | POST | `sapi/v1/margin/isolated/account` |
+| [getBNBBurn()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1538) | :closed_lock_with_key: | GET | `sapi/v1/bnbBurn` |
+| [getMarginSummary()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1542) | :closed_lock_with_key: | GET | `sapi/v1/margin/tradeCoeff` |
+| [queryCrossMarginAccountDetails()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1546) | :closed_lock_with_key: | GET | `sapi/v1/margin/account` |
+| [getCrossMarginFeeData()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1550) | :closed_lock_with_key: | GET | `sapi/v1/margin/crossMarginData` |
+| [getIsolatedMarginAccountLimit()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1556) | :closed_lock_with_key: | GET | `sapi/v1/margin/isolated/accountLimit` |
+| [getIsolatedMarginAccountInfo()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1563) | :closed_lock_with_key: | GET | `sapi/v1/margin/isolated/account` |
+| [getIsolatedMarginFeeData()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1569) | :closed_lock_with_key: | GET | `sapi/v1/margin/isolatedMarginData` |
+| [toggleBNBBurn()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1575) | :closed_lock_with_key: | POST | `sapi/v1/bnbBurn` |
+| [getMarginCapitalFlow()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1583) | :closed_lock_with_key: | GET | `sapi/v1/margin/capital-flow` |
+| [queryLoanRecord()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1592) | :closed_lock_with_key: | GET | `sapi/v1/margin/loan` |
+| [queryRepayRecord()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1601) | :closed_lock_with_key: | GET | `sapi/v1/margin/repay` |
+| [isolatedMarginAccountTransfer()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1610) | :closed_lock_with_key: | POST | `sapi/v1/margin/isolated/transfer` |
+| [getBalances()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1622) | :closed_lock_with_key: | GET | `sapi/v1/capital/config/getall` |
+| [withdraw()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1626) | :closed_lock_with_key: | POST | `sapi/v1/capital/withdraw/apply` |
+| [getWithdrawHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1630) | :closed_lock_with_key: | GET | `sapi/v1/capital/withdraw/history` |
+| [getWithdrawAddresses()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1636) | :closed_lock_with_key: | GET | `sapi/v1/capital/withdraw/address/list` |
+| [getWithdrawQuota()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1640) | :closed_lock_with_key: | GET | `sapi/v1/capital/withdraw/quota` |
+| [getDepositHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1647) | :closed_lock_with_key: | GET | `sapi/v1/capital/deposit/hisrec` |
+| [getDepositAddress()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1651) | :closed_lock_with_key: | GET | `sapi/v1/capital/deposit/address` |
+| [getDepositAddresses()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1657) | :closed_lock_with_key: | GET | `sapi/v1/capital/deposit/address/list` |
+| [submitDepositCredit()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1663) | :closed_lock_with_key: | POST | `sapi/v1/capital/deposit/credit-apply` |
+| [getAutoConvertStablecoins()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1672) | :closed_lock_with_key: | GET | `sapi/v1/capital/contract/convertible-coins` |
+| [setConvertibleCoins()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1679) | :closed_lock_with_key: | POST | `sapi/v1/capital/contract/convertible-coins` |
+| [getAssetDetail()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1692) | :closed_lock_with_key: | GET | `sapi/v1/asset/assetDetail` |
+| [getWalletBalances()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1698) | :closed_lock_with_key: | GET | `sapi/v1/asset/wallet/balance` |
+| [getUserAsset()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1704) | :closed_lock_with_key: | POST | `sapi/v3/asset/getUserAsset` |
+| [getSpotAssetTags()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1708) | | GET | `sapi/v1/spot/asset/tags` |
+| [submitUniversalTransfer()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1712) | :closed_lock_with_key: | POST | `sapi/v1/asset/transfer` |
+| [getUniversalTransferHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1718) | :closed_lock_with_key: | GET | `sapi/v1/asset/transfer` |
+| [getDust()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1724) | :closed_lock_with_key: | POST | `sapi/v1/asset/dust-btc` |
+| [convertDustToBnb()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1728) | :closed_lock_with_key: | POST | `sapi/v1/asset/dust` |
+| [convertDustAssets()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1735) | :closed_lock_with_key: | POST | `sapi/v1/asset/dust-convert/convert` |
+| [queryDustConvertibleAssets()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1742) | :closed_lock_with_key: | POST | `sapi/v1/asset/dust-convert/query-convertible-assets` |
+| [getDustLog()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1751) | :closed_lock_with_key: | GET | `sapi/v1/asset/dribblet` |
+| [getAssetDividendRecord()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1755) | :closed_lock_with_key: | GET | `sapi/v1/asset/assetDividend` |
+| [getTradeFee()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1759) | :closed_lock_with_key: | GET | `sapi/v1/asset/tradeFee` |
+| [getFundingAsset()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1763) | :closed_lock_with_key: | POST | `sapi/v1/asset/get-funding-asset` |
+| [getCloudMiningHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1767) | :closed_lock_with_key: | GET | `sapi/v1/asset/ledger-transfer/cloud-mining/queryByPage` |
+| [getDelegationHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1777) | :closed_lock_with_key: | GET | `sapi/v1/asset/custody/transfer-history` |
+| [submitNewFutureAccountTransfer()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1807) | :closed_lock_with_key: | POST | `sapi/v1/futures/transfer` |
+| [getFutureAccountTransferHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1817) | :closed_lock_with_key: | GET | `sapi/v1/futures/transfer` |
+| [getCrossCollateralBorrowHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1826) | :closed_lock_with_key: | GET | `sapi/v1/futures/loan/borrow/history` |
+| [getCrossCollateralRepaymentHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1833) | :closed_lock_with_key: | GET | `sapi/v1/futures/loan/repay/history` |
+| [getCrossCollateralWalletV2()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1840) | :closed_lock_with_key: | GET | `sapi/v2/futures/loan/wallet` |
+| [getAdjustCrossCollateralLTVHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1847) | :closed_lock_with_key: | GET | `sapi/v1/futures/loan/adjustCollateral/history` |
+| [getCrossCollateralLiquidationHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1859) | :closed_lock_with_key: | GET | `sapi/v1/futures/loan/liquidationHistory` |
+| [getCrossCollateralInterestHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1868) | :closed_lock_with_key: | GET | `sapi/v1/futures/loan/interestHistory` |
+| [getAccountInfo()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1880) | :closed_lock_with_key: | GET | `sapi/v1/account/info` |
+| [getDailyAccountSnapshot()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1884) | :closed_lock_with_key: | GET | `sapi/v1/accountSnapshot` |
+| [disableFastWithdrawSwitch()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1890) | :closed_lock_with_key: | POST | `sapi/v1/account/disableFastWithdrawSwitch` |
+| [enableFastWithdrawSwitch()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1894) | :closed_lock_with_key: | POST | `sapi/v1/account/enableFastWithdrawSwitch` |
+| [getAccountStatus()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1898) | :closed_lock_with_key: | GET | `sapi/v1/account/status` |
+| [getApiTradingStatus()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1902) | :closed_lock_with_key: | GET | `sapi/v1/account/apiTradingStatus` |
+| [getApiKeyPermissions()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1906) | :closed_lock_with_key: | GET | `sapi/v1/account/apiRestrictions` |
+| [withdrawTravelRule()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1922) | :closed_lock_with_key: | POST | `sapi/v1/localentity/withdraw/apply` |
+| [getTravelRuleWithdrawHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1933) | :closed_lock_with_key: | GET | `sapi/v1/localentity/withdraw/history` |
+| [getTravelRuleWithdrawHistoryV2()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1942) | :closed_lock_with_key: | GET | `sapi/v2/localentity/withdraw/history` |
+| [submitTravelRuleDepositQuestionnaire()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1954) | :closed_lock_with_key: | PUT | `sapi/v1/localentity/deposit/provide-info` |
+| [getTravelRuleDepositHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1963) | :closed_lock_with_key: | GET | `sapi/v1/localentity/deposit/history` |
+| [getOnboardedVASPList()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1974) | :closed_lock_with_key: | GET | `sapi/v1/localentity/vasp` |
+| [getTravelRuleCountryList()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1978) | :closed_lock_with_key: | GET | `sapi/v1/localentity/country/list` |
+| [getTravelRuleRegionList()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1982) | :closed_lock_with_key: | GET | `sapi/v1/localentity/region/list` |
+| [getSystemStatus()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1994) | | GET | `sapi/v1/system/status` |
+| [getDelistSchedule()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L1998) | :closed_lock_with_key: | GET | `sapi/v1/spot/delist-schedule` |
+| [createVirtualSubAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2008) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/virtualSubAccount` |
+| [getSubAccountList()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2014) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/list` |
+| [subAccountEnableFutures()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2020) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/futures/enable` |
+| [subAccountEnableMargin()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2028) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/margin/enable` |
+| [enableOptionsForSubAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2032) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/eoptions/enable` |
+| [subAccountEnableLeverageToken()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2042) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/blvt/enable` |
+| [getSubAccountStatusOnMarginOrFutures()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2048) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/status` |
+| [getSubAccountFuturesPositionRisk()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2054) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/futures/positionRisk` |
+| [getSubAccountFuturesPositionRiskV2()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2062) | :closed_lock_with_key: | GET | `sapi/v2/sub-account/futures/positionRisk` |
+| [getSubAccountTransactionStatistics()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2068) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/transaction-statistics` |
+| [getSubAccountIPRestriction()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2083) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/subAccountApi/ipRestriction` |
+| [subAccountDeleteIPList()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2092) | :closed_lock_with_key: | DELETE | `sapi/v1/sub-account/subAccountApi/ipRestriction/ipList` |
+| [subAccountAddIPRestriction()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2101) | :closed_lock_with_key: | POST | `sapi/v2/sub-account/subAccountApi/ipRestriction` |
+| [subAccountAddIPList()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2114) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/subAccountApi/ipRestriction/ipList` |
+| [subAccountEnableOrDisableIPRestriction()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2127) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/subAccountApi/ipRestriction` |
+| [subAccountFuturesTransfer()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2142) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/futures/transfer` |
+| [getSubAccountFuturesAccountDetail()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2148) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/futures/account` |
+| [getSubAccountDetailOnFuturesAccountV2()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2154) | :closed_lock_with_key: | GET | `sapi/v2/sub-account/futures/account` |
+| [getSubAccountDetailOnMarginAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2160) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/margin/account` |
+| [getSubAccountDepositAddress()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2166) | :closed_lock_with_key: | GET | `sapi/v1/capital/deposit/subAddress` |
+| [getSubAccountDepositHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2172) | :closed_lock_with_key: | GET | `sapi/v1/capital/deposit/subHisrec` |
+| [getSubAccountFuturesAccountSummary()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2178) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/futures/accountSummary` |
+| [getSubAccountSummaryOnFuturesAccountV2()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2182) | :closed_lock_with_key: | GET | `sapi/v2/sub-account/futures/accountSummary` |
+| [getSubAccountsSummaryOfMarginAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2191) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/margin/accountSummary` |
+| [subAccountMarginTransfer()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2195) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/margin/transfer` |
+| [getSubAccountAssets()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2201) | :closed_lock_with_key: | GET | `sapi/v3/sub-account/assets` |
+| [getSubAccountAssetsMaster()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2207) | :closed_lock_with_key: | GET | `sapi/v4/sub-account/assets` |
+| [getSubAccountFuturesAssetTransferHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2213) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/futures/internalTransfer` |
+| [getSubAccountSpotAssetTransferHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2222) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/sub/transfer/history` |
+| [getSubAccountSpotAssetsSummary()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2228) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/spotSummary` |
+| [getSubAccountUniversalTransferHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2234) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/universalTransfer` |
+| [subAccountFuturesAssetTransfer()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2240) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/futures/internalTransfer` |
+| [subAccountTransferHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2249) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/transfer/subUserHistory` |
+| [subAccountTransferToMaster()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2258) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/transfer/subToMaster` |
+| [subAccountTransferToSameMaster()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2264) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/transfer/subToSub` |
+| [subAccountUniversalTransfer()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2270) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/universalTransfer` |
+| [subAccountMovePosition()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2276) | :closed_lock_with_key: | POST | `sapi/v1/sub-account/futures/move-position` |
+| [getSubAccountFuturesPositionMoveHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2285) | :closed_lock_with_key: | GET | `sapi/v1/sub-account/futures/move-position` |
+| [depositAssetsIntoManagedSubAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2300) | :closed_lock_with_key: | POST | `sapi/v1/managed-subaccount/deposit` |
+| [getManagedSubAccountDepositAddress()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2306) | :closed_lock_with_key: | GET | `sapi/v1/managed-subaccount/deposit/address` |
+| [withdrawAssetsFromManagedSubAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2315) | :closed_lock_with_key: | POST | `sapi/v1/managed-subaccount/withdraw` |
+| [getManagedSubAccountTransfersParent()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2321) | :closed_lock_with_key: | GET | `sapi/v1/managed-subaccount/queryTransLogForTradeParent` |
+| [getManagedSubAccountTransferLog()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2333) | :closed_lock_with_key: | GET | `sapi/v1/managed-subaccount/query-trans-log` |
+| [getManagedSubAccountTransfersInvestor()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2345) | :closed_lock_with_key: | GET | `sapi/v1/managed-subaccount/queryTransLogForInvestor` |
+| [getManagedSubAccounts()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2357) | :closed_lock_with_key: | GET | `sapi/v1/managed-subaccount/info` |
+| [getManagedSubAccountSnapshot()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2364) | :closed_lock_with_key: | GET | `sapi/v1/managed-subaccount/accountSnapshot` |
+| [getManagedSubAccountAssetDetails()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2373) | :closed_lock_with_key: | GET | `sapi/v1/managed-subaccount/asset` |
+| [getManagedSubAccountMarginAssets()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2379) | :closed_lock_with_key: | GET | `sapi/v1/managed-subaccount/marginAsset` |
+| [getManagedSubAccountFuturesAssets()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2386) | :closed_lock_with_key: | GET | `sapi/v1/managed-subaccount/fetch-future-asset` |
+| [getAutoInvestAssets()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2402) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/all/asset` |
+| [getAutoInvestSourceAssets()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2409) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/source-asset/list` |
+| [getAutoInvestTargetAssets()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2418) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/target-asset/list` |
+| [getAutoInvestTargetAssetsROI()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2427) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/target-asset/roi/list` |
+| [getAutoInvestIndex()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2436) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/index/info` |
+| [getAutoInvestPlans()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2442) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/plan/list` |
+| [submitAutoInvestOneTimeTransaction()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2460) | :closed_lock_with_key: | POST | `sapi/v1/lending/auto-invest/one-off` |
+| [updateAutoInvestPlanStatus()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2476) | :closed_lock_with_key: | POST | `sapi/v1/lending/auto-invest/plan/edit-status` |
+| [updateAutoInvestmentPlan()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2485) | :closed_lock_with_key: | POST | `sapi/v1/lending/auto-invest/plan/edit` |
+| [submitAutoInvestRedemption()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2502) | :closed_lock_with_key: | POST | `sapi/v1/lending/auto-invest/redeem` |
+| [getAutoInvestSubscriptionTransactions()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2510) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/history/list` |
+| [getOneTimeTransactionStatus()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2516) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/one-off/status` |
+| [submitAutoInvestmentPlan()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2525) | :closed_lock_with_key: | POST | `sapi/v1/lending/auto-invest/plan/add` |
+| [getAutoInvestRedemptionHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2540) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/redeem/history` |
+| [getAutoInvestPlan()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2549) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/plan/id` |
+| [getAutoInvestUserIndex()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2553) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/index/user-summary` |
+| [getAutoInvestRebalanceHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2562) | :closed_lock_with_key: | GET | `sapi/v1/lending/auto-invest/rebalance/history` |
+| [getConvertPairs()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2577) | :closed_lock_with_key: | GET | `sapi/v1/convert/exchangeInfo` |
+| [getConvertAssetInfo()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2581) | :closed_lock_with_key: | GET | `sapi/v1/convert/assetInfo` |
+| [convertQuoteRequest()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2591) | :closed_lock_with_key: | POST | `sapi/v1/convert/getQuote` |
+| [acceptQuoteRequest()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2595) | :closed_lock_with_key: | POST | `sapi/v1/convert/acceptQuote` |
+| [getConvertTradeHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2599) | :closed_lock_with_key: | GET | `sapi/v1/convert/tradeFlow` |
+| [getOrderStatus()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2603) | :closed_lock_with_key: | GET | `sapi/v1/convert/orderStatus` |
+| [submitConvertLimitOrder()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2607) | :closed_lock_with_key: | POST | `sapi/v1/convert/limit/placeOrder` |
+| [cancelConvertLimitOrder()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2611) | :closed_lock_with_key: | POST | `sapi/v1/convert/limit/cancelOrder` |
+| [getConvertLimitOpenOrders()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2615) | :closed_lock_with_key: | GET | `sapi/v1/convert/limit/queryOpenOrders` |
+| [getEthStakingAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2630) | :closed_lock_with_key: | GET | `sapi/v1/eth-staking/account` |
+| [getEthStakingAccountV2()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2634) | :closed_lock_with_key: | GET | `sapi/v2/eth-staking/account` |
+| [getEthStakingQuota()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2638) | :closed_lock_with_key: | GET | `sapi/v1/eth-staking/eth/quota` |
+| [subscribeEthStakingV1()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2651) | :closed_lock_with_key: | POST | `sapi/v1/eth-staking/eth/stake` |
+| [subscribeEthStakingV2()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2657) | :closed_lock_with_key: | POST | `sapi/v2/eth-staking/eth/stake` |
+| [redeemEth()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2663) | :closed_lock_with_key: | POST | `sapi/v1/eth-staking/eth/redeem` |
+| [wrapBeth()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2667) | :closed_lock_with_key: | POST | `sapi/v1/eth-staking/wbeth/wrap` |
+| [getEthStakingHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2677) | :closed_lock_with_key: | GET | `sapi/v1/eth-staking/eth/history/stakingHistory` |
+| [getEthRedemptionHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2687) | :closed_lock_with_key: | GET | `sapi/v1/eth-staking/eth/history/redemptionHistory` |
+| [getBethRewardsHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2697) | :closed_lock_with_key: | GET | `sapi/v1/eth-staking/eth/history/rewardsHistory` |
+| [getWbethRewardsHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2707) | :closed_lock_with_key: | GET | `sapi/v1/eth-staking/eth/history/wbethRewardsHistory` |
+| [getEthRateHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2716) | :closed_lock_with_key: | GET | `sapi/v1/eth-staking/eth/history/rateHistory` |
+| [getBethWrapHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2726) | :closed_lock_with_key: | GET | `sapi/v1/eth-staking/wbeth/history/wrapHistory` |
+| [getBethUnwrapHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2736) | :closed_lock_with_key: | GET | `sapi/v1/eth-staking/wbeth/history/unwrapHistory` |
+| [getBfusdAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2752) | :closed_lock_with_key: | GET | `sapi/v1/bfusd/account` |
+| [getBfusdQuota()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2756) | :closed_lock_with_key: | GET | `sapi/v1/bfusd/quota` |
+| [subscribeBfusd()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2760) | :closed_lock_with_key: | POST | `sapi/v1/bfusd/subscribe` |
+| [redeemBfusd()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2766) | :closed_lock_with_key: | POST | `sapi/v1/bfusd/redeem` |
+| [getBfusdSubscriptionHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2770) | :closed_lock_with_key: | GET | `sapi/v1/bfusd/history/subscriptionHistory` |
+| [getBfusdRedemptionHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2776) | :closed_lock_with_key: | GET | `sapi/v1/bfusd/history/redemptionHistory` |
+| [getBfusdRewardsHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2782) | :closed_lock_with_key: | GET | `sapi/v1/bfusd/history/rewardsHistory` |
+| [getBfusdRateHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2788) | :closed_lock_with_key: | GET | `sapi/v1/bfusd/history/rateHistory` |
+| [getRwusdAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2800) | :closed_lock_with_key: | GET | `sapi/v1/rwusd/account` |
+| [getRwusdQuota()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2804) | :closed_lock_with_key: | GET | `sapi/v1/rwusd/quota` |
+| [subscribeRwusd()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2808) | :closed_lock_with_key: | POST | `sapi/v1/rwusd/subscribe` |
+| [redeemRwusd()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2814) | :closed_lock_with_key: | POST | `sapi/v1/rwusd/redeem` |
+| [getRwusdSubscriptionHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2818) | :closed_lock_with_key: | GET | `sapi/v1/rwusd/history/subscriptionHistory` |
+| [getRwusdRedemptionHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2824) | :closed_lock_with_key: | GET | `sapi/v1/rwusd/history/redemptionHistory` |
+| [getRwusdRewardsHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2830) | :closed_lock_with_key: | GET | `sapi/v1/rwusd/history/rewardsHistory` |
+| [getRwusdRateHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2836) | :closed_lock_with_key: | GET | `sapi/v1/rwusd/history/rateHistory` |
+| [getStakingProducts()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2845) | :closed_lock_with_key: | GET | `sapi/v1/staking/productList` |
+| [getStakingProductPosition()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2856) | :closed_lock_with_key: | GET | `sapi/v1/staking/position` |
+| [getStakingHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2868) | :closed_lock_with_key: | GET | `sapi/v1/staking/stakingRecord` |
+| [getPersonalLeftQuotaOfStakingProduct()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2875) | :closed_lock_with_key: | GET | `sapi/v1/staking/personalLeftQuota` |
+| [getSolStakingAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2888) | :closed_lock_with_key: | GET | `sapi/v1/sol-staking/account` |
+| [getSolStakingQuota()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2892) | :closed_lock_with_key: | GET | `sapi/v1/sol-staking/sol/quota` |
+| [subscribeSolStaking()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2902) | :closed_lock_with_key: | POST | `sapi/v1/sol-staking/sol/stake` |
+| [redeemSol()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2908) | :closed_lock_with_key: | POST | `sapi/v1/sol-staking/sol/redeem` |
+| [claimSolBoostRewards()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2912) | :closed_lock_with_key: | POST | `sapi/v1/sol-staking/sol/claim` |
+| [getSolStakingHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2924) | :closed_lock_with_key: | GET | `sapi/v1/sol-staking/sol/history/stakingHistory` |
+| [getSolRedemptionHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2934) | :closed_lock_with_key: | GET | `sapi/v1/sol-staking/sol/history/redemptionHistory` |
+| [getBnsolRewardsHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2944) | :closed_lock_with_key: | GET | `sapi/v1/sol-staking/sol/history/bnsolRewardsHistory` |
+| [getBnsolRateHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2955) | :closed_lock_with_key: | GET | `sapi/v1/sol-staking/sol/history/rateHistory` |
+| [getSolBoostRewardsHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2965) | :closed_lock_with_key: | GET | `sapi/v1/sol-staking/sol/history/boostRewardsHistory` |
+| [getSolUnclaimedRewards()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2975) | :closed_lock_with_key: | GET | `sapi/v1/sol-staking/sol/history/unclaimedRewards` |
+| [getOnchainYieldsLockedProducts()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2990) | :closed_lock_with_key: | GET | `sapi/v1/onchain-yields/locked/list` |
+| [getOnchainYieldsLockedPersonalLeftQuota()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L2996) | :closed_lock_with_key: | GET | `sapi/v1/onchain-yields/locked/personalLeftQuota` |
+| [getOnchainYieldsLockedPosition()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3005) | :closed_lock_with_key: | GET | `sapi/v1/onchain-yields/locked/position` |
+| [getOnchainYieldsAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3011) | :closed_lock_with_key: | GET | `sapi/v1/onchain-yields/account` |
+| [getOnchainYieldsLockedSubscriptionPreview()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3021) | :closed_lock_with_key: | GET | `sapi/v1/onchain-yields/locked/subscriptionPreview` |
+| [subscribeOnchainYieldsLockedProduct()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3030) | :closed_lock_with_key: | POST | `sapi/v1/onchain-yields/locked/subscribe` |
+| [setOnchainYieldsLockedAutoSubscribe()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3036) | :closed_lock_with_key: | POST | `sapi/v1/onchain-yields/locked/setAutoSubscribe` |
+| [setOnchainYieldsLockedRedeemOption()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3045) | :closed_lock_with_key: | POST | `sapi/v1/onchain-yields/locked/setRedeemOption` |
+| [redeemOnchainYieldsLockedProduct()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3054) | :closed_lock_with_key: | POST | `sapi/v1/onchain-yields/locked/redeem` |
+| [getOnchainYieldsLockedSubscriptionRecord()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3066) | :closed_lock_with_key: | GET | `sapi/v1/onchain-yields/locked/history/subscriptionRecord` |
+| [getOnchainYieldsLockedRewardsHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3075) | :closed_lock_with_key: | GET | `sapi/v1/onchain-yields/locked/history/rewardsRecord` |
+| [getOnchainYieldsLockedRedemptionRecord()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3084) | :closed_lock_with_key: | GET | `sapi/v1/onchain-yields/locked/history/redemptionRecord` |
+| [getSoftStakingProductList()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3099) | :closed_lock_with_key: | GET | `sapi/v1/soft-staking/list` |
+| [setSoftStaking()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3105) | :closed_lock_with_key: | GET | `sapi/v1/soft-staking/set` |
+| [getSoftStakingRewardsHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3111) | :closed_lock_with_key: | GET | `sapi/v1/soft-staking/history/rewardsRecord` |
+| [getFuturesLeadTraderStatus()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3126) | :closed_lock_with_key: | GET | `sapi/v1/copyTrading/futures/userStatus` |
+| [getFuturesLeadTradingSymbolWhitelist()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3130) | :closed_lock_with_key: | GET | `sapi/v1/copyTrading/futures/leadSymbol` |
+| [getMiningAlgos()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3142) | | GET | `sapi/v1/mining/pub/algoList` |
+| [getMiningCoins()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3146) | | GET | `sapi/v1/mining/pub/coinList` |
+| [getHashrateResales()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3150) | :closed_lock_with_key: | GET | `sapi/v1/mining/hash-transfer/config/details/list` |
+| [getMiners()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3159) | :closed_lock_with_key: | GET | `sapi/v1/mining/worker/list` |
+| [getMinerDetails()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3163) | :closed_lock_with_key: | GET | `sapi/v1/mining/worker/detail` |
+| [getExtraBonuses()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3169) | :closed_lock_with_key: | GET | `sapi/v1/mining/payment/other` |
+| [getMiningEarnings()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3175) | :closed_lock_with_key: | GET | `sapi/v1/mining/payment/list` |
+| [cancelHashrateResaleConfig()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3181) | :closed_lock_with_key: | POST | `sapi/v1/mining/hash-transfer/config/cancel` |
+| [getHashrateResale()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3190) | :closed_lock_with_key: | GET | `sapi/v1/mining/hash-transfer/profit/details` |
+| [getMiningAccountEarnings()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3199) | :closed_lock_with_key: | GET | `sapi/v1/mining/payment/uid` |
+| [getMiningStatistics()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3205) | :closed_lock_with_key: | GET | `sapi/v1/mining/statistics/user/status` |
+| [submitHashrateResale()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3211) | :closed_lock_with_key: | POST | `sapi/v1/mining/hash-transfer/config` |
+| [getMiningAccounts()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3215) | :closed_lock_with_key: | GET | `sapi/v1/mining/statistics/user/list` |
+| [submitVpNewOrder()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3227) | :closed_lock_with_key: | POST | `sapi/v1/algo/futures/newOrderVp` |
+| [submitTwapNewOrder()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3234) | :closed_lock_with_key: | POST | `sapi/v1/algo/futures/newOrderTwap` |
+| [cancelAlgoOrder()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3241) | :closed_lock_with_key: | DELETE | `sapi/v1/algo/futures/order` |
+| [getAlgoSubOrders()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3247) | :closed_lock_with_key: | GET | `sapi/v1/algo/futures/subOrders` |
+| [getAlgoOpenOrders()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3253) | :closed_lock_with_key: | GET | `sapi/v1/algo/futures/openOrders` |
+| [getAlgoHistoricalOrders()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3260) | :closed_lock_with_key: | GET | `sapi/v1/algo/futures/historicalOrders` |
+| [submitSpotAlgoTwapOrder()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3273) | :closed_lock_with_key: | POST | `sapi/v1/algo/spot/newOrderTwap` |
+| [cancelSpotAlgoOrder()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3280) | :closed_lock_with_key: | DELETE | `sapi/v1/algo/spot/order` |
+| [getSpotAlgoSubOrders()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3286) | :closed_lock_with_key: | GET | `sapi/v1/algo/spot/subOrders` |
+| [getSpotAlgoOpenOrders()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3292) | :closed_lock_with_key: | GET | `sapi/v1/algo/spot/openOrders` |
+| [getSpotAlgoHistoricalOrders()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3299) | :closed_lock_with_key: | GET | `sapi/v1/algo/spot/historicalOrders` |
+| [getCryptoLoanFlexibleCollateralAssets()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3314) | :closed_lock_with_key: | GET | `sapi/v2/loan/flexible/collateral/data` |
+| [getCryptoLoanFlexibleAssets()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3323) | :closed_lock_with_key: | GET | `sapi/v2/loan/flexible/loanable/data` |
+| [borrowCryptoLoanFlexible()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3336) | :closed_lock_with_key: | POST | `sapi/v2/loan/flexible/borrow` |
+| [repayCryptoLoanFlexible()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3342) | :closed_lock_with_key: | POST | `sapi/v2/loan/flexible/repay` |
+| [repayCryptoLoanFlexibleWithCollateral()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3348) | :closed_lock_with_key: | POST | `sapi/v2/loan/flexible/repay/collateral` |
+| [adjustCryptoLoanFlexibleLTV()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3354) | :closed_lock_with_key: | POST | `sapi/v2/loan/flexible/adjust/ltv` |
+| [getCryptoLoanFlexibleLTVAdjustmentHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3366) | :closed_lock_with_key: | GET | `sapi/v2/loan/flexible/ltv/adjustment/history` |
+| [getFlexibleLoanCollateralRepayRate()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3378) | :closed_lock_with_key: | GET | `sapi/v2/loan/flexible/repay/rate` |
+| [getLoanFlexibleBorrowHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3389) | :closed_lock_with_key: | GET | `sapi/v2/loan/flexible/borrow/history` |
+| [getCryptoLoanFlexibleOngoingOrders()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3398) | :closed_lock_with_key: | GET | `sapi/v2/loan/flexible/ongoing/orders` |
+| [getFlexibleLoanLiquidationHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3407) | :closed_lock_with_key: | GET | `sapi/v2/loan/flexible/liquidation/history` |
+| [getLoanFlexibleRepaymentHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3416) | :closed_lock_with_key: | GET | `sapi/v2/loan/flexible/repay/history` |
+| [getCryptoLoanLoanableAssets()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3434) | :closed_lock_with_key: | GET | `sapi/v1/loan/loanable/data` |
+| [getCryptoLoanCollateralRepayRate()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3441) | :closed_lock_with_key: | GET | `sapi/v1/loan/repay/collateral/rate` |
+| [getCryptoLoanCollateralAssetsData()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3450) | :closed_lock_with_key: | GET | `sapi/v1/loan/collateral/data` |
+| [getCryptoLoansIncomeHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3459) | :closed_lock_with_key: | GET | `sapi/v1/loan/income` |
+| [borrowCryptoLoan()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3474) | :closed_lock_with_key: | POST | `sapi/v1/loan/borrow` |
+| [repayCryptoLoan()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3483) | :closed_lock_with_key: | POST | `sapi/v1/loan/repay` |
+| [adjustCryptoLoanLTV()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3492) | :closed_lock_with_key: | POST | `sapi/v1/loan/adjust/ltv` |
+| [customizeCryptoLoanMarginCall()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3501) | :closed_lock_with_key: | POST | `sapi/v1/loan/customize/margin_call` |
+| [getCryptoLoanOngoingOrders()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3517) | :closed_lock_with_key: | GET | `sapi/v1/loan/ongoing/orders` |
+| [getCryptoLoanBorrowHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3524) | :closed_lock_with_key: | GET | `sapi/v1/loan/borrow/history` |
+| [getCryptoLoanLTVAdjustmentHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3531) | :closed_lock_with_key: | GET | `sapi/v1/loan/ltv/adjustment/history` |
+| [getCryptoLoanRepaymentHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3540) | :closed_lock_with_key: | GET | `sapi/v1/loan/repay/history` |
+| [getSimpleEarnAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3552) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/account` |
+| [getFlexibleSavingProducts()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3556) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/flexible/list` |
+| [getSimpleEarnLockedProductList()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3563) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/locked/list` |
+| [getFlexibleProductPosition()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3572) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/flexible/position` |
+| [getLockedProductPosition()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3581) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/locked/position` |
+| [getFlexiblePersonalLeftQuota()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3590) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/flexible/personalLeftQuota` |
+| [getLockedPersonalLeftQuota()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3599) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/locked/personalLeftQuota` |
+| [purchaseFlexibleProduct()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3614) | :closed_lock_with_key: | POST | `sapi/v1/simple-earn/flexible/subscribe` |
+| [subscribeSimpleEarnLockedProduct()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3620) | :closed_lock_with_key: | POST | `sapi/v1/simple-earn/locked/subscribe` |
+| [redeemFlexibleProduct()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3626) | :closed_lock_with_key: | POST | `sapi/v1/simple-earn/flexible/redeem` |
+| [redeemLockedProduct()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3632) | :closed_lock_with_key: | POST | `sapi/v1/simple-earn/locked/redeem` |
+| [setFlexibleAutoSubscribe()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3638) | :closed_lock_with_key: | POST | `sapi/v1/simple-earn/flexible/setAutoSubscribe` |
+| [setLockedAutoSubscribe()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3647) | :closed_lock_with_key: | POST | `sapi/v1/simple-earn/locked/setAutoSubscribe` |
+| [getFlexibleSubscriptionPreview()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3656) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/flexible/subscriptionPreview` |
+| [getLockedSubscriptionPreview()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3665) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/locked/subscriptionPreview` |
+| [setLockedProductRedeemOption()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3674) | :closed_lock_with_key: | POST | `sapi/v1/simple-earn/locked/setRedeemOption` |
+| [getFlexibleSubscriptionRecord()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3692) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/flexible/history/subscriptionRecord` |
+| [getLockedSubscriptionRecord()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3704) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/locked/history/subscriptionRecord` |
+| [getFlexibleRedemptionRecord()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3716) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/flexible/history/redemptionRecord` |
+| [getLockedRedemptionRecord()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3728) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/locked/history/redemptionRecord` |
+| [getFlexibleRewardsHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3738) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/flexible/history/rewardsRecord` |
+| [getLockedRewardsHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3748) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/locked/history/rewardsRecord` |
+| [getCollateralRecord()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3758) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/flexible/history/collateralRecord` |
+| [getRateHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3768) | :closed_lock_with_key: | GET | `sapi/v1/simple-earn/flexible/history/rateHistory` |
+| [getVipBorrowInterestRate()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3784) | :closed_lock_with_key: | GET | `sapi/v1/loan/vip/request/interestRate` |
+| [getVipLoanInterestRateHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3790) | :closed_lock_with_key: | GET | `sapi/v1/loan/vip/interestRateHistory` |
+| [getVipLoanableAssets()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3799) | :closed_lock_with_key: | GET | `sapi/v1/loan/vip/loanable/data` |
+| [getVipCollateralAssets()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3806) | :closed_lock_with_key: | GET | `sapi/v1/loan/vip/collateral/data` |
+| [getVipLoanOpenOrders()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3819) | :closed_lock_with_key: | GET | `sapi/v1/loan/vip/ongoing/orders` |
+| [getVipLoanRepaymentHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3826) | :closed_lock_with_key: | GET | `sapi/v1/loan/vip/repay/history` |
+| [checkVipCollateralAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3835) | :closed_lock_with_key: | GET | `sapi/v1/loan/vip/collateral/account` |
+| [getVipApplicationStatus()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3842) | :closed_lock_with_key: | GET | `sapi/v1/loan/vip/request/data` |
+| [renewVipLoan()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3855) | :closed_lock_with_key: | POST | `sapi/v1/loan/vip/renew` |
+| [repayVipLoan()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3859) | :closed_lock_with_key: | POST | `sapi/v1/loan/vip/repay` |
+| [borrowVipLoan()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3863) | :closed_lock_with_key: | POST | `sapi/v1/loan/vip/borrow` |
+| [getVipLoanFixedRateMarket()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3867) | :closed_lock_with_key: | GET | `sapi/v1/loan/vip/fixed/market` |
+| [borrowVipLoanFixedRate()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3874) | :closed_lock_with_key: | POST | `sapi/v1/loan/vip/fixed/borrow` |
+| [getDualInvestmentProducts()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3886) | :closed_lock_with_key: | GET | `sapi/v1/dci/product/list` |
+| [subscribeDualInvestmentProduct()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3901) | :closed_lock_with_key: | POST | `sapi/v1/dci/product/subscribe` |
+| [getDualInvestmentPositions()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3907) | :closed_lock_with_key: | GET | `sapi/v1/dci/product/positions` |
+| [getDualInvestmentAccounts()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3916) | :closed_lock_with_key: | GET | `sapi/v1/dci/product/accounts` |
+| [getVipLoanAccruedInterest()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3920) | :closed_lock_with_key: | GET | `sapi/v1/loan/vip/accruedInterest` |
+| [updateAutoCompoundStatus()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3927) | :closed_lock_with_key: | POST | `sapi/v1/dci/product/auto_compound/edit-status` |
+| [createGiftCard()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3942) | :closed_lock_with_key: | POST | `sapi/v1/giftcard/createCode` |
+| [createDualTokenGiftCard()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3946) | :closed_lock_with_key: | POST | `sapi/v1/giftcard/buyCode` |
+| [redeemGiftCard()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3950) | :closed_lock_with_key: | POST | `sapi/v1/giftcard/redeemCode` |
+| [verifyGiftCard()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3954) | :closed_lock_with_key: | GET | `sapi/v1/giftcard/verify` |
+| [getTokenLimit()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3958) | :closed_lock_with_key: | GET | `sapi/v1/giftcard/buyCode/token-limit` |
+| [getRsaPublicKey()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3962) | :closed_lock_with_key: | GET | `sapi/v1/giftcard/cryptography/rsa-public-key` |
+| [getNftTransactionHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3972) | :closed_lock_with_key: | GET | `sapi/v1/nft/history/transactions` |
+| [getNftDepositHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3979) | :closed_lock_with_key: | GET | `sapi/v1/nft/history/deposit` |
+| [getNftWithdrawHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3986) | :closed_lock_with_key: | GET | `sapi/v1/nft/history/withdraw` |
+| [getNftAsset()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L3993) | :closed_lock_with_key: | GET | `sapi/v1/nft/user/getAsset` |
+| [getC2CTradeHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4006) | :closed_lock_with_key: | GET | `sapi/v1/c2c/orderMatch/listUserOrderHistory` |
+| [getFiatOrderHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4021) | :closed_lock_with_key: | GET | `sapi/v1/fiat/orders` |
+| [getFiatPaymentsHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4027) | :closed_lock_with_key: | GET | `sapi/v1/fiat/payments` |
+| [fiatWithdraw()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4033) | :closed_lock_with_key: | POST | `/sapi/v2/fiat/withdraw` |
+| [fiatDeposit()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4037) | :closed_lock_with_key: | POST | `sapi/v1/fiat/deposit` |
+| [getFiatOrderDetail()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4041) | :closed_lock_with_key: | GET | `sapi/v1/fiat/get-order-detail` |
+| [getSpotRebateHistoryRecords()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4053) | :closed_lock_with_key: | GET | `sapi/v1/rebate/taxQuery` |
+| [getPortfolioMarginIndexPrice()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4066) | | GET | `sapi/v1/portfolio/asset-index-price` |
+| [getPortfolioMarginAssetLeverage()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4072) | :closed_lock_with_key: | GET | `sapi/v1/portfolio/margin-asset-leverage` |
+| [getPortfolioMarginProCollateralRate()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4078) | | GET | `sapi/v1/portfolio/collateralRate` |
+| [getPortfolioMarginProTieredCollateralRate()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4084) | | GET | `sapi/v2/portfolio/collateralRate` |
+| [getPortfolioMarginProAccountInfo()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4095) | :closed_lock_with_key: | GET | `sapi/v1/portfolio/account` |
+| [getPortfolioDeltaMode()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4099) | :closed_lock_with_key: | GET | `sapi/v1/portfolio/delta-mode` |
+| [switchPortfolioDeltaMode()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4103) | :closed_lock_with_key: | POST | `sapi/v1/portfolio/delta-mode` |
+| [setPortfolioMarginMarginCallLevel()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4109) | :closed_lock_with_key: | POST | `sapi/v1/portfolio/margin-call-level` |
+| [getPortfolioMarginMarginCallLevel()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4115) | :closed_lock_with_key: | GET | `sapi/v1/portfolio/margin-call-level` |
+| [deletePortfolioMarginMarginCallLevel()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4119) | :closed_lock_with_key: | DELETE | `sapi/v1/portfolio/margin-call-level` |
+| [bnbTransfer()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4123) | :closed_lock_with_key: | POST | `sapi/v1/portfolio/bnb-transfer` |
+| [submitPortfolioMarginProFullTransfer()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4129) | :closed_lock_with_key: | POST | `sapi/v1/portfolio/auto-collection` |
+| [submitPortfolioMarginProSpecificTransfer()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4135) | :closed_lock_with_key: | POST | `sapi/v1/portfolio/asset-collection` |
+| [repayPortfolioMarginProBankruptcyLoan()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4141) | :closed_lock_with_key: | POST | `sapi/v1/portfolio/repay` |
+| [getPortfolioMarginProBankruptcyLoanAmount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4149) | :closed_lock_with_key: | GET | `sapi/v1/portfolio/pmLoan` |
+| [repayFuturesNegativeBalance()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4153) | :closed_lock_with_key: | POST | `sapi/v1/portfolio/repay-futures-negative-balance` |
+| [updateAutoRepayFuturesStatus()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4159) | :closed_lock_with_key: | POST | `sapi/v1/portfolio/repay-futures-switch` |
+| [getAutoRepayFuturesStatus()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4165) | :closed_lock_with_key: | GET | `sapi/v1/portfolio/repay-futures-switch` |
+| [getPortfolioMarginProInterestHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4171) | :closed_lock_with_key: | GET | `sapi/v1/portfolio/interest-history` |
+| [getPortfolioMarginProSpanAccountInfo()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4177) | :closed_lock_with_key: | GET | `sapi/v2/portfolio/account` |
+| [getPortfolioMarginProAccountBalance()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4181) | :closed_lock_with_key: | GET | `sapi/v1/portfolio/balance` |
+| [mintPortfolioMarginBFUSD()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4191) | :closed_lock_with_key: | POST | `sapi/v1/portfolio/mint` |
+| [redeemPortfolioMarginBFUSD()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4201) | :closed_lock_with_key: | POST | `sapi/v1/portfolio/redeem` |
+| [getPortfolioMarginBankruptcyLoanRepayHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4209) | :closed_lock_with_key: | GET | `sapi/v1/portfolio/pmLoan-history` |
+| [transferLDUSDTPortfolioMargin()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4224) | :closed_lock_with_key: | POST | `sapi/v1/portfolio/earn-asset-transfer` |
+| [getTransferableEarnAssetBalanceForPortfolioMargin()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4237) | :closed_lock_with_key: | GET | `sapi/v1/portfolio/earn-asset-balance` |
+| [getFuturesTickLevelOrderbookDataLink()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4254) | :closed_lock_with_key: | GET | `sapi/v1/futures/histDataLink` |
+| [getBlvtInfo()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4268) | | GET | `sapi/v1/blvt/tokenInfo` |
+| [subscribeBlvt()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4272) | :closed_lock_with_key: | POST | `sapi/v1/blvt/subscribe` |
+| [getBlvtSubscriptionRecord()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4276) | :closed_lock_with_key: | GET | `sapi/v1/blvt/subscribe/record` |
+| [redeemBlvt()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4282) | :closed_lock_with_key: | POST | `sapi/v1/blvt/redeem` |
+| [getBlvtRedemptionRecord()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4286) | :closed_lock_with_key: | GET | `sapi/v1/blvt/redeem/record` |
+| [getBlvtUserLimitInfo()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4292) | :closed_lock_with_key: | GET | `sapi/v1/blvt/userLimit` |
+| [getPayTransactions()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4303) | :closed_lock_with_key: | GET | `sapi/v1/pay/transactions` |
+| [getInstLoanRiskUnit()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4313) | :closed_lock_with_key: | GET | `sapi/v1/margin/loan-group/ltv-details` |
+| [closeInstLoanRiskUnit()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4319) | :closed_lock_with_key: | DELETE | `sapi/v1/margin/loan-group` |
+| [addInstLoanCollateralAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4323) | :closed_lock_with_key: | POST | `sapi/v1/margin/loan-group/edit-member` |
+| [getActiveInstLoanRiskUnits()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4329) | :closed_lock_with_key: | GET | `sapi/v1/margin/loan-groups/activated` |
+| [getClosedInstLoanRiskUnits()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4333) | :closed_lock_with_key: | GET | `sapi/v1/margin/loan-groups/closed` |
+| [getInstLoanForceLiquidationRecord()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4345) | :closed_lock_with_key: | GET | `sapi/v1/margin/loan-group/force-liquidation` |
+| [transferInstLoanRiskUnit()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4359) | :closed_lock_with_key: | POST | `sapi/v1/margin/loan-group/transfer-out` |
+| [getInstitutionalLoanMaxBorrowable()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4371) | :closed_lock_with_key: | GET | `sapi/v1/margin/loan-group/max-borrowable` |
+| [borrowInstitutionalLoan()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4377) | :closed_lock_with_key: | POST | `sapi/v1/margin/loan-group/borrow` |
+| [getInstLoanInterestHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4383) | :closed_lock_with_key: | GET | `sapi/v1/margin/loan-group/interest-history` |
+| [repayInstitutionalLoan()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4392) | :closed_lock_with_key: | POST | `sapi/v1/margin/loan-group/repay` |
+| [getInstLoanBorrowRepayRecords()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4398) | :closed_lock_with_key: | GET | `sapi/v1/margin/loan-group/borrow-repay` |
+| [getMarginInterestRebateBalance()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4404) | :closed_lock_with_key: | GET | `sapi/v1/margin/loan-group/interest-rebate-balance` |
+| [getMarginInterestRebateBalanceRecords()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4408) | :closed_lock_with_key: | GET | `sapi/v1/margin/loan-group/interest-rebate-balance/records` |
+| [getAlphaTokenList()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4423) | | GET | `bapi/defi/v1/public/wallet-direct/buw/wallet/cex/alpha/all/token/list` |
+| [getAlphaExchangeInfo()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4430) | | GET | `bapi/defi/v1/public/alpha-trade/get-exchange-info` |
+| [getAlphaAggTrades()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4437) | | GET | `bapi/defi/v1/public/alpha-trade/agg-trades` |
+| [getAlphaKlines()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4445) | | GET | `bapi/defi/v1/public/alpha-trade/klines` |
+| [getAlphaTicker()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4453) | | GET | `bapi/defi/v1/public/alpha-trade/ticker` |
+| [getAlphaFullDepth()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4461) | | GET | `bapi/defi/v1/public/alpha-trade/fullDepth` |
+| [createBrokerSubAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4477) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccount` |
+| [getBrokerSubAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4483) | :closed_lock_with_key: | GET | `sapi/v1/broker/subAccount` |
+| [enableMarginBrokerSubAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4489) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccount/futures` |
+| [createApiKeyBrokerSubAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4495) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccountApi` |
+| [changePermissionApiKeyBrokerSubAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4501) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccountApi/permission` |
+| [changeComissionBrokerSubAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4507) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccountApi/permission` |
+| [enableUniversalTransferApiKeyBrokerSubAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4513) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccountApi/permission/universalTransfer` |
+| [updateIpRestrictionForSubAccountApiKey()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4522) | :closed_lock_with_key: | POST | `sapi/v2/broker/subAccountApi/ipRestriction` |
+| [deleteIPRestrictionForSubAccountApiKey()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4536) | :closed_lock_with_key: | DELETE | `sapi/v1/broker/subAccountApi/ipRestriction/ipList` |
+| [deleteApiKeyBrokerSubAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4552) | :closed_lock_with_key: | DELETE | `sapi/v1/broker/subAccountApi` |
+| [getSubAccountBrokerIpRestriction()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4558) | :closed_lock_with_key: | GET | `sapi/v1/broker/subAccountApi/ipRestriction` |
+| [getApiKeyBrokerSubAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4574) | :closed_lock_with_key: | GET | `sapi/v1/broker/subAccountApi` |
+| [getBrokerInfo()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4580) | :closed_lock_with_key: | GET | `sapi/v1/broker/info` |
+| [updateSubAccountBNBBurn()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4584) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccount/bnbBurn/spot` |
+| [updateSubAccountMarginInterestBNBBurn()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4594) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccount/bnbBurn/marginInterest` |
+| [getSubAccountBNBBurnStatus()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4607) | :closed_lock_with_key: | GET | `sapi/v1/broker/subAccount/bnbBurn/status` |
+| [deleteBrokerSubAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4623) | :closed_lock_with_key: | DELETE | `/sapi/v1/broker/subAccount` |
+| [transferBrokerSubAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4633) | :closed_lock_with_key: | POST | `sapi/v1/broker/transfer` |
+| [getBrokerSubAccountHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4639) | :closed_lock_with_key: | GET | `sapi/v1/broker/transfer` |
+| [submitBrokerSubFuturesTransfer()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4645) | :closed_lock_with_key: | POST | `sapi/v1/broker/transfer/futures` |
+| [getSubAccountFuturesTransferHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4660) | :closed_lock_with_key: | GET | `sapi/v1/broker/transfer/futures` |
+| [getBrokerSubDepositHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4672) | :closed_lock_with_key: | GET | `sapi/v1/broker/subAccount/depositHist` |
+| [getBrokerSubAccountSpotAssets()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4678) | :closed_lock_with_key: | GET | `sapi/v1/broker/subAccount/spotSummary` |
+| [getSubAccountMarginAssetInfo()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4687) | :closed_lock_with_key: | GET | `sapi/v1/broker/subAccount/marginSummary` |
+| [querySubAccountFuturesAssetInfo()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4696) | :closed_lock_with_key: | GET | `sapi/v3/broker/subAccount/futuresSummary` |
+| [universalTransferBroker()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4705) | :closed_lock_with_key: | POST | `sapi/v1/broker/universalTransfer` |
+| [getUniversalTransferBroker()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4712) | :closed_lock_with_key: | GET | `sapi/v1/broker/universalTransfer` |
+| [updateBrokerSubAccountCommission()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4724) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccountApi/commission` |
+| [updateBrokerSubAccountFuturesCommission()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4730) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccountApi/commission/futures` |
+| [getBrokerSubAccountFuturesCommission()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4739) | :closed_lock_with_key: | GET | `sapi/v1/broker/subAccountApi/commission/futures` |
+| [updateBrokerSubAccountCoinFuturesCommission()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4748) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccountApi/commission/coinFutures` |
+| [getBrokerSubAccountCoinFuturesCommission()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4757) | :closed_lock_with_key: | GET | `sapi/v1/broker/subAccountApi/commission/coinFutures` |
+| [getBrokerSpotCommissionRebate()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4766) | :closed_lock_with_key: | GET | `sapi/v1/broker/rebate/recentRecord` |
+| [getBrokerFuturesCommissionRebate()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4772) | :closed_lock_with_key: | GET | `sapi/v1/broker/rebate/futures/recentRecord` |
+| [getBrokerIfNewSpotUser()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4809) | :closed_lock_with_key: | GET | `sapi/v1/apiReferral/ifNewUser` |
+| [getBrokerSubAccountDepositHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4820) | :closed_lock_with_key: | GET | `sapi/v1/bv1/apiReferral/ifNewUser` |
+| [enableFuturesBrokerSubAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4839) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccount` |
+| [enableMarginApiKeyBrokerSubAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4849) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccount/margin` |
+| [getSpotUserDataListenKey()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4890) | | POST | `api/v3/userDataStream` |
+| [keepAliveSpotUserDataListenKey()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4894) | | PUT | `api/v3/userDataStream?listenKey=${listenKey}` |
+| [closeSpotUserDataListenKey()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4898) | | DELETE | `api/v3/userDataStream?listenKey=${listenKey}` |
+| [getMarginUserDataListenKey()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4905) | | POST | `sapi/v1/userDataStream` |
+| [keepAliveMarginUserDataListenKey()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4909) | | PUT | `sapi/v1/userDataStream?listenKey=${listenKey}` |
+| [closeMarginUserDataListenKey()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4913) | | DELETE | `sapi/v1/userDataStream?listenKey=${listenKey}` |
+| [getIsolatedMarginUserDataListenKey()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4918) | | POST | `sapi/v1/userDataStream/isolated?${serialiseParams(params` |
+| [keepAliveIsolatedMarginUserDataListenKey()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4926) | | PUT | `sapi/v1/userDataStream/isolated?${serialiseParams(params` |
+| [closeIsolatedMarginUserDataListenKey()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4935) | | DELETE | `sapi/v1/userDataStream/isolated?${serialiseParams(params` |
+| [getMarginRiskUserDataListenKey()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4947) | | POST | `sapi/v1/margin/listen-key` |
+| [keepAliveMarginRiskUserDataListenKey()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4951) | | PUT | `sapi/v1/margin/listen-key?listenKey=${listenKey}` |
+| [closeMarginRiskUserDataListenKey()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4955) | | DELETE | `sapi/v1/margin/listen-key` |
+| [getMarginListenToken()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4963) | :closed_lock_with_key: | POST | `sapi/v1/userListenToken` |
+| [getBSwapLiquidity()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4985) | :closed_lock_with_key: | GET | `sapi/v1/bswap/liquidity` |
+| [addBSwapLiquidity()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L4992) | :closed_lock_with_key: | POST | `sapi/v1/bswap/liquidityAdd` |
+| [removeBSwapLiquidity()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L5001) | :closed_lock_with_key: | POST | `sapi/v1/bswap/liquidityRemove` |
+| [getBSwapOperations()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L5010) | :closed_lock_with_key: | GET | `sapi/v1/bswap/liquidityOps` |
+| [getLeftDailyPurchaseQuotaFlexibleProduct()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L5025) | :closed_lock_with_key: | GET | `sapi/v1/lending/daily/userLeftQuota` |
+| [getLeftDailyRedemptionQuotaFlexibleProduct()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L5034) | :closed_lock_with_key: | GET | `sapi/v1/lending/daily/userRedemptionQuota` |
+| [purchaseFixedAndActivityProject()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L5048) | :closed_lock_with_key: | POST | `sapi/v1/lending/customizedFixed/purchase` |
+| [getFixedAndActivityProjects()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L5058) | :closed_lock_with_key: | GET | `sapi/v1/lending/project/list` |
+| [getFixedAndActivityProductPosition()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L5067) | :closed_lock_with_key: | GET | `sapi/v1/lending/project/position/list` |
+| [getLendingAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L5076) | :closed_lock_with_key: | GET | `sapi/v1/lending/union/account` |
+| [getPurchaseRecord()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L5083) | :closed_lock_with_key: | GET | `sapi/v1/lending/union/purchaseRecord` |
+| [getRedemptionRecord()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L5090) | :closed_lock_with_key: | GET | `sapi/v1/lending/union/redemptionRecord` |
+| [getInterestHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L5097) | :closed_lock_with_key: | GET | `sapi/v1/lending/union/interestHistory` |
+| [changeFixedAndActivityPositionToDailyPosition()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L5104) | :closed_lock_with_key: | POST | `sapi/v1/lending/positionChanged` |
+| [enableConvertSubAccount()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L5121) | :closed_lock_with_key: | POST | `sapi/v1/broker/subAccount/convert` |
+| [convertBUSD()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L5129) | :closed_lock_with_key: | POST | `sapi/v1/asset/convert-transfer` |
+| [getConvertBUSDHistory()](https://github.com/sieblyio/binance/blob/master/src/main-client.ts#L5136) | :closed_lock_with_key: | GET | `sapi/v1/asset/convert-transfer/queryByPage` |
# usdm-client.ts
@@ -581,109 +584,109 @@ This table includes all endpoints from the official Exchange API docs and corres
| Function | AUTH | HTTP Method | Endpoint |
| -------- | :------: | :------: | -------- |
-| [testConnectivity()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L142) | | GET | `fapi/v1/ping` |
-| [getExchangeInfo()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L146) | | GET | `fapi/v1/exchangeInfo` |
-| [getOrderBook()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L150) | | GET | `fapi/v1/depth` |
-| [getRpiOrderBook()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L154) | | GET | `fapi/v1/rpiDepth` |
-| [getRecentTrades()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L161) | | GET | `fapi/v1/trades` |
-| [getHistoricalTrades()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L165) | | GET | `fapi/v1/historicalTrades` |
-| [getAggregateTrades()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L171) | | GET | `fapi/v1/aggTrades` |
-| [getKlines()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L177) | | GET | `fapi/v1/klines` |
-| [getContinuousContractKlines()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L181) | | GET | `fapi/v1/continuousKlines` |
-| [getIndexPriceKlines()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L187) | | GET | `fapi/v1/indexPriceKlines` |
-| [getMarkPriceKlines()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L191) | | GET | `fapi/v1/markPriceKlines` |
-| [getPremiumIndexKlines()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L195) | | GET | `fapi/v1/premiumIndexKlines` |
-| [getMarkPrice()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L199) | | GET | `fapi/v1/premiumIndex` |
-| [getFundingRateHistory()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L207) | | GET | `fapi/v1/fundingRate` |
-| [getFundingRates()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L213) | | GET | `fapi/v1/fundingInfo` |
-| [get24hrChangeStatistics()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L217) | | GET | `fapi/v1/ticker/24hr` |
-| [getSymbolPriceTicker()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L227) | | GET | `fapi/v1/ticker/price` |
-| [getSymbolPriceTickerV2()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L237) | | GET | `fapi/v2/ticker/price` |
-| [getSymbolOrderBookTicker()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L247) | | GET | `fapi/v1/ticker/bookTicker` |
-| [getQuarterlyContractSettlementPrices()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L259) | | GET | `futures/data/delivery-price` |
-| [getOpenInterest()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L265) | | GET | `fapi/v1/openInterest` |
-| [getOpenInterestStatistics()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L269) | | GET | `futures/data/openInterestHist` |
-| [getTopTradersLongShortPositionRatio()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L275) | | GET | `futures/data/topLongShortPositionRatio` |
-| [getTopTradersLongShortAccountRatio()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L281) | | GET | `futures/data/topLongShortAccountRatio` |
-| [getGlobalLongShortAccountRatio()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L287) | | GET | `futures/data/globalLongShortAccountRatio` |
-| [getTakerBuySellVolume()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L293) | | GET | `futures/data/takerlongshortRatio` |
-| [getHistoricalBlvtNavKlines()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L297) | | GET | `fapi/v1/lvtKlines` |
-| [getCompositeSymbolIndex()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L301) | | GET | `fapi/v1/indexInfo` |
-| [getMultiAssetsModeAssetIndex()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L305) | | GET | `fapi/v1/assetIndex` |
-| [getBasis()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L312) | | GET | `futures/data/basis` |
-| [getIndexPriceConstituents()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L316) | | GET | `fapi/v1/constituents` |
-| [getInsuranceFundBalance()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L322) | | GET | `fapi/v1/insuranceBalance` |
-| [getTradingSchedule()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L328) | | GET | `fapi/v1/tradingSchedule` |
-| [submitNewOrder()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L338) | :closed_lock_with_key: | POST | `fapi/v1/order` |
-| [submitMultipleOrders()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L350) | :closed_lock_with_key: | POST | `fapi/v1/batchOrders` |
-| [modifyOrder()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L379) | :closed_lock_with_key: | PUT | `fapi/v1/order` |
-| [modifyMultipleOrders()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L385) | :closed_lock_with_key: | PUT | `fapi/v1/batchOrders` |
-| [getOrderModifyHistory()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L393) | :closed_lock_with_key: | GET | `fapi/v1/orderAmendment` |
-| [cancelOrder()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L399) | :closed_lock_with_key: | DELETE | `fapi/v1/order` |
-| [cancelMultipleOrders()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L403) | :closed_lock_with_key: | DELETE | `fapi/v1/batchOrders` |
-| [cancelAllOpenOrders()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L423) | :closed_lock_with_key: | DELETE | `fapi/v1/allOpenOrders` |
-| [setCancelOrdersOnTimeout()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L430) | :closed_lock_with_key: | POST | `fapi/v1/countdownCancelAll` |
-| [getOrder()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L436) | :closed_lock_with_key: | GET | `fapi/v1/order` |
-| [getAllOrders()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L440) | :closed_lock_with_key: | GET | `fapi/v1/allOrders` |
-| [getAllOpenOrders()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L444) | :closed_lock_with_key: | GET | `fapi/v1/openOrders` |
-| [getCurrentOpenOrder()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L448) | :closed_lock_with_key: | GET | `fapi/v1/openOrder` |
-| [getForceOrders()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L452) | :closed_lock_with_key: | GET | `fapi/v1/forceOrders` |
-| [getAccountTrades()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L456) | :closed_lock_with_key: | GET | `fapi/v1/userTrades` |
-| [setMarginType()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L462) | :closed_lock_with_key: | POST | `fapi/v1/marginType` |
-| [setPositionMode()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L466) | :closed_lock_with_key: | POST | `fapi/v1/positionSide/dual` |
-| [setLeverage()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L470) | :closed_lock_with_key: | POST | `fapi/v1/leverage` |
-| [setMultiAssetsMode()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L474) | :closed_lock_with_key: | POST | `fapi/v1/multiAssetsMargin` |
-| [setIsolatedPositionMargin()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L480) | :closed_lock_with_key: | POST | `fapi/v1/positionMargin` |
-| [getPositions()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L490) | :closed_lock_with_key: | GET | `fapi/v2/positionRisk` |
-| [getPositionsV3()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L494) | :closed_lock_with_key: | GET | `fapi/v3/positionRisk` |
-| [getADLQuantileEstimation()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L498) | :closed_lock_with_key: | GET | `fapi/v1/adlQuantile` |
-| [getSymbolAdlRisk()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L502) | | GET | `fapi/v1/symbolAdlRisk` |
-| [getPositionMarginChangeHistory()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L512) | :closed_lock_with_key: | GET | `fapi/v1/positionMargin/history` |
-| [getBalanceV3()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L524) | :closed_lock_with_key: | GET | `fapi/v3/balance` |
-| [getBalance()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L532) | :closed_lock_with_key: | GET | `fapi/v2/balance` |
-| [getAccountInformationV3()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L536) | :closed_lock_with_key: | GET | `fapi/v3/account` |
-| [getAccountInformation()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L544) | :closed_lock_with_key: | GET | `fapi/v2/account` |
-| [getAccountCommissionRate()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L548) | :closed_lock_with_key: | GET | `fapi/v1/commissionRate` |
-| [getFuturesAccountConfig()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L554) | :closed_lock_with_key: | GET | `fapi/v1/accountConfig` |
-| [getFuturesSymbolConfig()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L558) | :closed_lock_with_key: | GET | `fapi/v1/symbolConfig` |
-| [getUserForceOrders()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L562) | :closed_lock_with_key: | GET | `fapi/v1/rateLimit/order` |
-| [getNotionalAndLeverageBrackets()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L569) | :closed_lock_with_key: | GET | `fapi/v1/leverageBracket` |
-| [getMultiAssetsMode()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L575) | :closed_lock_with_key: | GET | `fapi/v1/multiAssetsMargin` |
-| [getCurrentPositionMode()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L579) | :closed_lock_with_key: | GET | `fapi/v1/positionSide/dual` |
-| [getIncomeHistory()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L583) | :closed_lock_with_key: | GET | `fapi/v1/income` |
-| [getApiQuantitativeRulesIndicators()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L587) | :closed_lock_with_key: | GET | `fapi/v1/apiTradingStatus` |
-| [getFuturesTransactionHistoryDownloadId()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L593) | :closed_lock_with_key: | GET | `fapi/v1/income/asyn` |
-| [getFuturesTransactionHistoryDownloadLink()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L600) | :closed_lock_with_key: | GET | `fapi/v1/income/asyn/id` |
-| [getFuturesOrderHistoryDownloadId()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L606) | :closed_lock_with_key: | GET | `fapi/v1/order/asyn` |
-| [getFuturesOrderHistoryDownloadLink()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L613) | :closed_lock_with_key: | GET | `fapi/v1/order/asyn/id` |
-| [getFuturesTradeHistoryDownloadId()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L619) | :closed_lock_with_key: | GET | `fapi/v1/trade/asyn` |
-| [getFuturesTradeDownloadLink()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L626) | :closed_lock_with_key: | GET | `fapi/v1/trade/asyn/id` |
-| [setBNBBurnEnabled()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L632) | :closed_lock_with_key: | POST | `fapi/v1/feeBurn` |
-| [getBNBBurnStatus()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L638) | :closed_lock_with_key: | GET | `fapi/v1/feeBurn` |
-| [signTradFiPerpsAgreement()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L644) | :closed_lock_with_key: | POST | `fapi/v1/stock/contract` |
-| [testOrder()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L648) | :closed_lock_with_key: | POST | `fapi/v1/order/test` |
-| [submitNewAlgoOrder()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L660) | :closed_lock_with_key: | POST | `fapi/v1/algoOrder` |
-| [cancelAlgoOrder()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L667) | :closed_lock_with_key: | DELETE | `fapi/v1/algoOrder` |
-| [cancelAllAlgoOpenOrders()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L673) | :closed_lock_with_key: | DELETE | `fapi/v1/algoOpenOrders` |
-| [getAlgoOrder()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L679) | :closed_lock_with_key: | GET | `fapi/v1/algoOrder` |
-| [getOpenAlgoOrders()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L685) | :closed_lock_with_key: | GET | `fapi/v1/openAlgoOrders` |
-| [getAllAlgoOrders()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L691) | :closed_lock_with_key: | GET | `fapi/v1/allAlgoOrders` |
-| [getAllConvertPairs()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L703) | | GET | `fapi/v1/convert/exchangeInfo` |
-| [submitConvertQuoteRequest()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L710) | :closed_lock_with_key: | POST | `fapi/v1/convert/getQuote` |
-| [acceptConvertQuote()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L716) | :closed_lock_with_key: | POST | `fapi/v1/convert/acceptQuote` |
-| [getConvertOrderStatus()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L724) | :closed_lock_with_key: | GET | `fapi/v1/convert/orderStatus` |
-| [getPortfolioMarginProAccountInfo()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L737) | :closed_lock_with_key: | GET | `fapi/v1/pmAccountInfo` |
-| [getBrokerIfNewFuturesUser()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L754) | :closed_lock_with_key: | GET | `fapi/v1/apiReferral/ifNewUser` |
-| [setBrokerCustomIdForClient()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L767) | :closed_lock_with_key: | POST | `fapi/v1/apiReferral/customization` |
-| [getBrokerClientCustomIds()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L780) | :closed_lock_with_key: | GET | `fapi/v1/apiReferral/customization` |
-| [getBrokerUserCustomId()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L797) | :closed_lock_with_key: | GET | `fapi/v1/apiReferral/userCustomization` |
-| [getBrokerRebateDataOverview()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L806) | :closed_lock_with_key: | GET | `fapi/v1/apiReferral/overview` |
-| [getBrokerUserTradeVolume()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L815) | :closed_lock_with_key: | GET | `fapi/v1/apiReferral/tradeVol` |
-| [getBrokerRebateVolume()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L832) | :closed_lock_with_key: | GET | `fapi/v1/apiReferral/rebateVol` |
-| [getBrokerTradeDetail()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L849) | :closed_lock_with_key: | GET | `fapi/v1/apiReferral/traderSummary` |
-| [getFuturesUserDataListenKey()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L871) | | POST | `fapi/v1/listenKey` |
-| [keepAliveFuturesUserDataListenKey()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L875) | | PUT | `fapi/v1/listenKey` |
-| [closeFuturesUserDataListenKey()](https://github.com/tiagosiebler/binance/blob/master/src/usdm-client.ts#L879) | | DELETE | `fapi/v1/listenKey` |
+| [testConnectivity()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L142) | | GET | `fapi/v1/ping` |
+| [getExchangeInfo()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L146) | | GET | `fapi/v1/exchangeInfo` |
+| [getOrderBook()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L150) | | GET | `fapi/v1/depth` |
+| [getRpiOrderBook()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L154) | | GET | `fapi/v1/rpiDepth` |
+| [getRecentTrades()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L161) | | GET | `fapi/v1/trades` |
+| [getHistoricalTrades()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L165) | | GET | `fapi/v1/historicalTrades` |
+| [getAggregateTrades()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L171) | | GET | `fapi/v1/aggTrades` |
+| [getKlines()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L177) | | GET | `fapi/v1/klines` |
+| [getContinuousContractKlines()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L181) | | GET | `fapi/v1/continuousKlines` |
+| [getIndexPriceKlines()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L187) | | GET | `fapi/v1/indexPriceKlines` |
+| [getMarkPriceKlines()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L191) | | GET | `fapi/v1/markPriceKlines` |
+| [getPremiumIndexKlines()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L195) | | GET | `fapi/v1/premiumIndexKlines` |
+| [getMarkPrice()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L199) | | GET | `fapi/v1/premiumIndex` |
+| [getFundingRateHistory()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L207) | | GET | `fapi/v1/fundingRate` |
+| [getFundingRates()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L213) | | GET | `fapi/v1/fundingInfo` |
+| [get24hrChangeStatistics()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L217) | | GET | `fapi/v1/ticker/24hr` |
+| [getSymbolPriceTicker()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L227) | | GET | `fapi/v1/ticker/price` |
+| [getSymbolPriceTickerV2()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L237) | | GET | `fapi/v2/ticker/price` |
+| [getSymbolOrderBookTicker()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L247) | | GET | `fapi/v1/ticker/bookTicker` |
+| [getQuarterlyContractSettlementPrices()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L259) | | GET | `futures/data/delivery-price` |
+| [getOpenInterest()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L265) | | GET | `fapi/v1/openInterest` |
+| [getOpenInterestStatistics()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L269) | | GET | `futures/data/openInterestHist` |
+| [getTopTradersLongShortPositionRatio()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L275) | | GET | `futures/data/topLongShortPositionRatio` |
+| [getTopTradersLongShortAccountRatio()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L281) | | GET | `futures/data/topLongShortAccountRatio` |
+| [getGlobalLongShortAccountRatio()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L287) | | GET | `futures/data/globalLongShortAccountRatio` |
+| [getTakerBuySellVolume()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L293) | | GET | `futures/data/takerlongshortRatio` |
+| [getHistoricalBlvtNavKlines()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L297) | | GET | `fapi/v1/lvtKlines` |
+| [getCompositeSymbolIndex()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L301) | | GET | `fapi/v1/indexInfo` |
+| [getMultiAssetsModeAssetIndex()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L305) | | GET | `fapi/v1/assetIndex` |
+| [getBasis()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L312) | | GET | `futures/data/basis` |
+| [getIndexPriceConstituents()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L316) | | GET | `fapi/v1/constituents` |
+| [getInsuranceFundBalance()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L322) | | GET | `fapi/v1/insuranceBalance` |
+| [getTradingSchedule()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L328) | | GET | `fapi/v1/tradingSchedule` |
+| [submitNewOrder()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L338) | :closed_lock_with_key: | POST | `fapi/v1/order` |
+| [submitMultipleOrders()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L350) | :closed_lock_with_key: | POST | `fapi/v1/batchOrders` |
+| [modifyOrder()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L379) | :closed_lock_with_key: | PUT | `fapi/v1/order` |
+| [modifyMultipleOrders()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L385) | :closed_lock_with_key: | PUT | `fapi/v1/batchOrders` |
+| [getOrderModifyHistory()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L393) | :closed_lock_with_key: | GET | `fapi/v1/orderAmendment` |
+| [cancelOrder()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L399) | :closed_lock_with_key: | DELETE | `fapi/v1/order` |
+| [cancelMultipleOrders()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L403) | :closed_lock_with_key: | DELETE | `fapi/v1/batchOrders` |
+| [cancelAllOpenOrders()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L423) | :closed_lock_with_key: | DELETE | `fapi/v1/allOpenOrders` |
+| [setCancelOrdersOnTimeout()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L430) | :closed_lock_with_key: | POST | `fapi/v1/countdownCancelAll` |
+| [getOrder()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L436) | :closed_lock_with_key: | GET | `fapi/v1/order` |
+| [getAllOrders()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L440) | :closed_lock_with_key: | GET | `fapi/v1/allOrders` |
+| [getAllOpenOrders()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L444) | :closed_lock_with_key: | GET | `fapi/v1/openOrders` |
+| [getCurrentOpenOrder()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L448) | :closed_lock_with_key: | GET | `fapi/v1/openOrder` |
+| [getForceOrders()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L452) | :closed_lock_with_key: | GET | `fapi/v1/forceOrders` |
+| [getAccountTrades()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L456) | :closed_lock_with_key: | GET | `fapi/v1/userTrades` |
+| [setMarginType()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L462) | :closed_lock_with_key: | POST | `fapi/v1/marginType` |
+| [setPositionMode()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L466) | :closed_lock_with_key: | POST | `fapi/v1/positionSide/dual` |
+| [setLeverage()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L470) | :closed_lock_with_key: | POST | `fapi/v1/leverage` |
+| [setMultiAssetsMode()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L474) | :closed_lock_with_key: | POST | `fapi/v1/multiAssetsMargin` |
+| [setIsolatedPositionMargin()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L480) | :closed_lock_with_key: | POST | `fapi/v1/positionMargin` |
+| [getPositions()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L490) | :closed_lock_with_key: | GET | `fapi/v2/positionRisk` |
+| [getPositionsV3()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L494) | :closed_lock_with_key: | GET | `fapi/v3/positionRisk` |
+| [getADLQuantileEstimation()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L498) | :closed_lock_with_key: | GET | `fapi/v1/adlQuantile` |
+| [getSymbolAdlRisk()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L502) | | GET | `fapi/v1/symbolAdlRisk` |
+| [getPositionMarginChangeHistory()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L512) | :closed_lock_with_key: | GET | `fapi/v1/positionMargin/history` |
+| [getBalanceV3()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L524) | :closed_lock_with_key: | GET | `fapi/v3/balance` |
+| [getBalance()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L532) | :closed_lock_with_key: | GET | `fapi/v2/balance` |
+| [getAccountInformationV3()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L536) | :closed_lock_with_key: | GET | `fapi/v3/account` |
+| [getAccountInformation()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L544) | :closed_lock_with_key: | GET | `fapi/v2/account` |
+| [getAccountCommissionRate()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L548) | :closed_lock_with_key: | GET | `fapi/v1/commissionRate` |
+| [getFuturesAccountConfig()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L554) | :closed_lock_with_key: | GET | `fapi/v1/accountConfig` |
+| [getFuturesSymbolConfig()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L558) | :closed_lock_with_key: | GET | `fapi/v1/symbolConfig` |
+| [getUserForceOrders()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L562) | :closed_lock_with_key: | GET | `fapi/v1/rateLimit/order` |
+| [getNotionalAndLeverageBrackets()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L569) | :closed_lock_with_key: | GET | `fapi/v1/leverageBracket` |
+| [getMultiAssetsMode()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L575) | :closed_lock_with_key: | GET | `fapi/v1/multiAssetsMargin` |
+| [getCurrentPositionMode()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L579) | :closed_lock_with_key: | GET | `fapi/v1/positionSide/dual` |
+| [getIncomeHistory()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L583) | :closed_lock_with_key: | GET | `fapi/v1/income` |
+| [getApiQuantitativeRulesIndicators()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L587) | :closed_lock_with_key: | GET | `fapi/v1/apiTradingStatus` |
+| [getFuturesTransactionHistoryDownloadId()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L593) | :closed_lock_with_key: | GET | `fapi/v1/income/asyn` |
+| [getFuturesTransactionHistoryDownloadLink()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L600) | :closed_lock_with_key: | GET | `fapi/v1/income/asyn/id` |
+| [getFuturesOrderHistoryDownloadId()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L606) | :closed_lock_with_key: | GET | `fapi/v1/order/asyn` |
+| [getFuturesOrderHistoryDownloadLink()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L613) | :closed_lock_with_key: | GET | `fapi/v1/order/asyn/id` |
+| [getFuturesTradeHistoryDownloadId()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L619) | :closed_lock_with_key: | GET | `fapi/v1/trade/asyn` |
+| [getFuturesTradeDownloadLink()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L626) | :closed_lock_with_key: | GET | `fapi/v1/trade/asyn/id` |
+| [setBNBBurnEnabled()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L632) | :closed_lock_with_key: | POST | `fapi/v1/feeBurn` |
+| [getBNBBurnStatus()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L638) | :closed_lock_with_key: | GET | `fapi/v1/feeBurn` |
+| [signTradFiPerpsAgreement()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L644) | :closed_lock_with_key: | POST | `fapi/v1/stock/contract` |
+| [testOrder()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L648) | :closed_lock_with_key: | POST | `fapi/v1/order/test` |
+| [submitNewAlgoOrder()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L660) | :closed_lock_with_key: | POST | `fapi/v1/algoOrder` |
+| [cancelAlgoOrder()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L667) | :closed_lock_with_key: | DELETE | `fapi/v1/algoOrder` |
+| [cancelAllAlgoOpenOrders()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L673) | :closed_lock_with_key: | DELETE | `fapi/v1/algoOpenOrders` |
+| [getAlgoOrder()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L679) | :closed_lock_with_key: | GET | `fapi/v1/algoOrder` |
+| [getOpenAlgoOrders()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L685) | :closed_lock_with_key: | GET | `fapi/v1/openAlgoOrders` |
+| [getAllAlgoOrders()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L691) | :closed_lock_with_key: | GET | `fapi/v1/allAlgoOrders` |
+| [getAllConvertPairs()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L703) | | GET | `fapi/v1/convert/exchangeInfo` |
+| [submitConvertQuoteRequest()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L710) | :closed_lock_with_key: | POST | `fapi/v1/convert/getQuote` |
+| [acceptConvertQuote()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L716) | :closed_lock_with_key: | POST | `fapi/v1/convert/acceptQuote` |
+| [getConvertOrderStatus()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L724) | :closed_lock_with_key: | GET | `fapi/v1/convert/orderStatus` |
+| [getPortfolioMarginProAccountInfo()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L737) | :closed_lock_with_key: | GET | `fapi/v1/pmAccountInfo` |
+| [getBrokerIfNewFuturesUser()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L754) | :closed_lock_with_key: | GET | `fapi/v1/apiReferral/ifNewUser` |
+| [setBrokerCustomIdForClient()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L767) | :closed_lock_with_key: | POST | `fapi/v1/apiReferral/customization` |
+| [getBrokerClientCustomIds()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L780) | :closed_lock_with_key: | GET | `fapi/v1/apiReferral/customization` |
+| [getBrokerUserCustomId()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L797) | :closed_lock_with_key: | GET | `fapi/v1/apiReferral/userCustomization` |
+| [getBrokerRebateDataOverview()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L806) | :closed_lock_with_key: | GET | `fapi/v1/apiReferral/overview` |
+| [getBrokerUserTradeVolume()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L815) | :closed_lock_with_key: | GET | `fapi/v1/apiReferral/tradeVol` |
+| [getBrokerRebateVolume()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L832) | :closed_lock_with_key: | GET | `fapi/v1/apiReferral/rebateVol` |
+| [getBrokerTradeDetail()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L849) | :closed_lock_with_key: | GET | `fapi/v1/apiReferral/traderSummary` |
+| [getFuturesUserDataListenKey()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L871) | | POST | `fapi/v1/listenKey` |
+| [keepAliveFuturesUserDataListenKey()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L875) | | PUT | `fapi/v1/listenKey` |
+| [closeFuturesUserDataListenKey()](https://github.com/sieblyio/binance/blob/master/src/usdm-client.ts#L879) | | DELETE | `fapi/v1/listenKey` |
# coinm-client.ts
@@ -691,82 +694,82 @@ This table includes all endpoints from the official Exchange API docs and corres
| Function | AUTH | HTTP Method | Endpoint |
| -------- | :------: | :------: | -------- |
-| [testConnectivity()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L127) | | GET | `dapi/v1/ping` |
-| [getExchangeInfo()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L131) | | GET | `dapi/v1/exchangeInfo` |
-| [getOrderBook()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L135) | | GET | `dapi/v1/depth` |
-| [getRecentTrades()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L139) | | GET | `dapi/v1/trades` |
-| [getHistoricalTrades()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L143) | | GET | `dapi/v1/historicalTrades` |
-| [getAggregateTrades()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L149) | | GET | `dapi/v1/aggTrades` |
-| [getMarkPrice()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L158) | | GET | `dapi/v1/premiumIndex` |
-| [getFundingRateHistory()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L162) | | GET | `dapi/v1/fundingRate` |
-| [getFundingRate()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L168) | | GET | `dapi/v1/fundingInfo` |
-| [getKlines()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L172) | | GET | `dapi/v1/klines` |
-| [getContinuousContractKlines()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L176) | | GET | `dapi/v1/continuousKlines` |
-| [getIndexPriceKlines()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L182) | | GET | `dapi/v1/indexPriceKlines` |
-| [getMarkPriceKlines()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L186) | | GET | `dapi/v1/markPriceKlines` |
-| [getPremiumIndexKlines()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L190) | | GET | `dapi/v1/premiumIndexKlines` |
-| [get24hrChangeStatistics()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L194) | | GET | `dapi/v1/ticker/24hr` |
-| [getSymbolPriceTicker()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L201) | | GET | `dapi/v1/ticker/price` |
-| [getSymbolOrderBookTicker()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L208) | | GET | `dapi/v1/ticker/bookTicker` |
-| [getOpenInterest()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L217) | | GET | `dapi/v1/openInterest` |
-| [getOpenInterestStatistics()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L221) | | GET | `futures/data/openInterestHist` |
-| [getTopTradersLongShortAccountRatio()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L225) | | GET | `futures/data/topLongShortAccountRatio` |
-| [getTopTradersLongShortPositionRatio()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L231) | | GET | `futures/data/topLongShortPositionRatio` |
-| [getGlobalLongShortAccountRatio()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L237) | | GET | `futures/data/globalLongShortAccountRatio` |
-| [getTakerBuySellVolume()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L243) | | GET | `futures/data/takerBuySellVol` |
-| [getCompositeSymbolIndex()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L249) | | GET | `futures/data/basis` |
-| [getIndexPriceConstituents()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L257) | | GET | `dapi/v1/constituents` |
-| [getQuarterlyContractSettlementPrices()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L267) | | GET | `futures/data/delivery-price` |
-| [submitNewOrder()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L279) | :closed_lock_with_key: | POST | `dapi/v1/order` |
-| [submitMultipleOrders()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L289) | :closed_lock_with_key: | POST | `dapi/v1/batchOrders` |
-| [modifyOrder()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L306) | :closed_lock_with_key: | PUT | `dapi/v1/order` |
-| [modifyMultipleOrders()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L315) | :closed_lock_with_key: | PUT | `dapi/v1/batchOrders` |
-| [getOrderModifyHistory()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L328) | :closed_lock_with_key: | GET | `dapi/v1/orderAmendment` |
-| [cancelOrder()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L334) | :closed_lock_with_key: | DELETE | `dapi/v1/order` |
-| [cancelMultipleOrders()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L338) | :closed_lock_with_key: | DELETE | `dapi/v1/batchOrders` |
-| [cancelAllOpenOrders()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L358) | :closed_lock_with_key: | DELETE | `dapi/v1/allOpenOrders` |
-| [setCancelOrdersOnTimeout()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L365) | :closed_lock_with_key: | POST | `dapi/v1/countdownCancelAll` |
-| [getOrder()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L371) | :closed_lock_with_key: | GET | `dapi/v1/order` |
-| [getAllOrders()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L375) | :closed_lock_with_key: | GET | `dapi/v1/allOrders` |
-| [getAllOpenOrders()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L379) | :closed_lock_with_key: | GET | `dapi/v1/openOrders` |
-| [getCurrentOpenOrder()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L383) | :closed_lock_with_key: | GET | `dapi/v1/openOrder` |
-| [submitNewAlgoOrder()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L394) | :closed_lock_with_key: | POST | `dapi/v1/algoOrder` |
-| [cancelAlgoOrder()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L401) | :closed_lock_with_key: | DELETE | `dapi/v1/algoOrder` |
-| [getOpenAlgoOrders()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L407) | :closed_lock_with_key: | GET | `dapi/v1/openAlgoOrders` |
-| [getForceOrders()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L413) | :closed_lock_with_key: | GET | `dapi/v1/forceOrders` |
-| [getAccountTrades()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L417) | :closed_lock_with_key: | GET | `dapi/v1/userTrades` |
-| [getPositions()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L423) | :closed_lock_with_key: | GET | `dapi/v1/positionRisk` |
-| [setPositionMode()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L430) | :closed_lock_with_key: | POST | `dapi/v1/positionSide/dual` |
-| [setMarginType()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L434) | :closed_lock_with_key: | POST | `dapi/v1/marginType` |
-| [setLeverage()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L438) | :closed_lock_with_key: | POST | `dapi/v1/leverage` |
-| [getADLQuantileEstimation()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L442) | :closed_lock_with_key: | GET | `dapi/v1/adlQuantile` |
-| [setIsolatedPositionMargin()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L446) | :closed_lock_with_key: | POST | `dapi/v1/positionMargin` |
-| [getPositionMarginChangeHistory()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L452) | :closed_lock_with_key: | GET | `dapi/v1/positionMargin/history` |
-| [getBalance()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L463) | :closed_lock_with_key: | GET | `dapi/v1/balance` |
-| [getAccountCommissionRate()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L467) | :closed_lock_with_key: | GET | `dapi/v1/commissionRate` |
-| [getAccountInformation()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L473) | :closed_lock_with_key: | GET | `dapi/v1/account` |
-| [getNotionalAndLeverageBrackets()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L480) | :closed_lock_with_key: | GET | `dapi/v2/leverageBracket` |
-| [getCurrentPositionMode()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L489) | :closed_lock_with_key: | GET | `dapi/v1/positionSide/dual` |
-| [getIncomeHistory()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L493) | :closed_lock_with_key: | GET | `dapi/v1/income` |
-| [getDownloadIdForFuturesTransactionHistory()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L497) | :closed_lock_with_key: | GET | `dapi/v1/income/asyn` |
-| [getFuturesTransactionHistoryDownloadLink()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L507) | :closed_lock_with_key: | GET | `dapi/v1/income/asyn/id` |
-| [getDownloadIdForFuturesOrderHistory()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L513) | :closed_lock_with_key: | GET | `dapi/v1/order/asyn` |
-| [getFuturesOrderHistoryDownloadLink()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L523) | :closed_lock_with_key: | GET | `dapi/v1/order/asyn/id` |
-| [getDownloadIdForFuturesTradeHistory()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L529) | :closed_lock_with_key: | GET | `dapi/v1/trade/asyn` |
-| [getFuturesTradeHistoryDownloadLink()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L539) | :closed_lock_with_key: | GET | `dapi/v1/trade/asyn/id` |
-| [getClassicPortfolioMarginAccount()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L551) | :closed_lock_with_key: | GET | `dapi/v1/pmAccountInfo` |
-| [getClassicPortfolioMarginNotionalLimits()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L560) | :closed_lock_with_key: | GET | `dapi/v1/pmExchangeInfo` |
-| [getBrokerIfNewFuturesUser()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L579) | :closed_lock_with_key: | GET | `dapi/v1/apiReferral/ifNewUser` |
-| [setBrokerCustomIdForClient()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L592) | :closed_lock_with_key: | POST | `dapi/v1/apiReferral/customization` |
-| [getBrokerClientCustomIds()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L605) | :closed_lock_with_key: | GET | `dapi/v1/apiReferral/customization` |
-| [getBrokerUserCustomId()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L622) | :closed_lock_with_key: | GET | `dapi/v1/apiReferral/userCustomization` |
-| [getBrokerRebateDataOverview()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L631) | :closed_lock_with_key: | GET | `dapi/v1/apiReferral/overview` |
-| [getBrokerUserTradeVolume()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L640) | :closed_lock_with_key: | GET | `dapi/v1/apiReferral/tradeVol` |
-| [getBrokerRebateVolume()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L657) | :closed_lock_with_key: | GET | `dapi/v1/apiReferral/rebateVol` |
-| [getBrokerTradeDetail()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L674) | :closed_lock_with_key: | GET | `dapi/v1/apiReferral/traderSummary` |
-| [getFuturesUserDataListenKey()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L694) | | POST | `dapi/v1/listenKey` |
-| [keepAliveFuturesUserDataListenKey()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L698) | | PUT | `dapi/v1/listenKey` |
-| [closeFuturesUserDataListenKey()](https://github.com/tiagosiebler/binance/blob/master/src/coinm-client.ts#L702) | | DELETE | `dapi/v1/listenKey` |
+| [testConnectivity()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L127) | | GET | `dapi/v1/ping` |
+| [getExchangeInfo()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L131) | | GET | `dapi/v1/exchangeInfo` |
+| [getOrderBook()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L135) | | GET | `dapi/v1/depth` |
+| [getRecentTrades()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L139) | | GET | `dapi/v1/trades` |
+| [getHistoricalTrades()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L143) | | GET | `dapi/v1/historicalTrades` |
+| [getAggregateTrades()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L149) | | GET | `dapi/v1/aggTrades` |
+| [getMarkPrice()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L158) | | GET | `dapi/v1/premiumIndex` |
+| [getFundingRateHistory()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L162) | | GET | `dapi/v1/fundingRate` |
+| [getFundingRate()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L168) | | GET | `dapi/v1/fundingInfo` |
+| [getKlines()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L172) | | GET | `dapi/v1/klines` |
+| [getContinuousContractKlines()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L176) | | GET | `dapi/v1/continuousKlines` |
+| [getIndexPriceKlines()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L182) | | GET | `dapi/v1/indexPriceKlines` |
+| [getMarkPriceKlines()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L186) | | GET | `dapi/v1/markPriceKlines` |
+| [getPremiumIndexKlines()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L190) | | GET | `dapi/v1/premiumIndexKlines` |
+| [get24hrChangeStatistics()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L194) | | GET | `dapi/v1/ticker/24hr` |
+| [getSymbolPriceTicker()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L201) | | GET | `dapi/v1/ticker/price` |
+| [getSymbolOrderBookTicker()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L208) | | GET | `dapi/v1/ticker/bookTicker` |
+| [getOpenInterest()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L217) | | GET | `dapi/v1/openInterest` |
+| [getOpenInterestStatistics()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L221) | | GET | `futures/data/openInterestHist` |
+| [getTopTradersLongShortAccountRatio()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L225) | | GET | `futures/data/topLongShortAccountRatio` |
+| [getTopTradersLongShortPositionRatio()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L231) | | GET | `futures/data/topLongShortPositionRatio` |
+| [getGlobalLongShortAccountRatio()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L237) | | GET | `futures/data/globalLongShortAccountRatio` |
+| [getTakerBuySellVolume()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L243) | | GET | `futures/data/takerBuySellVol` |
+| [getCompositeSymbolIndex()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L249) | | GET | `futures/data/basis` |
+| [getIndexPriceConstituents()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L257) | | GET | `dapi/v1/constituents` |
+| [getQuarterlyContractSettlementPrices()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L267) | | GET | `futures/data/delivery-price` |
+| [submitNewOrder()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L279) | :closed_lock_with_key: | POST | `dapi/v1/order` |
+| [submitMultipleOrders()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L289) | :closed_lock_with_key: | POST | `dapi/v1/batchOrders` |
+| [modifyOrder()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L306) | :closed_lock_with_key: | PUT | `dapi/v1/order` |
+| [modifyMultipleOrders()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L315) | :closed_lock_with_key: | PUT | `dapi/v1/batchOrders` |
+| [getOrderModifyHistory()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L328) | :closed_lock_with_key: | GET | `dapi/v1/orderAmendment` |
+| [cancelOrder()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L334) | :closed_lock_with_key: | DELETE | `dapi/v1/order` |
+| [cancelMultipleOrders()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L338) | :closed_lock_with_key: | DELETE | `dapi/v1/batchOrders` |
+| [cancelAllOpenOrders()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L358) | :closed_lock_with_key: | DELETE | `dapi/v1/allOpenOrders` |
+| [setCancelOrdersOnTimeout()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L365) | :closed_lock_with_key: | POST | `dapi/v1/countdownCancelAll` |
+| [getOrder()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L371) | :closed_lock_with_key: | GET | `dapi/v1/order` |
+| [getAllOrders()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L375) | :closed_lock_with_key: | GET | `dapi/v1/allOrders` |
+| [getAllOpenOrders()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L379) | :closed_lock_with_key: | GET | `dapi/v1/openOrders` |
+| [getCurrentOpenOrder()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L383) | :closed_lock_with_key: | GET | `dapi/v1/openOrder` |
+| [submitNewAlgoOrder()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L394) | :closed_lock_with_key: | POST | `dapi/v1/algoOrder` |
+| [cancelAlgoOrder()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L401) | :closed_lock_with_key: | DELETE | `dapi/v1/algoOrder` |
+| [getOpenAlgoOrders()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L407) | :closed_lock_with_key: | GET | `dapi/v1/openAlgoOrders` |
+| [getForceOrders()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L413) | :closed_lock_with_key: | GET | `dapi/v1/forceOrders` |
+| [getAccountTrades()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L417) | :closed_lock_with_key: | GET | `dapi/v1/userTrades` |
+| [getPositions()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L423) | :closed_lock_with_key: | GET | `dapi/v1/positionRisk` |
+| [setPositionMode()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L430) | :closed_lock_with_key: | POST | `dapi/v1/positionSide/dual` |
+| [setMarginType()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L434) | :closed_lock_with_key: | POST | `dapi/v1/marginType` |
+| [setLeverage()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L438) | :closed_lock_with_key: | POST | `dapi/v1/leverage` |
+| [getADLQuantileEstimation()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L442) | :closed_lock_with_key: | GET | `dapi/v1/adlQuantile` |
+| [setIsolatedPositionMargin()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L446) | :closed_lock_with_key: | POST | `dapi/v1/positionMargin` |
+| [getPositionMarginChangeHistory()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L452) | :closed_lock_with_key: | GET | `dapi/v1/positionMargin/history` |
+| [getBalance()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L463) | :closed_lock_with_key: | GET | `dapi/v1/balance` |
+| [getAccountCommissionRate()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L467) | :closed_lock_with_key: | GET | `dapi/v1/commissionRate` |
+| [getAccountInformation()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L473) | :closed_lock_with_key: | GET | `dapi/v1/account` |
+| [getNotionalAndLeverageBrackets()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L480) | :closed_lock_with_key: | GET | `dapi/v2/leverageBracket` |
+| [getCurrentPositionMode()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L489) | :closed_lock_with_key: | GET | `dapi/v1/positionSide/dual` |
+| [getIncomeHistory()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L493) | :closed_lock_with_key: | GET | `dapi/v1/income` |
+| [getDownloadIdForFuturesTransactionHistory()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L497) | :closed_lock_with_key: | GET | `dapi/v1/income/asyn` |
+| [getFuturesTransactionHistoryDownloadLink()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L507) | :closed_lock_with_key: | GET | `dapi/v1/income/asyn/id` |
+| [getDownloadIdForFuturesOrderHistory()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L513) | :closed_lock_with_key: | GET | `dapi/v1/order/asyn` |
+| [getFuturesOrderHistoryDownloadLink()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L523) | :closed_lock_with_key: | GET | `dapi/v1/order/asyn/id` |
+| [getDownloadIdForFuturesTradeHistory()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L529) | :closed_lock_with_key: | GET | `dapi/v1/trade/asyn` |
+| [getFuturesTradeHistoryDownloadLink()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L539) | :closed_lock_with_key: | GET | `dapi/v1/trade/asyn/id` |
+| [getClassicPortfolioMarginAccount()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L551) | :closed_lock_with_key: | GET | `dapi/v1/pmAccountInfo` |
+| [getClassicPortfolioMarginNotionalLimits()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L560) | :closed_lock_with_key: | GET | `dapi/v1/pmExchangeInfo` |
+| [getBrokerIfNewFuturesUser()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L579) | :closed_lock_with_key: | GET | `dapi/v1/apiReferral/ifNewUser` |
+| [setBrokerCustomIdForClient()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L592) | :closed_lock_with_key: | POST | `dapi/v1/apiReferral/customization` |
+| [getBrokerClientCustomIds()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L605) | :closed_lock_with_key: | GET | `dapi/v1/apiReferral/customization` |
+| [getBrokerUserCustomId()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L622) | :closed_lock_with_key: | GET | `dapi/v1/apiReferral/userCustomization` |
+| [getBrokerRebateDataOverview()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L631) | :closed_lock_with_key: | GET | `dapi/v1/apiReferral/overview` |
+| [getBrokerUserTradeVolume()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L640) | :closed_lock_with_key: | GET | `dapi/v1/apiReferral/tradeVol` |
+| [getBrokerRebateVolume()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L657) | :closed_lock_with_key: | GET | `dapi/v1/apiReferral/rebateVol` |
+| [getBrokerTradeDetail()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L674) | :closed_lock_with_key: | GET | `dapi/v1/apiReferral/traderSummary` |
+| [getFuturesUserDataListenKey()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L694) | | POST | `dapi/v1/listenKey` |
+| [keepAliveFuturesUserDataListenKey()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L698) | | PUT | `dapi/v1/listenKey` |
+| [closeFuturesUserDataListenKey()](https://github.com/sieblyio/binance/blob/master/src/coinm-client.ts#L702) | | DELETE | `dapi/v1/listenKey` |
# portfolio-client.ts
@@ -774,113 +777,113 @@ This table includes all endpoints from the official Exchange API docs and corres
| Function | AUTH | HTTP Method | Endpoint |
| -------- | :------: | :------: | -------- |
-| [testConnectivity()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L167) | | GET | `papi/v1/ping` |
-| [signTradFiPerpsContract()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L171) | :closed_lock_with_key: | POST | `papi/v1/um/stock/contract` |
-| [submitNewUMOrder()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L181) | :closed_lock_with_key: | POST | `papi/v1/um/order` |
-| [submitNewUMConditionalOrder()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L191) | :closed_lock_with_key: | POST | `papi/v1/um/conditional/order` |
-| [submitNewUMAlgoOrder()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L198) | :closed_lock_with_key: | POST | `papi/v1/um/algo/order` |
-| [submitNewCMOrder()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L205) | :closed_lock_with_key: | POST | `papi/v1/cm/order` |
-| [submitNewCMConditionalOrder()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L212) | :closed_lock_with_key: | POST | `papi/v1/cm/conditional/order` |
-| [submitNewMarginOrder()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L219) | :closed_lock_with_key: | POST | `papi/v1/margin/order` |
-| [submitMarginLoan()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L226) | :closed_lock_with_key: | POST | `papi/v1/marginLoan` |
-| [submitMarginRepay()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L232) | :closed_lock_with_key: | POST | `papi/v1/repayLoan` |
-| [submitNewMarginOCO()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L238) | :closed_lock_with_key: | POST | `papi/v1/margin/order/oco` |
-| [cancelUMOrder()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L247) | :closed_lock_with_key: | DELETE | `papi/v1/um/order` |
-| [cancelAllUMOrders()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L253) | :closed_lock_with_key: | DELETE | `papi/v1/um/allOpenOrders` |
-| [cancelUMConditionalOrder()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L263) | :closed_lock_with_key: | DELETE | `papi/v1/um/conditional/order` |
-| [cancelUMAlgoOrder()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L269) | :closed_lock_with_key: | DELETE | `papi/v1/um/algo/order` |
-| [cancelAllUMConditionalOrders()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L278) | :closed_lock_with_key: | DELETE | `papi/v1/um/conditional/allOpenOrders` |
-| [cancelAllUMAlgoOpenOrders()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L285) | :closed_lock_with_key: | DELETE | `papi/v1/um/algo/allOpenOrders` |
-| [cancelCMOrder()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L291) | :closed_lock_with_key: | DELETE | `papi/v1/cm/order` |
-| [cancelAllCMOrders()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L297) | :closed_lock_with_key: | DELETE | `papi/v1/cm/allOpenOrders` |
-| [cancelCMConditionalOrder()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L304) | :closed_lock_with_key: | DELETE | `papi/v1/cm/conditional/order` |
-| [cancelAllCMConditionalOrders()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L310) | :closed_lock_with_key: | DELETE | `papi/v1/cm/conditional/allOpenOrders` |
-| [cancelMarginOrder()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L317) | :closed_lock_with_key: | DELETE | `papi/v1/margin/order` |
-| [cancelMarginOCO()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L323) | :closed_lock_with_key: | DELETE | `papi/v1/margin/orderList` |
-| [cancelAllMarginOrders()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L329) | :closed_lock_with_key: | DELETE | `papi/v1/margin/allOpenOrders` |
-| [modifyUMOrder()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L335) | :closed_lock_with_key: | PUT | `papi/v1/um/order` |
-| [modifyCMOrder()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L341) | :closed_lock_with_key: | PUT | `papi/v1/cm/order` |
-| [getUMOrder()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L347) | :closed_lock_with_key: | GET | `papi/v1/um/order` |
-| [getAllUMOrders()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L351) | :closed_lock_with_key: | GET | `papi/v1/um/allOrders` |
-| [getUMOpenOrder()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L357) | :closed_lock_with_key: | GET | `papi/v1/um/openOrder` |
-| [getAllUMOpenOrders()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L363) | :closed_lock_with_key: | GET | `papi/v1/um/openOrders` |
-| [getAllUMConditionalOrders()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L370) | :closed_lock_with_key: | GET | `papi/v1/um/conditional/allOrders` |
-| [getAllUMAlgoOrders()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L376) | :closed_lock_with_key: | GET | `papi/v1/um/algo/allAlgoOrders` |
-| [getUMOpenConditionalOrders()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L385) | :closed_lock_with_key: | GET | `papi/v1/um/conditional/openOrders` |
-| [getUMAlgoOpenOrders()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L391) | :closed_lock_with_key: | GET | `papi/v1/um/algo/openAlgoOrders` |
-| [getUMOpenConditionalOrder()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L400) | :closed_lock_with_key: | GET | `papi/v1/um/conditional/openOrder` |
-| [getUMAlgoOrder()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L406) | :closed_lock_with_key: | GET | `papi/v1/um/algo/algoOrder` |
-| [getUMConditionalOrderHistory()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L415) | :closed_lock_with_key: | GET | `papi/v1/um/conditional/orderHistory` |
-| [getCMOrder()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L421) | :closed_lock_with_key: | GET | `papi/v1/cm/order` |
-| [getAllCMOrders()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L425) | :closed_lock_with_key: | GET | `papi/v1/cm/allOrders` |
-| [getCMOpenOrder()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L431) | :closed_lock_with_key: | GET | `papi/v1/cm/openOrder` |
-| [getAllCMOpenOrders()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L437) | :closed_lock_with_key: | GET | `papi/v1/cm/openOrders` |
-| [getCMOpenConditionalOrders()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L444) | :closed_lock_with_key: | GET | `papi/v1/cm/conditional/openOrders` |
-| [getCMOpenConditionalOrder()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L450) | :closed_lock_with_key: | GET | `papi/v1/cm/conditional/openOrder` |
-| [getAllCMConditionalOrders()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L458) | :closed_lock_with_key: | GET | `papi/v1/cm/conditional/allOrders` |
-| [getCMConditionalOrderHistory()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L464) | :closed_lock_with_key: | GET | `papi/v1/cm/conditional/orderHistory` |
-| [getUMForceOrders()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L470) | :closed_lock_with_key: | GET | `papi/v1/um/forceOrders` |
-| [getCMForceOrders()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L476) | :closed_lock_with_key: | GET | `papi/v1/cm/forceOrders` |
-| [getUMOrderModificationHistory()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L482) | :closed_lock_with_key: | GET | `papi/v1/um/orderAmendment` |
-| [getCMOrderModificationHistory()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L488) | :closed_lock_with_key: | GET | `papi/v1/cm/orderAmendment` |
-| [getMarginForceOrders()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L494) | :closed_lock_with_key: | GET | `papi/v1/margin/forceOrders` |
-| [getUMTrades()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L501) | :closed_lock_with_key: | GET | `papi/v1/um/userTrades` |
-| [getCMTrades()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L505) | :closed_lock_with_key: | GET | `papi/v1/cm/userTrades` |
-| [getUMADLQuantile()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L509) | :closed_lock_with_key: | GET | `papi/v1/um/adlQuantile` |
-| [getCMADLQuantile()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L518) | :closed_lock_with_key: | GET | `papi/v1/cm/adlQuantile` |
-| [toggleUMFeeBurn()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L527) | :closed_lock_with_key: | POST | `papi/v1/um/feeBurn` |
-| [getUMFeeBurnStatus()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L533) | :closed_lock_with_key: | GET | `papi/v1/um/feeBurn` |
-| [getMarginOrder()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L537) | :closed_lock_with_key: | GET | `papi/v1/margin/order` |
-| [getMarginOpenOrders()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L543) | :closed_lock_with_key: | GET | `papi/v1/margin/openOrders` |
-| [getAllMarginOrders()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L549) | :closed_lock_with_key: | GET | `papi/v1/margin/allOrders` |
-| [getMarginOCO()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L555) | :closed_lock_with_key: | GET | `papi/v1/margin/orderList` |
-| [getAllMarginOCO()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L561) | :closed_lock_with_key: | GET | `papi/v1/margin/allOrderList` |
-| [getMarginOpenOCO()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L567) | :closed_lock_with_key: | GET | `papi/v1/margin/openOrderList` |
-| [getMarginTrades()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L571) | :closed_lock_with_key: | GET | `papi/v1/margin/myTrades` |
-| [repayMarginDebt()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L577) | :closed_lock_with_key: | POST | `papi/v1/margin/repay-debt` |
-| [getBalance()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L589) | :closed_lock_with_key: | GET | `papi/v1/balance` |
-| [getAccountInfo()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L593) | :closed_lock_with_key: | GET | `papi/v1/account` |
-| [getMarginMaxBorrow()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L597) | :closed_lock_with_key: | GET | `papi/v1/margin/maxBorrowable` |
-| [getMarginMaxWithdraw()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L604) | :closed_lock_with_key: | GET | `papi/v1/margin/maxWithdraw` |
-| [getUMPosition()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L610) | :closed_lock_with_key: | GET | `papi/v1/um/positionRisk` |
-| [getCMPosition()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L614) | :closed_lock_with_key: | GET | `papi/v1/cm/positionRisk` |
-| [updateUMLeverage()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L621) | :closed_lock_with_key: | POST | `papi/v1/um/leverage` |
-| [updateCMLeverage()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L629) | :closed_lock_with_key: | POST | `papi/v1/cm/leverage` |
-| [updateUMPositionMode()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L637) | :closed_lock_with_key: | POST | `papi/v1/um/positionSide/dual` |
-| [updateCMPositionMode()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L646) | :closed_lock_with_key: | POST | `papi/v1/cm/positionSide/dual` |
-| [getUMPositionMode()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L655) | :closed_lock_with_key: | GET | `papi/v1/um/positionSide/dual` |
-| [getCMPositionMode()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L661) | :closed_lock_with_key: | GET | `papi/v1/cm/positionSide/dual` |
-| [getUMLeverageBrackets()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L667) | :closed_lock_with_key: | GET | `papi/v1/um/leverageBracket` |
-| [getCMLeverageBrackets()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L677) | :closed_lock_with_key: | GET | `papi/v1/cm/leverageBracket` |
-| [getUMTradingStatus()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L686) | :closed_lock_with_key: | GET | `papi/v1/um/apiTradingStatus` |
-| [getUMCommissionRate()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L692) | :closed_lock_with_key: | GET | `papi/v1/um/commissionRate` |
-| [getCMCommissionRate()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L700) | :closed_lock_with_key: | GET | `papi/v1/cm/commissionRate` |
-| [getMarginLoanRecords()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L708) | :closed_lock_with_key: | GET | `papi/v1/margin/marginLoan` |
-| [getMarginRepayRecords()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L715) | :closed_lock_with_key: | GET | `papi/v1/margin/repayLoan` |
-| [getAutoRepayFuturesStatus()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L722) | :closed_lock_with_key: | GET | `papi/v1/repay-futures-switch` |
-| [updateAutoRepayFuturesStatus()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L728) | :closed_lock_with_key: | POST | `papi/v1/repay-futures-switch` |
-| [getMarginInterestHistory()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L736) | :closed_lock_with_key: | GET | `papi/v1/margin/marginInterestHistory` |
-| [repayFuturesNegativeBalance()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L743) | :closed_lock_with_key: | POST | `papi/v1/repay-futures-negative-balance` |
-| [getPortfolioNegativeBalanceInterestHistory()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L749) | :closed_lock_with_key: | GET | `papi/v1/portfolio/interest-history` |
-| [autoCollectFunds()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L755) | :closed_lock_with_key: | POST | `papi/v1/auto-collection` |
-| [transferAssetFuturesMargin()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L761) | :closed_lock_with_key: | POST | `papi/v1/asset-collection` |
-| [transferBNB()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L767) | :closed_lock_with_key: | POST | `papi/v1/bnb-transfer` |
-| [getUMIncomeHistory()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L776) | :closed_lock_with_key: | GET | `papi/v1/um/income` |
-| [getCMIncomeHistory()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L782) | :closed_lock_with_key: | GET | `papi/v1/cm/income` |
-| [getUMAccount()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L788) | :closed_lock_with_key: | GET | `papi/v1/um/account` |
-| [getCMAccount()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L795) | :closed_lock_with_key: | GET | `papi/v1/cm/account` |
-| [getUMAccountConfig()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L802) | :closed_lock_with_key: | GET | `papi/v1/um/accountConfig` |
-| [getUMSymbolConfig()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L806) | :closed_lock_with_key: | GET | `papi/v1/um/symbolConfig` |
-| [getUMAccountV2()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L812) | :closed_lock_with_key: | GET | `papi/v2/um/account` |
-| [getUMTradeHistoryDownloadId()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L819) | :closed_lock_with_key: | GET | `papi/v1/um/trade/asyn` |
-| [getUMTradeDownloadLink()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L829) | :closed_lock_with_key: | GET | `papi/v1/um/trade/asyn/id` |
-| [getUMOrderHistoryDownloadId()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L835) | :closed_lock_with_key: | GET | `papi/v1/um/order/asyn` |
-| [getUMOrderDownloadLink()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L845) | :closed_lock_with_key: | GET | `papi/v1/um/order/asyn/id` |
-| [getUMTransactionHistoryDownloadId()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L851) | :closed_lock_with_key: | GET | `papi/v1/um/income/asyn` |
-| [getUMTransactionDownloadLink()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L861) | :closed_lock_with_key: | GET | `papi/v1/um/income/asyn/id` |
-| [getPMUserDataListenKey()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L900) | | POST | `papi/v1/listenKey` |
-| [keepAlivePMUserDataListenKey()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L904) | | PUT | `papi/v1/listenKey` |
-| [closePMUserDataListenKey()](https://github.com/tiagosiebler/binance/blob/master/src/portfolio-client.ts#L908) | | DELETE | `papi/v1/listenKey` |
+| [testConnectivity()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L167) | | GET | `papi/v1/ping` |
+| [signTradFiPerpsContract()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L171) | :closed_lock_with_key: | POST | `papi/v1/um/stock/contract` |
+| [submitNewUMOrder()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L181) | :closed_lock_with_key: | POST | `papi/v1/um/order` |
+| [submitNewUMConditionalOrder()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L191) | :closed_lock_with_key: | POST | `papi/v1/um/conditional/order` |
+| [submitNewUMAlgoOrder()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L198) | :closed_lock_with_key: | POST | `papi/v1/um/algo/order` |
+| [submitNewCMOrder()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L205) | :closed_lock_with_key: | POST | `papi/v1/cm/order` |
+| [submitNewCMConditionalOrder()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L212) | :closed_lock_with_key: | POST | `papi/v1/cm/conditional/order` |
+| [submitNewMarginOrder()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L219) | :closed_lock_with_key: | POST | `papi/v1/margin/order` |
+| [submitMarginLoan()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L226) | :closed_lock_with_key: | POST | `papi/v1/marginLoan` |
+| [submitMarginRepay()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L232) | :closed_lock_with_key: | POST | `papi/v1/repayLoan` |
+| [submitNewMarginOCO()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L238) | :closed_lock_with_key: | POST | `papi/v1/margin/order/oco` |
+| [cancelUMOrder()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L247) | :closed_lock_with_key: | DELETE | `papi/v1/um/order` |
+| [cancelAllUMOrders()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L253) | :closed_lock_with_key: | DELETE | `papi/v1/um/allOpenOrders` |
+| [cancelUMConditionalOrder()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L263) | :closed_lock_with_key: | DELETE | `papi/v1/um/conditional/order` |
+| [cancelUMAlgoOrder()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L269) | :closed_lock_with_key: | DELETE | `papi/v1/um/algo/order` |
+| [cancelAllUMConditionalOrders()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L278) | :closed_lock_with_key: | DELETE | `papi/v1/um/conditional/allOpenOrders` |
+| [cancelAllUMAlgoOpenOrders()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L285) | :closed_lock_with_key: | DELETE | `papi/v1/um/algo/allOpenOrders` |
+| [cancelCMOrder()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L291) | :closed_lock_with_key: | DELETE | `papi/v1/cm/order` |
+| [cancelAllCMOrders()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L297) | :closed_lock_with_key: | DELETE | `papi/v1/cm/allOpenOrders` |
+| [cancelCMConditionalOrder()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L304) | :closed_lock_with_key: | DELETE | `papi/v1/cm/conditional/order` |
+| [cancelAllCMConditionalOrders()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L310) | :closed_lock_with_key: | DELETE | `papi/v1/cm/conditional/allOpenOrders` |
+| [cancelMarginOrder()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L317) | :closed_lock_with_key: | DELETE | `papi/v1/margin/order` |
+| [cancelMarginOCO()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L323) | :closed_lock_with_key: | DELETE | `papi/v1/margin/orderList` |
+| [cancelAllMarginOrders()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L329) | :closed_lock_with_key: | DELETE | `papi/v1/margin/allOpenOrders` |
+| [modifyUMOrder()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L335) | :closed_lock_with_key: | PUT | `papi/v1/um/order` |
+| [modifyCMOrder()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L341) | :closed_lock_with_key: | PUT | `papi/v1/cm/order` |
+| [getUMOrder()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L347) | :closed_lock_with_key: | GET | `papi/v1/um/order` |
+| [getAllUMOrders()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L351) | :closed_lock_with_key: | GET | `papi/v1/um/allOrders` |
+| [getUMOpenOrder()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L357) | :closed_lock_with_key: | GET | `papi/v1/um/openOrder` |
+| [getAllUMOpenOrders()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L363) | :closed_lock_with_key: | GET | `papi/v1/um/openOrders` |
+| [getAllUMConditionalOrders()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L370) | :closed_lock_with_key: | GET | `papi/v1/um/conditional/allOrders` |
+| [getAllUMAlgoOrders()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L376) | :closed_lock_with_key: | GET | `papi/v1/um/algo/allAlgoOrders` |
+| [getUMOpenConditionalOrders()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L385) | :closed_lock_with_key: | GET | `papi/v1/um/conditional/openOrders` |
+| [getUMAlgoOpenOrders()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L391) | :closed_lock_with_key: | GET | `papi/v1/um/algo/openAlgoOrders` |
+| [getUMOpenConditionalOrder()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L400) | :closed_lock_with_key: | GET | `papi/v1/um/conditional/openOrder` |
+| [getUMAlgoOrder()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L406) | :closed_lock_with_key: | GET | `papi/v1/um/algo/algoOrder` |
+| [getUMConditionalOrderHistory()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L415) | :closed_lock_with_key: | GET | `papi/v1/um/conditional/orderHistory` |
+| [getCMOrder()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L421) | :closed_lock_with_key: | GET | `papi/v1/cm/order` |
+| [getAllCMOrders()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L425) | :closed_lock_with_key: | GET | `papi/v1/cm/allOrders` |
+| [getCMOpenOrder()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L431) | :closed_lock_with_key: | GET | `papi/v1/cm/openOrder` |
+| [getAllCMOpenOrders()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L437) | :closed_lock_with_key: | GET | `papi/v1/cm/openOrders` |
+| [getCMOpenConditionalOrders()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L444) | :closed_lock_with_key: | GET | `papi/v1/cm/conditional/openOrders` |
+| [getCMOpenConditionalOrder()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L450) | :closed_lock_with_key: | GET | `papi/v1/cm/conditional/openOrder` |
+| [getAllCMConditionalOrders()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L458) | :closed_lock_with_key: | GET | `papi/v1/cm/conditional/allOrders` |
+| [getCMConditionalOrderHistory()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L464) | :closed_lock_with_key: | GET | `papi/v1/cm/conditional/orderHistory` |
+| [getUMForceOrders()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L470) | :closed_lock_with_key: | GET | `papi/v1/um/forceOrders` |
+| [getCMForceOrders()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L476) | :closed_lock_with_key: | GET | `papi/v1/cm/forceOrders` |
+| [getUMOrderModificationHistory()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L482) | :closed_lock_with_key: | GET | `papi/v1/um/orderAmendment` |
+| [getCMOrderModificationHistory()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L488) | :closed_lock_with_key: | GET | `papi/v1/cm/orderAmendment` |
+| [getMarginForceOrders()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L494) | :closed_lock_with_key: | GET | `papi/v1/margin/forceOrders` |
+| [getUMTrades()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L501) | :closed_lock_with_key: | GET | `papi/v1/um/userTrades` |
+| [getCMTrades()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L505) | :closed_lock_with_key: | GET | `papi/v1/cm/userTrades` |
+| [getUMADLQuantile()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L509) | :closed_lock_with_key: | GET | `papi/v1/um/adlQuantile` |
+| [getCMADLQuantile()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L518) | :closed_lock_with_key: | GET | `papi/v1/cm/adlQuantile` |
+| [toggleUMFeeBurn()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L527) | :closed_lock_with_key: | POST | `papi/v1/um/feeBurn` |
+| [getUMFeeBurnStatus()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L533) | :closed_lock_with_key: | GET | `papi/v1/um/feeBurn` |
+| [getMarginOrder()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L537) | :closed_lock_with_key: | GET | `papi/v1/margin/order` |
+| [getMarginOpenOrders()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L543) | :closed_lock_with_key: | GET | `papi/v1/margin/openOrders` |
+| [getAllMarginOrders()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L549) | :closed_lock_with_key: | GET | `papi/v1/margin/allOrders` |
+| [getMarginOCO()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L555) | :closed_lock_with_key: | GET | `papi/v1/margin/orderList` |
+| [getAllMarginOCO()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L561) | :closed_lock_with_key: | GET | `papi/v1/margin/allOrderList` |
+| [getMarginOpenOCO()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L567) | :closed_lock_with_key: | GET | `papi/v1/margin/openOrderList` |
+| [getMarginTrades()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L571) | :closed_lock_with_key: | GET | `papi/v1/margin/myTrades` |
+| [repayMarginDebt()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L577) | :closed_lock_with_key: | POST | `papi/v1/margin/repay-debt` |
+| [getBalance()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L589) | :closed_lock_with_key: | GET | `papi/v1/balance` |
+| [getAccountInfo()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L593) | :closed_lock_with_key: | GET | `papi/v1/account` |
+| [getMarginMaxBorrow()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L597) | :closed_lock_with_key: | GET | `papi/v1/margin/maxBorrowable` |
+| [getMarginMaxWithdraw()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L604) | :closed_lock_with_key: | GET | `papi/v1/margin/maxWithdraw` |
+| [getUMPosition()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L610) | :closed_lock_with_key: | GET | `papi/v1/um/positionRisk` |
+| [getCMPosition()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L614) | :closed_lock_with_key: | GET | `papi/v1/cm/positionRisk` |
+| [updateUMLeverage()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L621) | :closed_lock_with_key: | POST | `papi/v1/um/leverage` |
+| [updateCMLeverage()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L629) | :closed_lock_with_key: | POST | `papi/v1/cm/leverage` |
+| [updateUMPositionMode()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L637) | :closed_lock_with_key: | POST | `papi/v1/um/positionSide/dual` |
+| [updateCMPositionMode()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L646) | :closed_lock_with_key: | POST | `papi/v1/cm/positionSide/dual` |
+| [getUMPositionMode()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L655) | :closed_lock_with_key: | GET | `papi/v1/um/positionSide/dual` |
+| [getCMPositionMode()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L661) | :closed_lock_with_key: | GET | `papi/v1/cm/positionSide/dual` |
+| [getUMLeverageBrackets()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L667) | :closed_lock_with_key: | GET | `papi/v1/um/leverageBracket` |
+| [getCMLeverageBrackets()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L677) | :closed_lock_with_key: | GET | `papi/v1/cm/leverageBracket` |
+| [getUMTradingStatus()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L686) | :closed_lock_with_key: | GET | `papi/v1/um/apiTradingStatus` |
+| [getUMCommissionRate()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L692) | :closed_lock_with_key: | GET | `papi/v1/um/commissionRate` |
+| [getCMCommissionRate()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L700) | :closed_lock_with_key: | GET | `papi/v1/cm/commissionRate` |
+| [getMarginLoanRecords()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L708) | :closed_lock_with_key: | GET | `papi/v1/margin/marginLoan` |
+| [getMarginRepayRecords()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L715) | :closed_lock_with_key: | GET | `papi/v1/margin/repayLoan` |
+| [getAutoRepayFuturesStatus()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L722) | :closed_lock_with_key: | GET | `papi/v1/repay-futures-switch` |
+| [updateAutoRepayFuturesStatus()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L728) | :closed_lock_with_key: | POST | `papi/v1/repay-futures-switch` |
+| [getMarginInterestHistory()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L736) | :closed_lock_with_key: | GET | `papi/v1/margin/marginInterestHistory` |
+| [repayFuturesNegativeBalance()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L743) | :closed_lock_with_key: | POST | `papi/v1/repay-futures-negative-balance` |
+| [getPortfolioNegativeBalanceInterestHistory()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L749) | :closed_lock_with_key: | GET | `papi/v1/portfolio/interest-history` |
+| [autoCollectFunds()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L755) | :closed_lock_with_key: | POST | `papi/v1/auto-collection` |
+| [transferAssetFuturesMargin()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L761) | :closed_lock_with_key: | POST | `papi/v1/asset-collection` |
+| [transferBNB()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L767) | :closed_lock_with_key: | POST | `papi/v1/bnb-transfer` |
+| [getUMIncomeHistory()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L776) | :closed_lock_with_key: | GET | `papi/v1/um/income` |
+| [getCMIncomeHistory()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L782) | :closed_lock_with_key: | GET | `papi/v1/cm/income` |
+| [getUMAccount()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L788) | :closed_lock_with_key: | GET | `papi/v1/um/account` |
+| [getCMAccount()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L795) | :closed_lock_with_key: | GET | `papi/v1/cm/account` |
+| [getUMAccountConfig()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L802) | :closed_lock_with_key: | GET | `papi/v1/um/accountConfig` |
+| [getUMSymbolConfig()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L806) | :closed_lock_with_key: | GET | `papi/v1/um/symbolConfig` |
+| [getUMAccountV2()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L812) | :closed_lock_with_key: | GET | `papi/v2/um/account` |
+| [getUMTradeHistoryDownloadId()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L819) | :closed_lock_with_key: | GET | `papi/v1/um/trade/asyn` |
+| [getUMTradeDownloadLink()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L829) | :closed_lock_with_key: | GET | `papi/v1/um/trade/asyn/id` |
+| [getUMOrderHistoryDownloadId()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L835) | :closed_lock_with_key: | GET | `papi/v1/um/order/asyn` |
+| [getUMOrderDownloadLink()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L845) | :closed_lock_with_key: | GET | `papi/v1/um/order/asyn/id` |
+| [getUMTransactionHistoryDownloadId()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L851) | :closed_lock_with_key: | GET | `papi/v1/um/income/asyn` |
+| [getUMTransactionDownloadLink()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L861) | :closed_lock_with_key: | GET | `papi/v1/um/income/asyn/id` |
+| [getPMUserDataListenKey()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L900) | | POST | `papi/v1/listenKey` |
+| [keepAlivePMUserDataListenKey()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L904) | | PUT | `papi/v1/listenKey` |
+| [closePMUserDataListenKey()](https://github.com/sieblyio/binance/blob/master/src/portfolio-client.ts#L908) | | DELETE | `papi/v1/listenKey` |
# websocket-api-client.ts
@@ -890,71 +893,71 @@ This client provides WebSocket API endpoints which allow for faster interactions
| Function | AUTH | HTTP Method | Endpoint |
| -------- | :------: | :------: | -------- |
-| [disconnectAll()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L263) | | WS | `ping` |
-| [testSpotConnectivity()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L276) | | WS | `ping` |
-| [getSpotServerTime()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L288) | | WS | `time` |
-| [getSpotExchangeInfo()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L302) | | WS | `exchangeInfo` |
-| [getSpotOrderBook()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L324) | | WS | `depth` |
-| [getSpotRecentTrades()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L340) | | WS | `trades.recent` |
-| [getSpotHistoricalTrades()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L356) | | WS | `trades.historical` |
-| [getSpotHistoricalBlockTrades()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L371) | | WS | `blockTrades.historical` |
-| [getSpotAggregateTrades()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L387) | | WS | `trades.aggregate` |
-| [getSpotKlines()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L403) | | WS | `klines` |
-| [getSpotUIKlines()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L419) | | WS | `uiKlines` |
-| [getSpotAveragePrice()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L434) | | WS | `avgPrice` |
-| [getSpotExecutionRules()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L449) | | WS | `executionRules` |
-| [getSpotReferencePrice()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L464) | | WS | `referencePrice` |
-| [getSpotReferencePriceCalculation()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L479) | | WS | `referencePrice.calculation` |
-| [getSpot24hrTicker()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L495) | | WS | `ticker.24hr` |
-| [getSpotTradingDayTicker()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L514) | | WS | `ticker.tradingDay` |
-| [getSpotTicker()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L534) | | WS | `ticker` |
-| [getSpotSymbolPriceTicker()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L554) | | WS | `ticker.price` |
-| [getSpotSymbolOrderBookTicker()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L570) | | WS | `ticker.book` |
-| [getSpotSessionStatus()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L590) | | WS | `session.status` |
-| [submitNewSpotOrder()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L608) | | WS | `order.place` |
-| [testSpotOrder()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L623) | | WS | `order.test` |
-| [getSpotOrderStatus()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L640) | | WS | `order.status` |
-| [cancelSpotOrder()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L655) | | WS | `order.cancel` |
-| [cancelReplaceSpotOrder()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L670) | | WS | `order.cancelReplace` |
-| [amendSpotOrderKeepPriority()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L686) | | WS | `order.amend.keepPriority` |
-| [getSpotOpenOrders()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L701) | | WS | `openOrders.status` |
-| [cancelAllSpotOpenOrders()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L716) | | WS | `openOrders.cancelAll` |
-| [placeSpotOrderList()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L733) | | WS | `orderList.place` |
-| [placeSpotOCOOrderList()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L748) | | WS | `orderList.place.oco` |
-| [placeSpotOTOOrderList()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L763) | | WS | `orderList.place.oto` |
-| [placeSpotOTOCOOrderList()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L778) | | WS | `orderList.place.otoco` |
-| [placeSpotOPOOrderList()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L793) | | WS | `orderList.place.opo` |
-| [placeSpotOPOCOOrderList()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L808) | | WS | `orderList.place.opoco` |
-| [getSpotOrderListStatus()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L823) | | WS | `orderList.status` |
-| [cancelSpotOrderList()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L838) | | WS | `orderList.cancel` |
-| [getSpotOpenOrderLists()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L853) | | WS | `openOrderLists.status` |
-| [placeSpotSOROrder()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L868) | | WS | `sor.order.place` |
-| [testSpotSOROrder()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L883) | | WS | `sor.order.test` |
-| [getSpotAccountInformation()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L908) | | WS | `account.status` |
-| [getSpotOrderRateLimits()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L923) | | WS | `account.rateLimits.orders` |
-| [getSpotAllOrders()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L938) | | WS | `allOrders` |
-| [getSpotAllOrderLists()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L953) | | WS | `allOrderLists` |
-| [getSpotMyTrades()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L968) | | WS | `myTrades` |
-| [getSpotPreventedMatches()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L983) | | WS | `myPreventedMatches` |
-| [getSpotAllocations()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L998) | | WS | `myAllocations` |
-| [getSpotAccountCommission()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L1013) | | WS | `account.commission` |
-| [getFuturesOrderBook()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L1034) | | WS | `depth` |
-| [getFuturesSymbolPriceTicker()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L1049) | | WS | `ticker.price` |
-| [getFuturesSymbolOrderBookTicker()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L1066) | | WS | `ticker.book` |
-| [submitNewFuturesOrder()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L1088) | | WS | `order.place` |
-| [modifyFuturesOrder()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L1104) | | WS | `order.modify` |
-| [cancelFuturesOrder()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L1120) | | WS | `order.cancel` |
-| [getFuturesOrderStatus()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L1136) | | WS | `order.status` |
-| [getFuturesPositionV2()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L1151) | | WS | `v2/account.position` |
-| [getFuturesPosition()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L1167) | | WS | `account.position` |
-| [submitNewFuturesAlgoOrder()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L1183) | | WS | `algoOrder.place` |
-| [cancelFuturesAlgoOrder()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L1199) | | WS | `algoOrder.cancel` |
-| [getFuturesAccountBalanceV2()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L1219) | | WS | `v2/account.balance` |
-| [getFuturesAccountBalance()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L1235) | | WS | `account.balance` |
-| [getFuturesAccountStatusV2()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L1250) | | WS | `v2/account.status` |
-| [getFuturesAccountStatus()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L1266) | | WS | `account.status` |
-| [startUserDataStreamForKey()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L1292) | | WS | `userDataStream.start` |
-| [pingUserDataStreamForKey()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L1312) | | WS | `userDataStream.ping` |
-| [stopUserDataStreamForKey()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L1326) | | WS | `userDataStream.stop` |
-| [subscribeUserDataStream()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L1357) | | WS | `userDataStream.unsubscribe` |
-| [unsubscribeUserDataStream()](https://github.com/tiagosiebler/binance/blob/master/src/websocket-api-client.ts#L1486) | | WS | `userDataStream.unsubscribe` |
\ No newline at end of file
+| [disconnectAll()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L263) | | WS | `ping` |
+| [testSpotConnectivity()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L276) | | WS | `ping` |
+| [getSpotServerTime()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L288) | | WS | `time` |
+| [getSpotExchangeInfo()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L302) | | WS | `exchangeInfo` |
+| [getSpotOrderBook()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L324) | | WS | `depth` |
+| [getSpotRecentTrades()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L340) | | WS | `trades.recent` |
+| [getSpotHistoricalTrades()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L356) | | WS | `trades.historical` |
+| [getSpotHistoricalBlockTrades()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L371) | | WS | `blockTrades.historical` |
+| [getSpotAggregateTrades()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L387) | | WS | `trades.aggregate` |
+| [getSpotKlines()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L403) | | WS | `klines` |
+| [getSpotUIKlines()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L419) | | WS | `uiKlines` |
+| [getSpotAveragePrice()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L434) | | WS | `avgPrice` |
+| [getSpotExecutionRules()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L449) | | WS | `executionRules` |
+| [getSpotReferencePrice()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L464) | | WS | `referencePrice` |
+| [getSpotReferencePriceCalculation()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L479) | | WS | `referencePrice.calculation` |
+| [getSpot24hrTicker()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L495) | | WS | `ticker.24hr` |
+| [getSpotTradingDayTicker()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L514) | | WS | `ticker.tradingDay` |
+| [getSpotTicker()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L534) | | WS | `ticker` |
+| [getSpotSymbolPriceTicker()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L554) | | WS | `ticker.price` |
+| [getSpotSymbolOrderBookTicker()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L570) | | WS | `ticker.book` |
+| [getSpotSessionStatus()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L590) | | WS | `session.status` |
+| [submitNewSpotOrder()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L608) | | WS | `order.place` |
+| [testSpotOrder()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L623) | | WS | `order.test` |
+| [getSpotOrderStatus()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L640) | | WS | `order.status` |
+| [cancelSpotOrder()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L655) | | WS | `order.cancel` |
+| [cancelReplaceSpotOrder()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L670) | | WS | `order.cancelReplace` |
+| [amendSpotOrderKeepPriority()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L686) | | WS | `order.amend.keepPriority` |
+| [getSpotOpenOrders()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L701) | | WS | `openOrders.status` |
+| [cancelAllSpotOpenOrders()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L716) | | WS | `openOrders.cancelAll` |
+| [placeSpotOrderList()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L733) | | WS | `orderList.place` |
+| [placeSpotOCOOrderList()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L748) | | WS | `orderList.place.oco` |
+| [placeSpotOTOOrderList()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L763) | | WS | `orderList.place.oto` |
+| [placeSpotOTOCOOrderList()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L778) | | WS | `orderList.place.otoco` |
+| [placeSpotOPOOrderList()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L793) | | WS | `orderList.place.opo` |
+| [placeSpotOPOCOOrderList()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L808) | | WS | `orderList.place.opoco` |
+| [getSpotOrderListStatus()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L823) | | WS | `orderList.status` |
+| [cancelSpotOrderList()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L838) | | WS | `orderList.cancel` |
+| [getSpotOpenOrderLists()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L853) | | WS | `openOrderLists.status` |
+| [placeSpotSOROrder()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L868) | | WS | `sor.order.place` |
+| [testSpotSOROrder()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L883) | | WS | `sor.order.test` |
+| [getSpotAccountInformation()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L908) | | WS | `account.status` |
+| [getSpotOrderRateLimits()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L923) | | WS | `account.rateLimits.orders` |
+| [getSpotAllOrders()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L938) | | WS | `allOrders` |
+| [getSpotAllOrderLists()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L953) | | WS | `allOrderLists` |
+| [getSpotMyTrades()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L968) | | WS | `myTrades` |
+| [getSpotPreventedMatches()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L983) | | WS | `myPreventedMatches` |
+| [getSpotAllocations()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L998) | | WS | `myAllocations` |
+| [getSpotAccountCommission()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L1013) | | WS | `account.commission` |
+| [getFuturesOrderBook()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L1034) | | WS | `depth` |
+| [getFuturesSymbolPriceTicker()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L1049) | | WS | `ticker.price` |
+| [getFuturesSymbolOrderBookTicker()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L1066) | | WS | `ticker.book` |
+| [submitNewFuturesOrder()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L1088) | | WS | `order.place` |
+| [modifyFuturesOrder()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L1104) | | WS | `order.modify` |
+| [cancelFuturesOrder()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L1120) | | WS | `order.cancel` |
+| [getFuturesOrderStatus()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L1136) | | WS | `order.status` |
+| [getFuturesPositionV2()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L1151) | | WS | `v2/account.position` |
+| [getFuturesPosition()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L1167) | | WS | `account.position` |
+| [submitNewFuturesAlgoOrder()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L1183) | | WS | `algoOrder.place` |
+| [cancelFuturesAlgoOrder()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L1199) | | WS | `algoOrder.cancel` |
+| [getFuturesAccountBalanceV2()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L1219) | | WS | `v2/account.balance` |
+| [getFuturesAccountBalance()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L1235) | | WS | `account.balance` |
+| [getFuturesAccountStatusV2()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L1250) | | WS | `v2/account.status` |
+| [getFuturesAccountStatus()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L1266) | | WS | `account.status` |
+| [startUserDataStreamForKey()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L1292) | | WS | `userDataStream.start` |
+| [pingUserDataStreamForKey()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L1312) | | WS | `userDataStream.ping` |
+| [stopUserDataStreamForKey()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L1326) | | WS | `userDataStream.stop` |
+| [subscribeUserDataStream()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L1357) | | WS | `userDataStream.unsubscribe` |
+| [unsubscribeUserDataStream()](https://github.com/sieblyio/binance/blob/master/src/websocket-api-client.ts#L1482) | | WS | `userDataStream.unsubscribe` |
\ No newline at end of file
diff --git a/examples/apidoc/MainClient/getPortfolioDeltaMode.js b/examples/apidoc/MainClient/getPortfolioDeltaMode.js
new file mode 100644
index 00000000..efb4e9b6
--- /dev/null
+++ b/examples/apidoc/MainClient/getPortfolioDeltaMode.js
@@ -0,0 +1,22 @@
+import { MainClient } from 'binance';
+// or, if require is preferred:
+// const { MainClient } = require('binance');
+
+// This example shows how to call this Binance API endpoint with either node.js, javascript (js) or typescript (ts) with the npm module "binance" for Binance exchange
+// This Binance API SDK is available on npm via "npm install binance"
+// ENDPOINT: sapi/v1/portfolio/delta-mode
+// METHOD: GET
+// PUBLIC: NO
+
+const client = new MainClient({
+ api_key: 'insert_api_key_here',
+ api_secret: 'insert_api_secret_here',
+});
+
+client.getPortfolioDeltaMode(params)
+ .then((response) => {
+ console.log(response);
+ })
+ .catch((error) => {
+ console.error(error);
+ });
diff --git a/examples/apidoc/MainClient/getSpotAssetTags.js b/examples/apidoc/MainClient/getSpotAssetTags.js
new file mode 100644
index 00000000..c35b6842
--- /dev/null
+++ b/examples/apidoc/MainClient/getSpotAssetTags.js
@@ -0,0 +1,22 @@
+import { MainClient } from 'binance';
+// or, if require is preferred:
+// const { MainClient } = require('binance');
+
+// This example shows how to call this Binance API endpoint with either node.js, javascript (js) or typescript (ts) with the npm module "binance" for Binance exchange
+// This Binance API SDK is available on npm via "npm install binance"
+// ENDPOINT: sapi/v1/spot/asset/tags
+// METHOD: GET
+// PUBLIC: YES
+
+const client = new MainClient({
+ api_key: 'insert_api_key_here',
+ api_secret: 'insert_api_secret_here',
+});
+
+client.getSpotAssetTags(params)
+ .then((response) => {
+ console.log(response);
+ })
+ .catch((error) => {
+ console.error(error);
+ });
diff --git a/examples/apidoc/MainClient/switchPortfolioDeltaMode.js b/examples/apidoc/MainClient/switchPortfolioDeltaMode.js
new file mode 100644
index 00000000..11127e54
--- /dev/null
+++ b/examples/apidoc/MainClient/switchPortfolioDeltaMode.js
@@ -0,0 +1,22 @@
+import { MainClient } from 'binance';
+// or, if require is preferred:
+// const { MainClient } = require('binance');
+
+// This example shows how to call this Binance API endpoint with either node.js, javascript (js) or typescript (ts) with the npm module "binance" for Binance exchange
+// This Binance API SDK is available on npm via "npm install binance"
+// ENDPOINT: sapi/v1/portfolio/delta-mode
+// METHOD: POST
+// PUBLIC: NO
+
+const client = new MainClient({
+ api_key: 'insert_api_key_here',
+ api_secret: 'insert_api_secret_here',
+});
+
+client.switchPortfolioDeltaMode(params)
+ .then((response) => {
+ console.log(response);
+ })
+ .catch((error) => {
+ console.error(error);
+ });
diff --git a/llms.txt b/llms.txt
index 3fc68806..3591ba7f 100644
--- a/llms.txt
+++ b/llms.txt
@@ -151,6 +151,82 @@ tsconfig.linting.json
Files
================================================================
+================
+File: examples/auth/rest-private-ed25519.md
+================
+# Ed25519 Authentication with Binance APIs in Node.js
+
+## Creating Ed25519 Keys
+
+Officially, binance recommends downloading and running a key generator from their repo. Guidance for this can be found on the [binance website](https://www.binance.com/en/support/faq/detail/6b9a63f1e3384cf48a2eedb82767a69a) when trying to add a new Ed25519 API key, or in their GitHub repository: https://github.com/binance/asymmetric-key-generator
+
+## Using the Ed25519 public key to get an API key from Binance
+
+Once created, keep your **private key** completely secret! The **public** key needs to be provided to binance when creating new API credentials with the "Self-generated" option.
+
+Your public key should look something like this:
+
+```pem
+-----BEGIN PUBLIC KEY-----
+lkn123bx123x+7lkmlkn123bx123xAMDO/lkm123x=
+-----END PUBLIC KEY-----
+```
+
+Submit this in the "Upload public key" form, shown when creating a new API key on binance and choosing the "self-generated" option.
+
+Note: the "-----BEGIN PUBLIC KEY-----" and "-----END PUBLIC KEY-----" header & footer can be included.
+
+After using the public key to create a new API key, you will be given an API Key such as the following:
+
+```
+mlk2mx3l12m3lxk1m3lxk1m3l1k2mx3l12km3xl1km23x1l2k3mx1l2km3x
+```
+
+This is the first piece, used as the "apiKey" in the [rest-private-ed25519.ts](./rest-private-ed25519.ts) example.
+
+## Using the Ed25519 private key for Ed25519 authentication with binance APIs in Node.js
+
+Your private key, if generated with the above steps, should look something like this (but with much more text):
+
+```pem
+-----BEGIN PRIVATE KEY-----
+lx1k2m3xl12lkm2l1kmx312312l3mx1lk23m
+-----END PRIVATE KEY-----
+```
+
+This is your secret, you should **never** share this with anyone, not even binance! Treat this like a password.
+
+As part of this authentication process, your private key is used to generate a signature. This SDK handles this process automatically for you. Ed25519 authentication is automatically detected if the "api_secret" parameter contains the words "PRIVATE KEY", such as the header shown in the example above.
+
+From here, simply use the key provided by binance as the `api_key` parameter and your private key (with the header) as the `api_secret` parameter.
+
+Based on the above example, the following would prepare the main REST client using the above credentials:
+
+```typescript
+const ed25519PrivateKey = `
+-----BEGIN PRIVATE KEY-----
+lkmlkm123lkms1s12s+lkmlkm123lkms1s12s
+-----END PRIVATE KEY-----
+`;
+
+const ed25519APIKey = 'lkmlkm123lkms1s12slkmlkm123lkms1s12slkmlkm123lkms1s12s';
+
+const restClient = new MainClient({
+ api_key: ed25519APIKey,
+ api_secret: ed25519PrivateKey,
+ beautifyResponses: true,
+});
+
+const wsApiClient = new WebsocketAPIClient({
+ api_key: ed25519APIKey,
+ api_secret: ed25519PrivateKey,
+});
+```
+
+The rest is automatic - just continue using the SDK as you would normally. It will automatically handle signing requests using Ed25519 for you.
+
+For a complete example, refer to the [rest-private-ed25519.ts](./rest-private-ed25519.ts) file on GitHub.
+
================
File: examples/auth/rest-private-ed25519.ts
================
@@ -873,6 +949,20 @@ import { WebsocketClient } from '../../../src';
// Subscribe to a couple of topics
// Note: '!ticker@arr' has been deprecated (2025-11-14). Using '!miniTicker@arr' instead.
+================
+File: examples/WebSockets/Misc/ws-proxy-socks.ts
+================
+/**
+ * Minimal example for using a socks proxy with the ws client, extracted from https://github.com/tiagosiebler/binance/pull/319
+ */
+import { WebsocketClient } from '../../../src/index';
+⋮----
+// or
+// import { WebsocketClient } from 'binance';
+⋮----
+import { SocksProxyAgent } from 'socks-proxy-agent';
+// const { SocksProxyAgent } = require('socks-proxy-agent');
+
================
File: examples/WebSockets/Misc/ws-unsubscribe.ts
================
@@ -927,6 +1017,114 @@ import {
⋮----
// 5 seconds later, unsubscribe from almost all topics except avg price
+================
+File: examples/WebSockets/Private(userdata)/ws-userdata-connection-safety.ts
+================
+import {
+ DefaultLogger,
+ isWsFormattedFuturesUserDataEvent,
+ isWsFormattedSpotUserDataEvent,
+ isWsFormattedSpotUserDataExecutionReport,
+ isWsFormattedUserDataEvent,
+ WebsocketClient,
+ WsUserDataEvents,
+} from '../../../src/index';
+⋮----
+// or
+// import { DefaultLogger, WebsocketClient } from 'binance';
+⋮----
+/**
+ * This extended example for using the user data stream demonstrates one way to handle failures in the first connection attempt of the user data stream.
+ * In most cases this is overkill!
+ */
+⋮----
+// optionally block some silly logs from showing in the logger
+⋮----
+// Optional, hook and customise logging behavior
+⋮----
+// wsClient.on('message', (data) => {
+// console.log('raw message received ', JSON.stringify(data, null, 2));
+// });
+⋮----
+function onUserDataEvent(data: WsUserDataEvents)
+⋮----
+// the market denotes which API category it came from
+// if (data.wsMarket.includes('spot')) {
+⋮----
+// or use a type guard, if one exists (PRs welcome)
+⋮----
+// The wsKey can be parsed to determine the type of message (what websocket it came from)
+// if (!Array.isArray(data) && data.wsKey.includes('userData')) {
+// return onUserDataEvent(data);
+// }
+⋮----
+// or use a type guard if available
+⋮----
+// response to command sent via WS stream (e.g LIST_SUBSCRIPTIONS)
+⋮----
+// Note: manually re-subscribing like this may only be needed if the FIRST user data connection attempt failed
+// Capture exceptions using the error event, and handle this.
+⋮----
+// wsClient.subscribeMarginUserDataStream();
+// wsClient.subscribeIsolatedMarginUserDataStream('BTCUSDT');
+
+================
+File: examples/WebSockets/Private(userdata)/ws-userdata-listenKey-testnet.ts
+================
+import {
+ DefaultLogger,
+ isWsFormattedFuturesUserDataEvent,
+ isWsFormattedSpotUserDataEvent,
+ isWsFormattedSpotUserDataExecutionReport,
+ isWsFormattedUserDataEvent,
+ WebsocketClient,
+ WsUserDataEvents,
+} from '../../../src/index';
+⋮----
+// or
+// import { DefaultLogger, WebsocketClient } from 'binance';
+⋮----
+// console.log('using api credentials: ', { key, secret });
+⋮----
+// Optional, hook and customise logging behavior
+⋮----
+// If you prefer, you can receive raw unprocessed data without the "beautifier":
+// wsClient.on('message', (data) => {
+// console.log('raw message received ', JSON.stringify(data, null, 2));
+// });
+⋮----
+function onUserDataEvent(data: WsUserDataEvents)
+⋮----
+// the market denotes which API category it came from
+// if (data.wsMarket.includes('spot')) {
+⋮----
+// or use a type guard, if one exists (PRs welcome)
+⋮----
+// Beautified/formatted events from binance:
+⋮----
+// The wsKey can be parsed to determine the type of message (what websocket it came from)
+// if (!Array.isArray(data) && data.wsKey.includes('userData')) {
+// return onUserDataEvent(data);
+// }
+⋮----
+// or use a type guard if available
+⋮----
+// response to command sent via WS stream (e.g LIST_SUBSCRIPTIONS)
+⋮----
+// This is a good place to check your own state is still in sync with the account state on the exchange, in case any events were missed while the library was reconnecting:
+// - fetch balances
+// - fetch positions
+// - fetch orders
+⋮----
+// wsClient.subscribeMarginUserDataStream();
+// wsClient.subscribeIsolatedMarginUserDataStream('BTCUSDT');
+// wsClient.subscribeUsdFuturesUserDataStream();
+⋮----
+// setTimeout(() => {
+// console.log('killing all connections');
+// wsClient.closeAll();
+// }, 1000 * 15);
+
================
File: examples/WebSockets/Private(userdata)/ws-userdata-README.MD
================
@@ -1360,149 +1558,193 @@ const optionsExpiration = '260128'; // YYMMDD
// wsClient.subscribeContractInfoStream('coinm');
================
-File: src/types/coin.ts
+File: examples/WebSockets/WS-API/ws-api-client.ts
================
-import { FuturesContractType, PositionSide } from './futures';
-import { numberInString, OrderSide } from './shared';
+/* eslint-disable @typescript-eslint/no-unused-vars */
+// or
+// import { DefaultLogger, WebsocketAPIClient, WS_KEY_MAP } from 'binance';
+// or
+// const { DefaultLogger, WebsocketAPIClient, WS_KEY_MAP } = require('binance');
⋮----
-export interface PositionRisk {
- symbol: string;
- positionAmt: numberInString;
- entryPrice: numberInString;
- markPrice: numberInString;
- unRealizedProfit: numberInString;
- liquidationPrice: numberInString;
- leverage: numberInString;
- maxQty: numberInString;
- marginType: string;
- isolatedMargin: numberInString;
- isAutoAddMargin: boolean;
- positionSide: PositionSide;
- updateTime: number;
-}
+import { DefaultLogger, WebsocketAPIClient } from '../../../src';
⋮----
-export interface CoinMOpenInterest {
- symbol: string;
- pair: string;
- openInterest: numberInString;
- contractType: FuturesContractType;
- time: number;
-}
-export type SymbolOrPair =
- | { pair: string; symbol?: never }
- | { pair?: never; symbol: string };
+/**
+ * Note: the WebSocket API is fastest with Ed25519 keys. HMAC & RSA will
+ * require each command to be individually signed.
+ *
+ * Check the rest-private-ed25519.md in this folder for more guidance
+ * on preparing this Ed25519 API key.
+ */
⋮----
-export interface CoinMSymbolOrderBookTicker {
- symbol: string;
- pair: string;
- bidPrice: numberInString;
- bidQty: numberInString;
- askPrice: numberInString;
- askQty: numberInString;
- time: number;
-}
+// returned by binance, generated using the publicKey (above)
+// const key = 'BVv39ATnIme5TTZRcC3I04C3FqLVM7vCw3Hf7mMT7uu61nEZK8xV1V5dmhf9kifm';
+// Your Ed25519 private key is passed as the "secret"
+// const secret = privateKey;
⋮----
-export interface CoinMPaginatedRequest {
- fromId?: number;
- startTime?: number;
- endTime?: number;
- limit?: number;
-}
+// function attachEventHandlers(
+// wsClient: TWSClient,
+// ): void {
+// /**
+// * General event handlers for monitoring the WebsocketClient
+// */
+// wsClient.on('message', (data) => {
+// // console.log('raw message received ', JSON.stringify(data));
+// });
+// wsClient.on('response', (data) => {
+// // console.log('ws response: ', JSON.stringify(data));
+// });
+// wsClient.on('open', (data) => {
+// console.log('ws connected', data.wsKey);
+// });
+// wsClient.on('reconnecting', ({ wsKey }) => {
+// console.log('ws automatically reconnecting.... ', wsKey);
+// });
+// wsClient.on('reconnected', (data) => {
+// console.log('ws has reconnected ', data?.wsKey);
+// });
+// wsClient.on('authenticated', (data) => {
+// console.log('ws has authenticated ', data?.wsKey);
+// });
+// wsClient.on('exception', (data) => {
+// console.error('ws exception: ', JSON.stringify(data));
+// });
+// }
⋮----
-export interface CoinMAccountTradeParamsWithPair extends CoinMPaginatedRequest {
- pair: string;
- symbol?: never;
- fromId?: never;
-}
+async function main()
⋮----
-export interface CoinMAccountTradeParamsWithSymbol
- extends CoinMPaginatedRequest {
- symbol: string;
- pair?: never;
-}
+// For a more detailed view of the WebsocketClient, enable the `trace` level by uncommenting the below line:
+// trace: (...params) => console.log(new Date(), 'trace', ...params),
⋮----
-export interface CoinMAccountTradeParamsWithFromId
- extends CoinMPaginatedRequest {
- fromId: number;
- startTime?: never;
- endTime?: never;
-}
+// Enforce testnet ws connections, regardless of supplied wsKey
+// testnet: true,
⋮----
-export type CoinMAccountTradeParams =
- | CoinMAccountTradeParamsWithSymbol
- | CoinMAccountTradeParamsWithPair
- | CoinMAccountTradeParamsWithFromId;
+// Note: unless you set this to false, the SDK will automatically call
+// the `subscribeUserDataStream()` method again if reconnected (if you called it before):
+// resubscribeUserDataStreamAfterReconnect: true,
⋮----
-export interface CoinMPositionTrade {
- symbol: string;
- id: number;
- orderId: number;
- pair: string;
- side: OrderSide;
- price: numberInString;
- qty: numberInString;
- realizedPnl: numberInString;
- marginAsset: string;
- baseQty: numberInString;
- commission: numberInString;
- commissionAsset: string;
- time: number;
- positionSide: PositionSide;
- buyer: boolean;
- maker: boolean;
-}
+// If you want your own event handlers instead of the default ones with logs, disable this setting and see the `attachEventHandlers` example below:
+// attachEventListeners: false
⋮----
-export interface FundingRate {
- symbol: string;
- adjustedFundingRateCap: string;
- adjustedFundingRateFloor: string;
- fundingIntervalHours: number;
- disclaimer: boolean;
-}
+// Optional, attach basic event handlers, so nothing is left unhandled
+// attachEventHandlers(wsClient.getWSClient());
⋮----
-export interface GetClassicPortfolioMarginNotionalLimitParams {
- symbol?: string;
- pair?: string;
-}
+// Optional, if you see RECV Window errors, you can use this to manage time issues.
+// ! However, make sure you sync your system clock first!
+// https://github.com/tiagosiebler/awesome-crypto-examples/wiki/Timestamp-for-this-request-is-outside-of-the-recvWindow
+// wsClient.setTimeOffsetMs(-5000);
⋮----
-export interface ClassicPortfolioMarginNotionalLimit {
- symbol: string;
- pair: string;
- notionalLimit: string;
-}
+// Optional. Can be used to prepare a connection before sending commands.
+// Can be done as part of a bootstrapping workflow, to reduce initial latency when sending the first command
+// await wsClient.getWSClient().connectWSAPI(WS_KEY_MAP.mainWSAPI);
⋮----
-export interface ClassicPortfolioMarginAccount {
- maxWithdrawAmountUSD: string;
- asset: string;
- maxWithdrawAmount: string;
-}
+// SPOT - Market data requests
⋮----
-export interface FuturesTransactionHistoryDownloadLink {
- downloadId: string;
- status: string;
- url: string;
- notified: boolean;
- expirationTimestamp: number;
- isExpired: boolean | null;
-}
+// SPOT - Trading requests
+⋮----
+// SPOT - Account requests
+⋮----
+// FUTURES - Market data requests
+⋮----
+// FUTURES - Trading requests
+⋮----
+// FUTURES - Account requests
+⋮----
+// Start executing the example workflow
================
-File: webpack/webpack.config.js
+File: examples/WebSockets/WS-API/ws-api-raw-promises.ts
================
-function generateConfig(name)
+/* eslint-disable @typescript-eslint/no-unused-vars */
+import {
+ DefaultLogger,
+ WebsocketClient,
+ WS_KEY_MAP,
+ WSAPIWsKey,
+} from '../../../src/index';
⋮----
-// Add '.ts' and '.tsx' as resolvable extensions.
+// or
+// import { DefaultLogger, WS_KEY_MAP, WebsocketClient, WSAPIWsKey } from 'binance';
⋮----
-// Node.js core modules not available in browsers
-// The REST client's https.Agent (for keepAlive) is Node.js-only and won't work in browsers
+// For a more detailed view of the WebsocketClient, enable the `trace` level by uncommenting the below line:
⋮----
-// All files with a '.ts' or '.tsx' extension will be handled by 'ts-loader'.
+// testnet: true,
⋮----
-// All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'.
+logger, // Optional: inject a custom logger
+⋮----
+/**
+ * General event handlers for monitoring the WebsocketClient
+ */
+⋮----
+// WS API responses can be processed here too, but that is optional
+// console.log('ws response: ', JSON.stringify(data));
+⋮----
+async function main()
+⋮----
+/**
+ *
+ * If you haven't connected yet, the WebsocketClient will automatically connect and authenticate you as soon as you send
+ * your first command. That connection will then be reused for every command you send, unless the connection drops - then
+ * it will automatically be replaced with a healthy connection.
+ *
+ * This "not connected yet" scenario can add an initial delay to your first command. If you want to prepare a connection
+ * in advance, you can ask the WebsocketClient to prepare it before you start submitting commands (using the connectWSAPI() method shown below). This is optional.
+ *
+ */
+⋮----
+/**
+ * Websockets (with their unique URLs) are tracked using the concept of a "WsKey".
+ *
+ * This WsKey identifies the "main" WS API connection URL (e.g. for spot & margin markets):
+ * wss://ws-api.binance.com:443/ws-api/v3
+ *
+ * Other notable keys:
+ * - mainWSAPI2: alternative for "main"
+ * - mainWSAPITestnet: "main" testnet
+ * - usdmWSAPI: usdm futures
+ * - usdmWSAPITestnet: usdm futures testnet
+ * - coinmWSAPI: coinm futures
+ * - coinmWSAPITestnet: coinm futures testnet
+ */
+⋮----
+// Note: if you set "testnet: true" in the config, this will automatically resolve to WS_KEY_MAP.mainWSAPITestnet (you can keep using mainWSAPI).
+⋮----
+// Optional, if you see RECV Window errors, you can use this to manage time issues. However, make sure you sync your system clock first!
+// https://github.com/tiagosiebler/awesome-crypto-examples/wiki/Timestamp-for-this-request-is-outside-of-the-recvWindow
+// wsClient.setTimeOffsetMs(-5000);
+⋮----
+// Optional, see above. Can be used to prepare a connection before sending commands. This is not required and will happen automatically
+// await wsClient.connectWSAPI(WS_API_WS_KEY);
+⋮----
+// rateLimits: wsAPIResponse.result.rateLimits,
+// symbols: wsAPIResponse.result.symbols,
⋮----
-// new webpack.DefinePlugin({
-// 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV)
-// }),
+// Start executing the example workflow
+
+================
+File: src/index.ts
+================
+
+
+================
+File: .gitignore
+================
+.vscode/
+.idea/
+.nyc_output/
+node_modules/
+util/config.js
+coverage/
+yarn-error.log
+lib/*
+testfile.ts
+privaterepotracker
+restClientRegex.ts
+.DS_Store
+dist
+localtest.ts
+repomix.sh
+doc
+*.pem
================
File: .jshintrc
@@ -1918,205 +2160,7 @@ File: tsconfig.linting.json
}
================
-File: examples/auth/rest-private-ed25519.md
-================
-# Ed25519 Authentication with Binance APIs in Node.js
-
-## Creating Ed25519 Keys
-
-Officially, binance recommends downloading and running a key generator from their repo. Guidance for this can be found on the [binance website](https://www.binance.com/en/support/faq/detail/6b9a63f1e3384cf48a2eedb82767a69a) when trying to add a new Ed25519 API key, or in their GitHub repository: https://github.com/binance/asymmetric-key-generator
-
-## Using the Ed25519 public key to get an API key from Binance
-
-Once created, keep your **private key** completely secret! The **public** key needs to be provided to binance when creating new API credentials with the "Self-generated" option.
-
-Your public key should look something like this:
-
-```pem
------BEGIN PUBLIC KEY-----
-lkn123bx123x+7lkmlkn123bx123xAMDO/lkm123x=
------END PUBLIC KEY-----
-```
-
-Submit this in the "Upload public key" form, shown when creating a new API key on binance and choosing the "self-generated" option.
-
-Note: the "-----BEGIN PUBLIC KEY-----" and "-----END PUBLIC KEY-----" header & footer can be included.
-
-After using the public key to create a new API key, you will be given an API Key such as the following:
-
-```
-mlk2mx3l12m3lxk1m3lxk1m3l1k2mx3l12km3xl1km23x1l2k3mx1l2km3x
-```
-
-This is the first piece, used as the "apiKey" in the [rest-private-ed25519.ts](./rest-private-ed25519.ts) example.
-
-## Using the Ed25519 private key for Ed25519 authentication with binance APIs in Node.js
-
-Your private key, if generated with the above steps, should look something like this (but with much more text):
-
-```pem
------BEGIN PRIVATE KEY-----
-lx1k2m3xl12lkm2l1kmx312312l3mx1lk23m
------END PRIVATE KEY-----
-```
-
-This is your secret, you should **never** share this with anyone, not even binance! Treat this like a password.
-
-As part of this authentication process, your private key is used to generate a signature. This SDK handles this process automatically for you. Ed25519 authentication is automatically detected if the "api_secret" parameter contains the words "PRIVATE KEY", such as the header shown in the example above.
-
-From here, simply use the key provided by binance as the `api_key` parameter and your private key (with the header) as the `api_secret` parameter.
-
-Based on the above example, the following would prepare the main REST client using the above credentials:
-
-```typescript
-const ed25519PrivateKey = `
------BEGIN PRIVATE KEY-----
-lkmlkm123lkms1s12s+lkmlkm123lkms1s12s
------END PRIVATE KEY-----
-`;
-
-const ed25519APIKey = 'lkmlkm123lkms1s12slkmlkm123lkms1s12slkmlkm123lkms1s12s';
-
-const restClient = new MainClient({
- api_key: ed25519APIKey,
- api_secret: ed25519PrivateKey,
- beautifyResponses: true,
-});
-
-const wsApiClient = new WebsocketAPIClient({
- api_key: ed25519APIKey,
- api_secret: ed25519PrivateKey,
-});
-```
-
-The rest is automatic - just continue using the SDK as you would normally. It will automatically handle signing requests using Ed25519 for you.
-
-For a complete example, refer to the [rest-private-ed25519.ts](./rest-private-ed25519.ts) file on GitHub.
-
-================
-File: examples/WebSockets/Misc/ws-proxy-socks.ts
-================
-/**
- * Minimal example for using a socks proxy with the ws client, extracted from https://github.com/tiagosiebler/binance/pull/319
- */
-import { WebsocketClient } from '../../../src/index';
-⋮----
-// or
-// import { WebsocketClient } from 'binance';
-⋮----
-import { SocksProxyAgent } from 'socks-proxy-agent';
-// const { SocksProxyAgent } = require('socks-proxy-agent');
-
-================
-File: examples/WebSockets/Private(userdata)/ws-userdata-connection-safety.ts
-================
-import {
- DefaultLogger,
- isWsFormattedFuturesUserDataEvent,
- isWsFormattedSpotUserDataEvent,
- isWsFormattedSpotUserDataExecutionReport,
- isWsFormattedUserDataEvent,
- WebsocketClient,
- WsUserDataEvents,
-} from '../../../src/index';
-⋮----
-// or
-// import { DefaultLogger, WebsocketClient } from 'binance';
-⋮----
-/**
- * This extended example for using the user data stream demonstrates one way to handle failures in the first connection attempt of the user data stream.
- * In most cases this is overkill!
- */
-⋮----
-// optionally block some silly logs from showing in the logger
-⋮----
-// Optional, hook and customise logging behavior
-⋮----
-// wsClient.on('message', (data) => {
-// console.log('raw message received ', JSON.stringify(data, null, 2));
-// });
-⋮----
-function onUserDataEvent(data: WsUserDataEvents)
-⋮----
-// the market denotes which API category it came from
-// if (data.wsMarket.includes('spot')) {
-⋮----
-// or use a type guard, if one exists (PRs welcome)
-⋮----
-// The wsKey can be parsed to determine the type of message (what websocket it came from)
-// if (!Array.isArray(data) && data.wsKey.includes('userData')) {
-// return onUserDataEvent(data);
-// }
-⋮----
-// or use a type guard if available
-⋮----
-// response to command sent via WS stream (e.g LIST_SUBSCRIPTIONS)
-⋮----
-// Note: manually re-subscribing like this may only be needed if the FIRST user data connection attempt failed
-// Capture exceptions using the error event, and handle this.
-⋮----
-// wsClient.subscribeMarginUserDataStream();
-// wsClient.subscribeIsolatedMarginUserDataStream('BTCUSDT');
-
-================
-File: examples/WebSockets/Private(userdata)/ws-userdata-listenKey-testnet.ts
-================
-import {
- DefaultLogger,
- isWsFormattedFuturesUserDataEvent,
- isWsFormattedSpotUserDataEvent,
- isWsFormattedSpotUserDataExecutionReport,
- isWsFormattedUserDataEvent,
- WebsocketClient,
- WsUserDataEvents,
-} from '../../../src/index';
-⋮----
-// or
-// import { DefaultLogger, WebsocketClient } from 'binance';
-⋮----
-// console.log('using api credentials: ', { key, secret });
-⋮----
-// Optional, hook and customise logging behavior
-⋮----
-// If you prefer, you can receive raw unprocessed data without the "beautifier":
-// wsClient.on('message', (data) => {
-// console.log('raw message received ', JSON.stringify(data, null, 2));
-// });
-⋮----
-function onUserDataEvent(data: WsUserDataEvents)
-⋮----
-// the market denotes which API category it came from
-// if (data.wsMarket.includes('spot')) {
-⋮----
-// or use a type guard, if one exists (PRs welcome)
-⋮----
-// Beautified/formatted events from binance:
-⋮----
-// The wsKey can be parsed to determine the type of message (what websocket it came from)
-// if (!Array.isArray(data) && data.wsKey.includes('userData')) {
-// return onUserDataEvent(data);
-// }
-⋮----
-// or use a type guard if available
-⋮----
-// response to command sent via WS stream (e.g LIST_SUBSCRIPTIONS)
-⋮----
-// This is a good place to check your own state is still in sync with the account state on the exchange, in case any events were missed while the library was reconnecting:
-// - fetch balances
-// - fetch positions
-// - fetch orders
-⋮----
-// wsClient.subscribeMarginUserDataStream();
-// wsClient.subscribeIsolatedMarginUserDataStream('BTCUSDT');
-// wsClient.subscribeUsdFuturesUserDataStream();
-⋮----
-// setTimeout(() => {
-// console.log('killing all connections');
-// wsClient.closeAll();
-// }, 1000 * 15);
-
-================
-File: examples/WebSockets/Private(userdata)/ws-userdata-wsapi-margin.ts
+File: examples/WebSockets/Private(userdata)/ws-userdata-wsapi-margin.ts
================
/* eslint-disable @typescript-eslint/no-unused-vars */
// or
@@ -2227,24830 +2271,25340 @@ logger, // Optional: inject a custom logger, especially to see trace events
// Start executing the example workflow
================
-File: examples/WebSockets/WS-API/ws-api-client.ts
+File: src/types/coin.ts
================
-/* eslint-disable @typescript-eslint/no-unused-vars */
-// or
-// import { DefaultLogger, WebsocketAPIClient, WS_KEY_MAP } from 'binance';
-// or
-// const { DefaultLogger, WebsocketAPIClient, WS_KEY_MAP } = require('binance');
+import { FuturesContractType, PositionSide } from './futures';
+import { numberInString, OrderSide } from './shared';
⋮----
-import { DefaultLogger, WebsocketAPIClient } from '../../../src';
+export interface PositionRisk {
+ symbol: string;
+ positionAmt: numberInString;
+ entryPrice: numberInString;
+ markPrice: numberInString;
+ unRealizedProfit: numberInString;
+ liquidationPrice: numberInString;
+ leverage: numberInString;
+ maxQty: numberInString;
+ marginType: string;
+ isolatedMargin: numberInString;
+ isAutoAddMargin: boolean;
+ positionSide: PositionSide;
+ updateTime: number;
+}
⋮----
-/**
- * Note: the WebSocket API is fastest with Ed25519 keys. HMAC & RSA will
- * require each command to be individually signed.
- *
- * Check the rest-private-ed25519.md in this folder for more guidance
- * on preparing this Ed25519 API key.
- */
+export interface CoinMOpenInterest {
+ symbol: string;
+ pair: string;
+ openInterest: numberInString;
+ contractType: FuturesContractType;
+ time: number;
+}
+export type SymbolOrPair =
+ | { pair: string; symbol?: never }
+ | { pair?: never; symbol: string };
⋮----
-// returned by binance, generated using the publicKey (above)
-// const key = 'BVv39ATnIme5TTZRcC3I04C3FqLVM7vCw3Hf7mMT7uu61nEZK8xV1V5dmhf9kifm';
-// Your Ed25519 private key is passed as the "secret"
-// const secret = privateKey;
+export interface CoinMSymbolOrderBookTicker {
+ symbol: string;
+ pair: string;
+ bidPrice: numberInString;
+ bidQty: numberInString;
+ askPrice: numberInString;
+ askQty: numberInString;
+ time: number;
+}
⋮----
-// function attachEventHandlers(
-// wsClient: TWSClient,
-// ): void {
-// /**
-// * General event handlers for monitoring the WebsocketClient
-// */
-// wsClient.on('message', (data) => {
-// // console.log('raw message received ', JSON.stringify(data));
-// });
-// wsClient.on('response', (data) => {
-// // console.log('ws response: ', JSON.stringify(data));
-// });
-// wsClient.on('open', (data) => {
-// console.log('ws connected', data.wsKey);
-// });
-// wsClient.on('reconnecting', ({ wsKey }) => {
-// console.log('ws automatically reconnecting.... ', wsKey);
-// });
-// wsClient.on('reconnected', (data) => {
-// console.log('ws has reconnected ', data?.wsKey);
-// });
-// wsClient.on('authenticated', (data) => {
-// console.log('ws has authenticated ', data?.wsKey);
-// });
-// wsClient.on('exception', (data) => {
-// console.error('ws exception: ', JSON.stringify(data));
-// });
-// }
+export interface CoinMPaginatedRequest {
+ fromId?: number;
+ startTime?: number;
+ endTime?: number;
+ limit?: number;
+}
⋮----
-async function main()
-⋮----
-// For a more detailed view of the WebsocketClient, enable the `trace` level by uncommenting the below line:
-// trace: (...params) => console.log(new Date(), 'trace', ...params),
+export interface CoinMAccountTradeParamsWithPair extends CoinMPaginatedRequest {
+ pair: string;
+ symbol?: never;
+ fromId?: never;
+}
⋮----
-// Enforce testnet ws connections, regardless of supplied wsKey
-// testnet: true,
+export interface CoinMAccountTradeParamsWithSymbol
+ extends CoinMPaginatedRequest {
+ symbol: string;
+ pair?: never;
+}
⋮----
-// Note: unless you set this to false, the SDK will automatically call
-// the `subscribeUserDataStream()` method again if reconnected (if you called it before):
-// resubscribeUserDataStreamAfterReconnect: true,
+export interface CoinMAccountTradeParamsWithFromId
+ extends CoinMPaginatedRequest {
+ fromId: number;
+ startTime?: never;
+ endTime?: never;
+}
⋮----
-// If you want your own event handlers instead of the default ones with logs, disable this setting and see the `attachEventHandlers` example below:
-// attachEventListeners: false
+export type CoinMAccountTradeParams =
+ | CoinMAccountTradeParamsWithSymbol
+ | CoinMAccountTradeParamsWithPair
+ | CoinMAccountTradeParamsWithFromId;
⋮----
-// Optional, attach basic event handlers, so nothing is left unhandled
-// attachEventHandlers(wsClient.getWSClient());
+export interface CoinMPositionTrade {
+ symbol: string;
+ id: number;
+ orderId: number;
+ pair: string;
+ side: OrderSide;
+ price: numberInString;
+ qty: numberInString;
+ realizedPnl: numberInString;
+ marginAsset: string;
+ baseQty: numberInString;
+ commission: numberInString;
+ commissionAsset: string;
+ time: number;
+ positionSide: PositionSide;
+ buyer: boolean;
+ maker: boolean;
+ quoteQty?: numberInString;
+}
⋮----
-// Optional, if you see RECV Window errors, you can use this to manage time issues.
-// ! However, make sure you sync your system clock first!
-// https://github.com/tiagosiebler/awesome-crypto-examples/wiki/Timestamp-for-this-request-is-outside-of-the-recvWindow
-// wsClient.setTimeOffsetMs(-5000);
+export interface FundingRate {
+ symbol: string;
+ adjustedFundingRateCap: string;
+ adjustedFundingRateFloor: string;
+ fundingIntervalHours: number;
+ disclaimer: boolean;
+}
⋮----
-// Optional. Can be used to prepare a connection before sending commands.
-// Can be done as part of a bootstrapping workflow, to reduce initial latency when sending the first command
-// await wsClient.getWSClient().connectWSAPI(WS_KEY_MAP.mainWSAPI);
+export interface GetClassicPortfolioMarginNotionalLimitParams {
+ symbol?: string;
+ pair?: string;
+}
⋮----
-// SPOT - Market data requests
+export interface ClassicPortfolioMarginNotionalLimit {
+ symbol: string;
+ pair: string;
+ notionalLimit: string;
+}
⋮----
-// SPOT - Trading requests
+export interface ClassicPortfolioMarginAccount {
+ maxWithdrawAmountUSD: string;
+ asset: string;
+ maxWithdrawAmount: string;
+}
⋮----
-// SPOT - Account requests
+export interface FuturesTransactionHistoryDownloadLink {
+ downloadId: string;
+ status: string;
+ url: string;
+ notified: boolean;
+ expirationTimestamp: number;
+ isExpired: boolean | null;
+}
+
+================
+File: webpack/webpack.config.js
+================
+function generateConfig(name)
⋮----
-// FUTURES - Market data requests
+// Add '.ts' and '.tsx' as resolvable extensions.
⋮----
-// FUTURES - Trading requests
+// Node.js core modules not available in browsers
+// The REST client's https.Agent (for keepAlive) is Node.js-only and won't work in browsers
⋮----
-// FUTURES - Account requests
+// All files with a '.ts' or '.tsx' extension will be handled by 'ts-loader'.
⋮----
-// Start executing the example workflow
+// All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'.
================
-File: examples/WebSockets/WS-API/ws-api-raw-promises.ts
+File: eslint.config.cjs
================
-/* eslint-disable @typescript-eslint/no-unused-vars */
+
+
+================
+File: examples/WebSockets/Private(userdata)/ws-userdata-listenkey.ts
+================
+// or
+// import {
+// DefaultLogger,
+// isWsFormattedFuturesUserDataEvent,
+// isWsFormattedSpotUserDataEvent,
+// isWsFormattedSpotUserDataExecutionReport,
+// isWsFormattedUserDataEvent,
+// WebsocketClient,
+// WsUserDataEvents,
+// } from 'binance';
+⋮----
import {
DefaultLogger,
+ isWsFormattedFuturesUserDataEvent,
+ isWsFormattedSpotUserDataEvent,
+ isWsFormattedSpotUserDataExecutionReport,
+ isWsFormattedUserDataEvent,
WebsocketClient,
- WS_KEY_MAP,
- WSAPIWsKey,
+ WsConnectionStateEnum,
+ WsUserDataEvents,
} from '../../../src/index';
⋮----
-// or
-// import { DefaultLogger, WS_KEY_MAP, WebsocketClient, WSAPIWsKey } from 'binance';
-⋮----
-// For a more detailed view of the WebsocketClient, enable the `trace` level by uncommenting the below line:
+// Optional, hook and customise logging behavior
⋮----
// testnet: true,
⋮----
-logger, // Optional: inject a custom logger
+// wsClient.on('message', (data) => {
+// console.log('raw message received ', JSON.stringify(data, null, 2));
+// });
⋮----
-/**
- * General event handlers for monitoring the WebsocketClient
- */
+function onUserDataEvent(data: WsUserDataEvents)
⋮----
-// WS API responses can be processed here too, but that is optional
-// console.log('ws response: ', JSON.stringify(data));
+// the market denotes which API category it came from
+// if (data.wsMarket.includes('spot')) {
⋮----
-async function main()
+// or use a type guard, if one exists (PRs welcome)
+⋮----
+// The wsKey can be parsed to determine the type of message (what websocket it came from)
+// if (!Array.isArray(data) && data.wsKey.includes('userData')) {
+// return onUserDataEvent(data);
+// }
+⋮----
+// or use a type guard if available
+⋮----
+// response to command sent via WS stream (e.g LIST_SUBSCRIPTIONS)
+⋮----
+// This is a good place to check your own state is still in sync with the account state on the exchange, in case any events were missed while the library was reconnecting:
+// - fetch balances
+// - fetch positions
+// - fetch orders
⋮----
/**
+ * This example demonstrates subscribing to the user data stream via the
+ * listen key workflow.
*
- * If you haven't connected yet, the WebsocketClient will automatically connect and authenticate you as soon as you send
- * your first command. That connection will then be reused for every command you send, unless the connection drops - then
- * it will automatically be replaced with a healthy connection.
+ * Note: the listen key workflow is deprecated for "spot" markets. Use the
+ * WebSocket API `userDataStream.subscribe` workflow instead (only available
+ * in spot right now). See `subscribeUserDataStream()` in the WebsocketAPIClient.
*
- * This "not connected yet" scenario can add an initial delay to your first command. If you want to prepare a connection
- * in advance, you can ask the WebsocketClient to prepare it before you start submitting commands (using the connectWSAPI() method shown below). This is optional.
+ * Each method below opens a dedicated WS connection attached to an automatically
+ * fetched listen key (a session for your user data stream).
*
+ * Once subscribed, you don't need to do anything else. Listen-key keep-alive, refresh, reconnects, etc are all automatically handled by the SDK.
*/
⋮----
/**
- * Websockets (with their unique URLs) are tracked using the concept of a "WsKey".
- *
- * This WsKey identifies the "main" WS API connection URL (e.g. for spot & margin markets):
- * wss://ws-api.binance.com:443/ws-api/v3
- *
- * Other notable keys:
- * - mainWSAPI2: alternative for "main"
- * - mainWSAPITestnet: "main" testnet
- * - usdmWSAPI: usdm futures
- * - usdmWSAPITestnet: usdm futures testnet
- * - coinmWSAPI: coinm futures
- * - coinmWSAPITestnet: coinm futures testnet
+ * Note: for spot markets, the listen key workflow is deprecated. Use the
+ * WebSocket API `userDataStream.subscribe` workflow instead (only available
+ * in spot right now). See `subscribeUserDataStream()` in the WebsocketAPIClient.
*/
+// Deprecated, see above: wsClient.subscribeSpotUserDataStream();
+// Deprecated, see above: wsClient.subscribeSpotUserDataStream('main2');
+// Deprecated, see above: wsClient.subscribeCrossMarginUserDataStream();
+// Deprecated, see above: wsClient.subscribeIsolatedMarginUserDataStream('BTCUSDC');
⋮----
-// Note: if you set "testnet: true" in the config, this will automatically resolve to WS_KEY_MAP.mainWSAPITestnet (you can keep using mainWSAPI).
+/**
+ * Futures
+ */
⋮----
-// Optional, if you see RECV Window errors, you can use this to manage time issues. However, make sure you sync your system clock first!
-// https://github.com/tiagosiebler/awesome-crypto-examples/wiki/Timestamp-for-this-request-is-outside-of-the-recvWindow
-// wsClient.setTimeOffsetMs(-5000);
+// Example 5: usdm futures
⋮----
-// Optional, see above. Can be used to prepare a connection before sending commands. This is not required and will happen automatically
-// await wsClient.connectWSAPI(WS_API_WS_KEY);
+// Example 6: coinm futures
⋮----
-// rateLimits: wsAPIResponse.result.rateLimits,
-// symbols: wsAPIResponse.result.symbols,
+// Example 7: portfolio margin
⋮----
-// Start executing the example workflow
-
-================
-File: src/types/portfolio-margin.ts
-================
-// Enums
-export type PMStrategyType =
- | 'STOP'
- | 'STOP_MARKET'
- | 'TAKE_PROFIT'
- | 'TAKE_PROFIT_MARKET'
- | 'TRAILING_STOP_MARKET';
+// Example 8: portfolio margin pro
⋮----
-export type PMWorkingType = 'MARK_PRICE' | 'CONTRACT_PRICE';
+// after 15 seconds, kill user data connections one by one (or all at once)
⋮----
-export type PMPriceMatch =
- | 'NONE'
- | 'OPPONENT'
- | 'OPPONENT_5'
- | 'OPPONENT_10'
- | 'OPPONENT_20'
- | 'QUEUE'
- | 'QUEUE_5'
- | 'QUEUE_10'
- | 'QUEUE_20';
+// console.log('killing all connections at once');
+// wsClient.closeAll();
⋮----
-export type PMSelfTradePreventionMode =
- | 'NONE'
- | 'EXPIRE_TAKER'
- | 'EXPIRE_MAKER'
- | 'EXPIRE_BOTH';
+// or:
⋮----
-export type PMMarginOrderType =
- | 'LIMIT'
- | 'MARKET'
- | 'STOP_LOSS'
- | 'STOP_LOSS_LIMIT'
- | 'TAKE_PROFIT'
- | 'TAKE_PROFIT_LIMIT';
+// console.log('killing all connections');
+// wsClient.closeAll();
+// Example 5: usdm futures
⋮----
-export type PMMarginSideEffectType =
- | 'NO_SIDE_EFFECT'
- | 'MARGIN_BUY'
- | 'AUTO_REPAY'
- | 'AUTO_BORROW_REPAY';
+// Example 6: coinm futures
⋮----
-export type PMAutoCloseType = 'LIQUIDATION' | 'ADL';
+// // Example 7: portfolio margin
+// wsClient.unsubscribePortfolioMarginUserDataStream();
+// // Example 8: portfolio margin pro
+// wsClient.unsubscribePortfolioMarginUserDataStream(
+// 'portfolioMarginProUserData',
+// );
⋮----
-export interface NewPortfolioUMOrderReq {
- symbol: string;
- side: 'BUY' | 'SELL';
- positionSide?: 'BOTH' | 'LONG' | 'SHORT'; // Default BOTH for One-way Mode
- type: 'LIMIT' | 'MARKET';
- timeInForce?: string;
- quantity?: string;
- reduceOnly?: boolean; // Cannot be sent in Hedge Mode
- price?: string;
- newClientOrderId?: string; // Must match: ^[\.A-Z\:/a-z0-9_-]{1,32}$
- newOrderRespType?: 'ACK' | 'RESULT'; // Default: ACK
- priceMatch?: PMPriceMatch; // Only for LIMIT/STOP/TAKE_PROFIT orders
- selfTradePreventionMode?: PMSelfTradePreventionMode;
- goodTillDate?: number; // Mandatory when timeInForce is GTD
-}
+// after 20 seconds, list the remaining open connections
+
+================
+File: examples/WebSockets/Public/ws-usdm-market.ts
+================
+import {
+ DefaultLogger,
+ isWsDiffBookDepthEventFormatted,
+ isWsPartialBookDepthEventFormatted,
+ WebsocketClient,
+ WS_KEY_MAP,
+} from '../../../src';
⋮----
-positionSide?: 'BOTH' | 'LONG' | 'SHORT'; // Default BOTH for One-way Mode
+// or, with the npm package
+/*
+import {
+ DefaultLogger,
+ isWsDiffBookDepthEventFormatted,
+ isWsPartialBookDepthEventFormatted,
+ WebsocketClient,
+ WS_KEY_MAP,
+} from 'binance';
+*/
⋮----
-reduceOnly?: boolean; // Cannot be sent in Hedge Mode
+// Without typescript:
+// const logger = {
⋮----
-newClientOrderId?: string; // Must match: ^[\.A-Z\:/a-z0-9_-]{1,32}$
-newOrderRespType?: 'ACK' | 'RESULT'; // Default: ACK
-priceMatch?: PMPriceMatch; // Only for LIMIT/STOP/TAKE_PROFIT orders
+// A simple way to suppress heartbeats but receive all other traces
+// if (params[0].includes('ping') || params[0].includes('pong')) {
+// return;
+// }
⋮----
-goodTillDate?: number; // Mandatory when timeInForce is GTD
+// Optional: when enabled, the SDK will try to format incoming data into more readable objects.
+// Beautified data is emitted via the "formattedMessage" event
⋮----
-export interface NewPortfolioUMOrderResponse {
- clientOrderId: string;
- cumQty: string;
- cumQuote: string;
- executedQty: string;
- orderId: number;
- avgPrice: string;
- origQty: string;
- price: string;
- reduceOnly: boolean;
- side: 'BUY' | 'SELL';
- positionSide: 'BOTH' | 'LONG' | 'SHORT';
- status: string;
- symbol: string;
- timeInForce: string;
- type: 'LIMIT' | 'MARKET';
- selfTradePreventionMode: PMSelfTradePreventionMode;
- goodTillDate?: number;
- updateTime: number;
- priceMatch: PMPriceMatch;
-}
+logger, // Optional: customise logging behaviour by extending or overwriting the default logger implementation
⋮----
-export interface NewPortfolioUMConditionalOrderReq {
- symbol: string;
- side: 'BUY' | 'SELL';
- positionSide?: 'BOTH' | 'LONG' | 'SHORT';
- strategyType: PMStrategyType;
- timeInForce?: string;
- quantity?: string;
- reduceOnly?: boolean;
- price?: string;
- workingType?: PMWorkingType;
- priceProtect?: boolean;
- newClientStrategyId?: string;
- stopPrice?: string;
- activationPrice?: string;
- callbackRate?: string;
- priceMatch?: PMPriceMatch;
- selfTradePreventionMode?: PMSelfTradePreventionMode;
- goodTillDate?: number;
-}
+// Raw unprocessed incoming data, e.g. if you have the beautifier disabled
⋮----
-export interface NewPortfolioConditionalOrderResponse {
- newClientStrategyId: string;
- strategyId: number;
- strategyStatus: string;
- strategyType: PMStrategyType;
- origQty: string;
- price: string;
- reduceOnly: boolean;
- side: 'BUY' | 'SELL';
- positionSide: 'BOTH' | 'LONG' | 'SHORT';
- stopPrice?: string;
- symbol: string;
- timeInForce: string;
- activatePrice?: string;
- priceRate?: string;
- bookTime: number;
- updateTime: number;
- workingType: PMWorkingType;
- priceProtect: boolean;
- selfTradePreventionMode: PMSelfTradePreventionMode;
- goodTillDate?: number;
- priceMatch: PMPriceMatch;
-}
+// console.log('raw message received ', JSON.stringify(data, null, 2));
⋮----
-export type PortfolioUMAlgoType = 'CONDITIONAL';
+// console.log('log rawMessage: ', data);
⋮----
-export interface NewPortfolioUMAlgoOrderReq {
- algoType: PortfolioUMAlgoType;
- symbol: string;
- side: 'BUY' | 'SELL';
- positionSide?: 'BOTH' | 'LONG' | 'SHORT';
- type: PMStrategyType;
- timeInForce?: string;
- quantity?: string;
- price?: string;
- triggerPrice?: string;
- workingType?: PMWorkingType;
- priceMatch?: PMPriceMatch;
- closePosition?: string;
- priceProtect?: string;
- reduceOnly?: string;
- activatePrice?: string;
- callbackRate?: string;
- clientAlgoId?: string;
- newOrderRespType?: 'ACK' | 'RESULT';
- selfTradePreventionMode?: PMSelfTradePreventionMode;
- goodTillDate?: number;
-}
+// Formatted data that has gone through the beautifier
⋮----
-export interface PortfolioUMAlgoOrder {
- algoId: number;
- clientAlgoId: string;
- algoType: string;
- orderType: string;
- symbol: string;
- side: string;
- positionSide: string;
- timeInForce: string;
- quantity: string;
- algoStatus: string;
- triggerPrice: string;
- price: string;
- icebergQuantity: string | null;
- selfTradePreventionMode: string;
- workingType: string;
- priceMatch: string;
- closePosition: boolean;
- priceProtect: boolean;
- reduceOnly: boolean;
- activatePrice: string;
- callbackRate: string;
- createTime: number;
- updateTime: number;
- triggerTime: number;
- goodTillDate: number;
- actualOrderId?: string;
- actualPrice?: string;
- tpTriggerPrice?: string;
- tpPrice?: string;
- slTriggerPrice?: string;
- slPrice?: string;
- tpOrderType?: string;
-}
+// console.log('log formattedMessage: ', data);
⋮----
-export interface CancelPortfolioUMAlgoOrderReq {
- algoId?: number;
- clientAlgoId?: string;
-}
+/**
+ * Optional: we've included type-guards for many formatted websocket topics.
+ *
+ * These can be used within `if` blocks to narrow down specific event types (even for non-typescript users).
+ */
+// if (isWsAggTradeFormatted(data)) {
+// console.log('log agg trade: ', data);
+// return;
+// }
⋮----
-export interface PortfolioUMCancelAlgoOrderResponse {
- algoId: number;
- clientAlgoId: string;
- code: string;
- msg: string;
-}
+// // For one symbol
+// if (isWsFormattedMarkPriceUpdateEvent(data)) {
+// console.log('log mark price: ', data);
+// return;
+// }
⋮----
-export interface PortfolioUMCancelAllUMAlgoOpenOrdersResponse {
- code: number;
- msg: string;
-}
+// // for many symbols
+// if (isWsFormattedMarkPriceUpdateArray(data)) {
+// console.log('log mark prices: ', data);
+// return;
+// }
⋮----
-export interface QueryPortfolioUMAlgoOrderReq {
- algoId?: number;
- clientAlgoId?: string;
-}
+// if (isWsFormattedKline(data)) {
+// console.log('log kline: ', data);
+// return;
+// }
⋮----
-export interface QueryPortfolioAllUMAlgoOrdersReq {
- symbol: string;
- algoId?: number;
- startTime?: number;
- endTime?: number;
- limit?: number;
-}
+// if (isWsFormattedTrade(data)) {
+// return console.log('log trade: ', data);
+// }
⋮----
-export interface NewPortfolioCMOrderReq {
- symbol: string;
- side: 'BUY' | 'SELL';
- positionSide?: 'BOTH' | 'LONG' | 'SHORT';
- type: 'LIMIT' | 'MARKET';
- timeInForce?: string;
- quantity?: string;
- reduceOnly?: boolean;
- price?: string;
- newClientOrderId?: string;
- newOrderRespType?: 'ACK' | 'RESULT';
-}
+// if (isWsFormattedForceOrder(data)) {
+// return console.log('log force order: ', data);
+// }
⋮----
-export interface NewPortfolioCMOrderResponse {
- clientOrderId: string;
- cumQty: string;
- cumBase: string;
- executedQty: string;
- orderId: number;
- avgPrice: string;
- origQty: string;
- price: string;
- reduceOnly: boolean;
- side: 'BUY' | 'SELL';
- positionSide: 'BOTH' | 'LONG' | 'SHORT';
- status: string;
- symbol: string;
- pair: string;
- timeInForce: string;
- type: 'LIMIT' | 'MARKET';
- updateTime: number;
-}
+// if (isWsFormatted24hrTickerArray(data)) {
+// return console.log('log 24hr ticker array: ', data);
+// }
⋮----
-export interface NewPortfolioCMConditionalOrderReq {
- symbol: string;
- side: 'BUY' | 'SELL';
- positionSide?: 'BOTH' | 'LONG' | 'SHORT';
- strategyType: PMStrategyType;
- timeInForce?: string;
- quantity?: string;
- reduceOnly?: boolean;
- price?: string;
- workingType?: PMWorkingType;
- priceProtect?: boolean;
- newClientStrategyId?: string;
- stopPrice?: string;
- activationPrice?: string;
- callbackRate?: string;
-}
+// if (isWsFormattedRollingWindowTickerArray(data)) {
+// return console.log('log rolling window ticker array: ', data);
+// }
⋮----
-export interface NewPortfolioCMConditionalOrderResponse {
- newClientStrategyId: string;
- strategyId: number;
- strategyStatus: string;
- strategyType: PMStrategyType;
- origQty: string;
- price: string;
- reduceOnly: boolean;
- side: 'BUY' | 'SELL';
- positionSide: 'BOTH' | 'LONG' | 'SHORT';
- stopPrice?: string;
- symbol: string;
- pair: string;
- timeInForce: string;
- activatePrice?: string;
- priceRate?: string;
- bookTime: number;
- updateTime: number;
- workingType: PMWorkingType;
- priceProtect: boolean;
-}
+// if (isWsFormatted24hrTicker(data)) {
+// return console.log('log 24hr ticker: ', data);
+// }
⋮----
-export interface MarginOrderFill {
- price: string;
- qty: string;
- commission: string;
- commissionAsset: string;
-}
+// response to command sent via WS stream (e.g LIST_SUBSCRIPTIONS)
⋮----
-export interface NewPortfolioMarginOrderReq {
- symbol: string;
- side: 'BUY' | 'SELL';
- type: PMMarginOrderType;
- quantity?: string;
- quoteOrderQty?: string;
- price?: string;
- stopPrice?: string;
- newClientOrderId?: string;
- newOrderRespType?: 'ACK' | 'RESULT' | 'FULL';
- icebergQty?: string;
- sideEffectType?: PMMarginSideEffectType;
- timeInForce?: string;
- selfTradePreventionMode?: PMSelfTradePreventionMode;
- autoRepayAtCancel?: boolean;
-}
+// No action needed here, unless you need to query the REST API after being reconnected.
⋮----
-export interface NewPortfolioMarginOrderResponse {
- symbol: string;
- orderId: number;
- clientOrderId: string;
- transactTime: number;
- price: string;
- origQty: string;
- executedQty: string;
- cummulativeQuoteQty: string;
- status: string;
- timeInForce: string;
- type: PMMarginOrderType;
- side: 'BUY' | 'SELL';
- marginBuyBorrowAmount?: string;
- marginBuyBorrowAsset?: string;
- fills: MarginOrderFill[];
-}
+/**
+ * The Websocket Client will automatically manage connectivity and active topics/subscriptions for you.
+ *
+ * Simply call wsClient.subscribe(topic, wsKey) as many times as you want, with or without an array.
+ *
+ * The WsKey is a reference to the connection that this topic should be routed to.
+ * WS_KEY_MAP is a complete enum with all the available WsKey values.
+ *
+ * The following topics are routed to the "market" endpoint for USDM Futures market data, as per the following documentation:
+ * https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Important-WebSocket-Change-Notice#public-high-frequency-public-data
+ */
⋮----
-export interface PortfolioMarginOCOOrder {
- symbol: string;
- orderId: number;
- clientOrderId: string;
-}
+// Uses the regular market feeds WS URL dedicated to USDM Futures: wss://fstream.binance.com/market/stream
⋮----
-export interface PortfolioMarginOCOOrderReport {
- symbol: string;
- orderId: number;
- orderListId: number;
- clientOrderId: string;
- transactTime: number;
- price: string;
- origQty: string;
- executedQty: string;
- cummulativeQuoteQty: string;
- status: string;
- timeInForce: string;
- type: string;
- side: 'BUY' | 'SELL';
- stopPrice?: string;
-}
+/**
+ * Subscribe to each available type of USDM Derivatives market topic, the new way
+ */
⋮----
-export interface NewPortfolioMarginOCOReq {
- symbol: string;
- listClientOrderId?: string;
- side: 'BUY' | 'SELL';
- quantity: string;
- limitClientOrderId?: string;
- price: string;
- limitIcebergQty?: string;
- stopClientOrderId?: string;
- stopPrice: string;
- stopLimitPrice?: string;
- stopIcebergQty?: string;
- stopLimitTimeInForce?: 'GTC' | 'FOK' | 'IOC';
- newOrderRespType?: 'ACK' | 'RESULT' | 'FULL';
- sideEffectType?: PMMarginSideEffectType;
-}
+// Aggregate Trade Stream
+// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Aggregate-Trade-Streams
⋮----
-export interface NewPortfolioMarginOCOResponse {
- orderListId: number;
- contingencyType: 'OCO';
- listStatusType: string;
- listOrderStatus: string;
- listClientOrderId: string;
- transactionTime: number;
- symbol: string;
- marginBuyBorrowAmount?: string;
- marginBuyBorrowAsset?: string;
- orders: PortfolioMarginOCOOrder[];
- orderReports: PortfolioMarginOCOOrderReport[];
-}
+// Mark Price Stream
+// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Mark-Price-Stream
⋮----
-// Add new interfaces for canceling UM orders
-export interface CancelPortfolioUMOrderReq {
- symbol: string;
- orderId?: number;
- origClientOrderId?: string;
-}
+// Mark Price Stream for All market
+// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Mark-Price-Stream-for-All-market
⋮----
-export interface PortfolioUMCancelOrderResponse {
- avgPrice: string;
- clientOrderId: string;
- cumQty: string;
- cumQuote: string;
- executedQty: string;
- orderId: number;
- origQty: string;
- price: string;
- reduceOnly: boolean;
- side: 'BUY' | 'SELL';
- positionSide: 'BOTH' | 'LONG' | 'SHORT';
- status: string;
- symbol: string;
- timeInForce: string;
- type: 'LIMIT' | 'MARKET';
- updateTime: number;
- selfTradePreventionMode: PMSelfTradePreventionMode;
- goodTillDate: number;
- priceMatch: PMPriceMatch;
-}
+// Kline/Candlestick Streams
+// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Kline-Candlestick-Streams
⋮----
-export interface CancelPortfolioUMConditionalOrderReq {
- symbol: string;
- strategyId?: number;
- newClientStrategyId?: string;
-}
+// Continuous Contract Kline/Candlestick Streams
+// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Continuous-Contract-Kline-Candlestick-Streams
+'btcusdt_perpetual@continuousKline_1m', // DOESNT EXIST AS TYPE GUARD, ONLY IN BEAUTIFIER
⋮----
-export interface PortfolioUMCancelConditionalOrderResponse {
- newClientStrategyId: string;
- strategyId: number;
- strategyStatus: string;
- strategyType: PMStrategyType;
- origQty: string;
- price: string;
- reduceOnly: boolean;
- side: 'BUY' | 'SELL';
- positionSide: 'BOTH' | 'LONG' | 'SHORT';
- stopPrice?: string;
- symbol: string;
- timeInForce: string;
- activatePrice?: string;
- priceRate?: string;
- bookTime: number;
- updateTime: number;
- workingType: PMWorkingType;
- priceProtect: boolean;
- selfTradePreventionMode: PMSelfTradePreventionMode;
- goodTillDate: number;
- priceMatch: PMPriceMatch;
-}
+// Individual Symbol Mini Ticker Stream
+// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Individual-Symbol-Mini-Ticker-Stream
+'btcusdt@miniTicker', // DOESNT EXIST AS TYPE GUARD, ONLY FOR RAW MESSAGE
⋮----
-export interface CancelPortfolioCMOrderReq {
- symbol: string;
- orderId?: number;
- origClientOrderId?: string;
-}
+// All Market Mini Tickers Stream
+// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/All-Market-Mini-Tickers-Stream
+'!miniTicker@arr', // DOESNT EXIST AS TYPE GUARD
⋮----
-export interface PortfolioCMCancelOrderResponse {
- avgPrice: string;
- clientOrderId: string;
- cumQty: string;
- cumBase: string;
- executedQty: string;
- orderId: number;
- origQty: string;
- price: string;
- reduceOnly: boolean;
- side: 'BUY' | 'SELL';
- positionSide: 'BOTH' | 'LONG' | 'SHORT';
- status: string;
- symbol: string;
- pair: string;
- timeInForce: string;
- type: 'LIMIT' | 'MARKET';
- updateTime: number;
-}
+// Individual Symbol Ticker Streams
+// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Individual-Symbol-Ticker-Streams
⋮----
-export interface CancelPortfolioCMConditionalOrderReq {
- symbol: string;
- strategyId?: number;
- newClientStrategyId?: string;
-}
+// All Market Tickers Stream
+// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/All-Market-Tickers-Stream
+'!ticker@arr', // DOESNT EXIST AS TYPE GUARD
⋮----
-export interface PortfolioCMCancelConditionalOrderResponse {
- newClientStrategyId: string;
- strategyId: number;
- strategyStatus: string;
- strategyType: PMStrategyType;
- origQty: string;
- price: string;
- reduceOnly: boolean;
- side: 'BUY' | 'SELL';
- positionSide: 'BOTH' | 'LONG' | 'SHORT';
- stopPrice?: string;
- symbol: string;
- timeInForce: string;
- activatePrice?: string;
- priceRate?: string;
- bookTime: number;
- updateTime: number;
- workingType: PMWorkingType;
- priceProtect: boolean;
-}
+// Liquidation Order Stream
+// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Liquidation-Order-Streams
⋮----
-export interface CancelPortfolioMarginOrderReq {
- symbol: string;
- orderId?: number;
- origClientOrderId?: string;
- newClientOrderId?: string;
-}
+// Liquidation Order Stream for All market
+// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/All-Market-Liquidation-Order-Streams
⋮----
-export interface PortfolioMarginCancelOrderResponse {
- symbol: string;
- orderId: number;
- origClientOrderId: string;
- clientOrderId: string;
- price: string;
- origQty: string;
- executedQty: string;
- cummulativeQuoteQty: string;
- status: string;
- timeInForce: string;
- type: PMMarginOrderType;
- side: 'BUY' | 'SELL';
-}
+// Composite Index Symbol Information Streams
+// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Composite-Index-Symbol-Information-Streams
⋮----
-export interface CancelPortfolioMarginOCOReq {
- symbol: string;
- orderListId?: number;
- listClientOrderId?: string;
- newClientOrderId?: string;
-}
+'btcusdt@compositeIndex', // DOESNT EXIST AS TYPE GUARD
+// Contract Info Stream
+// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Contract-Info-Stream
+'!contractInfo', // DOESNT EXIST AS TYPE GUARD
⋮----
-export interface PortfolioMarginOCOCancelOrder {
- symbol: string;
- orderId: number;
- clientOrderId: string;
-}
+// Multi-Assets Mode Asset Index Stream
+// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Multi-Assets-Mode-Asset-Index
+'!assetIndex@arr', // DOESNT EXIST AS TYPE GUARD
⋮----
-export interface PortfolioMarginOCOCancelOrderReport {
- symbol: string;
- origClientOrderId: string;
- orderId: number;
- orderListId: number;
- clientOrderId: string;
- price: string;
- origQty: string;
- executedQty: string;
- cummulativeQuoteQty: string;
- status: string;
- timeInForce: string;
- type: 'STOP_LOSS_LIMIT' | 'LIMIT_MAKER';
- side: 'BUY' | 'SELL';
- stopPrice?: string;
-}
+// /**
+// *
+// * For those that used the Node.js Binance SDK before the v3 release, you can
+// * still subscribe to available market topics the "old" way, for convenience
+// * when migrating from the old WebsocketClient to the new multiplex client):
+// *
+// */
⋮----
-export interface PortfolioMarginOCOCancelResponse {
- orderListId: number;
- contingencyType: 'OCO';
- listStatusType: string;
- listOrderStatus: string;
- listClientOrderId: string;
- transactionTime: number;
- symbol: string;
- orders: PortfolioMarginOCOCancelOrder[];
- orderReports: PortfolioMarginOCOCancelOrderReport[];
-}
+// wsClient.subscribeAggregateTrades(symbol, 'usdm');
+// wsClient.subscribeTrades(symbol, 'spot');
+// wsClient.subscribeTrades(symbol, 'usdm');
+// wsClient.subscribeTrades(coinMSymbol, 'coinm');
+// wsClient.subscribeCoinIndexPrice(coinMSymbol2);
+// wsClient.subscribeAllBookTickers('usdm');
+// wsClient.subscribeSpotKline(symbol, '1m');
+// wsClient.subscribeMarkPrice(symbol, 'usdm');
+// wsClient.subscribeMarkPrice(coinMSymbol, 'coinm');
+// wsClient.subscribeAllMarketMarkPrice('usdm');
+// wsClient.subscribeAllMarketMarkPrice('coinm');
+// wsClient.subscribeKlines(symbol, '1m', 'usdm');
+// wsClient.subscribeContinuousContractKlines(
+// symbol,
+// 'perpetual',
+// '1m',
+// 'usdm',
+// );
+// wsClient.subscribeIndexKlines(coinMSymbol2, '1m');
+// wsClient.subscribeMarkPriceKlines(coinMSymbol, '1m');
+// wsClient.subscribeSymbolMini24hrTicker(symbol, 'spot'); // 0116 265 5309, opt 1
+// wsClient.subscribeSymbolMini24hrTicker(symbol, 'usdm');
+// wsClient.subscribeSymbolMini24hrTicker(coinMSymbol, 'coinm');
+// wsClient.subscribeSymbol24hrTicker(symbol, 'spot');
+// wsClient.subscribeSymbol24hrTicker(symbol, 'usdm');
+// wsClient.subscribeSymbol24hrTicker(coinMSymbol, 'coinm');
+// wsClient.subscribeAllMini24hrTickers('spot');
+// wsClient.subscribeAllMini24hrTickers('usdm');
+// wsClient.subscribeAllMini24hrTickers('coinm');
+// wsClient.subscribeAll24hrTickers('spot');
+// wsClient.subscribeAll24hrTickers('usdm');
+// wsClient.subscribeAll24hrTickers('coinm');
+// wsClient.subscribeSymbolLiquidationOrders(symbol, 'usdm');
+// wsClient.subscribeAllLiquidationOrders('usdm');
+// wsClient.subscribeAllLiquidationOrders('coinm');
+// wsClient.subscribeSpotSymbol24hrTicker(symbol);
+// wsClient.subscribeSpotPartialBookDepth('ETHBTC', 5, 1000);
+// wsClient.subscribeAllRollingWindowTickers('spot', '1d');
+// wsClient.subscribeSymbolBookTicker(symbol, 'spot');
+// wsClient.subscribePartialBookDepths(symbol, 5, 100, 'spot');
+// wsClient.subscribeDiffBookDepth(symbol, 100, 'spot');
+// wsClient.subscribeContractInfoStream('usdm');
+// wsClient.subscribeContractInfoStream('coinm');
+
+================
+File: examples/WebSockets/Public/ws-usdm-public.ts
+================
+import {
+ DefaultLogger,
+ isWsDiffBookDepthEventFormatted,
+ isWsPartialBookDepthEventFormatted,
+ WebsocketClient,
+ WS_KEY_MAP,
+} from '../../../src';
⋮----
-export interface PortfolioMarginCancelAllOrdersOrderReport {
- symbol: string;
- origClientOrderId: string;
- orderId: number;
- orderListId: number;
- clientOrderId: string;
- price: string;
- origQty: string;
- executedQty: string;
- cummulativeQuoteQty: string;
- status: string;
- timeInForce: string;
- type: PMMarginOrderType;
- side: 'BUY' | 'SELL';
- stopPrice?: string;
- icebergQty?: string;
-}
+// or, with the npm package
+/*
+import {
+ DefaultLogger,
+ isWsDiffBookDepthEventFormatted,
+ isWsPartialBookDepthEventFormatted,
+ WebsocketClient,
+ WS_KEY_MAP,
+} from 'binance';
+*/
⋮----
-export interface PortfolioMarginCancelAllOrdersOCOReport {
- orderListId: number;
- contingencyType: 'OCO';
- listStatusType: string;
- listOrderStatus: string;
- listClientOrderId: string;
- transactionTime: number;
- symbol: string;
- orders: PortfolioMarginOCOCancelOrder[];
- orderReports: PortfolioMarginCancelAllOrdersOrderReport[];
-}
+// Without typescript:
+// const logger = {
⋮----
-export type PortfolioMarginCancelAllOrdersResponse =
- | PortfolioMarginCancelAllOrdersOrderReport
- | PortfolioMarginCancelAllOrdersOCOReport;
+// A simple way to suppress heartbeats but receive all other traces
+// if (params[0].includes('ping') || params[0].includes('pong')) {
+// return;
+// }
⋮----
-export interface ModifyPortfolioUMOrderReq {
- symbol: string;
- side: 'BUY' | 'SELL';
- quantity: string;
- price: string;
- orderId?: number;
- origClientOrderId?: string;
- priceMatch?: PMPriceMatch;
-}
+// Optional: when enabled, the SDK will try to format incoming data into more readable objects.
+// Beautified data is emitted via the "formattedMessage" event
⋮----
-export interface PortfolioUMModifyOrderResponse {
- orderId: number;
- symbol: string;
- status: string;
- clientOrderId: string;
- price: string;
- avgPrice: string;
- origQty: string;
- executedQty: string;
- cumQty: string;
- cumQuote: string;
- timeInForce: string;
- type: 'LIMIT';
- reduceOnly: boolean;
- side: 'BUY' | 'SELL';
- positionSide: 'LONG' | 'SHORT' | 'BOTH';
- origType: 'LIMIT';
- selfTradePreventionMode: PMSelfTradePreventionMode;
- goodTillDate: number;
- updateTime: number;
- priceMatch: PMPriceMatch;
-}
+logger, // Optional: customise logging behaviour by extending or overwriting the default logger implementation
⋮----
-export interface ModifyPortfolioCMOrderReq {
- symbol: string;
- side: 'BUY' | 'SELL';
- quantity: string;
- price: string;
- orderId?: number;
- origClientOrderId?: string;
-}
+// Raw unprocessed incoming data, e.g. if you have the beautifier disabled
⋮----
-export interface PortfolioCMModifyOrderResponse {
- orderId: number;
- symbol: string;
- pair: string;
- status: string;
- clientOrderId: string;
- price: string;
- avgPrice: string;
- origQty: string;
- executedQty: string;
- cumQty: string;
- cumBase: string;
- timeInForce: string;
- type: 'LIMIT';
- reduceOnly: boolean;
- side: 'BUY' | 'SELL';
- positionSide: 'LONG' | 'SHORT' | 'BOTH';
- origType: 'LIMIT';
- updateTime: number;
-}
+// console.log('raw message received ', JSON.stringify(data, null, 2));
⋮----
-export interface QueryPortfolioUMOrderReq {
- symbol: string;
- orderId?: number;
- origClientOrderId?: string;
-}
+// console.log('log rawMessage: ', data);
⋮----
-export interface PortfolioUMOrder {
- avgPrice: string;
- clientOrderId: string;
- cumQuote: string;
- executedQty: string;
- orderId: number;
- origQty: string;
- origType: 'LIMIT' | 'MARKET';
- price: string;
- reduceOnly: boolean;
- side: 'BUY' | 'SELL';
- positionSide: 'LONG' | 'SHORT' | 'BOTH';
- status: string;
- symbol: string;
- time: number;
- timeInForce: string;
- type: 'LIMIT' | 'MARKET';
- updateTime: number;
- selfTradePreventionMode: PMSelfTradePreventionMode;
- goodTillDate: number;
- priceMatch: PMPriceMatch;
-}
+// Formatted data that has gone through the beautifier
⋮----
-export interface QueryPortfolioAllUMOrdersReq {
- symbol: string;
- orderId?: number;
- startTime?: number;
- endTime?: number;
- limit?: number;
-}
+// console.log('log formattedMessage: ', data);
⋮----
-export interface QueryPortfolioUMOpenOrderReq {
- symbol: string;
- orderId?: number;
- origClientOrderId?: string;
-}
+/**
+ * Optional: we've included type-guards for many formatted websocket topics.
+ *
+ * These can be used within `if` blocks to narrow down specific event types (even for non-typescript users).
+ */
+// if (isWsAggTradeFormatted(data)) {
+// console.log('log agg trade: ', data);
+// return;
+// }
⋮----
-export interface QueryPortfolioAllUMConditionalOrdersReq {
- symbol?: string;
- strategyId?: number;
- startTime?: number;
- endTime?: number;
- limit?: number;
-}
+// // For one symbol
+// if (isWsFormattedMarkPriceUpdateEvent(data)) {
+// console.log('log mark price: ', data);
+// return;
+// }
⋮----
-export interface PortfolioUMConditionalOrder {
- newClientStrategyId: string;
- strategyId: number;
- strategyStatus: string;
- strategyType: PMStrategyType;
- origQty: string;
- price: string;
- reduceOnly: boolean;
- side: 'BUY' | 'SELL';
- positionSide: 'LONG' | 'SHORT' | 'BOTH';
- stopPrice?: string;
- symbol: string;
- orderId?: number;
- status?: string;
- bookTime: number;
- updateTime: number;
- triggerTime?: number;
- timeInForce: string;
- type?: 'MARKET' | 'LIMIT';
- activatePrice?: string;
- priceRate?: string;
- selfTradePreventionMode: PMSelfTradePreventionMode;
- goodTillDate: number;
- priceMatch: PMPriceMatch;
-}
+// // for many symbols
+// if (isWsFormattedMarkPriceUpdateArray(data)) {
+// console.log('log mark prices: ', data);
+// return;
+// }
⋮----
-export interface QueryPortfolioUMOpenConditionalOrderReq {
- symbol: string;
- strategyId?: number;
- newClientStrategyId?: string;
-}
+// if (isWsFormattedKline(data)) {
+// console.log('log kline: ', data);
+// return;
+// }
⋮----
-export interface QueryPortfolioUMConditionalOrderHistoryReq {
- symbol: string;
- strategyId?: number;
- newClientStrategyId?: string;
-}
+// if (isWsFormattedTrade(data)) {
+// return console.log('log trade: ', data);
+// }
⋮----
-export interface QueryPortfolioCMOrderReq {
- symbol: string;
- orderId?: number;
- origClientOrderId?: string;
-}
+// if (isWsFormattedForceOrder(data)) {
+// return console.log('log force order: ', data);
+// }
⋮----
-export interface PortfolioCMOrder {
- avgPrice: string;
- clientOrderId: string;
- cumBase: string;
- executedQty: string;
- orderId: number;
- origQty: string;
- origType: 'LIMIT' | 'MARKET';
- price: string;
- reduceOnly: boolean;
- side: 'BUY' | 'SELL';
- status: string;
- symbol: string;
- pair: string;
- positionSide: 'BOTH' | 'LONG' | 'SHORT';
- time: number;
- timeInForce: string;
- type: 'LIMIT' | 'MARKET';
- updateTime: number;
-}
+// if (isWsFormatted24hrTickerArray(data)) {
+// return console.log('log 24hr ticker array: ', data);
+// }
⋮----
-export interface QueryPortfolioAllCMOrdersReq {
- symbol: string;
- pair?: string;
- orderId?: number;
- startTime?: number;
- endTime?: number;
- limit?: number;
-}
+// if (isWsFormattedRollingWindowTickerArray(data)) {
+// return console.log('log rolling window ticker array: ', data);
+// }
⋮----
-export interface QueryPortfolioCMOpenOrderReq {
- symbol: string;
- orderId?: number;
- origClientOrderId?: string;
-}
+// if (isWsFormatted24hrTicker(data)) {
+// return console.log('log 24hr ticker: ', data);
+// }
⋮----
-export interface QueryPortfolioAllCMConditionalOrdersReq {
- symbol?: string;
- strategyId?: number;
- startTime?: number;
- endTime?: number;
- limit?: number;
-}
+// response to command sent via WS stream (e.g LIST_SUBSCRIPTIONS)
⋮----
-export interface PortfolioCMConditionalOrder {
- newClientStrategyId: string;
- strategyId: number;
- strategyStatus: string;
- strategyType: PMStrategyType;
- origQty: string;
- price: string;
- reduceOnly: boolean;
- side: 'BUY' | 'SELL';
- positionSide: 'BOTH' | 'LONG' | 'SHORT';
- stopPrice?: string;
- symbol: string;
- orderId?: number;
- status?: string;
- bookTime: number;
- updateTime: number;
- triggerTime?: number;
- timeInForce: string;
- type?: 'MARKET' | 'LIMIT';
- activatePrice?: string;
- priceRate?: string;
- workingType: PMWorkingType;
- priceProtect: boolean;
-}
+// No action needed here, unless you need to query the REST API after being reconnected.
⋮----
-export interface QueryPortfolioCMConditionalOrderHistoryReq {
- symbol: string;
- strategyId?: number;
- newClientStrategyId?: string;
-}
+/**
+ * The Websocket Client will automatically manage connectivity and active topics/subscriptions for you.
+ *
+ * Simply call wsClient.subscribe(topic, wsKey) as many times as you want, with or without an array.
+ *
+ * The WsKey is a reference to the connection that this topic should be routed to.
+ * WS_KEY_MAP is a complete enum with all the available WsKey values.
+ *
+ * The following topics are routed to the "market" endpoint for USDM Futures market data, as per the following documentation:
+ * https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Important-WebSocket-Change-Notice#public-high-frequency-public-data
+ */
⋮----
-export interface PortfolioCMConditionalHistoryOrder
- extends PortfolioCMConditionalOrder {
- priceMatch: PMPriceMatch;
-}
+// Uses the high-frequency order book & core public feeds WS URL dedicated to USDM Futures:
+// wss://fstream.binance.com/public/stream
⋮----
-export interface QueryPortfolioUMForceOrdersReq {
- symbol?: string;
- autoCloseType?: PMAutoCloseType;
- startTime?: number;
- endTime?: number;
- limit?: number;
-}
+/**
+ * Subscribe to each available type of USDM Derivatives market topic, the new way
+ */
⋮----
-export interface PortfolioUMForceOrder {
- orderId: number;
- symbol: string;
- status: string;
- clientOrderId: string;
- price: string;
- avgPrice: string;
- origQty: string;
- executedQty: string;
- cumQuote: string;
- timeInForce: string;
- type: 'LIMIT';
- reduceOnly: boolean;
- side: 'BUY' | 'SELL';
- positionSide: 'BOTH' | 'LONG' | 'SHORT';
- origType: 'LIMIT';
- time: number;
- updateTime: number;
-}
-⋮----
-export interface QueryPortfolioCMForceOrdersReq {
- symbol?: string;
- autoCloseType?: PMAutoCloseType;
- startTime?: number;
- endTime?: number;
- limit?: number;
-}
-⋮----
-export interface PortfolioCMForceOrder {
- orderId: number;
- symbol: string;
- pair: string;
- status: string;
- clientOrderId: string;
- price: string;
- avgPrice: string;
- origQty: string;
- executedQty: string;
- cumBase: string;
- timeInForce: string;
- type: 'LIMIT';
- reduceOnly: boolean;
- side: 'BUY' | 'SELL';
- positionSide: 'BOTH' | 'LONG' | 'SHORT';
- origType: 'LIMIT';
- time: number;
- updateTime: number;
-}
-⋮----
-export interface QueryPortfolioUMOrderAmendmentReq {
- symbol: string;
- orderId?: number;
- origClientOrderId?: string;
- startTime?: number;
- endTime?: number;
- limit?: number;
-}
-⋮----
-export interface PortfolioUMOrderAmendment {
- price: {
- before: string;
- after: string;
- };
- origQty: {
- before: string;
- after: string;
- };
- count: number;
-}
-⋮----
-export interface PortfolioUMOrderModificationHistory {
- amendmentId: number;
- symbol: string;
- pair: string;
- orderId: number;
- clientOrderId: string;
- time: number;
- amendment: PortfolioUMOrderAmendment;
- priceMatch: PMPriceMatch;
-}
-⋮----
-export interface QueryPortfolioCMOrderAmendmentReq {
- symbol: string;
- orderId?: number;
- origClientOrderId?: string;
- startTime?: number;
- endTime?: number;
- limit?: number;
-}
-⋮----
-export interface PortfolioCMOrderAmendment {
- price: {
- before: string;
- after: string;
- };
- origQty: {
- before: string;
- after: string;
- };
- count: number;
-}
-⋮----
-export interface PortfolioCMOrderModificationHistory {
- amendmentId: number;
- symbol: string;
- pair: string;
- orderId: number;
- clientOrderId: string;
- time: number;
- amendment: PortfolioCMOrderAmendment;
-}
-⋮----
-export interface QueryPortfolioMarginForceOrdersReq {
- startTime?: number;
- endTime?: number;
- current?: number; // Currently querying page. Start from 1. Default: 1
- size?: number; // Default: 10, Max: 100
-}
-⋮----
-current?: number; // Currently querying page. Start from 1. Default: 1
-size?: number; // Default: 10, Max: 100
-⋮----
-export interface PortfolioMarginForceOrder {
- avgPrice: string;
- executedQty: string;
- orderId: number;
- price: string;
- qty: string;
- side: 'BUY' | 'SELL';
- symbol: string;
- timeInForce: string;
- updatedTime: number;
-}
-⋮----
-export interface QueryPortfolioUMTradesReq {
- symbol: string;
- startTime?: number;
- endTime?: number;
- fromId?: number; // Trade id to fetch from. Default gets most recent trades
- limit?: number; // Default 500; max 1000
-}
-⋮----
-fromId?: number; // Trade id to fetch from. Default gets most recent trades
-limit?: number; // Default 500; max 1000
-⋮----
-export interface PortfolioUMTrade {
- symbol: string;
- id: number;
- orderId: number;
- side: 'BUY' | 'SELL';
- price: string;
- qty: string;
- realizedPnl: string;
- quoteQty: string;
- commission: string;
- commissionAsset: string;
- time: number;
- buyer: boolean;
- maker: boolean;
- positionSide: 'BOTH' | 'LONG' | 'SHORT';
-}
-⋮----
-export interface QueryPortfolioCMTradesReq {
- symbol?: string;
- pair?: string;
- startTime?: number;
- endTime?: number;
- fromId?: number; // Trade id to fetch from. Default gets most recent trades
- limit?: number; // Default 50; max 1000
-}
-⋮----
-fromId?: number; // Trade id to fetch from. Default gets most recent trades
-limit?: number; // Default 50; max 1000
-⋮----
-export interface PortfolioCMTrade {
- symbol: string;
- id: number;
- orderId: number;
- pair: string;
- side: 'BUY' | 'SELL';
- price: string;
- qty: string;
- realizedPnl: string;
- marginAsset: string;
- baseQty: string;
- commission: string;
- commissionAsset: string;
- time: number;
- positionSide: 'BOTH' | 'LONG' | 'SHORT';
- buyer: boolean;
- maker: boolean;
-}
-⋮----
-export interface PortfolioADLQuantile {
- LONG: number;
- SHORT: number;
- BOTH?: number; // For one-way mode or isolated margin in hedge mode
- HEDGE?: number; // For cross margin in hedge mode (ignore value, just a sign)
-}
-⋮----
-BOTH?: number; // For one-way mode or isolated margin in hedge mode
-HEDGE?: number; // For cross margin in hedge mode (ignore value, just a sign)
-⋮----
-export interface QueryPortfolioMarginOrderReq {
- symbol: string;
- orderId?: number;
- origClientOrderId?: string;
-}
-⋮----
-export interface PortfolioMarginOrder {
- clientOrderId: string;
- cummulativeQuoteQty: string;
- executedQty: string;
- icebergQty: string;
- isWorking: boolean;
- orderId: number;
- origQty: string;
- price: string;
- side: 'BUY' | 'SELL';
- status: string;
- stopPrice: string;
- symbol: string;
- time: number;
- timeInForce: string;
- type: PMMarginOrderType;
- updateTime: number;
- accountId: number;
- selfTradePreventionMode: PMSelfTradePreventionMode;
- preventedMatchId: number | null;
- preventedQuantity: string | null;
-}
-⋮----
-export interface QueryPortfolioMarginAllOrdersReq {
- symbol: string;
- orderId?: number;
- startTime?: number;
- endTime?: number;
- limit?: number; // Default 500; max 500
-}
+// Individual Symbol Book Ticker Streams
+// https://developers.binance.com/docs/binance-spot-api-docs/web-socket-streams#individual-symbol-book-ticker-streams
⋮----
-limit?: number; // Default 500; max 500
+// All Book Tickers Stream
+// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/All-Book-Tickers-Stream
+'!bookTicker', // DOESNT EXIST AS TYPE GUARD
+// Partial Book Depth Streams
+// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Partial-Book-Depth-Streams
⋮----
-export interface QueryPortfolioMarginOCOReq {
- orderListId?: number; // Either orderListId or origClientOrderId must be provided
- origClientOrderId?: string; // Either orderListId or origClientOrderId must be provided
-}
+// Diff. Book Depth Stream
+// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Diff-Book-Depth-Streams
⋮----
-orderListId?: number; // Either orderListId or origClientOrderId must be provided
-origClientOrderId?: string; // Either orderListId or origClientOrderId must be provided
+// /**
+// *
+// * For those that used the Node.js Binance SDK before the v3 release, you can
+// * still subscribe to available market topics the "old" way, for convenience
+// * when migrating from the old WebsocketClient to the new multiplex client):
+// *
+// */
⋮----
-export interface PortfolioMarginOCOQueryOrder {
- symbol: string;
- orderId: number;
- clientOrderId: string;
-}
-⋮----
-export interface PortfolioMarginOCO {
- orderListId: number;
- contingencyType: 'OCO';
- listStatusType: string;
- listOrderStatus: string;
- listClientOrderId: string;
- transactionTime: number;
- symbol: string;
- orders: PortfolioMarginOCOQueryOrder[];
-}
-⋮----
-export interface QueryPortfolioMarginAllOCOReq {
- fromId?: number; // If supplied, neither startTime or endTime can be provided
- startTime?: number;
- endTime?: number;
- limit?: number; // Default 500; max 500
-}
-⋮----
-fromId?: number; // If supplied, neither startTime or endTime can be provided
-⋮----
-limit?: number; // Default 500; max 500
-⋮----
-export interface QueryPortfolioMarginTradesReq {
- symbol: string;
- orderId?: number;
- startTime?: number;
- endTime?: number;
- fromId?: number; // TradeId to fetch from. Default gets most recent trades
- limit?: number; // Default 500; max 1000
-}
-⋮----
-fromId?: number; // TradeId to fetch from. Default gets most recent trades
-limit?: number; // Default 500; max 1000
-⋮----
-export interface PortfolioMarginTrade {
- commission: string;
- commissionAsset: string;
- id: number;
- isBestMatch: boolean;
- isBuyer: boolean;
- isMaker: boolean;
- orderId: number;
- price: string;
- qty: string;
- symbol: string;
- time: number;
-}
-⋮----
-export interface PortfolioMarginRepayDebtReq {
- asset: string;
- amount?: string;
- specifyRepayAssets?: string; // Specific asset list to repay debt; Can be added in batch, separated by commas
-}
-⋮----
-specifyRepayAssets?: string; // Specific asset list to repay debt; Can be added in batch, separated by commas
-⋮----
-export interface PortfolioMarginRepayDebtResponse {
- amount: string;
- asset: string;
- specifyRepayAssets: string[];
- updateTime: number;
- success: boolean;
-}
-⋮----
-/**
- *
- * DERIVATIVES - ACCOUNT endpoints
- *
- **/
-⋮----
-export type PMAccountStatus =
- | 'NORMAL'
- | 'MARGIN_CALL'
- | 'SUPPLY_MARGIN'
- | 'REDUCE_ONLY'
- | 'ACTIVE_LIQUIDATION'
- | 'FORCE_LIQUIDATION'
- | 'BANKRUPTED';
-⋮----
-export type PMIndicatorType = 'UFR' | 'IFER' | 'GCR' | 'DR' | 'TMV';
-export type PMMarginLoanStatus = 'PENDING' | 'CONFIRMED' | 'FAILED';
-⋮----
-export interface PortfolioTotalBalance {
- asset: string;
- totalWalletBalance: string; // wallet balance = cross margin free + cross margin locked + UM wallet balance + CM wallet balance
- crossMarginAsset: string; // crossMarginAsset = crossMarginFree + crossMarginLocked
- crossMarginBorrowed: string; // principal of cross margin
- crossMarginFree: string; // free asset of cross margin
- crossMarginInterest: string; // interest of cross margin
- crossMarginLocked: string; // lock asset of cross margin
- umWalletBalance: string; // wallet balance of um
- umUnrealizedPNL: string; // unrealized profit of um
- cmWalletBalance: string; // wallet balance of cm
- cmUnrealizedPNL: string; // unrealized profit of cm
- updateTime: number;
- negativeBalance: string;
-}
-⋮----
-totalWalletBalance: string; // wallet balance = cross margin free + cross margin locked + UM wallet balance + CM wallet balance
-crossMarginAsset: string; // crossMarginAsset = crossMarginFree + crossMarginLocked
-crossMarginBorrowed: string; // principal of cross margin
-crossMarginFree: string; // free asset of cross margin
-crossMarginInterest: string; // interest of cross margin
-crossMarginLocked: string; // lock asset of cross margin
-umWalletBalance: string; // wallet balance of um
-umUnrealizedPNL: string; // unrealized profit of um
-cmWalletBalance: string; // wallet balance of cm
-cmUnrealizedPNL: string; // unrealized profit of cm
-⋮----
-export interface PortfolioSingleBalance {
- asset: string;
- totalWalletBalance: string; // wallet balance = cross margin free + cross margin locked + UM wallet balance + CM wallet balance
- crossMarginBorrowed: string; // principal of cross margin
- crossMarginFree: string; // free asset of cross margin
- crossMarginInterest: string; // interest of cross margin
- crossMarginLocked: string; // lock asset of cross margin
- umWalletBalance: string; // wallet balance of um
- umUnrealizedPNL: string; // unrealized profit of um
- cmWalletBalance: string; // wallet balance of cm
- cmUnrealizedPNL: string; // unrealized profit of cm
- updateTime: number;
- negativeBalance: string;
-}
-⋮----
-totalWalletBalance: string; // wallet balance = cross margin free + cross margin locked + UM wallet balance + CM wallet balance
-crossMarginBorrowed: string; // principal of cross margin
-crossMarginFree: string; // free asset of cross margin
-crossMarginInterest: string; // interest of cross margin
-crossMarginLocked: string; // lock asset of cross margin
-umWalletBalance: string; // wallet balance of um
-umUnrealizedPNL: string; // unrealized profit of um
-cmWalletBalance: string; // wallet balance of cm
-cmUnrealizedPNL: string; // unrealized profit of cm
-⋮----
-export type PortfolioBalance = PortfolioBalance[] | PortfolioSingleBalance;
-⋮----
-export interface PortfolioAccountInformation {
- uniMMR: string; // Portfolio margin account maintenance margin rate
- accountEquity: string; // Account equity, in USD value
- actualEquity: string; // Account equity without collateral rate, in USD value
- accountInitialMargin: string;
- accountMaintMargin: string; // Portfolio margin account maintenance margin, unit: USD
- accountStatus: PMAccountStatus;
- virtualMaxWithdrawAmount: string; // Portfolio margin maximum amount for transfer out in USD
- totalAvailableBalance: string;
- totalMarginOpenLoss: string; // in USD margin open order
- updateTime: number; // last update time
-}
-⋮----
-uniMMR: string; // Portfolio margin account maintenance margin rate
-accountEquity: string; // Account equity, in USD value
-actualEquity: string; // Account equity without collateral rate, in USD value
-⋮----
-accountMaintMargin: string; // Portfolio margin account maintenance margin, unit: USD
-⋮----
-virtualMaxWithdrawAmount: string; // Portfolio margin maximum amount for transfer out in USD
-⋮----
-totalMarginOpenLoss: string; // in USD margin open order
-updateTime: number; // last update time
-⋮----
-export interface PortfolioUMPosition {
- symbol: string;
- positionAmt: string;
- entryPrice: string;
- markPrice: string;
- unRealizedProfit: string;
- liquidationPrice: string;
- leverage: string;
- maxNotionalValue: string;
- positionSide: 'BOTH' | 'LONG' | 'SHORT';
- notional: string;
- updateTime: number;
-}
-⋮----
-export interface PortfolioCMPosition {
- symbol: string;
- positionAmt: string;
- entryPrice: string;
- markPrice: string;
- unRealizedProfit: string;
- liquidationPrice: string;
- leverage: string;
- positionSide: 'BOTH' | 'LONG' | 'SHORT';
- updateTime: number;
- maxQty: string;
- notionalValue: string;
-}
-⋮----
-export interface PortfolioUMLeverageBracket {
- bracket: number; // Notional bracket
- initialLeverage: number; // Max initial leverage for this bracket
- notionalCap: number; // Cap notional of this bracket
- notionalFloor: number; // Notional threshold of this bracket
- maintMarginRatio: number; // Maintenance ratio for this bracket
- cum: number; // Auxiliary number for quick calculation
-}
-⋮----
-bracket: number; // Notional bracket
-initialLeverage: number; // Max initial leverage for this bracket
-notionalCap: number; // Cap notional of this bracket
-notionalFloor: number; // Notional threshold of this bracket
-maintMarginRatio: number; // Maintenance ratio for this bracket
-cum: number; // Auxiliary number for quick calculation
-⋮----
-export interface PortfolioCMLeverageBracket {
- bracket: number; // bracket level
- initialLeverage: number; // the maximum leverage
- qtyCap: number; // upper edge of base asset quantity
- qtyFloor: number; // lower edge of base asset quantity
- maintMarginRatio: number; // maintenance margin rate
- cum: number; // Auxiliary number for quick calculation
-}
-⋮----
-bracket: number; // bracket level
-initialLeverage: number; // the maximum leverage
-qtyCap: number; // upper edge of base asset quantity
-qtyFloor: number; // lower edge of base asset quantity
-maintMarginRatio: number; // maintenance margin rate
-cum: number; // Auxiliary number for quick calculation
-⋮----
-export interface PortfolioTradingIndicator {
- isLocked: boolean;
- plannedRecoverTime: number;
- indicator: PMIndicatorType;
- value: number;
- triggerValue: number;
-}
-⋮----
-export interface PortfolioTradingStatus {
- indicators: {
- [key: string]: PortfolioTradingIndicator[]; // key can be symbol or "ACCOUNT"
- };
- updateTime: number;
-}
-⋮----
-[key: string]: PortfolioTradingIndicator[]; // key can be symbol or "ACCOUNT"
-⋮----
-export interface PortfolioMarginLoanRecord {
- txId: number;
- asset: string;
- principal: string;
- timestamp: number;
- status: PMMarginLoanStatus;
-}
-⋮----
-export interface GetMarginLoanRecordsReq {
- asset: string;
- txId?: number;
- startTime?: number;
- endTime?: number;
- current?: number; // Currently querying page. Start from 1. Default: 1
- size?: number; // Default: 10, Max: 100
- archived?: boolean; // Default: false. Set to true for archived data from 6 months ago
-}
-⋮----
-current?: number; // Currently querying page. Start from 1. Default: 1
-size?: number; // Default: 10, Max: 100
-archived?: boolean; // Default: false. Set to true for archived data from 6 months ago
-⋮----
-export interface GetMarginRepayRecordsReq {
- asset: string;
- txId?: number;
- startTime?: number;
- endTime?: number;
- current?: number; // Currently querying page. Start from 1. Default: 1
- size?: number; // Default: 10, Max: 100
- archived?: boolean; // Default: false. Set to true for archived data from 6 months ago
-}
-⋮----
-current?: number; // Currently querying page. Start from 1. Default: 1
-size?: number; // Default: 10, Max: 100
-archived?: boolean; // Default: false. Set to true for archived data from 6 months ago
-⋮----
-export interface PortfolioMarginRepayRecord {
- amount: string; // Total amount repaid
- asset: string;
- interest: string; // Interest repaid
- principal: string; // Principal repaid
- status: PMMarginLoanStatus;
- txId: number;
-}
-⋮----
-amount: string; // Total amount repaid
-⋮----
-interest: string; // Interest repaid
-principal: string; // Principal repaid
-⋮----
-export interface GetMarginInterestHistoryReq {
- asset?: string;
- startTime?: number;
- endTime?: number;
- current?: number; // Currently querying page. Start from 1. Default: 1
- size?: number; // Default: 10, Max: 100
- archived?: boolean; // Default: false. Set to true for archived data from 6 months ago
-}
-⋮----
-current?: number; // Currently querying page. Start from 1. Default: 1
-size?: number; // Default: 10, Max: 100
-archived?: boolean; // Default: false. Set to true for archived data from 6 months ago
-⋮----
-export type PMInterestType =
- | 'PERIODIC' // interest charged per hour
- | 'ON_BORROW' // first interest charged on borrow
- | 'PERIODIC_CONVERTED' // interest charged per hour converted into BNB
- | 'ON_BORROW_CONVERTED' // first interest charged on borrow converted into BNB
- | 'PORTFOLIO'; // Portfolio Margin negative balance daily interest
-⋮----
-| 'PERIODIC' // interest charged per hour
-| 'ON_BORROW' // first interest charged on borrow
-| 'PERIODIC_CONVERTED' // interest charged per hour converted into BNB
-| 'ON_BORROW_CONVERTED' // first interest charged on borrow converted into BNB
-| 'PORTFOLIO'; // Portfolio Margin negative balance daily interest
-⋮----
-export interface PortfolioMarginInterestRecord {
- txId: number;
- interestAccuredTime: number;
- asset: string;
- rawAsset: string;
- principal: string;
- interest: string;
- interestRate: string;
- type: PMInterestType;
-}
-⋮----
-export interface GetPortfolioInterestHistoryReq {
- asset?: string;
- startTime?: number;
- endTime?: number;
- size?: number; // Default: 10, Max: 100
-}
-⋮----
-size?: number; // Default: 10, Max: 100
-⋮----
-export interface PortfolioNegativeBalanceInterestRecord {
- asset: string;
- interest: string; // interest amount
- interestAccuredTime: number;
- interestRate: string; // daily interest rate
- principal: string;
-}
-⋮----
-interest: string; // interest amount
-⋮----
-interestRate: string; // daily interest rate
-⋮----
-export type UMIncomeType =
- | 'TRANSFER'
- | 'WELCOME_BONUS'
- | 'REALIZED_PNL'
- | 'FUNDING_FEE'
- | 'COMMISSION'
- | 'INSURANCE_CLEAR'
- | 'REFERRAL_KICKBACK'
- | 'COMMISSION_REBATE'
- | 'API_REBATE'
- | 'CONTEST_REWARD'
- | 'CROSS_COLLATERAL_TRANSFER'
- | 'OPTIONS_PREMIUM_FEE'
- | 'OPTIONS_SETTLE_PROFIT'
- | 'INTERNAL_TRANSFER'
- | 'AUTO_EXCHANGE'
- | 'DELIVERED_SETTELMENT'
- | 'COIN_SWAP_DEPOSIT'
- | 'COIN_SWAP_WITHDRAW'
- | 'POSITION_LIMIT_INCREASE_FEE';
-⋮----
-export interface QueryPortfolioUMIncomeReq {
- symbol?: string;
- incomeType?: UMIncomeType;
- startTime?: number;
- endTime?: number;
- page?: number;
- limit?: number; // Default 100; max 1000
-}
-⋮----
-limit?: number; // Default 100; max 1000
-⋮----
-export interface PortfolioUMIncome {
- symbol: string; // trade symbol, if existing
- incomeType: UMIncomeType;
- income: string; // income amount
- asset: string; // income asset
- info: string; // extra information
- time: number;
- tranId: string; // transaction id
- tradeId: string; // trade id, if existing
-}
-⋮----
-symbol: string; // trade symbol, if existing
-⋮----
-income: string; // income amount
-asset: string; // income asset
-info: string; // extra information
-⋮----
-tranId: string; // transaction id
-tradeId: string; // trade id, if existing
-⋮----
-export type CMIncomeType =
- | 'TRANSFER'
- | 'WELCOME_BONUS'
- | 'FUNDING_FEE'
- | 'REALIZED_PNL'
- | 'COMMISSION'
- | 'INSURANCE_CLEAR'
- | 'DELIVERED_SETTELMENT';
-⋮----
-export interface QueryPortfolioCMIncomeReq {
- symbol?: string;
- incomeType?: CMIncomeType;
- startTime?: number;
- endTime?: number;
- page?: number;
- limit?: number; // Default 100; max 1000
-}
-⋮----
-limit?: number; // Default 100; max 1000
-⋮----
-export interface PortfolioCMIncome {
- symbol: string; // trade symbol, if existing
- incomeType: CMIncomeType;
- income: string; // income amount
- asset: string; // income asset
- info: string; // extra information
- time: number;
- tranId: string; // transaction id
- tradeId: string; // trade id, if existing
-}
-⋮----
-symbol: string; // trade symbol, if existing
-⋮----
-income: string; // income amount
-asset: string; // income asset
-info: string; // extra information
-⋮----
-tranId: string; // transaction id
-tradeId: string; // trade id, if existing
-⋮----
-export interface PortfolioUMAccountAsset {
- asset: string; // asset name
- crossWalletBalance: string; // wallet balance
- crossUnPnl: string; // unrealized profit
- maintMargin: string; // maintenance margin required
- initialMargin: string; // total initial margin required with current mark price
- positionInitialMargin: string; // initial margin required for positions with current mark price
- openOrderInitialMargin: string; // initial margin required for open orders with current mark price
- updateTime: number; // last update time
-}
-⋮----
-asset: string; // asset name
-crossWalletBalance: string; // wallet balance
-crossUnPnl: string; // unrealized profit
-maintMargin: string; // maintenance margin required
-initialMargin: string; // total initial margin required with current mark price
-positionInitialMargin: string; // initial margin required for positions with current mark price
-openOrderInitialMargin: string; // initial margin required for open orders with current mark price
-updateTime: number; // last update time
-⋮----
-export interface PortfolioUMAccountPosition {
- symbol: string; // symbol name
- initialMargin: string; // initial margin required with current mark price
- maintMargin: string; // maintenance margin required
- unrealizedProfit: string; // unrealized profit
- positionInitialMargin: string; // initial margin required for positions with current mark price
- openOrderInitialMargin: string; // initial margin required for open orders with current mark price
- leverage: string; // current initial leverage
- entryPrice: string; // average entry price
- maxNotional: string; // maximum available notional with current leverage
- bidNotional: string; // bids notional
- askNotional: string; // ask notional
- positionSide: 'BOTH' | 'LONG' | 'SHORT'; // position side
- positionAmt: string; // position amount
- updateTime: number; // last update time
-}
-⋮----
-symbol: string; // symbol name
-initialMargin: string; // initial margin required with current mark price
-maintMargin: string; // maintenance margin required
-unrealizedProfit: string; // unrealized profit
-positionInitialMargin: string; // initial margin required for positions with current mark price
-openOrderInitialMargin: string; // initial margin required for open orders with current mark price
-leverage: string; // current initial leverage
-entryPrice: string; // average entry price
-maxNotional: string; // maximum available notional with current leverage
-bidNotional: string; // bids notional
-askNotional: string; // ask notional
-positionSide: 'BOTH' | 'LONG' | 'SHORT'; // position side
-positionAmt: string; // position amount
-updateTime: number; // last update time
-⋮----
-export interface PortfolioCMAccountAsset {
- asset: string; // asset name
- crossWalletBalance: string; // total wallet balance
- crossUnPnl: string; // unrealized profit or loss
- maintMargin: string; // maintenance margin
- initialMargin: string; // total initial margin required with the latest mark price
- positionInitialMargin: string; // positions' margin required with the latest mark price
- openOrderInitialMargin: string; // open orders' initial margin required with the latest mark price
- updateTime: number; // last update time
-}
-⋮----
-asset: string; // asset name
-crossWalletBalance: string; // total wallet balance
-crossUnPnl: string; // unrealized profit or loss
-maintMargin: string; // maintenance margin
-initialMargin: string; // total initial margin required with the latest mark price
-positionInitialMargin: string; // positions' margin required with the latest mark price
-openOrderInitialMargin: string; // open orders' initial margin required with the latest mark price
-updateTime: number; // last update time
-⋮----
-export interface PortfolioCMAccountPosition {
- symbol: string; // symbol name
- positionAmt: string; // position amount
- initialMargin: string;
- maintMargin: string;
- unrealizedProfit: string;
- positionInitialMargin: string;
- openOrderInitialMargin: string;
- leverage: string;
- positionSide: 'BOTH' | 'LONG' | 'SHORT'; // BOTH means that it is the position of One-way Mode
- entryPrice: string;
- maxQty: string; // maximum quantity of base asset
- updateTime: number;
-}
-⋮----
-symbol: string; // symbol name
-positionAmt: string; // position amount
-⋮----
-positionSide: 'BOTH' | 'LONG' | 'SHORT'; // BOTH means that it is the position of One-way Mode
-⋮----
-maxQty: string; // maximum quantity of base asset
-⋮----
-export interface PortfolioUMAccountConfig {
- feeTier: number; // account commission tier
- canTrade: boolean; // if can trade
- canDeposit: boolean; // if can transfer in asset
- canWithdraw: boolean; // if can transfer out asset
- dualSidePosition: boolean;
- updateTime: number; // reserved property
- multiAssetsMargin: boolean;
- tradeGroupId: number;
-}
-⋮----
-feeTier: number; // account commission tier
-canTrade: boolean; // if can trade
-canDeposit: boolean; // if can transfer in asset
-canWithdraw: boolean; // if can transfer out asset
-⋮----
-updateTime: number; // reserved property
-⋮----
-export interface PortfolioUMSymbolConfig {
- symbol: string;
- marginType: 'CROSSED' | 'ISOLATED';
- isAutoAddMargin: string; // "true" or "false" as string
- leverage: number;
- maxNotionalValue: string;
-}
-⋮----
-isAutoAddMargin: string; // "true" or "false" as string
-⋮----
-export interface PortfolioUMAccountAssetV2 {
- asset: string; // asset name
- crossWalletBalance: string; // wallet balance
- crossUnPnl: string; // unrealized profit
- maintMargin: string; // maintenance margin required
- initialMargin: string; // total initial margin required with current mark price
- positionInitialMargin: string; // initial margin required for positions with current mark price
- openOrderInitialMargin: string; // initial margin required for open orders with current mark price
- updateTime: number; // last update time
-}
-⋮----
-asset: string; // asset name
-crossWalletBalance: string; // wallet balance
-crossUnPnl: string; // unrealized profit
-maintMargin: string; // maintenance margin required
-initialMargin: string; // total initial margin required with current mark price
-positionInitialMargin: string; // initial margin required for positions with current mark price
-openOrderInitialMargin: string; // initial margin required for open orders with current mark price
-updateTime: number; // last update time
-⋮----
-export interface PortfolioUMAccountPositionV2 {
- symbol: string; // symbol name
- initialMargin: string; // initial margin required with current mark price
- maintMargin: string; // maintenance margin required
- unrealizedProfit: string; // unrealized profit
- positionSide: 'BOTH' | 'LONG' | 'SHORT'; // position side
- positionAmt: string; // position amount
- updateTime: number; // last update time
- notional: string; // position notional value
-}
-⋮----
-symbol: string; // symbol name
-initialMargin: string; // initial margin required with current mark price
-maintMargin: string; // maintenance margin required
-unrealizedProfit: string; // unrealized profit
-positionSide: 'BOTH' | 'LONG' | 'SHORT'; // position side
-positionAmt: string; // position amount
-updateTime: number; // last update time
-notional: string; // position notional value
-⋮----
-export interface DownloadLinkResponse {
- downloadId: string;
- status: 'completed' | 'processing'; // Enum: completed, processing
- url: string; // The link is mapped to download id
- s3Link: string | null;
- notified: boolean; // ignore
- expirationTimestamp: number; // The link would expire after this timestamp
- isExpired: boolean | null;
-}
-⋮----
-status: 'completed' | 'processing'; // Enum: completed, processing
-url: string; // The link is mapped to download id
-⋮----
-notified: boolean; // ignore
-expirationTimestamp: number; // The link would expire after this timestamp
-⋮----
-export interface PortfolioTradFiPerpsContractSignResponse {
- code: number;
- msg: string;
-}
-
-================
-File: src/index.ts
-================
-
-
-================
-File: .gitignore
-================
-.vscode/
-.idea/
-.nyc_output/
-node_modules/
-util/config.js
-coverage/
-yarn-error.log
-lib/*
-testfile.ts
-privaterepotracker
-restClientRegex.ts
-.DS_Store
-dist
-localtest.ts
-repomix.sh
-doc
-*.pem
-
-================
-File: eslint.config.cjs
-================
-
-
-================
-File: examples/WebSockets/Public/ws-usdm-market.ts
-================
-import {
- DefaultLogger,
- isWsDiffBookDepthEventFormatted,
- isWsPartialBookDepthEventFormatted,
- WebsocketClient,
- WS_KEY_MAP,
-} from '../../../src';
-⋮----
-// or, with the npm package
-/*
-import {
- DefaultLogger,
- isWsDiffBookDepthEventFormatted,
- isWsPartialBookDepthEventFormatted,
- WebsocketClient,
- WS_KEY_MAP,
-} from 'binance';
-*/
-⋮----
-// Without typescript:
-// const logger = {
-⋮----
-// A simple way to suppress heartbeats but receive all other traces
-// if (params[0].includes('ping') || params[0].includes('pong')) {
-// return;
-// }
-⋮----
-// Optional: when enabled, the SDK will try to format incoming data into more readable objects.
-// Beautified data is emitted via the "formattedMessage" event
-⋮----
-logger, // Optional: customise logging behaviour by extending or overwriting the default logger implementation
-⋮----
-// Raw unprocessed incoming data, e.g. if you have the beautifier disabled
-⋮----
-// console.log('raw message received ', JSON.stringify(data, null, 2));
-⋮----
-// console.log('log rawMessage: ', data);
-⋮----
-// Formatted data that has gone through the beautifier
-⋮----
-// console.log('log formattedMessage: ', data);
-⋮----
-/**
- * Optional: we've included type-guards for many formatted websocket topics.
- *
- * These can be used within `if` blocks to narrow down specific event types (even for non-typescript users).
- */
-// if (isWsAggTradeFormatted(data)) {
-// console.log('log agg trade: ', data);
-// return;
-// }
-⋮----
-// // For one symbol
-// if (isWsFormattedMarkPriceUpdateEvent(data)) {
-// console.log('log mark price: ', data);
-// return;
-// }
-⋮----
-// // for many symbols
-// if (isWsFormattedMarkPriceUpdateArray(data)) {
-// console.log('log mark prices: ', data);
-// return;
-// }
-⋮----
-// if (isWsFormattedKline(data)) {
-// console.log('log kline: ', data);
-// return;
-// }
-⋮----
-// if (isWsFormattedTrade(data)) {
-// return console.log('log trade: ', data);
-// }
-⋮----
-// if (isWsFormattedForceOrder(data)) {
-// return console.log('log force order: ', data);
-// }
-⋮----
-// if (isWsFormatted24hrTickerArray(data)) {
-// return console.log('log 24hr ticker array: ', data);
-// }
-⋮----
-// if (isWsFormattedRollingWindowTickerArray(data)) {
-// return console.log('log rolling window ticker array: ', data);
-// }
-⋮----
-// if (isWsFormatted24hrTicker(data)) {
-// return console.log('log 24hr ticker: ', data);
-// }
-⋮----
-// response to command sent via WS stream (e.g LIST_SUBSCRIPTIONS)
-⋮----
-// No action needed here, unless you need to query the REST API after being reconnected.
-⋮----
-/**
- * The Websocket Client will automatically manage connectivity and active topics/subscriptions for you.
- *
- * Simply call wsClient.subscribe(topic, wsKey) as many times as you want, with or without an array.
- *
- * The WsKey is a reference to the connection that this topic should be routed to.
- * WS_KEY_MAP is a complete enum with all the available WsKey values.
- *
- * The following topics are routed to the "market" endpoint for USDM Futures market data, as per the following documentation:
- * https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Important-WebSocket-Change-Notice#public-high-frequency-public-data
- */
-⋮----
-// Uses the regular market feeds WS URL dedicated to USDM Futures: wss://fstream.binance.com/market/stream
-⋮----
-/**
- * Subscribe to each available type of USDM Derivatives market topic, the new way
- */
-⋮----
-// Aggregate Trade Stream
-// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Aggregate-Trade-Streams
-⋮----
-// Mark Price Stream
-// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Mark-Price-Stream
-⋮----
-// Mark Price Stream for All market
-// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Mark-Price-Stream-for-All-market
-⋮----
-// Kline/Candlestick Streams
-// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Kline-Candlestick-Streams
-⋮----
-// Continuous Contract Kline/Candlestick Streams
-// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Continuous-Contract-Kline-Candlestick-Streams
-'btcusdt_perpetual@continuousKline_1m', // DOESNT EXIST AS TYPE GUARD, ONLY IN BEAUTIFIER
-⋮----
-// Individual Symbol Mini Ticker Stream
-// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Individual-Symbol-Mini-Ticker-Stream
-'btcusdt@miniTicker', // DOESNT EXIST AS TYPE GUARD, ONLY FOR RAW MESSAGE
-⋮----
-// All Market Mini Tickers Stream
-// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/All-Market-Mini-Tickers-Stream
-'!miniTicker@arr', // DOESNT EXIST AS TYPE GUARD
-⋮----
-// Individual Symbol Ticker Streams
-// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Individual-Symbol-Ticker-Streams
-⋮----
-// All Market Tickers Stream
-// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/All-Market-Tickers-Stream
-'!ticker@arr', // DOESNT EXIST AS TYPE GUARD
-⋮----
-// Liquidation Order Stream
-// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Liquidation-Order-Streams
-⋮----
-// Liquidation Order Stream for All market
-// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/All-Market-Liquidation-Order-Streams
-⋮----
-// Composite Index Symbol Information Streams
-// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Composite-Index-Symbol-Information-Streams
-⋮----
-'btcusdt@compositeIndex', // DOESNT EXIST AS TYPE GUARD
-// Contract Info Stream
-// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Contract-Info-Stream
-'!contractInfo', // DOESNT EXIST AS TYPE GUARD
-⋮----
-// Multi-Assets Mode Asset Index Stream
-// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Multi-Assets-Mode-Asset-Index
-'!assetIndex@arr', // DOESNT EXIST AS TYPE GUARD
-⋮----
-// /**
-// *
-// * For those that used the Node.js Binance SDK before the v3 release, you can
-// * still subscribe to available market topics the "old" way, for convenience
-// * when migrating from the old WebsocketClient to the new multiplex client):
-// *
-// */
-⋮----
-// wsClient.subscribeAggregateTrades(symbol, 'usdm');
-// wsClient.subscribeTrades(symbol, 'spot');
-// wsClient.subscribeTrades(symbol, 'usdm');
-// wsClient.subscribeTrades(coinMSymbol, 'coinm');
-// wsClient.subscribeCoinIndexPrice(coinMSymbol2);
-// wsClient.subscribeAllBookTickers('usdm');
-// wsClient.subscribeSpotKline(symbol, '1m');
-// wsClient.subscribeMarkPrice(symbol, 'usdm');
-// wsClient.subscribeMarkPrice(coinMSymbol, 'coinm');
-// wsClient.subscribeAllMarketMarkPrice('usdm');
-// wsClient.subscribeAllMarketMarkPrice('coinm');
-// wsClient.subscribeKlines(symbol, '1m', 'usdm');
-// wsClient.subscribeContinuousContractKlines(
-// symbol,
-// 'perpetual',
-// '1m',
-// 'usdm',
-// );
-// wsClient.subscribeIndexKlines(coinMSymbol2, '1m');
-// wsClient.subscribeMarkPriceKlines(coinMSymbol, '1m');
-// wsClient.subscribeSymbolMini24hrTicker(symbol, 'spot'); // 0116 265 5309, opt 1
-// wsClient.subscribeSymbolMini24hrTicker(symbol, 'usdm');
-// wsClient.subscribeSymbolMini24hrTicker(coinMSymbol, 'coinm');
-// wsClient.subscribeSymbol24hrTicker(symbol, 'spot');
-// wsClient.subscribeSymbol24hrTicker(symbol, 'usdm');
-// wsClient.subscribeSymbol24hrTicker(coinMSymbol, 'coinm');
-// wsClient.subscribeAllMini24hrTickers('spot');
-// wsClient.subscribeAllMini24hrTickers('usdm');
-// wsClient.subscribeAllMini24hrTickers('coinm');
-// wsClient.subscribeAll24hrTickers('spot');
-// wsClient.subscribeAll24hrTickers('usdm');
-// wsClient.subscribeAll24hrTickers('coinm');
-// wsClient.subscribeSymbolLiquidationOrders(symbol, 'usdm');
-// wsClient.subscribeAllLiquidationOrders('usdm');
-// wsClient.subscribeAllLiquidationOrders('coinm');
-// wsClient.subscribeSpotSymbol24hrTicker(symbol);
-// wsClient.subscribeSpotPartialBookDepth('ETHBTC', 5, 1000);
-// wsClient.subscribeAllRollingWindowTickers('spot', '1d');
-// wsClient.subscribeSymbolBookTicker(symbol, 'spot');
-// wsClient.subscribePartialBookDepths(symbol, 5, 100, 'spot');
-// wsClient.subscribeDiffBookDepth(symbol, 100, 'spot');
-// wsClient.subscribeContractInfoStream('usdm');
-// wsClient.subscribeContractInfoStream('coinm');
-
-================
-File: examples/WebSockets/Public/ws-usdm-public.ts
-================
-import {
- DefaultLogger,
- isWsDiffBookDepthEventFormatted,
- isWsPartialBookDepthEventFormatted,
- WebsocketClient,
- WS_KEY_MAP,
-} from '../../../src';
-⋮----
-// or, with the npm package
-/*
-import {
- DefaultLogger,
- isWsDiffBookDepthEventFormatted,
- isWsPartialBookDepthEventFormatted,
- WebsocketClient,
- WS_KEY_MAP,
-} from 'binance';
-*/
-⋮----
-// Without typescript:
-// const logger = {
-⋮----
-// A simple way to suppress heartbeats but receive all other traces
-// if (params[0].includes('ping') || params[0].includes('pong')) {
-// return;
-// }
-⋮----
-// Optional: when enabled, the SDK will try to format incoming data into more readable objects.
-// Beautified data is emitted via the "formattedMessage" event
-⋮----
-logger, // Optional: customise logging behaviour by extending or overwriting the default logger implementation
-⋮----
-// Raw unprocessed incoming data, e.g. if you have the beautifier disabled
-⋮----
-// console.log('raw message received ', JSON.stringify(data, null, 2));
-⋮----
-// console.log('log rawMessage: ', data);
-⋮----
-// Formatted data that has gone through the beautifier
-⋮----
-// console.log('log formattedMessage: ', data);
-⋮----
-/**
- * Optional: we've included type-guards for many formatted websocket topics.
- *
- * These can be used within `if` blocks to narrow down specific event types (even for non-typescript users).
- */
-// if (isWsAggTradeFormatted(data)) {
-// console.log('log agg trade: ', data);
-// return;
-// }
-⋮----
-// // For one symbol
-// if (isWsFormattedMarkPriceUpdateEvent(data)) {
-// console.log('log mark price: ', data);
-// return;
-// }
-⋮----
-// // for many symbols
-// if (isWsFormattedMarkPriceUpdateArray(data)) {
-// console.log('log mark prices: ', data);
-// return;
-// }
-⋮----
-// if (isWsFormattedKline(data)) {
-// console.log('log kline: ', data);
-// return;
-// }
-⋮----
-// if (isWsFormattedTrade(data)) {
-// return console.log('log trade: ', data);
-// }
-⋮----
-// if (isWsFormattedForceOrder(data)) {
-// return console.log('log force order: ', data);
-// }
-⋮----
-// if (isWsFormatted24hrTickerArray(data)) {
-// return console.log('log 24hr ticker array: ', data);
-// }
-⋮----
-// if (isWsFormattedRollingWindowTickerArray(data)) {
-// return console.log('log rolling window ticker array: ', data);
-// }
-⋮----
-// if (isWsFormatted24hrTicker(data)) {
-// return console.log('log 24hr ticker: ', data);
-// }
-⋮----
-// response to command sent via WS stream (e.g LIST_SUBSCRIPTIONS)
-⋮----
-// No action needed here, unless you need to query the REST API after being reconnected.
-⋮----
-/**
- * The Websocket Client will automatically manage connectivity and active topics/subscriptions for you.
- *
- * Simply call wsClient.subscribe(topic, wsKey) as many times as you want, with or without an array.
- *
- * The WsKey is a reference to the connection that this topic should be routed to.
- * WS_KEY_MAP is a complete enum with all the available WsKey values.
- *
- * The following topics are routed to the "market" endpoint for USDM Futures market data, as per the following documentation:
- * https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Important-WebSocket-Change-Notice#public-high-frequency-public-data
- */
-⋮----
-// Uses the high-frequency order book & core public feeds WS URL dedicated to USDM Futures:
-// wss://fstream.binance.com/public/stream
-⋮----
-/**
- * Subscribe to each available type of USDM Derivatives market topic, the new way
- */
-⋮----
-// Individual Symbol Book Ticker Streams
-// https://developers.binance.com/docs/binance-spot-api-docs/web-socket-streams#individual-symbol-book-ticker-streams
-⋮----
-// All Book Tickers Stream
-// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/All-Book-Tickers-Stream
-'!bookTicker', // DOESNT EXIST AS TYPE GUARD
-// Partial Book Depth Streams
-// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Partial-Book-Depth-Streams
-⋮----
-// Diff. Book Depth Stream
-// https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Diff-Book-Depth-Streams
-⋮----
-// /**
-// *
-// * For those that used the Node.js Binance SDK before the v3 release, you can
-// * still subscribe to available market topics the "old" way, for convenience
-// * when migrating from the old WebsocketClient to the new multiplex client):
-// *
-// */
-⋮----
-// wsClient.subscribeAggregateTrades(symbol, 'usdm');
-// wsClient.subscribeTrades(symbol, 'spot');
-// wsClient.subscribeTrades(symbol, 'usdm');
-// wsClient.subscribeTrades(coinMSymbol, 'coinm');
-// wsClient.subscribeCoinIndexPrice(coinMSymbol2);
-// wsClient.subscribeAllBookTickers('usdm');
-// wsClient.subscribeSpotKline(symbol, '1m');
-// wsClient.subscribeMarkPrice(symbol, 'usdm');
-// wsClient.subscribeMarkPrice(coinMSymbol, 'coinm');
-// wsClient.subscribeAllMarketMarkPrice('usdm');
-// wsClient.subscribeAllMarketMarkPrice('coinm');
-// wsClient.subscribeKlines(symbol, '1m', 'usdm');
-// wsClient.subscribeContinuousContractKlines(
-// symbol,
-// 'perpetual',
-// '1m',
-// 'usdm',
-// );
-// wsClient.subscribeIndexKlines(coinMSymbol2, '1m');
-// wsClient.subscribeMarkPriceKlines(coinMSymbol, '1m');
-// wsClient.subscribeSymbolMini24hrTicker(symbol, 'spot'); // 0116 265 5309, opt 1
-// wsClient.subscribeSymbolMini24hrTicker(symbol, 'usdm');
-// wsClient.subscribeSymbolMini24hrTicker(coinMSymbol, 'coinm');
-// wsClient.subscribeSymbol24hrTicker(symbol, 'spot');
-// wsClient.subscribeSymbol24hrTicker(symbol, 'usdm');
-// wsClient.subscribeSymbol24hrTicker(coinMSymbol, 'coinm');
-// wsClient.subscribeAllMini24hrTickers('spot');
-// wsClient.subscribeAllMini24hrTickers('usdm');
-// wsClient.subscribeAllMini24hrTickers('coinm');
-// wsClient.subscribeAll24hrTickers('spot');
-// wsClient.subscribeAll24hrTickers('usdm');
-// wsClient.subscribeAll24hrTickers('coinm');
-// wsClient.subscribeSymbolLiquidationOrders(symbol, 'usdm');
-// wsClient.subscribeAllLiquidationOrders('usdm');
-// wsClient.subscribeAllLiquidationOrders('coinm');
-// wsClient.subscribeSpotSymbol24hrTicker(symbol);
-// wsClient.subscribeSpotPartialBookDepth('ETHBTC', 5, 1000);
-// wsClient.subscribeAllRollingWindowTickers('spot', '1d');
-// wsClient.subscribeSymbolBookTicker(symbol, 'spot');
-// wsClient.subscribePartialBookDepths(symbol, 5, 100, 'spot');
-// wsClient.subscribeDiffBookDepth(symbol, 100, 'spot');
-// wsClient.subscribeContractInfoStream('usdm');
-// wsClient.subscribeContractInfoStream('coinm');
-
-================
-File: examples/WebSockets/README.md
-================
-# Binance WebSocket Streams
-
-This Node.js, JavaScript & TypeScript SDK for Binance has complete support for all available WebSocket capabilities of Binance's API offering.
-
-## Capabilities
-
-These WebSocket capabilities are split into two key groups:
-
-1. WebSocket Consumers:
- - Subscribe to market data & receive realtime updates.
- - Subscribe to private account data & receive realtime updates (generally called the user data stream).
-2. WebSocket API:
- - Send requests & commands over a persistent WebSocket (WSAPI) connection. E.g. Submit an order.
- - Subscribe to private account data & receive realtime updates (generally called the user data stream), over a persistent WebSocket (WSAPI) connection. Note:
- - This was previously available without the WebSocket API, via a mechanic involving a temporary listenKey.
- - In recent updates, the WebSocket API supports subscribing to the user data stream (private updates).
- - In some cases, this is the only way to subsrcibe to the user data stream (e.g. in Spot markets).
-
-## Architecture
-
-### WebsocketClient
-
-This SDK has all WebSocket capabilities integrated in the dedicated class called the `WebsocketClient`. This can be imported from the package directly. This all-in-one class handles all aspects of Binance's WebSocket capabilities, across all subdomains & endpoints. It also includes the raw capabilities to support integration with the WebSocket API. Subscriptions, heartbeats and connection recovery after disconnect - these are all included automatically.
-
-If the answer to any of these is yes, you should be using the WebsocketClient:
-
-- You want to subscribe to & receive realtime updates for public market data.
-- You want raw control over how & where WebSocket API commands are sent.
-
-If you are looking for a more convenient integration with Binance's WebSocket API, you should look at the `WebsocketAPIClient`.
-
-### WebsocketAPIClient
-
-This is a utility class built over the WebsocketClient to especially provide a more convenient way of using Binance's WebSocket API. While WebSockets are asynchronous by design, the WebsocketAPIClient provides a way to send WebSocket API commands and await the result. All commands are wrapped in a promise and internal event tracking ensures promises are resolved or rejected as part of the command life cycle.
-
-This utility class in this SDK allows you to integrate the WebSocket API in the same way that you would integrate a REST API. Make a request and await the result.
-
-As of early 2026, some of the user data streams are also only available via the WebSocket API streams. This has been integrated into the WebsocketAPIClient and is available with a number of user data methods, depending on the product group. Some references:
-
-- Spot: `wsApiClient.subscribeUserDataStream(WS_KEY_MAP.mainWSAPI)`
-- Margin: `wsApiClient.subscribeUserDataStream(WS_KEY_MAP.marginUserData)`
-- USDM Futures: `wsApiClient.subscribeUserDataStream(WS_KEY_MAP.usdmWSAPI)`
-- CoinM Futures: `wsApiClient.subscribeUserDataStream(WS_KEY_MAP.coinmWSAPI)`
-
-## Key Features
-
-### Base URL Split & Migration
-
-On 06/03/2026, Binance announced a routing upgrade to their USDM Futures WebSocket System, titled: "Binance USDⓈ-M Futures WebSocket System Upgrade Notice (2026-03-06)".
-
-#### Key Highlights:
-
-- Introduction of three dedicated WebSocket base URLs:
- - Public (high-frequency public market data)
- - wss://fstream.binance.com/public
- - Market (regular market data)
- - wss://fstream.binance.com/market
- - Private (user data streams)
- - wss://fstream.binance.com/private
-- New endpoints are supported immediately upon this announcement.
-- Legacy WebSocket URLs will be permanently retired on 2026-04-23.
-- Documentation including endpoint & stream mapping: https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Important-WebSocket-Change-Notice#public-high-frequency-public-data
-
-#### Binance JavaScript SDK Support
-
-All three dedicated WebSocket base URLs are supported. Each with their own unique WsKey, used to track each unique connection.
-
-Continue to subscribe to market data as before with the dedicated subscribe method, but ensure to provide the connection key depending on the type of market data you are consuming.
-
-Minimal examples:
-
-```typescript
-// ...
-
-// For public (high-frequency public data)
-const wsKeyUsdmPublic = WS_KEY_MAP.usdmPublic;
-wsClient.subscribe(['btcusdt@bookTicker', 'btcusdt@depth'], wsKeyUsdmPublic);
-
-// For market (regular market data)
-const wsKeyUsdmMarket = WS_KEY_MAP.usdmMarket;
-wsClient.subscribe(['btcusdt@aggTrade', 'btcusdt@forceOrder'], wsKeyUsdmMarket);
-
-// For user data, continue using the subscribe user data stream method as before.
-// The SDK will automatically route to the "private" endpoint for USDM Futures:
-wsClient.subscribeUsdFuturesUserDataStream();
-```
-
-#### Legacy `wsClient.subscribe*()` methods
-
-If you're using any of the per-topic convenience methods, such as `wsClient.subscribeAggregateTrades(...)`, no change is required. The SDK will automatically route the topic subscription request to the appropriate WS URL.
-
-## Further Reading
-
-For detailed examples, refer to the examples in this folder, as well as the following documentation:
-
-- Binance JavaScript SDK QuickStart Guide: https://siebly.io/sdk/binance/javascript
-- Binance JavaScript SDK Readme: https://www.npmjs.com/package/binance
-
-================
-File: examples/README.md
-================
-# Binance API - Examples
-
-This folder contains ready to go examples demonstrating various aspects of this API implementation, written in TypeScript (but they are compatible with pure JavaScript projects).
-
-Found something difficult to implement? Contribute to these examples and help others!
-
-## Getting started
-
-- Clone the project (or download it as a zip, or install the module in your own project `npm install binance`).
-- Edit the sample as needed (some samples require edits, e.g API keys or import statements to import from npm, not src).
-- Execute the sample using tsx: `tsx examples/REST/rest-spot-public.ts`.
-
-Samples that refer to API credentials using `process.env.API_KEY_COM` can be spawned with environment variables. Unix/macOS example:
-```
-API_KEY_COM='apikeypastedhere' API_SECRET_COM='apisecretpastedhere' tsx "examples/WebSockets/Private(userdata)/ws-userdata-listenkey.ts"
-```
-
-Or edit the example directly to hardcode your API keys.
-
-### WebSockets
-
-All examples relating to WebSockets can be found in the [examples/WebSockets](./WebSockets/) folder. High level summary of available examples:
-
-#### Consumers
-
-These are purely for receiving data from Binance's WebSockets (market data, account updates, etc).
-
-##### Market Data
-
-These examples demonstrate subscribing to & receiving market data from Binance's WebSockets:
-
-- ws-public.ts
- - Demonstration on general usage of the WebSocket client to subscribe to / unsubscribe from one or more market data topics.
-- ws-public-spot-orderbook.ts
- - Subscribing to orderbook events for multiple symbols in spot markets.
-- ws-public-spot-trades.ts
- - Subscribing to raw trades for multiple symbols in spot markets.
-- ws-unsubscribe.ts
- - Subscribing to a list of topics, and then unsubscribing from a few topics in that list.
-- ws-public-usdm-funding.ts
- - Simple example subscribing to a general topic, and how to process incoming events to only extract funding rates from those events.
-
-##### Account Data
-
-These examples demonstrate receiving account update events from Binance's WebSockets:
-
-- ws-userdata-listenkey.ts
- - Demonstration on subscribing to various user data streams (spot, margin, futures),
- - Handling incoming user data events
- - Using provided type guards to determine which product group the user data event is for (spot, margin, futures, etc).
-- ws-userdata-listenKey-testnet.ts
- - Similar to above, but on testnet.
-- ws-userdata-connection-safety.ts
- - Demonstration on extra safety around the first user data stream connection.
- - Note: this is overkill in most situations...
-
-##### WebSocket API
-
-These examples demonstrate how to send commands using Binance's WebSocket API (e.g. submitting orders). Very similar to the REST API, but using a persisted WebSocket connection instead of HTTP requests.
-
-- ws-api-client.ts
- - Demonstration of using Binance's WebSocket API in Node.js/JavaScript/TypeScript, using the WebsocketAPIClient.
- - This WebsocketAPIClient is very similar to a REST client, with one method per available command (endpoint) and fully typed requests & responses.
- - Routing is automatically handled via the WebsocketClient, including authentication and connection persistence. Just call the functions you need - the SDK does the rest.
- - From a usage perspective, it feels like a REST API - you can await responses just like a HTTP request.
-- ws-api-raw-promises.ts
- - More verbose usage of the WebSocket API using the `sendWSAPIRequest()` method.
- - The `WebsocketAPIClient` uses this method too, so in most cases it is simple to just use the `WebsocketAPIClient` instead.
-- ws-userdata-wsapi.ts
- - The listenKey workflow for the user data stream is deprecated (in spot markets).
- - This example demonstrates how to subscribe to the user data stream in spot markets, without a listen key, using the WebSocket API.
-
-##### Misc Workflows
-
-These are miscellaneous examples that cover one or more of the above categories:
-
-- ws-close.ts
- - Closing the (old listen-key driven) user data stream.
- - Unsubscribing from various topics.
-- ws-proxy-socks.ts
- - Using WebSockets over a SOCKS proxy.
-- deprecated-ws-public.ts
-
-
-### REST APIs
-
-All examples relating to REST APIs can be found in the [examples/REST](./REST/) folder. Most examples are named around functionality & product group. Any examples with "private" involve API calls relating to your account (such as changing settings or submitting orders, etc),
-
-High level summary for some of the available examples, but check the folder for a complete list:
-
-#### REST USDM Examples
-
-- `rest-future-bracket-order.ts` Creates an entry order plus a passive reduce-only TP limit order and an SL Algo Service order.
-- `rest-usdm-order.ts` Creates a single entry order using `submitNewOrder`.
-- `rest-usdm-order-sl.ts` Modifies a Hedge Mode LONG stop-loss order using Algo Service orders.
-
-================
-File: src/types/websockets/ws-api-responses.ts
-================
-import type {
- FuturesAlgoConditionalOrderTypes,
- FuturesAlgoOrderStatus,
- FuturesAlgoOrderType,
- PositionSide,
- PriceMatchMode,
- WorkingType,
-} from '../futures.js';
-import {
- numberInString,
- OrderSide,
- OrderTimeInForce,
- SelfTradePreventionMode,
-} from '../shared';
-import { OrderResponse } from '../spot';
-⋮----
-/**
- * Error response type
- */
-export interface ErrorResponse {
- code: number;
- msg: string;
-}
-⋮----
-export interface WSAPISessionStatus {
- apiKey: string;
- authorizedSince: number;
- connectedSince: number;
- returnRateLimits: boolean;
- serverTime: number;
- userDataStream: boolean;
-}
-⋮----
-/**
- * General response types
- */
-export interface WSAPIServerTime {
- serverTime: number;
-}
-⋮----
-/**
- * Market data response types
- */
-export interface WSAPIOrderBook {
- lastUpdateId: number;
- // [price, quantity]
- bids: [numberInString, numberInString][];
- asks: [numberInString, numberInString][];
-}
-⋮----
-// [price, quantity]
-⋮----
-export interface WSAPITrade {
- id: number;
- price: numberInString;
- qty: numberInString;
- quoteQty: numberInString;
- time: number;
- isBuyerMaker: boolean;
- isBestMatch: boolean;
-}
-⋮----
-export interface WSAPIAggregateTrade {
- a: number; // Aggregate trade ID
- p: numberInString; // Price
- q: numberInString; // Quantity
- f: number; // First trade ID
- l: number; // Last trade ID
- T: number; // Timestamp
- m: boolean; // Was the buyer the maker?
- M: boolean; // Was the trade the best price match?
-}
-⋮----
-a: number; // Aggregate trade ID
-p: numberInString; // Price
-q: numberInString; // Quantity
-f: number; // First trade ID
-l: number; // Last trade ID
-T: number; // Timestamp
-m: boolean; // Was the buyer the maker?
-M: boolean; // Was the trade the best price match?
-⋮----
-export type WSAPIKline = [
- number, // Kline open time
- numberInString, // Open price
- numberInString, // High price
- numberInString, // Low price
- numberInString, // Close price
- numberInString, // Volume
- number, // Kline close time
- numberInString, // Quote asset volume
- number, // Number of trades
- numberInString, // Taker buy base asset volume
- numberInString, // Taker buy quote asset volume
- numberInString, // Unused field
-];
-⋮----
-number, // Kline open time
-numberInString, // Open price
-numberInString, // High price
-numberInString, // Low price
-numberInString, // Close price
-numberInString, // Volume
-number, // Kline close time
-numberInString, // Quote asset volume
-number, // Number of trades
-numberInString, // Taker buy base asset volume
-numberInString, // Taker buy quote asset volume
-numberInString, // Unused field
-⋮----
-export interface WSAPIAvgPrice {
- mins: number; // Average price interval (in minutes)
- price: numberInString; // Average price
- closeTime: number; // Last trade time
-}
-⋮----
-mins: number; // Average price interval (in minutes)
-price: numberInString; // Average price
-closeTime: number; // Last trade time
-⋮----
-export interface WSAPIFullTicker {
- symbol: string;
- priceChange: numberInString;
- priceChangePercent: numberInString;
- weightedAvgPrice: numberInString;
- prevClosePrice: numberInString;
- lastPrice: numberInString;
- lastQty: numberInString;
- bidPrice: numberInString;
- bidQty: numberInString;
- askPrice: numberInString;
- askQty: numberInString;
- openPrice: numberInString;
- highPrice: numberInString;
- lowPrice: numberInString;
- volume: numberInString;
- quoteVolume: numberInString;
- openTime: number;
- closeTime: number;
- firstId: number; // First trade ID
- lastId: number; // Last trade ID
- count: number; // Number of trades
-}
-⋮----
-firstId: number; // First trade ID
-lastId: number; // Last trade ID
-count: number; // Number of trades
-⋮----
-export interface WSAPIMiniTicker {
- symbol: string;
- openPrice: numberInString;
- highPrice: numberInString;
- lowPrice: numberInString;
- lastPrice: numberInString;
- volume: numberInString;
- quoteVolume: numberInString;
- openTime: number;
- closeTime: number;
- firstId: number; // First trade ID
- lastId: number; // Last trade ID
- count: number; // Number of trades
-}
-⋮----
-firstId: number; // First trade ID
-lastId: number; // Last trade ID
-count: number; // Number of trades
-⋮----
-export interface WSAPIPriceTicker {
- symbol: string;
- price: numberInString;
-}
-⋮----
-export interface WSAPIBookTicker {
- symbol: string;
- bidPrice: numberInString;
- bidQty: numberInString;
- askPrice: numberInString;
- askQty: numberInString;
-}
-⋮----
-/**
- * Futures market data response types
- */
-export interface WSAPIFuturesOrderBook {
- lastUpdateId: number;
- E: number; // Message output time
- T: number; // Transaction time
- // [price, quantity]
- bids: [numberInString, numberInString][];
- asks: [numberInString, numberInString][];
-}
-⋮----
-E: number; // Message output time
-T: number; // Transaction time
-// [price, quantity]
-⋮----
-export interface WSAPIFuturesPriceTicker {
- symbol: string;
- price: numberInString;
- time: number; // Transaction time
-}
-⋮----
-time: number; // Transaction time
-⋮----
-export interface WSAPIFuturesBookTicker {
- lastUpdateId: number;
- symbol: string;
- bidPrice: numberInString;
- bidQty: numberInString;
- askPrice: numberInString;
- askQty: numberInString;
- time: number; // Transaction time
-}
-⋮----
-time: number; // Transaction time
-⋮----
-/**
- * Account response types
- */
-export interface WSAPIAccountInformation {
- makerCommission: number;
- takerCommission: number;
- buyerCommission: number;
- sellerCommission: number;
- canTrade: boolean;
- canWithdraw: boolean;
- canDeposit: boolean;
- commissionRates: {
- maker: numberInString;
- taker: numberInString;
- buyer: numberInString;
- seller: numberInString;
- };
- brokered: boolean;
- requireSelfTradePrevention: boolean;
- preventSor: boolean;
- updateTime: number;
- accountType: string;
- balances: {
- asset: string;
- free: numberInString;
- locked: numberInString;
- }[];
- permissions: string[];
- uid: number;
-}
-⋮----
-export interface WSAPIAccountCommission {
- symbol: string;
- standardCommission: {
- maker: numberInString;
- taker: numberInString;
- buyer: numberInString;
- seller: numberInString;
- };
- taxCommission: {
- maker: numberInString;
- taker: numberInString;
- buyer: numberInString;
- seller: numberInString;
- };
- discount: {
- enabledForAccount: boolean;
- enabledForSymbol: boolean;
- discountAsset: string;
- discount: numberInString;
- };
-}
-⋮----
-export interface WSAPIRateLimit {
- rateLimitType: string;
- interval: string;
- intervalNum: number;
- limit: number;
- count: number;
-}
-⋮----
-export interface WSAPIOrder {
- symbol: string;
- orderId: number;
- orderListId: number;
- clientOrderId: string;
- price: numberInString;
- origQty: numberInString;
- executedQty: numberInString;
- cummulativeQuoteQty: numberInString;
- status: string;
- timeInForce: string;
- type: string;
- side: string;
- stopPrice: numberInString;
- icebergQty: numberInString;
- time: number;
- updateTime: number;
- isWorking: boolean;
- workingTime: number;
- origQuoteOrderQty: numberInString;
- selfTradePreventionMode: string;
- preventedMatchId?: number;
- preventedQuantity?: numberInString;
- /** Present only for expired orders. */
- expiryReason?: string;
-}
-⋮----
-/** Present only for expired orders. */
-⋮----
-export interface WSAPIBlockTrade {
- id: number;
- price: numberInString;
- qty: numberInString;
- quoteQty: numberInString;
- time: number;
- isBuyerMaker: boolean;
-}
-⋮----
-export interface WSAPIOrderList {
- orderListId: number;
- contingencyType: string;
- listStatusType: string;
- listOrderStatus: string;
- listClientOrderId: string;
- transactionTime: number;
- symbol: string;
- orders: {
- symbol: string;
- orderId: number;
- clientOrderId: string;
- }[];
-}
-⋮----
-export interface WSAPITrade {
- symbol: string;
- id: number;
- orderId: number;
- orderListId: number;
- price: numberInString;
- qty: numberInString;
- quoteQty: numberInString;
- commission: numberInString;
- commissionAsset: string;
- time: number;
- isBuyer: boolean;
- isMaker: boolean;
- isBestMatch: boolean;
-}
-⋮----
-export interface WSAPIPreventedMatch {
- symbol: string;
- preventedMatchId: number;
- takerOrderId: number;
- makerSymbol: string;
- makerOrderId: number;
- tradeGroupId: number;
- selfTradePreventionMode: string;
- price: numberInString;
- makerPreventedQuantity: numberInString;
- transactTime: number;
-}
-⋮----
-export interface WSAPIAllocation {
- symbol: string;
- allocationId: number;
- allocationType: string;
- orderId: number;
- orderListId: number;
- price: numberInString;
- qty: numberInString;
- quoteQty: numberInString;
- commission: numberInString;
- commissionAsset: string;
- time: number;
- isBuyer: boolean;
- isMaker: boolean;
- isAllocator: boolean;
-}
-⋮----
-/**
- * Trading response types
- */
-export interface WSAPIOrderTestResponse {
- // Empty response object
- [key: string]: never;
-}
-⋮----
-// Empty response object
-⋮----
-export interface WSAPIOrderTestWithCommission {
- standardCommissionForOrder: {
- maker: numberInString;
- taker: numberInString;
- };
- taxCommissionForOrder: {
- maker: numberInString;
- taker: numberInString;
- };
- discount: {
- enabledForAccount: boolean;
- enabledForSymbol: boolean;
- discountAsset: string;
- discount: numberInString;
- };
-}
-⋮----
-export interface WSAPIOrderCancel {
- symbol: string;
- origClientOrderId: string;
- orderId: number;
- orderListId: number;
- clientOrderId: string;
- transactTime: number;
- price: numberInString;
- origQty: numberInString;
- executedQty: numberInString;
- origQuoteOrderQty: numberInString;
- cummulativeQuoteQty: numberInString;
- status: string;
- timeInForce: string;
- type: string;
- side: string;
- stopPrice?: numberInString;
- trailingDelta?: number;
- trailingTime?: number;
- icebergQty?: numberInString;
- strategyId?: number;
- strategyType?: number;
- selfTradePreventionMode: string;
-}
-⋮----
-export interface WSAPIOrderCancelReplaceResponse {
- cancelResult: 'SUCCESS' | 'FAILURE' | 'NOT_ATTEMPTED';
- newOrderResult: 'SUCCESS' | 'FAILURE' | 'NOT_ATTEMPTED';
- cancelResponse: WSAPIOrderCancel | ErrorResponse;
- newOrderResponse: OrderResponse | ErrorResponse | null;
-}
-⋮----
-export interface WSAPIOrderListCancelResponse {
- orderListId: number;
- contingencyType: string;
- listStatusType: string;
- listOrderStatus: string;
- listClientOrderId: string;
- transactionTime: number;
- symbol: string;
- orders: {
- symbol: string;
- orderId: number;
- clientOrderId: string;
- }[];
- orderReports: WSAPIOrderCancel[];
-}
-⋮----
-/**
- * Order list response types
- */
-export interface WSAPIOrderListPlaceResponse {
- orderListId: number;
- contingencyType: string;
- listStatusType: string;
- listOrderStatus: string;
- listClientOrderId: string;
- transactionTime: number;
- symbol: string;
- orders: {
- symbol: string;
- orderId: number;
- clientOrderId: string;
- }[];
- orderReports: OrderResponse[];
-}
-⋮----
-export interface WSAPIOrderListStatusResponse {
- orderListId: number;
- contingencyType: string;
- listStatusType: string;
- listOrderStatus: string;
- listClientOrderId: string;
- transactionTime: number;
- symbol: string;
- orders: {
- symbol: string;
- orderId: number;
- clientOrderId: string;
- /** Present only for expired orders. */
- expiryReason?: string;
- }[];
-}
-⋮----
-/** Present only for expired orders. */
-⋮----
-/**
- * SOR response types
- */
-export interface WSAPISOROrderPlaceResponse {
- symbol: string;
- orderId: number;
- orderListId: number;
- clientOrderId: string;
- transactTime: number;
- price: string;
- origQty: string;
- executedQty: string;
- origQuoteOrderQty: string;
- cummulativeQuoteQty: string;
- status: string;
- timeInForce: string;
- type: string;
- side: string;
- workingTime: number;
- /** With newOrderRespType RESULT or FULL when the order has an expiry reason. */
- expiryReason?: string;
- fills: {
- matchType: string;
- price: string;
- qty: string;
- commission: string;
- commissionAsset: string;
- tradeId: number;
- allocId: number;
- }[];
- workingFloor: string;
- selfTradePreventionMode: string;
- usedSor: boolean;
-}
-⋮----
-/** With newOrderRespType RESULT or FULL when the order has an expiry reason. */
-⋮----
-export interface WSAPISOROrderTestResponse {
- // Empty response object
- [key: string]: never;
-}
-⋮----
-// Empty response object
-⋮----
-export interface WSAPISOROrderTestResponseWithCommission {
- standardCommissionForOrder: {
- maker: numberInString;
- taker: numberInString;
- };
- taxCommissionForOrder: {
- maker: numberInString;
- taker: numberInString;
- };
- discount: {
- enabledForAccount: boolean;
- enabledForSymbol: boolean;
- discountAsset: string;
- discount: numberInString;
- };
-}
-⋮----
-/**
- * Futures trading response types
- */
-export interface WSAPIFuturesOrder {
- orderId: number;
- symbol: string;
- status: string;
- clientOrderId: string;
- price: string;
- avgPrice: string;
- origQty: string;
- executedQty: string;
- cumQty: string;
- cumQuote: string;
- timeInForce: string;
- type: string;
- reduceOnly: boolean;
- closePosition: boolean;
- side: string;
- positionSide: string;
- stopPrice: string;
- workingType: string;
- priceProtect: boolean;
- origType: string;
- priceMatch: string;
- selfTradePreventionMode: string;
- goodTillDate: number;
- updateTime: number;
- time?: number;
- activatePrice?: string;
- priceRate?: string;
-}
-⋮----
-export interface WSAPIFuturesPosition {
- entryPrice: string;
- breakEvenPrice: string;
- marginType: string;
- isAutoAddMargin: string;
- isolatedMargin: string;
- leverage: string;
- liquidationPrice: string;
- markPrice: string;
- maxNotionalValue: string;
- positionAmt: string;
- notional: string;
- isolatedWallet: string;
- symbol: string;
- unRealizedProfit: string;
- positionSide: string;
- updateTime: number;
-}
-⋮----
-export interface WSAPIFuturesPositionV2 {
- symbol: string;
- positionSide: string;
- positionAmt: string;
- entryPrice: string;
- breakEvenPrice: string;
- markPrice: string;
- unrealizedProfit: string;
- liquidationPrice: string;
- isolatedMargin: string;
- notional: string;
- marginAsset: string;
- isolatedWallet: string;
- initialMargin: string;
- maintMargin: string;
- positionInitialMargin: string;
- openOrderInitialMargin: string;
- adl: number;
- bidNotional: string;
- askNotional: string;
- updateTime: number;
-}
-⋮----
-export interface WSAPIFuturesAlgoOrder {
- algoId: number;
- clientAlgoId: string;
- algoType: FuturesAlgoOrderType;
- orderType: FuturesAlgoConditionalOrderTypes;
- symbol: string;
- side: OrderSide;
- positionSide: PositionSide;
- timeInForce: OrderTimeInForce;
- quantity: numberInString;
- algoStatus: FuturesAlgoOrderStatus;
- triggerPrice: numberInString;
- price: numberInString;
- icebergQuantity: numberInString | null;
- selfTradePreventionMode: SelfTradePreventionMode;
- workingType: WorkingType;
- priceMatch: PriceMatchMode;
- closePosition: boolean;
- priceProtect: boolean;
- reduceOnly: boolean;
- createTime: number;
- updateTime: number;
- triggerTime: number;
- goodTillDate: number;
-}
-⋮----
-export interface WSAPIFuturesAlgoOrderCancelResponse extends ErrorResponse {
- algoId: number;
- clientAlgoId: string;
-}
-⋮----
-/**
- * Futures account response types
- */
-export interface WSAPIFuturesAccountBalanceItem {
- accountAlias: string;
- asset: string;
- balance: string;
- crossWalletBalance: string;
- crossUnPnl: string;
- availableBalance: string;
- maxWithdrawAmount: string;
- marginAvailable: boolean;
- updateTime: number;
-}
-⋮----
-export interface WSAPIFuturesAccountAsset {
- asset: string;
- walletBalance: string;
- unrealizedProfit: string;
- marginBalance: string;
- maintMargin: string;
- initialMargin: string;
- positionInitialMargin: string;
- openOrderInitialMargin: string;
- crossWalletBalance: string;
- crossUnPnl: string;
- availableBalance: string;
- maxWithdrawAmount: string;
- marginAvailable?: boolean;
- updateTime: number;
-}
-⋮----
-export interface WSAPIFuturesAccountPosition {
- symbol: string;
- initialMargin?: string;
- maintMargin?: string;
- unrealizedProfit: string;
- positionInitialMargin?: string;
- openOrderInitialMargin?: string;
- leverage?: string;
- isolated?: boolean;
- entryPrice?: string;
- breakEvenPrice?: string;
- maxNotional?: string;
- bidNotional?: string;
- askNotional?: string;
- positionSide: string;
- positionAmt: string;
- updateTime: number;
-}
-⋮----
-export interface WSAPIFuturesAccountStatus {
- feeTier?: number;
- canTrade?: boolean;
- canDeposit?: boolean;
- canWithdraw?: boolean;
- updateTime: number;
- multiAssetsMargin: boolean;
- tradeGroupId?: number;
- totalInitialMargin: string;
- totalMaintMargin: string;
- totalWalletBalance: string;
- totalUnrealizedProfit: string;
- totalMarginBalance: string;
- totalPositionInitialMargin: string;
- totalOpenOrderInitialMargin: string;
- totalCrossWalletBalance: string;
- totalCrossUnPnl: string;
- availableBalance: string;
- maxWithdrawAmount: string;
- assets: WSAPIFuturesAccountAsset[];
- positions: WSAPIFuturesAccountPosition[];
-}
-⋮----
-/**
- * Spot Order response types based on newOrderRespType parameter
- */
-export interface WSAPISpotOrderACK {
- symbol: string;
- orderId: number;
- orderListId: number; // always -1 for singular orders
- clientOrderId: string;
- transactTime: number;
-}
-⋮----
-orderListId: number; // always -1 for singular orders
-⋮----
-export interface WSAPISpotOrderRESULT extends WSAPISpotOrderACK {
- price: numberInString;
- origQty: numberInString;
- executedQty: numberInString;
- origQuoteOrderQty: numberInString;
- cummulativeQuoteQty: numberInString;
- status: string;
- timeInForce: string;
- type: string;
- side: string;
- workingTime: number;
- selfTradePreventionMode: string;
- /** With newOrderRespType RESULT or FULL when the order has an expiry reason. */
- expiryReason?: string;
-}
-⋮----
-/** With newOrderRespType RESULT or FULL when the order has an expiry reason. */
-⋮----
-export interface WSAPISpotOrderFill {
- price: numberInString;
- qty: numberInString;
- commission: numberInString;
- commissionAsset: string;
- tradeId: number;
-}
-⋮----
-export interface WSAPISpotOrderFULL extends WSAPISpotOrderRESULT {
- fills: WSAPISpotOrderFill[];
-}
-⋮----
-export type WSAPISpotOrderResponse =
- | WSAPISpotOrderACK
- | WSAPISpotOrderRESULT
- | WSAPISpotOrderFULL;
-
-================
-File: src/types/websockets/ws-events-formatted.ts
-================
-import {
- FuturesAlgoConditionalOrderTypes,
- FuturesAlgoOrderStatus,
- FuturesAlgoOrderType,
- FuturesContractType,
- FuturesOrderType,
- MarginType,
- PositionSide,
- PriceMatchMode,
- WorkingType,
-} from '../futures';
-import {
- KlineInterval,
- numberInString,
- OCOOrderStatus,
- OCOStatus,
- OrderBookRowFormatted,
- OrderExecutionType,
- OrderSide,
- OrderStatus,
- OrderTimeInForce,
- OrderType,
- SelfTradePreventionMode,
-} from '../shared';
-import { AccountUpdateEventType } from './ws-events-raw';
-import { WsSharedBase } from './ws-general';
-⋮----
-export interface WsMessageKlineFormatted extends WsSharedBase {
- eventType: 'kline' | 'indexPrice_kline';
- eventTime: number;
- symbol: string;
- kline: {
- startTime: number;
- endTime: number;
- symbol: string;
- interval: KlineInterval;
- firstTradeId: number;
- lastTradeId: number;
- open: number;
- close: number;
- high: number;
- low: number;
- volume: number;
- trades: number;
- final: boolean;
- quoteVolume: number;
- volumeActive: number;
- quoteVolumeActive: number;
- ignored: number;
- };
-}
-⋮----
-export interface WsMessageContinuousKlineFormatted extends WsSharedBase {
- eventType: 'continuous_kline';
- eventTime: number;
- symbol: string;
- contractType: FuturesContractType;
- kline: {
- startTime: number;
- endTime: number;
- symbol: string;
- interval: KlineInterval;
- firstTradeId: number;
- lastTradeId: number;
- open: number;
- close: number;
- high: number;
- low: number;
- volume: number;
- trades: number;
- final: boolean;
- quoteVolume: number;
- volumeActive: number;
- quoteVolumeActive: number;
- ignored: number;
- };
-}
-⋮----
-export interface WsMessageAggTradeFormatted extends WsSharedBase {
- eventType: 'aggTrade';
- eventTime: number;
- symbol: string;
- tradeId: number;
- price: number;
- quantity: number;
- firstTradeId: number;
- lastTradeId: number;
- time: number;
- maker: boolean;
- ignored: boolean;
-}
-⋮----
-export interface WsMessageTradeFormatted extends WsSharedBase {
- eventType: 'trade';
- eventTime: number;
- symbol: string;
- tradeId: number;
- price: number;
- quantity: number;
- buyerOrderId: number;
- sellerOrderId: number;
- time: number;
- maker: boolean;
- ignored: boolean;
-}
-⋮----
-export interface WsMessage24hrMiniTickerFormatted extends WsSharedBase {
- eventType: '24hrMiniTicker';
- eventTime: number;
- symbol: string;
- contractSymbol?: string; //coinm only
- close: number;
- open: number;
- high: number;
- low: number;
- baseAssetVolume: number;
- quoteAssetVolume: number;
-}
-⋮----
-contractSymbol?: string; //coinm only
-⋮----
-export interface WsMessage24hrTickerFormatted extends WsSharedBase {
- /**
- * @deprecated '!ticker@arr' stream has been deprecated by Binance (2025-11-14).
- * Will be retired on 2026-03-26.
- * Use '@ticker' for single symbol or '!miniTicker@arr' for all symbols instead.
- */
- eventType: '24hrTicker' | '!ticker@arr';
- eventTime: number;
- symbol: string;
- priceChange: number;
- priceChangePercent: number;
- weightedAveragePrice: number;
- previousClose: number;
- currentClose: number;
- closeQuantity: number;
- bestBid: number;
- bestBidQuantity: number;
- bestAskPrice: number;
- bestAskQuantity: number;
- open: number;
- high: number;
- low: number;
- baseAssetVolume: number;
- quoteAssetVolume: number;
- openTime: number;
- closeTime: number;
- firstTradeId: number;
- lastTradeId: number;
- trades: number;
-}
-⋮----
-/**
- * @deprecated '!ticker@arr' stream has been deprecated by Binance (2025-11-14).
- * Will be retired on 2026-03-26.
- * Use '@ticker' for single symbol or '!miniTicker@arr' for all symbols instead.
- */
-⋮----
-export interface WsMessageRollingWindowTickerFormatted extends WsSharedBase {
- eventType: 'ticker';
- eventTime: number;
- symbol: string;
- priceChange: number;
- priceChangePercent: number;
- weightedAveragePrice: number;
- open: number;
- high: number;
- low: number;
- currentClose: number;
- baseAssetVolume: number;
- quoteAssetVolume: number;
- openTime: number;
- closeTime: number;
- firstTradeId: number;
- lastTradeId: number;
- trades: number;
- streamName: string;
- isWSAPIResponse: false;
-}
-⋮----
-export interface WsMessageBookTickerEventFormatted extends WsSharedBase {
- eventType: 'bookTicker';
- updateId: number;
- eventTime: number;
- transactionTime: number;
- symbol: string;
- bidPrice: number;
- bidQty: number;
- askPrice: number;
- askQty: number;
-}
-⋮----
-export interface WsMessagePartialBookDepthEventFormatted extends WsSharedBase {
- eventType: 'partialBookDepth' | 'string';
- lastUpdateId: number;
- bids: OrderBookRowFormatted[];
- asks: OrderBookRowFormatted[];
-}
-⋮----
-export interface WsMessageDiffBookDepthEventFormatted extends WsSharedBase {
- eventType: 'depthUpdate';
- eventTime: number;
- transactionTime: number; // futures only
- symbol: string;
- firstUpdateId: number;
- lastUpdateId: number;
- finalUpdateId: number; // futures only
- bidDepthDelta: { price: number; quantity: number }[];
- askDepthDelta: { price: number; quantity: number }[];
-}
-⋮----
-transactionTime: number; // futures only
-⋮----
-finalUpdateId: number; // futures only
-⋮----
-/**
- * USER DATA WS EVENTS
- **/
-⋮----
-interface SpotBalanceFormatted {
- asset: string;
- availableBalance: number;
- onOrderBalance: number;
-}
-⋮----
-export interface WsMessageSpotOutboundAccountPositionFormatted
- extends WsSharedBase {
- eventType: 'outboundAccountPosition';
- eventTime: number;
- lastAccountUpdateTime: number;
- balances: SpotBalanceFormatted[];
-}
-⋮----
-export interface WsMessageSpotBalanceUpdateFormatted extends WsSharedBase {
- eventType: 'balanceUpdate';
- eventTime: number;
- asset: string;
- balanceDelta: number;
- clearTime: number;
-}
-⋮----
-export interface WsMessageSpotUserDataExecutionReportEventFormatted
- extends WsSharedBase {
- eventType: 'executionReport';
- eventTime: number;
- symbol: string;
- newClientOrderId: string;
- side: OrderSide;
- orderType: OrderType;
- cancelType: OrderTimeInForce;
- quantity: number;
- price: number;
- stopPrice: number;
- icebergQuantity: number;
- orderListId: number;
- originalClientOrderId: string;
- executionType: OrderExecutionType;
- orderStatus: OrderStatus;
- rejectReason: string;
- orderId: number;
- lastTradeQuantity: number;
- accumulatedQuantity: number;
- lastTradePrice: number;
- commission: number;
- commissionAsset: string | null;
- tradeTime: number;
- tradeId: number;
- ignoreThis1: number;
- isOrderOnBook: boolean;
- isMaker: boolean;
- ignoreThis2: true;
- orderCreationTime: number;
- cummulativeQuoteAssetTransactedQty: number;
- lastQuoteAssetTransactedQty: number;
- orderQuoteQty: number;
- workingTime: number;
- selfTradePreventionMode: SelfTradePreventionMode;
- expiryReason?: string;
- trailingDelta?: number;
- preventedMatchId?: number;
- trailingTime?: number;
- strategyId?: number;
- strategyType?: number;
- tradeGroupId?: number;
- counterOrderId?: number;
- preventedQuantity?: number;
- lastPreventedQuantity?: number;
- counterSymbol?: string;
- preventedExecutionQuantity?: number;
- preventedExecutionPrice?: number;
- preventedExecutionQuoteQty?: number;
-}
-⋮----
-export interface WsMessagePortfolioMarginProAccountUpdateFormatted
- extends WsSharedBase {
- eventType: 'PM_PRO_ACCOUNT_UPDATE';
- eventTime: number;
- uniMMR: number;
- accountEquity: number;
- actualEquity: number;
- initialMargin: number;
- maintenanceMargin: number;
- availableBalance: number;
- virtualMaxWithdraw: number;
-}
-⋮----
-export interface WsMessageWsapiServerShutdownFormatted extends WsSharedBase {
- eventType: 'serverShutdown';
- eventTime: number;
-}
-⋮----
-export interface OrderObjectFormatted {
- symbol: string;
- orderId: number;
- clientOrderId: string;
-}
-⋮----
-export interface WsMessageSpotUserDataListStatusEventFormatted
- extends WsSharedBase {
- eventType: 'listStatus';
- eventTime: number;
- symbol: string;
- orderListId: number;
- contingencyType: 'OCO';
- listStatusType: OCOStatus;
- listOrderStatus: OCOOrderStatus;
- listRejectReason: string;
- listClientOrderId: string;
- transactionTime: number;
- orders: OrderObjectFormatted[];
-}
-⋮----
-export interface WsAccountUpdatedBalance {
- asset: string;
- balanceChange: number; // this is except for pnl and commission
- crossWalletBalance: number;
- walletBalance: number;
-}
-⋮----
-balanceChange: number; // this is except for pnl and commission
-⋮----
-export interface WsUpdatedPosition {
- symbol: string;
- marginAsset: string;
- positionAmount: number;
- entryPrice: number;
- accumulatedRealisedPreFee: number;
- unrealisedPnl: number;
- marginType: 'cross' | 'isolated';
- isolatedWalletAmount: number;
- positionSide: PositionSide;
-}
-⋮----
-export interface WsMessageFuturesUserDataListenKeyExpiredFormatted
- extends WsSharedBase {
- eventType: 'listenKeyExpired';
- eventTime: number;
-}
-⋮----
-export interface WsMessageFuturesMarginCalledPositionFormatted {
- symbol: string;
- positionSide: PositionSide;
- positionAmount: number;
- marginType: Uppercase;
- isolatedWalletAmount: number;
- markPrice: number;
- unrealisedPnl: number;
- maintenanceMarginRequired: number;
-}
-⋮----
-export interface WsMessageFuturesUserDataMarginCallFormatted
- extends WsSharedBase {
- eventType: 'MARGIN_CALL';
- eventTime: number;
- crossWalletBalance: number;
- positions: WsMessageFuturesMarginCalledPositionFormatted[];
-}
-⋮----
-export interface WsMessageFuturesUserDataAccountUpdateFormatted
- extends WsSharedBase {
- eventType: 'ACCOUNT_UPDATE';
- eventTime: number;
- transactionTime: number;
- updateData: {
- updateEventType: AccountUpdateEventType;
- updatedBalances: WsAccountUpdatedBalance[];
- updatedPositions: WsUpdatedPosition[];
- };
-}
-⋮----
-export interface WsMessageFuturesUserDataCondOrderTriggerRejectEventFormatted
- extends WsSharedBase {
- eventType: 'CONDITIONAL_ORDER_TRIGGER_REJECT';
- eventTime: number;
- transactionTime: number;
- order: {
- symbol: string;
- orderId: number;
- reason: string;
- };
-}
-⋮----
-export interface WsMessageFuturesUserDataTradeLiteEventFormatted
- extends WsSharedBase {
- eventType: 'TRADE_LITE';
- eventTime: number;
- transactionTime: number;
- symbol: string;
- originalQuantity: number;
- originalPrice: number;
- isMakerSide: boolean;
- clientOrderId: string;
- side: 'BUY' | 'SELL';
- lastFilledPrice: number;
- lastFilledQuantity: number;
- tradeId: number;
- orderId: number;
-}
-⋮----
-export interface WsMessageFuturesUserDataTradeUpdateEventFormatted
- extends WsSharedBase {
- eventType: 'ORDER_TRADE_UPDATE';
- eventTime: number;
- transactionTime: number;
- order: {
- symbol: string;
- clientOrderId: string;
- orderSide: OrderSide;
- orderType: FuturesOrderType;
- timeInForce: OrderTimeInForce;
- originalQuantity: number;
- originalPrice: number;
- averagePrice: number;
- stopPrice: number;
- executionType: OrderExecutionType;
- orderStatus: OrderStatus;
- orderId: number;
- lastFilledQuantity: number;
- orderFilledAccumulatedQuantity: number;
- lastFilledPrice: number;
- commissionAsset: string;
- commissionAmount: number;
- orderTradeTime: number;
- tradeId: number;
- bidsNotional: number;
- asksNotional: number;
- isMakerTrade: boolean;
- isReduceOnly: boolean;
- stopPriceWorkingType: WorkingType;
- originalOrderType: FuturesOrderType;
- positionSide: PositionSide;
- isCloseAll: boolean;
- realisedProfit: number;
- trailingStopActivationPrice?: number;
- trailingStopCallbackRate?: number;
- orderExpireReason?: string; // Order expire reason
- pP?: boolean; // ignore
- si?: number; // ignore
- ss?: number; // ignore
- };
-}
-⋮----
-orderExpireReason?: string; // Order expire reason
-pP?: boolean; // ignore
-si?: number; // ignore
-ss?: number; // ignore
-⋮----
-export interface WsMessageFuturesUserDataAccountConfigUpdateEventFormatted
- extends WsSharedBase {
- eventType: 'ACCOUNT_CONFIG_UPDATE';
- eventTime: number;
- transactionTime: number;
- assetConfiguration?: {
- symbol: string;
- leverage: number;
- };
- accountConfiguration?: {
- isMultiAssetsMode: boolean;
- };
-}
-⋮----
-export interface WsMessageIndexPriceUpdateEventFormatted extends WsSharedBase {
- eventType: 'indexPriceUpdate';
- eventTime: number;
- symbol: string;
- indexPrice: number;
-}
-⋮----
-export interface WsMessageMarkPriceEventFormatted extends WsSharedBase {
- eventType: 'markPriceUpdate';
- eventTime: number;
- symbol: string;
- markPrice: number;
- /** Mark price moving average (USDⓈ-M). */
- markPriceMovingAverage?: number;
- settlePriceEstimate: number;
- indexPrice?: number; // undefined for coinm
- /** Note this is in decimal format (e.g. 0.0004 === 0.04%). Multiply by 100 to get funding rate percent value */
- fundingRate: number | '';
- nextFundingTime: number;
-}
-⋮----
-/** Mark price moving average (USDⓈ-M). */
-⋮----
-indexPrice?: number; // undefined for coinm
-/** Note this is in decimal format (e.g. 0.0004 === 0.04%). Multiply by 100 to get funding rate percent value */
-⋮----
-export interface WsLiquidationOrderFormatted {
- symbol: string;
- side: OrderSide;
- orderType: FuturesOrderType;
- timeInForce: OrderTimeInForce;
- quantity: number;
- price: number;
- averagePrice: number;
- orderStatus: OrderStatus;
- lastFilledQuantity: number;
- orderFilledAccumulatedQuantity: number;
- orderTradeTime: number;
-}
-⋮----
-export interface WsMessageForceOrderFormatted extends WsSharedBase {
- eventType: 'forceOrder';
- eventTime: number;
- liquidationOrder: WsLiquidationOrderFormatted;
-}
-⋮----
-export interface WsMessageFuturesUserDataStrategyUpdateFormatted
- extends WsSharedBase {
- eventType: 'STRATEGY_UPDATE';
- transactionTime: number;
- eventTime: number;
- strategy: {
- strategyId: number;
- strategyType: string;
- strategyStatus: string;
- symbol: string;
- updateTime: number;
- opCode: number;
- };
-}
-⋮----
-export interface WsMessageFuturesUserDataGridUpdateFormatted
- extends WsSharedBase {
- eventType: 'GRID_UPDATE';
- transactionTime: number;
- eventTime: number;
- grid: {
- strategyId: number;
- strategyType: string;
- strategyStatus: string;
- symbol: string;
- realizedPnl: numberInString;
- unmatchedAveragePrice: numberInString;
- unmatchedQuantity: numberInString;
- unmatchedFee: numberInString;
- matchedPnl: numberInString;
- updateTime: number;
- };
-}
-⋮----
-export interface WsMessageFuturesUserDataContractInfoFormatted
- extends WsSharedBase {
- eventType: 'contractInfo';
- eventTime: number;
- symbol: string;
- pair: string;
- contractType: string;
- deliveryDateTime: number;
- onboardDateTime: number;
- contractStatus: string;
- notionalBrackets: {
- notionalBracket: number;
- floorNotional: number;
- capNotional: number;
- maintenanceRatio: number;
- auxiliaryNumber: number;
- minLeverage: number;
- maxLeverage: number;
- }[];
-}
-⋮----
-export interface WsMessageFuturesUserDataAlgoUpdateFormatted
- extends WsSharedBase {
- eventType: 'ALGO_UPDATE';
- eventTime: number;
- transactionTime: number;
- algoOrder: {
- clientAlgoId: string;
- algoId: number;
- algoType: FuturesAlgoOrderType;
- orderType: FuturesAlgoConditionalOrderTypes;
- symbol: string;
- side: OrderSide;
- positionSide: PositionSide;
- timeInForce: OrderTimeInForce;
- quantity: numberInString;
- algoStatus: FuturesAlgoOrderStatus;
- orderId: string;
- averagePrice: numberInString;
- executedQty: numberInString;
- actualOrderType: numberInString; // TODO unsure if it's FuturesOrderType
- triggerPrice: numberInString;
- price: numberInString;
- selfTradePreventionMode: SelfTradePreventionMode;
- workingType: WorkingType;
- priceMatch: PriceMatchMode;
- closePosition: boolean;
- priceProtect: boolean;
- reduceOnly: boolean;
- triggerTime: number;
- goodTillDate: number;
- };
-}
-⋮----
-actualOrderType: numberInString; // TODO unsure if it's FuturesOrderType
-⋮----
-export type WsMessageSpotUserDataEventFormatted =
- | WsMessageSpotUserDataExecutionReportEventFormatted
- | WsMessageSpotOutboundAccountPositionFormatted
- | WsMessageSpotBalanceUpdateFormatted
- | WsMessageSpotUserDataListStatusEventFormatted;
-⋮----
-export type WsMessageFuturesUserDataEventFormatted =
- | WsMessageFuturesUserDataAccountUpdateFormatted
- | WsMessageFuturesUserDataListenKeyExpiredFormatted
- | WsMessageFuturesUserDataMarginCallFormatted
- | WsMessageFuturesUserDataTradeUpdateEventFormatted
- | WsMessageFuturesUserDataAlgoUpdateFormatted
- | WsMessageFuturesUserDataAccountConfigUpdateEventFormatted
- | WsMessageFuturesUserDataCondOrderTriggerRejectEventFormatted
- | WsMessageFuturesUserDataTradeLiteEventFormatted
- | WsMessageFuturesUserDataStrategyUpdateFormatted
- | WsMessageFuturesUserDataGridUpdateFormatted
- | WsMessageFuturesUserDataContractInfoFormatted;
-⋮----
-export type WsUserDataEvents =
- | WsMessageSpotUserDataEventFormatted
- | WsMessageFuturesUserDataEventFormatted
- | WsMessagePortfolioMarginProAccountUpdateFormatted;
-⋮----
-export type WsFormattedMessage =
- | WsUserDataEvents
- | WsMessageWsapiServerShutdownFormatted
- | WsMessageKlineFormatted
- | WsMessageAggTradeFormatted
- | WsMessageTradeFormatted
- | WsMessage24hrMiniTickerFormatted
- | WsMessage24hrTickerFormatted
- | WsMessageBookTickerEventFormatted
- | WsMessagePartialBookDepthEventFormatted
- | WsMessageDiffBookDepthEventFormatted
- | WsMessageIndexPriceUpdateEventFormatted
- | WsMessageMarkPriceEventFormatted
- | WsMessageForceOrderFormatted
- | WsMessage24hrMiniTickerFormatted[]
- | WsMessage24hrTickerFormatted[]
- | WsMessageRollingWindowTickerFormatted[]
- | WsMessageMarkPriceEventFormatted[];
-
-================
-File: src/types/websockets/ws-events-raw.ts
-================
-import {
- FuturesAlgoConditionalOrderTypes,
- FuturesAlgoOrderStatus,
- FuturesAlgoOrderType,
- FuturesOrderType,
- MarginType,
- PositionSide,
- PriceMatchMode,
- WorkingType,
-} from '../futures';
-import {
- KlineInterval,
- numberInString,
- OCOOrderStatus,
- OCOStatus,
- OrderBookRow,
- OrderExecutionType,
- OrderSide,
- OrderStatus,
- OrderTimeInForce,
- OrderType,
- SelfTradePreventionMode,
-} from '../shared';
-import { WsSharedBase } from './ws-general';
-⋮----
-export interface WsMessageKlineRaw extends WsSharedBase {
- e: 'kline';
- E: number;
- s: string;
- k: {
- t: number;
- T: number;
- s: string;
- i: KlineInterval;
- f: number;
- L: number;
- o: numberInString;
- c: numberInString;
- h: numberInString;
- l: numberInString;
- v: numberInString;
- n: number;
- x: boolean;
- q: numberInString;
- V: numberInString;
- Q: numberInString;
- B: numberInString;
- };
-}
-export interface WsMessageAggTradeRaw extends WsSharedBase {
- e: 'aggTrade';
- E: number;
- s: string;
- a: number;
- p: numberInString;
- q: numberInString;
- f: number;
- l: number;
- T: number;
- m: boolean;
- M: boolean;
-}
-⋮----
-export interface WsMessageTradeRaw extends WsSharedBase {
- e: 'trade';
- E: number;
- s: string;
- t: number;
- p: numberInString;
- q: numberInString;
- b: number;
- a: number;
- T: number;
- m: boolean;
- M: boolean;
-}
-⋮----
-export interface WsMessage24hrMiniTickerRaw extends WsSharedBase {
- e: '24hrMiniTicker';
- E: number;
- s: string;
- c: numberInString;
- o: numberInString;
- h: numberInString;
- l: numberInString;
- v: numberInString;
- q: numberInString;
-}
-⋮----
-export interface WsMessage24hrTickerRaw extends WsSharedBase {
- e: '24hrTicker';
- E: number;
- s: string;
- p: numberInString;
- P: numberInString;
- w: numberInString;
- x: numberInString;
- c: numberInString;
- Q: numberInString;
- b: numberInString;
- B: numberInString;
- a: numberInString;
- A: numberInString;
- o: numberInString;
- h: numberInString;
- l: numberInString;
- v: numberInString;
- q: numberInString;
- O: numberInString;
- C: numberInString;
- F: number;
- L: number;
- n: number;
-}
-⋮----
-export interface WsMessageRollingWindowTickerRaw extends WsSharedBase {
- e: '1hTicker' | '4hTicker' | '1dTicker';
- E: number;
- s: string;
- p: string;
- P: string;
- w: string;
- o: string;
- h: string;
- l: string;
- c: string;
- v: string;
- q: string;
- O: number;
- C: number;
- F: number;
- L: number;
- n: number;
-}
-⋮----
-export interface WsMessageBookTickerEventRaw extends WsSharedBase {
- e: 'bookTicker';
- u: number;
- E: number; // futures only - event time
- T: number; // futures only - transaction time
- s: string;
- b: numberInString;
- B: numberInString;
- a: numberInString;
- A: numberInString;
-}
-⋮----
-E: number; // futures only - event time
-T: number; // futures only - transaction time
-⋮----
-export interface WsMessagePartialBookDepthEventRaw extends WsSharedBase {
- e: 'partialBookDepth';
- lastUpdateId: number;
- bids: OrderBookRow[];
- asks: OrderBookRow[];
-}
-⋮----
-export interface WsMessageDiffBookDepthEventRaw extends WsSharedBase {
- e: 'depthUpdate';
- E: number;
- T: number; // futures only
- s: string;
- U: number;
- u: number;
- pu: number; // futures only
- b: OrderBookRow[];
- a: OrderBookRow[];
-}
-⋮----
-T: number; // futures only
-⋮----
-pu: number; // futures only
-⋮----
-/**
- * USER DATA WS EVENTS
- **/
-⋮----
-interface SpotBalanceRaw {
- a: string;
- f: numberInString;
- l: numberInString;
-}
-⋮----
-export interface WsMessageSpotOutboundAccountPositionRaw extends WsSharedBase {
- e: 'outboundAccountPosition';
- E: number;
- u: number;
- B: SpotBalanceRaw[];
-}
-⋮----
-export interface WsMessageSpotBalanceUpdateRaw extends WsSharedBase {
- e: 'balanceUpdate';
- E: number;
- a: string;
- d: numberInString;
- T: number;
-}
-⋮----
-export interface WsMessageSpotUserDataExecutionReportEventRaw
- extends WsSharedBase {
- e: 'executionReport';
- E: number;
- s: string;
- c: string;
- S: OrderSide;
- o: OrderType;
- f: OrderTimeInForce;
- q: numberInString;
- p: numberInString;
- P: numberInString;
- F: numberInString;
- g: number;
- C: string;
- x: OrderExecutionType;
- X: OrderStatus;
- r: string;
- i: number;
- l: numberInString;
- z: numberInString;
- L: numberInString;
- n: numberInString;
- N: string | null;
- T: number;
- t: number;
- I: number;
- w: boolean;
- m: boolean;
- M: boolean;
- O: number;
- Z: numberInString;
- Y: numberInString;
- Q: numberInString;
- W: number;
- V: SelfTradePreventionMode;
- /** Expiry reason when present (user data executionReport). */
- eR?: string;
- d?: number;
- v?: number;
- D?: number;
- j?: number;
- J?: number;
- u?: number;
- U?: number;
- A?: numberInString;
- B?: numberInString;
- Cs?: string;
- pl?: numberInString;
- pL?: numberInString;
- pY?: numberInString;
-}
-⋮----
-/** Expiry reason when present (user data executionReport). */
-⋮----
-export interface WsMessagePortfolioMarginProAccountUpdateRaw
- extends WsSharedBase {
- e: 'PM_PRO_ACCOUNT_UPDATE';
- E: number;
- u: numberInString;
- eq: numberInString;
- ae: numberInString;
- im: numberInString;
- mm: numberInString;
- avb: numberInString;
- vmw: numberInString;
-}
-⋮----
-export interface WsMessageWsapiServerShutdownRaw extends WsSharedBase {
- e: 'serverShutdown';
- E: number;
-}
-⋮----
-export interface OrderObjectRaw {
- s: string;
- i: number;
- c: string;
-}
-⋮----
-export interface WsMessageSpotUserDataListStatusEventRaw extends WsSharedBase {
- e: 'listStatus';
- E: number;
- s: string;
- g: number;
- c: 'OCO';
- l: OCOStatus;
- L: OCOOrderStatus;
- r: string;
- C: string;
- T: number;
- O: OrderObjectRaw[];
-}
-⋮----
-export type AccountUpdateEventType =
- | 'DEPOSIT'
- | 'WITHDRAW'
- | 'ORDER'
- | 'FUNDING_FEE'
- | 'WITHDRAW_REJECT'
- | 'ADJUSTMENT'
- | 'INSURANCE_CLEAR'
- | 'ADMIN_DEPOSIT'
- | 'ADMIN_WITHDRAW'
- | 'MARGIN_TRANSFER'
- | 'MARGIN_TYPE_CHANGE'
- | 'ASSET_TRANSFER'
- | 'OPTIONS_PREMIUM_FEE'
- | 'OPTIONS_SETTLE_PROFIT'
- | 'AUTO_EXCHANGE';
-⋮----
-export interface WsMessageFuturesUserDataListenKeyExpiredRaw
- extends WsSharedBase {
- e: 'listenKeyExpired';
- E: number;
-}
-⋮----
-export interface WsEventStreamTerminatedRaw extends WsSharedBase {
- e: 'eventStreamTerminated';
- E: number;
-}
-⋮----
-export interface WsMessageFuturesMarginCalledPositionRaw {
- s: string;
- ps: PositionSide;
- pa: numberInString;
- mt: Uppercase;
- iw: numberInString;
- mp: numberInString;
- up: numberInString;
- mm: numberInString;
-}
-⋮----
-export interface WsMessageFuturesUserDataMarginCallRaw extends WsSharedBase {
- e: 'MARGIN_CALL';
- E: number;
- cw: numberInString;
- p: WsMessageFuturesMarginCalledPositionRaw[];
-}
-⋮----
-export interface WsMessageFuturesAccountUpdatePositionRaw {
- s: string;
- pa: numberInString;
- ep: numberInString;
- cr: numberInString;
- up: numberInString;
- mt: 'cross' | 'isolated';
- iw: numberInString;
- ps: PositionSide;
-}
-⋮----
-export interface WsMessageFuturesAccountUpdateBalanceRaw {
- a: string;
- wb: numberInString;
- cw: numberInString;
- bc: numberInString;
-}
-⋮----
-export interface WsMessageFuturesUserDataAccountUpdateRaw extends WsSharedBase {
- e: 'ACCOUNT_UPDATE';
- E: number;
- T: number;
- a: {
- m: AccountUpdateEventType;
- B: WsMessageFuturesAccountUpdateBalanceRaw[];
- P: WsMessageFuturesAccountUpdatePositionRaw[];
- };
-}
-⋮----
-export interface WsMessageFuturesUserDataCondOrderTriggerRejectEventRaw
- extends WsSharedBase {
- e: 'CONDITIONAL_ORDER_TRIGGER_REJECT';
- E: number;
- T: number;
- or: {
- s: string;
- i: number;
- r: string;
- };
-}
-⋮----
-export interface WsMessageFuturesUserDataOrderTradeUpdateEventRaw
- extends WsSharedBase {
- e: 'ORDER_TRADE_UPDATE';
- E: number;
- T: number;
- o: {
- s: string;
- c: string;
- S: OrderSide;
- o: FuturesOrderType;
- f: OrderTimeInForce;
- q: numberInString;
- p: numberInString;
- ap: numberInString;
- sp: numberInString;
- x: OrderExecutionType;
- X: OrderStatus;
- i: number;
- l: numberInString;
- z: numberInString;
- L: numberInString;
- N: string;
- n: numberInString;
- T: numberInString;
- t: number;
- b: numberInString;
- a: numberInString;
- m: boolean;
- R: boolean;
- wt: WorkingType;
- ot: FuturesOrderType;
- ps: PositionSide;
- cp: boolean;
- AP: numberInString;
- cr: numberInString;
- rp: numberInString;
- pP: boolean; // ignore
- si: numberInString; // ignore
- ss: numberInString; // ignore
- V: string;
- pm: string;
- gtd: number;
- er?: string; // Order expire reason (available effective 2025-10-23)
- };
-}
-⋮----
-pP: boolean; // ignore
-si: numberInString; // ignore
-ss: numberInString; // ignore
-⋮----
-er?: string; // Order expire reason (available effective 2025-10-23)
-⋮----
-export interface WsMessageFuturesUserDataAlgoUpdateRaw extends WsSharedBase {
- e: 'ALGO_UPDATE';
- E: number;
- T: number;
- o: {
- caid: string;
- aid: number;
- at: FuturesAlgoOrderType;
- o: FuturesAlgoConditionalOrderTypes;
- s: string;
- S: OrderSide;
- ps: PositionSide;
- f: OrderTimeInForce;
- q: numberInString;
- X: FuturesAlgoOrderStatus;
- ai: string;
- tp: numberInString;
- p: numberInString;
- V: SelfTradePreventionMode;
- wt: WorkingType;
- pm: PriceMatchMode;
- cp: boolean;
- pP: boolean;
- R: boolean;
- tt: number;
- gtd: number;
- };
-}
-⋮----
-export interface WsMessageFuturesUserDataTradeLiteEventRaw
- extends WsSharedBase {
- e: 'TRADE_LITE'; // Event Type
- E: number; // Event Time
- T: number; // Transaction Time
- s: string; // Symbol
- q: string; // Original Quantity
- p: string; // Original Price
- m: boolean; // Is this trade the maker side?
- c: string; // Client Order Id
- S: 'BUY' | 'SELL'; // Side
- L: string; // Last Filled Price
- l: string; // Order Last Filled Quantity
- t: number; // Trade Id
- i: number; // Order Id
-}
-⋮----
-e: 'TRADE_LITE'; // Event Type
-E: number; // Event Time
-T: number; // Transaction Time
-s: string; // Symbol
-q: string; // Original Quantity
-p: string; // Original Price
-m: boolean; // Is this trade the maker side?
-c: string; // Client Order Id
-S: 'BUY' | 'SELL'; // Side
-L: string; // Last Filled Price
-l: string; // Order Last Filled Quantity
-t: number; // Trade Id
-i: number; // Order Id
-⋮----
-export interface WsMessageFuturesUserDataAccountConfigUpdateEventRaw
- extends WsSharedBase {
- e: 'ACCOUNT_CONFIG_UPDATE';
- E: number;
- T: number;
- ac?: {
- s: string;
- l: number;
- };
- ai?: {
- j: boolean;
- };
-}
-⋮----
-export interface WsMessageIndexPriceUpdateEventRaw extends WsSharedBase {
- e: 'indexPriceUpdate';
- E: number;
- i?: string;
- s?: string;
- p: numberInString;
-}
-⋮----
-export interface WsMessageMarkPriceUpdateEventRaw extends WsSharedBase {
- e: 'markPriceUpdate';
- E: number;
- s: string;
- p: string;
- /** Mark price moving average (USDⓈ-M mark price stream). */
- ap?: string;
- P: string;
- i: string;
- r: string;
- T: number;
-}
-⋮----
-/** Mark price moving average (USDⓈ-M mark price stream). */
-⋮----
-export interface WsMessageForceOrderRaw extends WsSharedBase {
- e: 'forceOrder';
- E: number;
- o: {
- s: string;
- S: string;
- o: string;
- f: string;
- q: string;
- p: string;
- ap: string;
- X: string;
- l: string;
- z: string;
- T: number;
- };
-}
-⋮----
-export interface WsMessageFuturesUserDataStrategyUpdateRaw
- extends WsSharedBase {
- e: 'STRATEGY_UPDATE'; // Event Type
- T: number; // Transaction Time
- E: number; // Event Time
- su: {
- si: number; // Strategy ID
- st: string; // Strategy Type
- ss: string; // Strategy Status
- s: string; // Symbol
- ut: number; // Update Time
- c: number; // opCode
- };
-}
-⋮----
-e: 'STRATEGY_UPDATE'; // Event Type
-T: number; // Transaction Time
-E: number; // Event Time
-⋮----
-si: number; // Strategy ID
-st: string; // Strategy Type
-ss: string; // Strategy Status
-s: string; // Symbol
-ut: number; // Update Time
-c: number; // opCode
-⋮----
-export interface WsMessageFuturesUserDataGridUpdateRaw extends WsSharedBase {
- e: 'GRID_UPDATE'; // Event Type
- T: number; // Transaction Time
- E: number; // Event Time
- gu: {
- si: number; // Strategy ID
- st: string; // Strategy Type
- ss: string; // Strategy Status
- s: string; // Symbol
- r: numberInString; // Realized PNL
- up: numberInString; // Unmatched Average Price
- uq: numberInString; // Unmatched Qty
- uf: numberInString; // Unmatched Fee
- mp: numberInString; // Matched PNL
- ut: number; // Update Time
- };
-}
-⋮----
-e: 'GRID_UPDATE'; // Event Type
-T: number; // Transaction Time
-E: number; // Event Time
-⋮----
-si: number; // Strategy ID
-st: string; // Strategy Type
-ss: string; // Strategy Status
-s: string; // Symbol
-r: numberInString; // Realized PNL
-up: numberInString; // Unmatched Average Price
-uq: numberInString; // Unmatched Qty
-uf: numberInString; // Unmatched Fee
-mp: numberInString; // Matched PNL
-ut: number; // Update Time
-⋮----
-export interface WsMessageFuturesUserDataContractInfoRaw extends WsSharedBase {
- e: 'contractInfo'; // Event Type
- E: number; // Event Time
- s: string; // Symbol
- ps: string; // Pair
- ct: string; // Contract type
- dt: number; // Delivery date time
- ot: number; // onboard date time
- cs: string; // Contract status
- bks: {
- bs: number; // Notional bracket
- bnf: number; // Floor notional of this bracket
- bnc: number; // Cap notional of this bracket
- mmr: number; // Maintenance ratio for this bracket
- cf: number; // Auxiliary number for quick calculation
- mi: number; // Min leverage for this bracket
- ma: number; // Max leverage for this bracket
- }[];
-}
-⋮----
-e: 'contractInfo'; // Event Type
-E: number; // Event Time
-s: string; // Symbol
-ps: string; // Pair
-ct: string; // Contract type
-dt: number; // Delivery date time
-ot: number; // onboard date time
-cs: string; // Contract status
-⋮----
-bs: number; // Notional bracket
-bnf: number; // Floor notional of this bracket
-bnc: number; // Cap notional of this bracket
-mmr: number; // Maintenance ratio for this bracket
-cf: number; // Auxiliary number for quick calculation
-mi: number; // Min leverage for this bracket
-ma: number; // Max leverage for this bracket
-⋮----
-export type WsRawSpotUserDataEventRaw =
- | WsMessageSpotUserDataExecutionReportEventRaw
- | WsMessageSpotOutboundAccountPositionRaw
- | WsMessageSpotBalanceUpdateRaw
- | WsMessageSpotUserDataListStatusEventRaw;
-⋮----
-export type WsMessageFuturesUserDataEventRaw =
- | WsMessageFuturesUserDataAccountUpdateRaw
- | WsMessageFuturesUserDataListenKeyExpiredRaw
- | WsMessageFuturesUserDataMarginCallRaw
- | WsMessageFuturesUserDataOrderTradeUpdateEventRaw
- | WsMessageFuturesUserDataAlgoUpdateRaw
- | WsMessageFuturesUserDataAccountConfigUpdateEventRaw
- | WsMessageFuturesUserDataCondOrderTriggerRejectEventRaw
- | WsMessageFuturesUserDataTradeLiteEventRaw
- | WsMessageFuturesUserDataStrategyUpdateRaw
- | WsMessageFuturesUserDataGridUpdateRaw
- | WsMessageFuturesUserDataContractInfoRaw;
-⋮----
-export type WsUserDataEventsRaw =
- | WsRawSpotUserDataEventRaw
- | WsMessageFuturesUserDataEventRaw
- | WsMessagePortfolioMarginProAccountUpdateRaw;
-⋮----
-export type WsRawMessage =
- | WsEventStreamTerminatedRaw
- | WsMessageWsapiServerShutdownRaw
- | WsUserDataEventsRaw
- | WsMessageKlineRaw
- | WsMessageAggTradeRaw
- | WsMessageTradeRaw
- | WsMessage24hrMiniTickerRaw
- | WsMessage24hrMiniTickerRaw[]
- | WsMessage24hrTickerRaw
- | WsMessage24hrTickerRaw[]
- | WsMessageRollingWindowTickerRaw[]
- | WsMessageBookTickerEventRaw
- | WsMessagePartialBookDepthEventRaw
- | WsMessageDiffBookDepthEventRaw
- | WsMessageForceOrderRaw
- | WsMessageIndexPriceUpdateEventRaw;
-
-================
-File: src/types/shared.ts
-================
-// Generic numeric value stored as a string. Can be parsed via parseInt or parseFloat.
-// Beautifier may convert these to number, if enabled.
-export type numberInString = string | number;
-⋮----
-export type ExchangeSymbol = string;
-⋮----
-export type BooleanString = 'true' | 'false';
-⋮----
-export type BinanceBaseUrlKey =
- | 'spot'
- | 'spot1'
- | 'spot2'
- | 'spot3'
- | 'spot4'
- | 'spottest'
- | 'usdmtest'
- | 'usdm'
- | 'coinm'
- | 'coinmtest'
- | 'voptions'
- | 'voptionstest'
- | 'papi'
- | 'www';
-⋮----
-/**
- * Time in force. Note: `GTE_GTC` is not officially documented, use at your own risk.
- */
-export type OrderTimeInForce =
- | 'GTC'
- | 'IOC'
- | 'FOK'
- | 'GTX'
- | 'GTE_GTC'
- | 'GTD';
-⋮----
-export type StringBoolean = 'TRUE' | 'FALSE';
-⋮----
-export type SideEffects =
- | 'MARGIN_BUY'
- | 'AUTO_REPAY'
- | 'NO_SIDE_EFFECT'
- | 'AUTO_BORROW_REPAY'
- | 'NO_SIDE_EFFECT';
-⋮----
-/**
- * ACK = confirmation of order acceptance (no placement/fill information)
- * RESULT = fill state
- * FULL = fill state + detail on fills and other detail
- */
-export type OrderResponseType = 'ACK' | 'RESULT' | 'FULL';
-⋮----
-export type OrderIdProperty =
- | 'newClientOrderId'
- | 'newClientStrategyId'
- | 'listClientOrderId'
- | 'limitClientOrderId'
- | 'stopClientOrderId'
- | 'clientAlgoId'
- | 'aboveClientOrderId'
- | 'belowClientOrderId'
- | 'workingClientOrderId'
- | 'pendingAboveClientOrderId'
- | 'pendingBelowClientOrderId'
- | 'pendingClientOrderId';
-⋮----
-export type OrderSide = 'BUY' | 'SELL';
-⋮----
-export type OrderStatus =
- | 'NEW'
- | 'PARTIALLY_FILLED'
- | 'FILLED'
- | 'CANCELED'
- | 'PENDING_CANCEL'
- | 'REJECTED'
- | 'EXPIRED';
-⋮----
-export type OrderExecutionType =
- | 'NEW'
- | 'CANCELED'
- | 'REJECTED'
- | 'TRADE'
- | 'EXPIRED';
-⋮----
-// listStatusType
-export type OCOStatus = 'RESPONSE' | 'EXEC_STARTED' | 'ALL_DONE';
-⋮----
-// listOrderStatus
-export type OCOOrderStatus = 'EXECUTING' | 'ALL_DONE' | 'REJECT';
-⋮----
-export type OrderType =
- | 'LIMIT'
- | 'LIMIT_MAKER'
- | 'MARKET'
- | 'STOP_LOSS'
- | 'STOP_LOSS_LIMIT'
- | 'TAKE_PROFIT'
- | 'TAKE_PROFIT_LIMIT';
-⋮----
-export type OrderListOrderType =
- | 'STOP_LOSS_LIMIT'
- | 'STOP_LOSS'
- | 'LIMIT_MAKER'
- | 'TAKE_PROFIT'
- | 'TAKE_PROFIT_LIMIT';
-⋮----
-export type SelfTradePreventionMode =
- | 'EXPIRE_TAKER'
- | 'EXPIRE_MAKER'
- | 'EXPIRE_BOTH'
- | 'NONE';
-⋮----
-export interface BasicAssetParam {
- asset: string;
-}
-⋮----
-export interface BasicSymbolParam {
- symbol: string;
- isIsolated?: StringBoolean;
-}
-⋮----
-export interface SymbolArrayParam {
- symbols: string[];
-}
-⋮----
-export interface BasicAssetPaginatedParams {
- asset?: string;
- startTime?: number;
- endTime?: number;
- limit?: number;
-}
-export interface BasicSymbolPaginatedParams {
- symbol?: string;
- startTime?: number;
- endTime?: number;
- limit?: number;
-}
-⋮----
-export interface SymbolPrice {
- symbol: string;
- price: numberInString;
- time?: number;
-}
-⋮----
-// used by spot and usdm
-export interface OrderBookParams {
- symbol: string;
- limit?: 5 | 10 | 20 | 50 | 100 | 500 | 1000 | 5000;
- symbolStatus?: string;
-}
-⋮----
-export type KlineInterval =
- | '1s'
- | '1m'
- | '3m'
- | '5m'
- | '15m'
- | '30m'
- | '1h'
- | '2h'
- | '4h'
- | '6h'
- | '8h'
- | '12h'
- | '1d'
- | '3d'
- | '1w'
- | '1M';
-⋮----
-export interface GetOrderParams {
- symbol: string;
- orderId?: number;
- origClientOrderId?: string;
-}
-⋮----
-export interface GetOrderModifyHistoryParams {
- symbol: string;
- orderId?: number;
- origClientOrderId?: string;
- startTime?: number;
- endTime?: number;
- limit?: number;
-}
-⋮----
-export interface HistoricalTradesParams {
- symbol: string;
- limit?: number;
- fromId?: number;
-}
-⋮----
-export interface KlinesParams {
- symbol: string;
- interval: KlineInterval;
- startTime?: number;
- endTime?: number;
- timeZone?: string;
- limit?: number;
-}
-⋮----
-export type Kline = [
- number, // open time
- numberInString, // open
- numberInString, // high
- numberInString, // low
- numberInString, // close
- numberInString, // volume
- number, // close time
- numberInString, // quote asset volume
- number, // number of trades
- numberInString, // taker buy base asset vol
- numberInString, // taker buy quote asset vol
- numberInString, // ignore?
-];
-⋮----
-number, // open time
-numberInString, // open
-numberInString, // high
-numberInString, // low
-numberInString, // close
-numberInString, // volume
-number, // close time
-numberInString, // quote asset volume
-number, // number of trades
-numberInString, // taker buy base asset vol
-numberInString, // taker buy quote asset vol
-numberInString, // ignore?
-⋮----
-/** @deprecated `FuturesKline` will be removed soon. Use `Kline` instead. **/
-export type FuturesKline = Kline;
-export interface RecentTradesParams {
- symbol: string;
- limit?: number;
-}
-⋮----
-export interface CancelOrderParams {
- symbol: string;
- orderId?: number;
- origClientOrderId?: string;
-}
-⋮----
-export interface AmendKeepPriorityParams {
- symbol: string;
- orderId?: number;
- origClientOrderId?: string;
- newClientOrderId?: string;
- newQty: numberInString;
-}
-⋮----
-export interface CancelOCOParams {
- symbol: string;
- orderListId?: number;
- listClientOrderId?: string;
- newClientOrderId?: string;
-}
-⋮----
-export interface NewOCOParams {
- symbol: string;
- listClientOrderId?: string;
- side: OrderSide;
- quantity: number;
- limitClientOrderId?: string;
- limitStrategyId?: number;
- limitStrategyType?: number;
- price: number;
- limitIcebergQty?: number;
- trailingDelta?: number;
- stopClientOrderId?: string;
- stopPrice: number;
- stopStrategyId?: number;
- stopStrategyType?: number;
- stopLimitPrice?: number;
- stopIcebergQty?: number;
- stopLimitTimeInForce?: OrderTimeInForce;
- newOrderRespType?: OrderResponseType;
- /** For isolated margin trading only */
- isIsolated?: StringBoolean;
- /** Define a side effect, only for margin trading */
- sideEffectType?: SideEffects;
-}
-⋮----
-/** For isolated margin trading only */
-⋮----
-/** Define a side effect, only for margin trading */
-⋮----
-export interface NewOrderListParams<
- T extends OrderResponseType = OrderResponseType,
-> {
- symbol: string;
- listClientOrderId?: string;
- side: OrderSide;
- quantity: number;
- aboveType: OrderListOrderType;
- aboveClientOrderId?: string;
- aboveIcebergQty?: number;
- abovePrice?: number;
- aboveStopPrice?: number;
- aboveTrailingDelta?: number;
- aboveTimeInForce?: OrderTimeInForce;
- aboveStrategyId?: number;
- aboveStrategyType?: number;
- belowType: OrderListOrderType;
- belowClientOrderId?: string;
- belowIcebergQty?: number;
- belowPrice?: number;
- belowStopPrice?: number;
- belowTrailingDelta?: number;
- belowTimeInForce?: OrderTimeInForce;
- belowStrategyId?: number;
- belowStrategyType?: number;
- newOrderRespType?: T;
- selfTradePreventionMode?: SelfTradePreventionMode;
-}
-⋮----
-export interface SymbolFromPaginatedRequestFromId {
- symbol: string;
- fromId?: number;
- startTime?: number;
- endTime?: number;
- limit?: number;
-}
-⋮----
-export interface GetAllOrdersParams {
- symbol: string;
- orderId?: number;
- startTime?: number;
- endTime?: number;
- limit?: number;
-}
-⋮----
-export interface RateLimiter {
- rateLimitType: 'REQUEST_WEIGHT' | 'ORDERS' | 'RAW_REQUESTS';
- interval: 'SECOND' | 'MINUTE' | 'DAY';
- intervalNum: number;
- limit: number;
-}
-⋮----
-export interface SymbolPriceFilter {
- filterType: 'PRICE_FILTER';
- minPrice: numberInString;
- maxPrice: numberInString;
- tickSize: numberInString;
-}
-⋮----
-export interface SymbolPercentPriceFilter {
- filterType: 'PERCENT_PRICE';
- multiplierUp: numberInString;
- multiplierDown: numberInString;
- avgPriceMins: number;
-}
-⋮----
-export interface SymbolPercentPriceBySideFilter {
- filterType: 'PERCENT_PRICE_BY_SIDE';
- bidMultiplierUp: numberInString;
- bidMultiplierDown: numberInString;
- askMultiplierUp: numberInString;
- askMultiplierDown: numberInString;
- avgPriceMins: number;
-}
-⋮----
-export interface SymbolLegacyMinNotionalFilter {
- filterType: 'MIN_NOTIONAL';
- minNotional: numberInString;
- applyToMarket: boolean;
- avgPriceMins: number;
-}
-⋮----
-export interface SymbolLotSizeFilter {
- filterType: 'LOT_SIZE';
- minQty: numberInString;
- maxQty: numberInString;
- stepSize: numberInString;
-}
-⋮----
-export interface SymbolMinNotionalFilter {
- filterType: 'NOTIONAL';
- minNotional: numberInString;
- applyMinToMarket: boolean;
- maxNotional: numberInString;
- applyMaxToMarket: boolean;
- avgPriceMins: number;
-}
-⋮----
-export interface SymbolIcebergPartsFilter {
- filterType: 'ICEBERG_PARTS';
- limit: number;
-}
-⋮----
-export interface SymbolMarketLotSizeFilter {
- filterType: 'MARKET_LOT_SIZE';
- minQty: numberInString;
- maxQty: numberInString;
- stepSize: numberInString;
-}
-⋮----
-export interface SymbolMaxOrdersFilter {
- filterType: 'MAX_NUM_ORDERS';
- maxNumOrders: number;
-}
-⋮----
-export interface SymbolMaxAlgoOrdersFilter {
- filterType: 'MAX_NUM_ALGO_ORDERS';
- maxNumAlgoOrders: number;
-}
-⋮----
-export interface SymbolMaxIcebergOrdersFilter {
- filterType: 'MAX_NUM_ICEBERG_ORDERS';
- maxNumIcebergOrders: number;
-}
-⋮----
-export interface SymbolMaxPositionFilter {
- filterType: 'MAX_POSITION';
- maxPosition: numberInString;
-}
-⋮----
-export type SymbolFilter =
- | SymbolPriceFilter
- | SymbolPercentPriceFilter
- | SymbolPercentPriceBySideFilter
- | SymbolLegacyMinNotionalFilter
- | SymbolLotSizeFilter
- | SymbolMinNotionalFilter
- | SymbolIcebergPartsFilter
- | SymbolMarketLotSizeFilter
- | SymbolMaxOrdersFilter
- | SymbolMaxAlgoOrdersFilter
- | SymbolMaxIcebergOrdersFilter
- | SymbolMaxPositionFilter;
-⋮----
-export interface ExchangeMaxNumOrdersFilter {
- filterType: 'EXCHANGE_MAX_NUM_ORDERS';
- maxNumOrders: number;
-}
-⋮----
-export interface ExchangeMaxAlgoOrdersFilter {
- filterType: 'EXCHANGE_MAX_ALGO_ORDERS';
- maxNumAlgoOrders: number;
-}
-⋮----
-export type ExchangeFilter =
- | ExchangeMaxNumOrdersFilter
- | ExchangeMaxAlgoOrdersFilter;
-⋮----
-export type OrderBookPrice = numberInString;
-export type OrderBookAmount = numberInString;
-⋮----
-export type OrderBookRow = [OrderBookPrice, OrderBookAmount];
-⋮----
-export type OrderBookPriceFormatted = number;
-export type OrderBookAmountFormatted = number;
-export type OrderBookRowFormatted = [
- OrderBookPriceFormatted,
- OrderBookAmountFormatted,
-];
-⋮----
-export interface GenericCodeMsgError {
- code: number;
- msg: string;
-}
-⋮----
-export interface RowsWithTotal {
- rows: T[];
- total: number;
-}
-⋮----
-export interface CoinStartEndLimit {
- coin?: string;
- startTime?: number;
- endTime?: number;
- limit?: number;
-}
-
-================
-File: src/coinm-client.ts
-================
-/* eslint-disable @typescript-eslint/no-explicit-any */
-import { AxiosRequestConfig } from 'axios';
-⋮----
-import {
- ClassicPortfolioMarginAccount,
- ClassicPortfolioMarginNotionalLimit,
- CoinMAccountTradeParams,
- CoinMOpenInterest,
- CoinMPositionTrade,
- CoinMSymbolOrderBookTicker,
- FundingRate,
- FuturesTransactionHistoryDownloadLink,
- GetClassicPortfolioMarginNotionalLimitParams,
- PositionRisk,
-} from './types/coin';
-import {
- AggregateFuturesTrade,
- CancelAllOpenOrdersResult,
- CancelFuturesOrderResult,
- CancelMultipleOrdersParams,
- CancelOrdersTimeoutParams,
- ChangeStats24hr,
- ContinuousContractKlinesParams,
- ForceOrderResult,
- FundingRateHistory,
- FuturesAlgoOrderResponse,
- FuturesCancelAlgoOrderParams,
- FuturesCancelAlgoOrderResponse,
- FuturesCoinMAccountBalance,
- FuturesCoinMAccountInformation,
- FuturesCoinMBasisParams,
- FuturesCoinMTakerBuySellVolumeParams,
- FuturesDataPaginatedParams,
- FuturesExchangeInfo,
- FuturesNewAlgoOrderParams,
- FuturesOrderBook,
- FuturesQueryOpenAlgoOrdersParams,
- GetForceOrdersParams,
- GetIncomeHistoryParams,
- GetPositionMarginChangeHistoryParams,
- IncomeHistory,
- IndexPriceConstituents,
- IndexPriceKlinesParams,
- MarkPrice,
- ModeChangeResult,
- ModifyFuturesOrderParams,
- ModifyFuturesOrderResult,
- NewFuturesOrderParams,
- NewOrderError,
- NewOrderResult,
- OrderAmendment,
- OrderResult,
- PositionModeParams,
- PositionModeResponse,
- QuarterlyContractSettlementPrice,
- RawFuturesTrade,
- RebateDataOverview,
- SetCancelTimeoutResult,
- SetIsolatedMarginParams,
- SetIsolatedMarginResult,
- SetLeverageParams,
- SetLeverageResult,
- SetMarginTypeParams,
- SymbolKlinePaginatedParams,
- SymbolLeverageBracketsResult,
- UserCommissionRate,
-} from './types/futures';
-import {
- BasicSymbolPaginatedParams,
- BinanceBaseUrlKey,
- CancelOCOParams,
- CancelOrderParams,
- GenericCodeMsgError,
- GetAllOrdersParams,
- GetOrderModifyHistoryParams,
- GetOrderParams,
- HistoricalTradesParams,
- Kline,
- KlinesParams,
- NewOCOParams,
- OrderBookParams,
- OrderIdProperty,
- RecentTradesParams,
- SymbolFromPaginatedRequestFromId,
- SymbolPrice,
-} from './types/shared';
-import BaseRestClient from './util/BaseRestClient';
-import {
- asArray,
- generateNewOrderId,
- getOrderIdPrefix,
- getServerTimeEndpoint,
- logInvalidOrderId,
- RestClientOptions,
-} from './util/requestUtils';
-⋮----
-export class CoinMClient extends BaseRestClient
-⋮----
-constructor(
- restClientOptions: RestClientOptions = {},
- requestOptions: AxiosRequestConfig = {},
-)
-⋮----
-/**
- * Abstraction required by each client to aid with time sync / drift handling
- */
-async getServerTime(): Promise
-⋮----
-/**
- *
- * Market Data Endpoints
- *
- **/
-⋮----
-testConnectivity(): Promise