binance-api-node-isolated-margin-user-data-stream
v0.12.11
Published
This is a fork of binance-api-node package with a single feature added
Downloads
16
Readme
binance-api-node
A complete API wrapper for the Binance API.
Note: This wrapper uses Promises, if they are not supported in your environment, you might want to add a polyfill for them.
For PRs or issues, head over to the source repository.
Installation
yarn add binance-api-node
Getting started
Import the module and create a new client. Passing api keys is optional only if you don't plan on doing authenticated calls. You can create an api key here.
import Binance from 'binance-api-node'
const client = Binance()
// Authenticated client, can make signed calls
const client2 = Binance({
apiKey: 'xxx',
apiSecret: 'xxx',
getTime: xxx,
})
client.time().then(time => console.log(time))
If you do not have an appropriate babel config, you will need to use the basic commonjs requires.
const Binance = require('binance-api-node').default
Every REST method returns a Promise, making this library async await ready.
Following examples will use the await
form, which requires some configuration you will have to lookup.
Table of Contents
- Init
- Public REST Endpoints
- Futures Public REST Endpoints
- Delivery Public REST Endpoints
- Authenticated REST Endpoints
- order
- orderTest
- orderOco
- getOrder
- getOrderOco
- cancelOrder
- cancelOrderOco
- cancelOpenOrders
- openOrders
- allOrders
- allOrdersOCO
- accountInfo
- myTrades
- dailyAccountSnapshot
- tradesHistory
- depositHistory
- withdrawHistory
- withdraw
- depositAddress
- tradeFee
- capitalConfigs
- universalTransfer
- universalTransferHistory
- assetDetail
- getBnbBurn
- setBnbBurn
- dustLog
- dustTransfer
- accountCoins
- lendingAccount
- fundingWallet
- apiPermission
- Margin
- Portfolio Margin
- Futures Authenticated REST Endpoints
- Delivery Authenticated REST Endpoints
- Websockets
- Futures Websockets
- Delivery Websockets
- Common
- ErrorCodes
Init
| Param | Type | Required | Info | | ----------- | -------- | -------- | -------------------------------------------- | | apiKey | String | false | Required when making private calls | | apiSecret | String | false | Required when making private calls | | getTime | Function | false | Time generator, defaults to () => Date.now() | | httpBase | String | false | Changes the default endpoint | | httpFutures | String | false | Changes the default endpoint | | wsBase | String | false | Changes the default endpoint | | wsFutures | String | false | Changes the default endpoint |
Public REST Endpoints
ping
Test connectivity to the API.
console.log(await client.ping())
time
Test connectivity to the Rest API and get the current server time.
console.log(await client.time())
1508478457643
exchangeInfo
Get the current exchange trading rules and symbol information. You can optionally pass a symbol to only retrieve info of this specific one.
console.log(await client.exchangeInfo())
| Param | Type | Required | Default | | ------ | ------ | -------- | ------- | | symbol | String | false | |
{
"timezone": "UTC",
"serverTime": 1508631584636,
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 1200
},
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 1,
"limit": 10
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 100000
}
],
"exchangeFilters": [],
"symbols": [{
"symbol": "ETHBTC",
"status": "TRADING",
"baseAsset": "ETH",
"baseAssetPrecision": 8,
"quoteAsset": "BTC",
"quotePrecision": 8,
"orderTypes": ["LIMIT", "MARKET"],
"icebergAllowed": false,
"filters": [{
"filterType": "PRICE_FILTER",
"minPrice": "0.00000100",
"maxPrice": "100000.00000000",
"tickSize": "0.00000100"
}, {
"filterType": "LOT_SIZE",
"minQty": "0.00100000",
"maxQty": "100000.00000000",
"stepSize": "0.00100000"
}, {
"filterType": "MIN_NOTIONAL",
"minNotional": "0.00100000"
}]
}]
}
book
Get the order book for a symbol.
console.log(await client.book({ symbol: 'ETHBTC' }))
| Param | Type | Required | Default |
| ------ | ------ | -------- | ------- |
| symbol | String | true |
| limit | Number | false | 100
|
{
lastUpdateId: 17647759,
asks:
[
{ price: '0.05411500', quantity: '5.55000000' },
{ price: '0.05416700', quantity: '11.80100000' }
],
bids:
[
{ price: '0.05395500', quantity: '2.70000000' },
{ price: '0.05395100', quantity: '11.84100000' }
]
}
candles
Retrieves Candlestick for a symbol. Candlesticks are uniquely identified by their open time.
console.log(await client.candles({ symbol: 'ETHBTC' }))
| Param | Type | Required | Default | Description |
| --------- | ------ | -------- | ------- | ---------------------------------------------------------------------------------------------- |
| symbol | String | true |
| interval | String | false | 5m
| 1m
, 3m
, 5m
, 15m
, 30m
, 1h
, 2h
,4h
, 6h
, 8h
, 12h
, 1d
, 3d
, 1w
, 1M
|
| limit | Number | false | 500
| Max 1000
|
| startTime | Number | false |
| endTime | Number | false |
;[
{
openTime: 1508328900000,
open: '0.05655000',
high: '0.05656500',
low: '0.05613200',
close: '0.05632400',
volume: '68.88800000',
closeTime: 1508329199999,
quoteAssetVolume: '2.29500857',
trades: 85,
baseAssetVolume: '40.61900000',
},
]
aggTrades
Get compressed, aggregate trades. Trades that fill at the time, from the same order, with the same price will have the quantity aggregated.
console.log(await client.aggTrades({ symbol: 'ETHBTC' }))
| Param | Type | Required | Default | Description |
| --------- | ------ | -------- | ------- | -------------------------------------------------------- |
| symbol | String | true |
| fromId | String | false | | ID to get aggregate trades from INCLUSIVE. |
| startTime | Number | false | | Timestamp in ms to get aggregate trades from INCLUSIVE. |
| endTime | Number | false | | Timestamp in ms to get aggregate trades until INCLUSIVE. |
| limit | Number | false | 500
| Max 500
|
Note: If both startTime
and endTime
are sent, limit
should not be sent AND the distance between startTime
and endTime
must be less than 1 hour.
Note: If frondId
, startTime
, and endTime
are not sent, the most recent aggregate trades will be returned.
;[
{
aggId: 2107132,
symbol: 'ETHBTC',
price: '0.05390400',
quantity: '1.31000000',
firstId: 2215345,
lastId: 2215345,
timestamp: 1508478599481,
isBuyerMaker: true,
wasBestPrice: true,
},
]
trades
Get recent trades of a symbol.
console.log(await client.trades({ symbol: 'ETHBTC' }))
| Param | Type | Required | Default | Description |
| ------ | ------ | -------- | ------- | ----------- |
| symbol | String | true |
| limit | Number | false | 500
| Max 500
|
;[
{
id: 28457,
price: '4.00000100',
qty: '12.00000000',
time: 1499865549590,
isBuyerMaker: true,
isBestMatch: true,
},
]
dailyStats
24 hour price change statistics, not providing a symbol will return all tickers and is resource-expensive.
console.log(await client.dailyStats({ symbol: 'ETHBTC' }))
| Param | Type | Required | | ------ | ------ | -------- | | symbol | String | false |
{
symbol: 'ETHBTC',
priceChange: '-0.00112000',
priceChangePercent: '-1.751',
weightedAvgPrice: '0.06324784',
prevClosePrice: '0.06397400',
lastPrice: '0.06285500',
lastQty: '0.63500000',
bidPrice: '0.06285500',
bidQty: '0.81900000',
askPrice: '0.06291900',
askQty: '2.93800000',
openPrice: '0.06397500',
highPrice: '0.06419100',
lowPrice: '0.06205300',
volume: '126240.37200000',
quoteVolume: '7984.43091340',
openTime: 1521622289427,
closeTime: 1521708689427,
firstId: 45409308, // First tradeId
lastId: 45724293, // Last tradeId
count: 314986 // Trade count
}
avgPrice
Current average price for a symbol.
console.log(await client.avgPrice({ symbol: 'ETHBTC' }))
| Param | Type | Required | | ------ | ------ | -------- | | symbol | String | true |
{
"mins": 5,
"price": "9.35751834"
}
prices
Latest price for a symbol, not providing the symbol will return prices for all symbols.
console.log(await client.prices())
| Param | Type | Required | | ------ | ------ | -------- | | symbol | String | false |
{
ETHBTC: '0.05392500',
LTCBTC: '0.01041100',
...
}
allBookTickers
Best price/qty on the order book for all symbols.
console.log(await client.allBookTickers())
{
DASHBTC: {
symbol: 'DASHBTC',
bidPrice: '0.04890400',
bidQty: '0.74100000',
askPrice: '0.05230000',
askQty: '0.79900000'
},
DASHETH: {
symbol: 'DASHETH',
bidPrice: '0.89582000',
bidQty: '0.63300000',
askPrice: '1.02328000',
askQty: '0.99900000'
}
...
}
Futures Public REST Endpoints
futures ping
Test connectivity to the API.
console.log(await client.futuresPing())
futures time
Test connectivity to the Rest API and get the current server time.
console.log(await client.futuresTime())
1508478457643
futures exchangeInfo
Get the current exchange trading rules and symbol information.
console.log(await client.futuresExchangeInfo())
{
"timezone": "UTC",
"serverTime": 1508631584636,
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 1200
},
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 1,
"limit": 10
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 100000
}
],
"exchangeFilters": [],
"symbols": [...]
}
futures book
Get the order book for a symbol.
console.log(await client.futuresBook({ symbol: 'BTCUSDT' }))
| Param | Type | Required | Default |
| ------ | ------ | -------- | ------- |
| symbol | String | true |
| limit | Number | false | 100
|
{
lastUpdateId: 17647759,
asks:
[
{ price: '8000.05411500', quantity: '54.55000000' },
{ price: '8000.05416700', quantity: '1111.80100000' }
],
bids:
[
{ price: '8000.05395500', quantity: '223.70000000' },
{ price: '8000.05395100', quantity: '1134.84100000' }
]
}
futures candles
Retrieves Candlestick for a symbol. Candlesticks are uniquely identified by their open time.
console.log(await client.futuresCandles({ symbol: 'BTCUSDT' }))
| Param | Type | Required | Default | Description |
| --------- | ------ | -------- | ------- | ---------------------------------------------------------------------------------------------- |
| symbol | String | true |
| interval | String | false | 5m
| 1m
, 3m
, 5m
, 15m
, 30m
, 1h
, 2h
,4h
, 6h
, 8h
, 12h
, 1d
, 3d
, 1w
, 1M
|
| limit | Number | false | 500
| Max 1000
|
| startTime | Number | false |
| endTime | Number | false |
;[
{
openTime: 1508328900000,
open: '0.05655000',
high: '0.05656500',
low: '0.05613200',
close: '0.05632400',
volume: '68.88800000',
closeTime: 1508329199999,
quoteAssetVolume: '2.29500857',
trades: 85,
baseAssetVolume: '40.61900000',
},
]
futures aggTrades
Get compressed, aggregate trades. Trades that fill at the time, from the same order, with the same price will have the quantity aggregated.
console.log(await client.futuresAggTrades({ symbol: 'ETHBTC' }))
| Param | Type | Required | Default | Description |
| --------- | ------ | -------- | ------- | -------------------------------------------------------- |
| symbol | String | true | | |
| fromId | String | false | | ID to get aggregate trades from INCLUSIVE. |
| startTime | Number | false | | Timestamp in ms to get aggregate trades from INCLUSIVE. |
| endTime | Number | false | | Timestamp in ms to get aggregate trades until INCLUSIVE. |
| limit | Number | false | 500
| Max 500
|
Note: If both startTime
and endTime
are sent, limit
should not be sent AND the distance between startTime
and endTime
must be less than 24 hours.
Note: If frondId
, startTime
, and endTime
are not sent, the most recent aggregate trades will be returned.
;[
{
aggId: 2107132,
price: '0.05390400',
quantity: '1.31000000',
firstId: 2215345,
lastId: 2215345,
timestamp: 1508478599481,
isBuyerMaker: true,
wasBestPrice: true,
},
]
futures trades
Get recent trades of a symbol.
console.log(await client.futuresTrades({ symbol: 'ETHBTC' }))
| Param | Type | Required | Default | Description |
| ------ | ------ | -------- | ------- | ----------- |
| symbol | String | true |
| limit | Number | false | 500
| Max 500
|
;[
{
id: 28457,
price: '4.00000100',
qty: '12.00000000',
time: 1499865549590,
isBuyerMaker: true,
isBestMatch: true,
},
]
futures dailyStats
24 hour price change statistics, not providing a symbol will return all tickers and is resource-expensive.
console.log(await client.futuresDailyStats({ symbol: 'ETHBTC' }))
| Param | Type | Required | | ------ | ------ | -------- | | symbol | String | false |
{
symbol: 'BTCUSDT',
priceChange: '-0.00112000',
priceChangePercent: '-1.751',
weightedAvgPrice: '0.06324784',
prevClosePrice: '0.06397400',
lastPrice: '0.06285500',
lastQty: '0.63500000',
bidPrice: '0.06285500',
bidQty: '0.81900000',
askPrice: '0.06291900',
askQty: '2.93800000',
openPrice: '0.06397500',
highPrice: '0.06419100',
lowPrice: '0.06205300',
volume: '126240.37200000',
quoteVolume: '7984.43091340',
openTime: 1521622289427,
closeTime: 1521708689427,
firstId: 45409308, // First tradeId
lastId: 45724293, // Last tradeId
count: 314986 // Trade count
}
futures prices
Latest price for symbol, not providing a symbol will return latest price for all symbols and is resource-expensive.
console.log(await client.futuresPrices())
| Param | Type | Required | | ------ | ------ | -------- | | symbol | String | false |
{
BTCUSDT: '8590.05392500',
ETHUSDT: '154.1100',
...
}
futures allBookTickers
Best price/qty on the order book for all symbols.
console.log(await client.futuresAllBookTickers())
{
BTCUSDT: {
symbol: 'BTCUSDT',
bidPrice: '0.04890400',
bidQty: '0.74100000',
askPrice: '0.05230000',
askQty: '0.79900000'
},
ETHUSDT: {
symbol: 'ETHUSDT',
bidPrice: '0.89582000',
bidQty: '0.63300000',
askPrice: '1.02328000',
askQty: '0.99900000'
}
...
}
futures markPrice
Mark Price and Funding Rate.
console.log(await client.futuresMarkPrice())
{
"symbol": "BTCUSDT",
"markPrice": "11012.80409769",
"lastFundingRate": "-0.03750000",
"nextFundingTime": 1562569200000,
"time": 1562566020000
}
futures AllForceOrders
Get all Liquidation Orders.
console.log(await client.futuresAllForceOrders())
| Param | Type | Required | | --------- | ------ | -------- | | symbol | String | false | | startTime | Long | false | | endTime | Long | false | | limit | Long | false |
;[
{
symbol: 'BTCUSDT', // SYMBOL
price: '7918.33', // ORDER_PRICE
origQty: '0.014', // ORDER_AMOUNT
executedQty: '0.014', // FILLED_AMOUNT
avragePrice: '7918.33', // AVG_PRICE
status: 'FILLED', // STATUS
timeInForce: 'IOC', // TIME_IN_FORCE
type: 'LIMIT',
side: 'SELL', // DIRECTION
time: 1568014460893,
},
]
Delivery Public REST Endpoints
delivery ping
Test connectivity to the API.
console.log(await client.deliveryPing())
delivery time
Test connectivity to the Rest API and get the current server time.
console.log(await client.deliveryTime())
1508478457643
delivery exchangeInfo
Get the current exchange trading rules and symbol information.
console.log(await client.deliveryExchangeInfo())
{
timezone: 'UTC',
serverTime: 1663099219744,
rateLimits: [
{
rateLimitType: 'REQUEST_WEIGHT',
interval: 'MINUTE',
intervalNum: 1,
limit: 2400
},
{
rateLimitType: 'ORDERS',
interval: 'MINUTE',
intervalNum: 1,
limit: 1200
}
],
exchangeFilters: [],
symbols: [...]
}
delivery book
Get the order book for a symbol.
console.log(await client.deliveryBook({ symbol: 'TRXUSD_PERP' }))
| Param | Type | Required | Default |
| ------ | ------ | -------- | ------- |
| symbol | String | true |
| limit | Number | false | 500
|
{
lastUpdateId: 17647759,
asks:
[
{ price: '8000.05411500', quantity: '54.55000000' },
{ price: '8000.05416700', quantity: '1111.80100000' }
],
bids:
[
{ price: '8000.05395500', quantity: '223.70000000' },
{ price: '8000.05395100', quantity: '1134.84100000' }
]
}
delivery candles
Retrieves Candlestick for a symbol. Candlesticks are uniquely identified by their open time.
console.log(await client.deliveryCandles({ symbol: 'TRXUSD_PERP' }))
| Param | Type | Required | Default | Description |
| --------- | ------ | -------- | ------- | ---------------------------------------------------------------------------------------------- |
| symbol | String | true |
| interval | String | false | 5m
| 1m
, 3m
, 5m
, 15m
, 30m
, 1h
, 2h
,4h
, 6h
, 8h
, 12h
, 1d
, 3d
, 1w
, 1M
|
| limit | Number | false | 500
| Max 1000
|
| startTime | Number | false |
| endTime | Number | false |
[
{
openTime: 1663104600000,
open: '0.06091',
high: '0.06091',
low: '0.06086',
close: '0.06090',
volume: '7927',
closeTime: 1663104899999,
baseVolume: '1302212.12820796',
trades: 75,
quoteAssetVolume: '386',
baseAssetVolume: '63382.78318786'
}
]
delivery aggTrades
Get compressed, aggregate trades. Trades that fill at the time, from the same order, with the same price will have the quantity aggregated.
console.log(await client.deliveryAggTrades({ symbol: 'TRXUSD_PERP' }))
| Param | Type | Required | Default | Description |
| --------- | ------ | -------- | ------- | -------------------------------------------------------- |
| symbol | String | true | | |
| fromId | String | false | | ID to get aggregate trades from INCLUSIVE. |
| startTime | Number | false | | Timestamp in ms to get aggregate trades from INCLUSIVE. |
| endTime | Number | false | | Timestamp in ms to get aggregate trades until INCLUSIVE. |
| limit | Number | false | 500
| Max 1000
|
Note: If both startTime
and endTime
are sent, limit
should not be sent AND the distance between startTime
and endTime
must be less than 24 hours.
Note: If fromId
, startTime
, and endTime
are not sent, the most recent aggregate trades will be returned.
Note : Only market trades will be aggregated and returned, which means the insurance fund trades and ADL trades won't be aggregated.
[
{
aggId: 14642023,
symbol: 'TRXUSD_PERP',
price: '0.06087',
quantity: '50',
firstId: 26319898,
lastId: 26319898,
timestamp: 1663105187120,
isBuyerMaker: false,
}
]
delivery trades
Get recent trades of a symbol.
console.log(await client.deliveryTrades({ symbol: 'TRXUSD_PERP' }))
| Param | Type | Required | Default | Description |
| ------ | ------ | -------- | ------- | ----------- |
| symbol | String | true |
| limit | Number | false | 500
| Max 1000
|
;[
{
id: 26319660,
price: '0.06097',
qty: '28',
baseQty: '4592.42250287',
time: 1663103746267,
isBuyerMaker: true
},
]
delivery dailyStats
24 hour price change statistics, not providing a symbol will return all tickers and is resource-expensive.
console.log(await client.deliveryDailyStats({ symbol: 'TRXUSD_PERP' }))
| Param | Type | Required | | ------ | ------ | -------- | | symbol | String | false | | pair | String | false |
{
symbol: 'TRXUSD_PERP',
pair: 'TRXUSD',
priceChange: '-0.00277',
priceChangePercent: '-4.353',
weightedAvgPrice: '0.06248010',
lastPrice: '0.06087',
lastQty: '4',
openPrice: '0.06364',
highPrice: '0.06395',
lowPrice: '0.06069',
volume: '545316',
baseVolume: '87278342.48218514',
openTime: 1663019640000,
closeTime: 1663106045576,
firstId: 26308774,
lastId: 26320065,
count: 11292
}
delivery prices
Latest price for all symbols.
console.log(await client.futuresPrices())
{
BTCUSDT: '8590.05392500',
ETHUSDT: '154.1100',
...
}
delivery allBookTickers
Best price/qty on the order book for all symbols.
console.log(await client.deliveryAllBookTickers())
{
BTCUSD_PERP: {
symbol: 'BTCUSD_PERP',
pair: 'BTCUSD',
bidPrice: '20120.9',
bidQty: '13673',
askPrice: '20121.0',
askQty: '2628',
time: 1663106372658
},
ETHUSD_PERP: {
symbol: 'ETHUSD_PERP',
pair: 'ETHUSD',
bidPrice: '1593.63',
bidQty: '7210',
askPrice: '1593.64',
askQty: '27547',
time: 1663106372667
}
...
}
delivery markPrice
Mark Price and Funding Rate.
console.log(await client.deliveryMarkPrice())
[
{
symbol: 'BTCUSD_221230',
pair: 'BTCUSD',
markPrice: '20158.81560758',
indexPrice: '20152.05327273',
estimatedSettlePrice: '20147.96717735',
lastFundingRate: '',
interestRate: '',
nextFundingTime: 0,
time: 1663106459005
},
{
symbol: 'FILUSD_PERP',
pair: 'FILUSD',
markPrice: '5.88720470',
indexPrice: '5.89106242',
estimatedSettlePrice: '5.89377086',
lastFundingRate: '0.00010000',
interestRate: '0.00010000',
nextFundingTime: 1663113600000,
time: 1663106459005
}
...
]
Authenticated REST Endpoints
Note that for all authenticated endpoints, you can pass an extra parameter
useServerTime
set to true
in order to fetch the server time before making
the request.
order
Creates a new order.
console.log(
await client.order({
symbol: 'XLMETH',
side: 'BUY',
quantity: '100',
price: '0.0002',
}),
)
| Param | Type | Required | Default | Description |
| ---------------- | ------ | -------- | -------- | ------------------------------------------------------------------- |
| symbol | String | true | | |
| side | String | true | | BUY
,SELL
|
| type | String | false | LIMIT
| LIMIT
, MARKET
|
| quantity | String | true | | |
| price | String | true | | Optional for MARKET
orders |
| timeInForce | String | false | GTC
| FOK
, GTC
, IOC
|
| newClientOrderId | String | false | | A unique id for the order. Automatically generated if not sent. |
| stopPrice | Number | false | | Used with stop orders |
| activationPrice | Number | false | | Used with TRAILING_STOP_MARKET
|
| callbackRate | Number | false | | Used with TRAILING_STOP_MARKET
|
| newOrderRespType | String | false | RESULT
| Returns more complete info of the order. ACK
, RESULT
, or FULL
|
| icebergQty | Number | false | | Used with iceberg orders |
| recvWindow | Number | false | | |
Additional mandatory parameters based on type
:
| Type | Additional mandatory parameters |
| -----------------------| ----------------------------------------------- |
| LIMIT
| timeInForce
, quantity
, price
|
| MARKET
| quantity
|
| STOP
| quantity
, price
, stopPrice
|
| STOP_LOSS_LIMIT
| timeInForce
, quantity
, price
, stopPrice
|
| STOP_LOSS_MARKET
| stopPrice
|
| TAKE_PROFIT
| quantity
, price
, stopPrice
|
| TAKE_PROFIT_MARKET
| stopPrice
|
| STOP_PROFIT_LIMIT
| timeInForce
, quantity
, price
, stopPrice
|
| LIMIT_MAKER
| quantity
, price
|
| TRAILING_STOP_MARKET
| callbackRate
, activationPrice
|
LIMIT_MAKER
areLIMIT
orders that will be rejected if they would immediately match and trade as a taker.STOP
andTAKE_PROFIT
will execute aMARKET
order when thestopPrice
is reached.- Any
LIMIT
orLIMIT_MAKER
type order can be made an iceberg order by sending anicebergQty
. - Any order with an
icebergQty
MUST havetimeInForce
set toGTC
.
{
symbol: 'XLMETH',
orderId: 1740797,
clientOrderId: '1XZTVBTGS4K1e',
transactTime: 1514418413947,
price: '0.00020000',
origQty: '100.00000000',
executedQty: '0.00000000',
status: 'NEW',
timeInForce: 'GTC',
type: 'LIMIT',
side: 'BUY'
}
orderTest
Test new order creation and signature/recvWindow. Creates and validates a new order but does not send it into the matching engine.
Same API as above, but does not return any output on success.
orderOco
Creates a new OCO order.
console.log(
await client.orderOco({
symbol: 'XLMETH',
side: 'SELL',
quantity: 100,
price: 0.0002,
stopPrice: 0.0001,
stopLimitPrice: 0.0001,
}),
)
| Param | Type | Required | Description
|----------------------|--------|----------|------------
| symbol | String | true |
| listClientOrderId | String | false | A unique Id for the entire orderList
| side | String | true | BUY
,SELL
| quantity | Number | true |
| limitClientOrderId | String | false | A unique Id for the limit order
| price | Number | true |
| limitIcebergQty | Number | false | Used to make the LIMIT_MAKER
leg an iceberg order.
| stopClientOrderId | String | false | A unique Id for the stop loss/stop loss limit leg
| stopPrice | Number | true
| stopLimitPrice | Number | false | If provided, stopLimitTimeInForce
is required.
| stopIcebergQty | Number | false | Used with STOP_LOSS_LIMIT
leg to make an iceberg order.
| stopLimitTimeInForce | String | false | FOK
, GTC
, IOC
| newOrderRespType | String | false | Returns more complete info of the order. ACK
, RESULT
, or FULL
| recvWindow | Number | false | The value cannot be greater than 60000
Additional Info:
- Price Restrictions:
SELL
: Limit Price > Last Price > Stop PriceBUY
: Limit Price < Last Price < Stop Price
- Quantity Restrictions:
- Both legs must have the same quantity.
ICEBERG
quantities however do not have to be the same
{
"orderListId": 0,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "JYVpp3F0f5CAG15DhtrqLp",
"transactionTime": 1514418413947,
"symbol": "XLMETH",
"orders": [
{
"symbol": "XLMETH",
"orderId": 1740797,
"clientOrderId": "1XZTVBTGS4K1e"
},
{
"symbol": "XLMETH",
"orderId": 1740798,
"clientOrderId": "1XZTVBTGS4K1f"
}
],
"orderReports": [
{
"symbol": "XLMETH",
"orderId": 1740797,
"orderListId": 0,
"clientOrderId": "1XZTVBTGS4K1e",
"transactTime": 1514418413947,
"price": "0.000000",
"origQty": "100",
"executedQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "STOP_LOSS",
"side": "SELL",
"stopPrice": "0.0001"
},
{
"symbol": "XLMETH",
"orderId": 1740798,
"orderListId": 0,
"clientOrderId": "1XZTVBTGS4K1f",
"transactTime": 1514418413947,
"price": "0.0002",
"origQty": "100",
"executedQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT_MAKER",
"side": "SELL"
}
]
}
getOrder
Check an order's status.
console.log(
await client.getOrder({
symbol: 'BNBETH',
orderId: 50167927,
}),
)
| Param | Type | Required | Description |
| ----------------- | ------ | -------- | ------------------------------------------- |
| symbol | String | true |
| orderId | Number | true | Not required if origClientOrderId
is used |
| origClientOrderId | String | false |
| recvWindow | Number | false |
{
clientOrderId: 'NkQnNkdBV1RGjUALLhAzNy',
cummulativeQuoteQty: '0.16961580',
executedQty: '3.91000000',
icebergQty: '0.00000000',
isWorking: true,
orderId: 50167927,
origQty: '3.91000000',
price: '0.04338000',
side: 'SELL',
status: 'FILLED',
stopPrice: '0.00000000',
symbol: 'BNBETH',
time: 1547075007821,
timeInForce: 'GTC',
type: 'LIMIT',
updateTime: 1547075016737
}
getOrderOco
Retrieves a specific OCO based on provided optional parameters
console.log(
await client.getOrderOco({
orderListId: 27,
}),
)
| Param | Type | Required | Description |
| ----------------- | ------ | -------- | ------------------------------------------- |
| orderListId | Number | true | Not required if listClientOrderId
is used |
| listClientOrderId | String | false |
| recvWindow | Number | false |
{
orderListId: 27,
contingencyType: 'OCO',
listStatusType: 'EXEC_STARTED',
listOrderStatus: 'EXECUTING',
listClientOrderId: 'h2USkA5YQpaXHPIrkd96xE',
transactionTime: 1565245656253,
symbol: 'LTCBTC',
orders: [
{
symbol: 'LTCBTC',
orderId: 4,
clientOrderId: 'qD1gy3kc3Gx0rihm9Y3xwS'
},
{
symbol: 'LTCBTC',
orderId: 5,
clientOrderId: 'ARzZ9I00CPM8i3NhmU9Ega'
}
]
}
cancelOrder
Cancels an active order.
console.log(
await client.cancelOrder({
symbol: 'ETHBTC',
orderId: 1,
}),
)
| Param | Type | Required | Description |
| ----------------- | ------ | -------- | -------------------------------------------------------------------------- |
| symbol | String | true |
| orderId | Number | true | Not required if origClientOrderId
is used |
| origClientOrderId | String | false |
| newClientOrderId | String | false | Used to uniquely identify this cancel. Automatically generated by default. |
| recvWindow | Number | false |
{
symbol: 'ETHBTC',
origClientOrderId: 'bnAoRHgI18gRD80FJmsfNP',
orderId: 1,
clientOrderId: 'RViSsQPTp1v3WmLYpeKT11'
}
cancelOrderOco
Cancel an entire Order List.
console.log(
await client.cancelOrderOco({
symbol: 'ETHBTC',
orderListId: 0,
}),
)
| Param | Type | Required | Description |
| ----------------- | ------ | -------- | -------------------------------------------------------------------------- |
| symbol | String | true |
| orderListId | Number | true | Not required if listClientOrderId
is used |
| listClientOrderId | String | false |
| newClientOrderId | String | false | Used to uniquely identify this cancel. Automatically generated by default. |
| recvWindow | Number | false |
{
orderListId: 0,
contingencyType: 'OCO',
listStatusType: 'ALL_DONE',
listOrderStatus: 'ALL_DONE',
listClientOrderId: 'C3wyj4WVEktd7u9aVBRXcN',
transactionTime: 1574040868128,
symbol: 'LTCBTC',
orders: [
{
symbol: 'LTCBTC',
orderId: 2,
clientOrderId: 'pO9ufTiFGg3nw2fOdgeOXa'
},
{
symbol: 'LTCBTC',
orderId: 3,
clientOrderId: 'TXOvglzXuaubXAaENpaRCB'
}
],
orderReports: [
{
symbol: 'LTCBTC',
origClientOrderId: 'pO9ufTiFGg3nw2fOdgeOXa',
orderId: 2,
orderListId: 0,
clientOrderId: 'unfWT8ig8i0uj6lPuYLez6',
price: '1.00000000',
origQty: '10.00000000',
executedQty: '0.00000000',
cummulativeQuoteQty: '0.00000000',
status: 'CANCELED',
timeInForce: 'GTC',
type: 'STOP_LOSS_LIMIT',
side: 'SELL',
stopPrice: '1.00000000'
},
{
symbol: 'LTCBTC',
origClientOrderId: 'TXOvglzXuaubXAaENpaRCB',
orderId: 3,
orderListId: 0,
clientOrderId: 'unfWT8ig8i0uj6lPuYLez6',
price: '3.00000000',
origQty: '10.00000000',
executedQty: '0.00000000',
cummulativeQuoteQty: '0.00000000',
status: 'CANCELED',
timeInForce: 'GTC',
type: 'LIMIT_MAKER',
side: 'SELL'
}
]
}
cancelOpenOrders
Cancels all active orders on a symbol. This includes OCO orders.
console.log(
await client.cancelOpenOrders({
symbol: 'ETHBTC'
}),
)
| Param | Type | Required | |------------|----------|-----------| | symbol | String | true |
[
{
symbol: 'ETHBTC',
origClientOrderId: 'bnAoRHgI18gRD80FJmsfNP',
orderId: 1,
clientOrderId: 'RViSsQPTp1v3WmLYpeKT11'
},
{
symbol: 'ETHBTC',
origClientOrderId: 'IDbzcGmfwSCKihxILK1snu',
orderId: 2,
clientOrderId: 'HKFcuWAm9euMgRuwVGR8CL'
}
]
openOrders
Get all open orders on a symbol.
console.log(
await client.openOrders({
symbol: 'XLMBTC',
}),
)
| Param | Type | Required | | ---------- | ------ | -------- | | symbol | String | true | | recvWindow | Number | false |
;[
{
symbol: 'XLMBTC',
orderId: 11271740,
clientOrderId: 'ekHkROfW98gBN80LTfufQZ',
price: '0.00001081',
origQty: '1331.00000000',
executedQty: '0.00000000',
status: 'NEW',
timeInForce: 'GTC',
type: 'LIMIT',
side: 'BUY',
stopPrice: '0.00000000',
icebergQty: '0.00000000',
time: 1522682290485,
isWorking: true,
},
]
allOrders
Get all account orders on a symbol; active, canceled, or filled.
console.log(
await client.allOrders({
symbol: 'ETHBTC',
}),
)
| Param | Type | Required | Default | Description |
| ---------- | ------ | -------- | ------- | -------------------------------------------------------------------------------------- |
| symbol | String | true |
| orderId | Number | false | | If set, it will get orders >= that orderId. Otherwise most recent orders are returned. |
| limit | Number | false | 500
| Max 500
|
| recvWindow | Number | false |
;[
{
symbol: 'ENGETH',
orderId: 191938,
clientOrderId: '1XZTVBTGS4K1e',
price: '0.00138000',
origQty: '1.00000000',
executedQty: '1.00000000',
status: 'FILLED',
timeInForce: 'GTC',
type: 'LIMIT',
side: 'SELL',
stopPrice: '0.00000000',
icebergQty: '0.00000000',
time: 1508611114735,
isWorking: true,
},
]
allOrdersOCO
Retrieves all OCO based on provided optional parameters
console.log(
await client.allOrdersOCO({
timestamp: 1565245913483,
}),
)
| Param | Type | Required | Default | Description |
|------------|---------|----------|---------|-----------------------------------------------------------|
| timestamp | Number | true | | |
| startTime | Number | false | | |
| endTime | Number | false | | |
| limit | Integer | false | 500
| Max 1000
|
| recvWindow | Number | false | | The value cannot be greater than 60000 |
| formId | Number | false | | If supplied, neither startTime or endTime can be provided |
;[
{
"orderListId": 29,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "amEEAXryFzFwYF1FeRpUoZ",
"transactionTime": 1565245913483,
"symbol": "LTCBTC",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 4,
"clientOrderId": "oD7aesZqjEGlZrbtRpy5zB"
},
{
"symbol": "LTCBTC",
"orderId": 5,
"clientOrderId": "Jr1h6xirOxgeJOUuYQS7V3"
}
]
},
{
"orderListId": 28,
"contingencyType": "OCO",
"listStatusType": "EXEC_STARTED",
"listOrderStatus": "EXECUTING",
"listClientOrderId": "hG7hFNxJV6cZy3Ze4AUT4d",
"transactionTime": 1565245913407,
"symbol": "LTCBTC",
"orders": [
{
"symbol": "LTCBTC",
"orderId": 2,
"clientOrderId": "j6lFOfbmFMRjTYA7rRJ0LP"
},
{
"symbol": "LTCBTC",
"orderId": 3,
"clientOrderId": "z0KCjOdditiLS5ekAFtK81"
}
]
}
]
accountInfo
Get current account information.
console.log(await client.accountInfo())
| Param | Type | Required | | ---------- | ------ | -------- | | recvWindow | Number | false |
{
makerCommission: 10,
takerCommission: 10,
buyerCommission: 0,
sellerCommission: 0,
canTrade: true,
canWithdraw: true,
canDeposit: true,
balances: [
{ asset: 'BTC', free: '0.00000000', locked: '0.00000000' },
{ asset: 'LTC', free: '0.00000000', locked: '0.00000000' },
]
}
myTrades
Get trades for the current authenticated account and symbol.
console.log(
await client.myTrades({
symbol: 'ETHBTC',
}),
)
| Param | Type | Required | Default | Description |
| ---------- | ------ | -------- | ------- | ------------------------------------------------------- |
| symbol | String | true |
| limit | Number | false | 500
| Max 1000
|
| fromId | Number | false | | TradeId to fetch from. Default gets most recent trades. |
| orderId | Number | false | | This can only be used in combination with symbol. |
| startTime | Number | false | | |
| endTime | Number | false | | |
| recvWindow | Number | false | 5000
| The value cannot be greater than 60000
. |
;[
{
id: 9960,
orderId: 191939,
price: '0.00138000',
qty: '10.00000000',
commission: '0.00001380',
commissionAsset: 'ETH',
time: 1508611114735,
isBuyer: false,
isMaker: false,
isBestMatch: true,
},
]
dailyAccountSnapshot
Get asset snapshot for the current authenticated account.
console.log(
await client.accountSnapshot({
"type": "SPOT"
});
)
| Param | Type | Required | Default | Description |
| ---------- | ------ | -------- | ------- | ------------------------------------------------------- |
| type | String | true |
| startTime | Number | false |
| endTime | Number | false |
| limit | Number | false | 5
| min 5
, max 30
, default 5
|
| recvWindow | Number | false |
{
"code":200, // 200 for success; others are error codes
"msg":"", // error message
"snapshotVos":[
{
"data":{
"balances":[
{
"asset":"BTC",
"free":"0.09905021",
"locked":"0.00000000"
},
{
"asset":"USDT",
"free":"1.89109409",
"locked":"0.00000000"
}
],
"totalAssetOfBtc":"0.09942700"
},
"type":"spot",
"updateTime":1576281599000
}
]
}
tradesHistory
Lookup symbol trades history.
console.log(await client.tradesHistory({ symbol: 'ETHBTC' }))
| Param | Type | Required | Default | Description |
| ------ | ------ | -------- | ------- | ------------------------------------------------------- |
| symbol | String | true |
| limit | Number | false | 500
| Max 500
|
| fromId | Number | false | null
| TradeId to fetch from. Default gets most recent trades. |
;[
{
id: 28457,
price: '4.00000100',
qty: '12.00000000',
time: 1499865549590,
isBuyerMaker: true,
isBestMatch: true,
},
]
withdrawHistory
Get the account withdraw history.
console.log(await client.withdrawHistory())
| Param | Type | Required | Description | | ---------- | ------ | -------- | ---------------------------------------------------------------------------------------------------------- | | asset | String | false | | | status | Number | false | 0 (0: Email Sent, 1: Cancelled 2: Awaiting Approval, 3: Rejected, 4: Processing, 5: Failure, 6: Completed) | | offset | Number | false | | | limit | Number | false | | | startTime | Number | false | | | endTime | Number | false | | | recvWindow | Number | false | |
[
{
"address": "0x94df8b352de7f46f64b01d3666bf6e936e44ce60",
"amount": "8.91000000",
"applyTime": "2019-10-12 11:12:02",
"coin": "USDT",
"id": "b6ae22b3aa844210a7041aee7589627c",
"withdrawOrderId": "WITHDRAWtest123", // will not be returned if there's no withdrawOrderId for this withdraw.
"network": "ETH",
"transferType": 0, // 1 for internal transfer, 0 for external transfer
"status": 6,
"txId": "0xb5ef8c13b968a406cc62a93a8bd80f9e9a906ef1b3fcf20a2e48573c17659268"
},
{
"address": "1FZdVHtiBqMrWdjPyRPULCUceZPJ2WLCsB",
"amount": "0.00150000",
"applyTime": "2019-09-24 12:43:45",
"coin": "BTC",
"id": "156ec387f49b41df8724fa744fa82719",
"network": "BTC",
"status": 6,
"txId": "60fd9007ebfddc753455f95fafa808c4302c836e4d1eebc5a132c36c1d8ac354"
}
]
withdraw
Triggers the withdraw process (untested for now).
console.log(
await client.withdraw({
asset: 'ETH',
address: '0xfa97c22a03d8522988c709c24283c0918a59c795',
amount: 100,
}),
)
| Param | Type | Required | Description | | ---------- | ------ | -------- | -------------------------- | | asset | String | true | | address | String | true | | amount | Number | true | | name | String | false | Description of the address | | recvWindow | Number | false |
{
"id":"7213fea8e94b4a5593d507237e5a555b"
}
depositAddress
Fetch deposit address with network.
console.log(await client.depositAddress({ coin: 'NEO' }))
| Param | Type | Required | Description | | -------- | ------ | -------- | ---------------- | | coin | String | true | The coin name | | network | String | false | The network name |
{
address: 'AM6ytPW78KYxQCmU2pHYGcee7GypZ7Yhhc',
coin: 'NEO',
tag: '',
url: 'https://neoscan.io/address/AM6ytPW78KYxQCmU2pHYGcee7GypZ7Yhhc'
}
depositHistory
Fetch deposit address with network.
console.log(await client.depositHistory())
| Param | Type | Required | Description | | ---------- | ------ | -------- | ---------------- | | coin | String | false | The coin name | | status | Number | false | 0 (0:pending, 6: credited but cannot withdraw, 1:success) | | startTime | Number | false | Default: 90 days from current timestamp | | endTime | Number | false | Default: present timestamp | | offset | Number | false | default: 0 | | limit | Number | false | | | recvWindow | Number | false | |
[
{
"amount": "0.00999800",
"coin": "PAXG",
"network": "ETH",
"status": 1,
"address": "0x788cabe9236ce061e5a892e1a59395a81fc8d62c",
"addressTag": "",
"txId": "0xaad4654a3234aa6118af9b4b335f5ae81c360b2394721c019b5d1e75328b09f3",
"insertTime": 1599621997000,
"transferType": 0,
"confirmTimes": "12/12"
},
{
"amount": "0.50000000",
"coin": "IOTA",
"network": "IOTA",
"status": 1,
"address": "SIZ9VLMHWATXKV99LH99CIGFJFUMLEHGWVZVNNZXRJJVWBPHYWPPBOSDORZ9EQSHCZAMPVAPGFYQAUUV9DROOXJLNW",
"addressTag": "",
"txId": "ESBFVQUTPIWQNJSPXFNHNYHSQNTGKRVKPRABQWTAXCDWOAKDKYWPTVG9BGXNVNKTLEJGESAVXIKIZ9999",
"insertTime": 1599620082000,
"transferType": 0,
"confirmTimes": "1/1"
}
]
tradeFee
Retrieve the account trade Fee per asset.
console.log(await client.tradeFee())
[
{
"symbol": "ADABNB",
"makerCommission": 0.9000,
"takerCommission": 1.0000
},
{
"symbol": "BNBBTC",
"makerCommission": 0.3000,
"takerCommission": 0.3000
}
]
capitalConfigs
Get information of coins (available for deposit and withdraw) for user.
console.log(await client.capitalConfigs())
[
{
'coin': 'CTR',
'depositAllEnable': false,
'free': '0.00000000',
'freeze': '0.00000000',
'ipoable': '0.00000000',
'ipoing': '0.00000000',
'isLegalMoney': false,
'locked': '0.00000000',
'name': 'Centra',
'networkList': [
{
'addressRegex': '^(0x)[0-9A-Fa-f]{40}$',
'coin': 'CTR',
'depositDesc': 'Delisted, Deposit Suspended',
'depositEnable': false,
'isDefault': true,
'memoRegex': '',
'minConfirm': 12,
'name': 'ERC20',
'network': 'ETH',
'resetAddressStatus': false,
'specialTips': '',
'unLockConfirm': 0,
'withdrawDesc': '',
'withdrawEnable': true,
'withdrawFee': '35.00000000',
'withdrawIntegerMultiple': '0.00000001',
'withdrawMax': '0.00000000',
'withdrawMin': '70.00000000'
}
],
'storage': '0.00000000',
'trading': false,
'withdrawAllEnable': true,
'withdrawing': '0.00000000'
}
]
universalTransfer
You need to enable Permits Universal Transfer option for the api key which requests this endpoint.
console.log(await client.universalTransfer({ type: 'MAIN_C2C', asset: 'USDT', amount: '1000' }))
| Param | Type | Required | Description | | ---------- | ------ | -------- | ---------------- | | type | String | true | | asset | String | true | | amount | String | true | | recvWindow | Number | false |
{
tranId:13526853623
}
universalTransferHistory
console.log(await client.universalTransferHistory({ type: 'MAIN_C2C' }))
| Param | Type | Required | Description | | ---------- | ------ | -------- | ------------------- | | type | String | true | | startTime | Number | false | | endTime | Number | false | | current | Number | false | Default 1 | | size | Number | false | Default 10, Max 100 | | recvWindow | Number | false |
{
"total": 2,
"rows": [
{
"asset":"USDT",
"amount":"1",
"type":"MAIN_C2C"
"status": "CONFIRMED",
"tranId": 11415955596,
"timestamp":1544433328000
},
{
"asset":"USDT",
"amount":"2",
"type":"MAIN_C2C",
"status": "CONFIRMED",
"tranId": 11366865406,
"timestamp":1544433328000
}
]
}
assetDetail
console.log(await client.assetDetail())
| Param | Type | Required | Description | | ---------- | -------- | -------- | ------------------- | | recvWindow | Number | false |
{
"CTR": {
"minWithdrawAmount": "70.00000000", //min withdraw amount
"depositStatus": false,//deposit status (false if ALL of networks' are false)
"withdrawFee": 35, // withdraw fee
"withdrawStatus": true, //withdraw status (false if ALL of networks' are false)
"depositTip": "Delisted, Deposit Suspended" //reason
},
"SKY": {
"minWithdrawAmount": "0.02000000",
"depositStatus": true,
"withdrawFee": 0.01,
"withdrawStatus": true
}
}
getBnbBurn
console.log(await client.getBnbBurn())
| Param | Type | Required | Description | | ---------- | -------- | -------- | ------------------- | | recvWindow | Number | false | No more than 60000 |
{
"spotBNBBurn":true,
"interestBNBBurn": false
}
setBnbBurn
console.log(await client.setBnbBurn({ spotBNBBurn: "true" }))
| Param | Type | Required | Description | | --------------- | -------- | -------- | ------------------- | | spotBNBBurn | String | false | "true" or "false"; Determines whether to use BNB to pay for trading fees on SPOT | | interestBNBBurn | String | false | "true" or "false"; Determines whether to use BNB to pay for margin loan's interest | | recvWindow | Number | false | No more than 60000 |
{
"spotBNBBurn":true,
"interestBNBBurn": false
}
dustLog
console.log(await client.dustLog())
| Param | Type | Required | Description | | ---------- | -------- | -------- | ------------------- | | startTime | Number | false | | endTime | Number | false | | recvWindow | Number | false |
{
"total": 8, //Total counts of exchange
"userAssetDribblets": [
{
"operateTime": 1615985535000,
"totalTransferedAmount": "0.00132256",
"totalServiceChargeAmount": "0.00002699",
"transId": 45178372831,
"userAssetDribbletDetails": [
{
"transId": 4359321,
"serviceChargeAmount": "0.000009",
"amount": "0.0009",
"operateTime": 1615985535000,
"transferedAmount