Skip to content

Instantly share code, notes, and snippets.

@andrewpsp
Created August 12, 2019 21:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save andrewpsp/c0c01cca5acd6364bbefc1068e662c7a to your computer and use it in GitHub Desktop.
Save andrewpsp/c0c01cca5acd6364bbefc1068e662c7a to your computer and use it in GitHub Desktop.
2019 release - binance API - python
python-binance Documentation
Release 0.2.0
Sam McHardy
Aug 12, 2019
Contents
1 Note 1
2 Features 3
3 Quick Start 5
4 Donate 7
5 Other Exchanges 9
5.1 Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.2 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Python Module Index 91
Index 93
i
ii
CHAPTER 1
Note
I am working on a python3 version with async support to remove legacy dependencies and their related issues.
I would appreciate if you could try out the feature/asyncio branch and give your feedback.
This is an unofficial Python wrapper for the Binance exchange REST API v1/3. I am in no way affiliated with Binance,
use at your own risk.
If you came here looking for the Binance exchange to purchase cryptocurrencies, then go here. If you want to automate
interactions with Binance stick around.
If you’re interested in Binance’s new DEX Binance Chain see my python-binance-chain library
Source code https://github.com/sammchardy/python-binance
Documentation https://python-binance.readthedocs.io/en/latest/
Binance API Telegram https://t.me/binance_api_english
Blog with examples https://sammchardy.github.io
Make sure you update often and check the Changelog for new features and bug fixes.
1
python-binance Documentation, Release 0.2.0
2 Chapter 1. Note
CHAPTER 2
Features
• Implementation of all General, Market Data and Account endpoints.
• Simple handling of authentication
• No need to generate timestamps yourself, the wrapper does it for you
• Response exception handling
• Websocket handling with reconnection and multiplexed connections
• Symbol Depth Cache
• Historical Kline/Candle fetching function
• Withdraw functionality
• Deposit addresses
• Margin Trading
3
python-binance Documentation, Release 0.2.0
4 Chapter 2. Features
CHAPTER 3
Quick Start
Register an account with Binance.
Generate an API Key and assign relevant permissions.
pip install python-binance
from binance.client import Client
client = Client(api_key, api_secret)
# get market depth
depth = client.get_order_book(symbol='BNBBTC')
# place a test market buy order, to place an actual order use the create_order
˓→function
order = client.create_test_order(
symbol='BNBBTC',
side=Client.SIDE_BUY,
type=Client.ORDER_TYPE_MARKET,
quantity=100)
# get all symbol prices
prices = client.get_all_tickers()
# withdraw 100 ETH
# check docs for assumptions around withdrawals
from binance.exceptions import BinanceAPIException, BinanceWithdrawException
try:
result = client.withdraw(
asset='ETH',
address='<eth_address>',
amount=100)
except BinanceAPIException as e:
print(e)
except BinanceWithdrawException as e:
(continues on next page)
5
python-binance Documentation, Release 0.2.0
(continued from previous page)
print(e)
else:
print("Success")
# fetch list of withdrawals
withdraws = client.get_withdraw_history()
# fetch list of ETH withdrawals
eth_withdraws = client.get_withdraw_history(asset='ETH')
# get a deposit address for BTC
address = client.get_deposit_address(asset='BTC')
# start aggregated trade websocket for BNBBTC
def process_message(msg):
print("message type: {}".format(msg['e']))
print(msg)
# do something
from binance.websockets import BinanceSocketManager
bm = BinanceSocketManager(client)
bm.start_aggtrade_socket('BNBBTC', process_message)
bm.start()
# get historical kline data from any date range
# fetch 1 minute klines for the last day up until now
klines = client.get_historical_klines("BNBBTC", Client.KLINE_INTERVAL_1MINUTE, "1 day
˓→ago UTC")
# fetch 30 minute klines for the last month of 2017
klines = client.get_historical_klines("ETHBTC", Client.KLINE_INTERVAL_30MINUTE, "1
˓→Dec, 2017", "1 Jan, 2018")
# fetch weekly klines since it listed
klines = client.get_historical_klines("NEOBTC", Client.KLINE_INTERVAL_1WEEK, "1 Jan,
˓→2017")
For more check out the documentation.
6 Chapter 3. Quick Start
CHAPTER 4
Donate
If this library helped you out feel free to donate.
• ETH: 0xD7a7fDdCfA687073d7cC93E9E51829a727f9fE70
• LTC: LPC5vw9ajR1YndE1hYVeo3kJ9LdHjcRCUZ
• NEO: AVJB4ZgN7VgSUtArCt94y7ZYT6d5NDfpBo
• BTC: 1Dknp6L6oRZrHDECRedihPzx2sSfmvEBys
7
python-binance Documentation, Release 0.2.0
8 Chapter 4. Donate
CHAPTER 5
Other Exchanges
If you use Binance Chain check out my python-binance-chain library.
If you use Kucoin check out my python-kucoin library.
If you use Allcoin check out my python-allucoin library.
If you use IDEX check out my python-idex library.
If you use Quoinex or Qryptos check out my python-quoine library.
If you use BigONE check out my python-bigone library.
5.1 Contents
5.1.1 Getting Started
Installation
python-binance is available on PYPI. Install with pip:
pip install python-binance
Windows
If you see errors building Twisted indication Microsoft Visual C++ is required you may need to install the Visual C++
Build Tools refer to the Python Wiki on Widows Compilers for your relevant version.
Register on Binance
Firstly register an account with Binance.
9
python-binance Documentation, Release 0.2.0
Generate an API Key
To use signed account methods you are required to create an API Key.
Initialise the client
Pass your API Key and Secret
from binance.client import Client
client = Client(api_key, api_secret)
Making API Calls
Every method supports the passing of arbitrary parameters via keyword matching those in the‘Binance API documentation <https://github.com/binance-exchange/binance-official-api-docs>‘_. These keyword arguments will be
sent directly to the relevant endpoint.
Each API method returns a dictionary of the JSON response as per the Binance API documentation. The docstring of
each method in the code references the endpoint it implements.
The Binance API documentation references a timestamp parameter, this is generated for you where required.
Some methods have a recvWindow parameter for timing security, see Binance documentation.
API Endpoints are rate limited by Binance at 20 requests per second, ask them if you require more.
API Rate Limit
Check the get_exchange_info() call for up to date rate limits.
At the current time Binance rate limits are:
• 1200 requests per minute
• 10 orders per second
• 100,000 orders per 24hrs
Some calls have a higher weight than others especially if a call returns information about all symbols. Read the
‘official Binance documentation <https://github.com/binance-exchange/binance-official-api-docs‘_ for specific
information.
Requests Settings
python-binance uses the requests library.
You can set custom requests parameters for all API calls when creating the client.
client = Client("api-key", "api-secret", {"verify": False, "timeout": 20})
You may also pass custom requests parameters through any API call to override default settings or the above settingsspecify new ones like the example below.
10 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
# this would result in verify: False and timeout: 5 for the get_all_orders call
client = Client("api-key", "api-secret", {"verify": False, "timeout": 20})
client.get_all_orders(symbol='BNBBTC', requests_params={'timeout': 5})
Check out the requests documentation for all options.
Proxy Settings
You can use the Requests Settings method above
proxies = {
'http': 'http://10.10.1.10:3128',
'https': 'http://10.10.1.10:1080'
}
# in the Client instantiation
client = Client("api-key", "api-secret", {'proxies': proxies})
# or on an individual call
client.get_all_orders(symbol='BNBBTC', requests_params={'proxies': proxies})
Or set an environment variable for your proxy if required to work across all requests.
An example for Linux environments from the requests Proxies documentation is as follows.
$ export HTTP_PROXY="http://10.10.1.10:3128"
$ export HTTPS_PROXY="http://10.10.1.10:1080"
For Windows environments
C:\>set HTTP_PROXY=http://10.10.1.10:3128
C:\>set HTTPS_PROXY=http://10.10.1.10:1080
5.1.2 Binance Constants
Binance requires specific string constants for Order Types, Order Side, Time in Force, Order response and Kline
intervals these are found on binance.client.Client.
SYMBOL_TYPE_SPOT = 'SPOT'
ORDER_STATUS_NEW = 'NEW'
ORDER_STATUS_PARTIALLY_FILLED = 'PARTIALLY_FILLED'
ORDER_STATUS_FILLED = 'FILLED'
ORDER_STATUS_CANCELED = 'CANCELED'
ORDER_STATUS_PENDING_CANCEL = 'PENDING_CANCEL'
ORDER_STATUS_REJECTED = 'REJECTED'
ORDER_STATUS_EXPIRED = 'EXPIRED'
KLINE_INTERVAL_1MINUTE = '1m'
KLINE_INTERVAL_3MINUTE = '3m'
KLINE_INTERVAL_5MINUTE = '5m'
KLINE_INTERVAL_15MINUTE = '15m'
KLINE_INTERVAL_30MINUTE = '30m'
KLINE_INTERVAL_1HOUR = '1h'
KLINE_INTERVAL_2HOUR = '2h'
KLINE_INTERVAL_4HOUR = '4h'
(continues on next page)
5.1. Contents 11
python-binance Documentation, Release 0.2.0
(continued from previous page)
KLINE_INTERVAL_6HOUR = '6h'
KLINE_INTERVAL_8HOUR = '8h'
KLINE_INTERVAL_12HOUR = '12h'
KLINE_INTERVAL_1DAY = '1d'
KLINE_INTERVAL_3DAY = '3d'
KLINE_INTERVAL_1WEEK = '1w'
KLINE_INTERVAL_1MONTH = '1M'
SIDE_BUY = 'BUY'
SIDE_SELL = 'SELL'
ORDER_TYPE_LIMIT = 'LIMIT'
ORDER_TYPE_MARKET = 'MARKET'
ORDER_TYPE_STOP_LOSS = 'STOP_LOSS'
ORDER_TYPE_STOP_LOSS_LIMIT = 'STOP_LOSS_LIMIT'
ORDER_TYPE_TAKE_PROFIT = 'TAKE_PROFIT'
ORDER_TYPE_TAKE_PROFIT_LIMIT = 'TAKE_PROFIT_LIMIT'
ORDER_TYPE_LIMIT_MAKER = 'LIMIT_MAKER'
TIME_IN_FORCE_GTC = 'GTC'
TIME_IN_FORCE_IOC = 'IOC'
TIME_IN_FORCE_FOK = 'FOK'
ORDER_RESP_TYPE_ACK = 'ACK'
ORDER_RESP_TYPE_RESULT = 'RESULT'
ORDER_RESP_TYPE_FULL = 'FULL'
# For accessing the data returned by Client.aggregate_trades().
AGG_ID = 'a'
AGG_PRICE = 'p'
AGG_QUANTITY = 'q'
AGG_FIRST_TRADE_ID = 'f'
AGG_LAST_TRADE_ID = 'l'
AGG_TIME = 'T'
AGG_BUYER_MAKES = 'm'
AGG_BEST_MATCH = 'M'
For Websocket Depth these are found on binance.websockets.BinanceSocketManager
WEBSOCKET_DEPTH_5 = '5'
WEBSOCKET_DEPTH_10 = '10'
WEBSOCKET_DEPTH_20 = '20'
To use in your code reference either binance.client.Client or binance.websockets.BinanceSocketManager
from binance.client import Client
from binance.websockets import BinanceSocketManager
side = Client.SIDE_BUY
5.1.3 General Endpoints
12 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
Ping the server
client.ping()
Get the server time
time_res = client.get_server_time()
Get system status
status = client.get_system_status()
Returns
{
"status": 0, # 0: normal1system maintenance
"msg": "normal" # normal or System maintenance.
}
Get Exchange Info
info = client.get_exchange_info()
Get Symbol Info
Get the exchange info for a particular symbol
info = client.get_symbol_info('BNBBTC')
Get Current Products
This call is deprecated, use the above Exchange Info call
products = client.get_products()
5.1.4 Market Data Endpoints
Get Market Depth
depth = client.get_order_book(symbol='BNBBTC')
Get Recent Trades
trades = client.get_recent_trades(symbol='BNBBTC')
5.1. Contents 13
python-binance Documentation, Release 0.2.0
Get Historical Trades
trades = client.get_historical_trades(symbol='BNBBTC')
Get Aggregate Trades
trades = client.get_aggregate_trades(symbol='BNBBTC')
Aggregate Trade Iterator
Iterate over aggregate trades for a symbol from a given date or a given order id.
agg_trades = client.aggregate_trade_iter(symbol='ETHBTC', start_str='30 minutes ago
˓→UTC')
# iterate over the trade iterator
for trade in agg_trades:
print(trade)
# do something with the trade data
# convert the iterator to a list
# note: generators can only be iterated over once so we need to call it again
agg_trades = client.aggregate_trade_iter(symbol='ETHBTC', '30 minutes ago UTC')
agg_trade_list = list(agg_trades)
# example using last_id value
agg_trades = client.aggregate_trade_iter(symbol='ETHBTC', last_id=23380478)
agg_trade_list = list(agg_trades)
Get Kline/Candlesticks
candles = client.get_klines(symbol='BNBBTC', interval=Client.KLINE_INTERVAL_30MINUTE)
Get Historical Kline/Candlesticks
Fetch klines for any date range and interval
# fetch 1 minute klines for the last day up until now
klines = client.get_historical_klines("BNBBTC", Client.KLINE_INTERVAL_1MINUTE, "1 day
˓→ago UTC")
# fetch 30 minute klines for the last month of 2017
klines = client.get_historical_klines("ETHBTC", Client.KLINE_INTERVAL_30MINUTE, "1
˓→Dec, 2017", "1 Jan, 2018")
# fetch weekly klines since it listed
klines = client.get_historical_klines("NEOBTC", Client.KLINE_INTERVAL_1WEEK, "1 Jan,
˓→2017")
14 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
Get Historical Kline/Candlesticks using a generator
Fetch klines using a generator
for kline in client.get_historical_klines_generator("BNBBTC", Client.KLINE_INTERVAL_
˓→1MINUTE, "1 day ago UTC")
print(kline)
# do something with the kline
Get 24hr Ticker
tickers = client.get_ticker()
Get All Prices
Get last price for all markets.
prices = client.get_all_tickers()
Get Orderbook Tickers
Get first bid and ask entry in the order book for all markets.
tickers = client.get_orderbook_tickers()
5.1.5 Account Endpoints
Orders
Order Validation
Binance has a number of rules around symbol pair orders with validation on minimum price, quantity and total order
value.
Read more about their specifics in the Filters section of the official API.
It can be helpful to format the output using the following snippet
amount = 0.000234234
precision = 5
amt_str = "{:0.0{}f}".format(amount, precision)
Fetch all orders
orders = client.get_all_orders(symbol='BNBBTC', limit=10)
5.1. Contents 15
python-binance Documentation, Release 0.2.0
Place an order
Place an order
Use the create_order function to have full control over creating an order
from binance.enums import *
order = client.create_order(
symbol='BNBBTC',
side=SIDE_BUY,
type=ORDER_TYPE_LIMIT,
timeInForce=TIME_IN_FORCE_GTC,
quantity=100,
price='0.00001')
Place a limit order
Use the helper functions to easily place a limit buy or sell order
order = client.order_limit_buy(
symbol='BNBBTC',
quantity=100,
price='0.00001')
order = client.order_limit_sell(
symbol='BNBBTC',
quantity=100,
price='0.00001')
Place a market order
Use the helper functions to easily place a market buy or sell order
order = client.order_market_buy(
symbol='BNBBTC',
quantity=100)
order = client.order_market_sell(
symbol='BNBBTC',
quantity=100)
Place a test order
Creates and validates a new order but does not send it into the exchange.
from binance.enums import *
order = client.create_test_order(
symbol='BNBBTC',
side=SIDE_BUY,
type=ORDER_TYPE_LIMIT,
timeInForce=TIME_IN_FORCE_GTC,
quantity=100,
price='0.00001')
16 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
Check order status
order = client.get_order(
symbol='BNBBTC',
orderId='orderId')
Cancel an order
result = client.cancel_order(
symbol='BNBBTC',
orderId='orderId')
Get all open orders
orders = client.get_open_orders(symbol='BNBBTC')
Get all orders
orders = client.get_all_orders(symbol='BNBBTC')
Account
Get account info
info = client.get_account()
Get asset balance
balance = client.get_asset_balance(asset='BTC')
Get account status
status = client.get_account_status()
Get trades
trades = client.get_my_trades(symbol='BNBBTC')
5.1. Contents 17
python-binance Documentation, Release 0.2.0
Get trade fees
# get fees for all symbols
fees = client.get_trade_fee()
# get fee for one symbol
fees = client.get_trade_fee(symbol='BNBBTC')
Get asset details
details = client.get_asset_details()
Get dust log
log = client.get_dust_log()
Transfer dust
transfer = client.transfer_dust(asset='BNZ')
Get Asset Dividend History
history = client.get_asset_dividend_history()
5.1.6 Sub Account Endpoints
Get Sub Account list
accounts = client.get_sub_account_list()
Get Sub Account Transfer History
history = client.get_sub_account_transfer_history(email='blah@gmail.com')
Create Sub Account Transfer
transfer = client.create_sub_account_transfer(
fromEmail='from@gmail.com',
toEmail='to@gmail.com',
asset='BNB',
amount='100'
)
18 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
Get Sub Account Assets
assets = client.get_sub_account_assets(email='blah@gmail.com')
5.1.7 Margin Trading Endpoints
Market Data
Get margin asset info
info = client.get_margin_asset(asset='BNB')
Get margin symbol info
info = client.get_margin_symbol(symbol='BTCUSDT')
Get margin price index
info = client.get_margin_price_index(symbol='BTCUSDT')
Orders
Order Validation
Binance has a number of rules around symbol pair orders with validation on minimum price, quantity and total order
value.
Read more about their specifics in the Filters section of the official API.
It can be helpful to format the output using the following snippet
amount = 0.000234234
precision = 5
amt_str = "{:0.0{}f}".format(amount, precision)
Fetch all margin_orders
orders = client.get_all_margin_orders(symbol='BNBBTC', limit=10)
Place a margin order
Place an order
Use the create_margin_order function to have full control over creating an order
5.1. Contents 19
python-binance Documentation, Release 0.2.0
from binance.enums import *
order = client.create_margin_order(
symbol='BNBBTC',
side=SIDE_BUY,
type=ORDER_TYPE_LIMIT,
timeInForce=TIME_IN_FORCE_GTC,
quantity=100,
price='0.00001')
Check order status
order = client.get_margin_order(
symbol='BNBBTC',
orderId='orderId')
Cancel a margin order
result = client.cancel_margin_order(
symbol='BNBBTC',
orderId='orderId')
Get all open margin orders
orders = client.get_open_margin_orders(symbol='BNBBTC')
Get all margin orders
orders = client.get_all_margin_orders(symbol='BNBBTC')
Account
Get margin account info
info = client.get_margin_account()
Transfer spot to margin
transaction = client.transfer_spot_to_margin(asset='BTC', amount='1.1')
Transfer margin to spot
20 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
transaction = client.transfer_margin_to_spot(asset='BTC', amount='1.1')
Get max transfer amount
details = client.get_max_margin_transfer(asset='BTC')
Trades
Get all margin trades
trades = client.get_margin_trades(symbol='BNBBTC')
Loans
Create loan
transaction = client.create_margin_loan(asset='BTC', amount='1.1')
Repay loan
transaction = client.repay_margin_loan(asset='BTC', amount='1.1')
Get loan details
details = client.get_margin_loan_details(asset='BTC', txId='100001')
Get repay details
details = client.get_margin_repay_details(asset='BTC', txId='100001')
Get max loan amount
details = client.get_max_margin_loan(asset='BTC')
5.1.8 Websockets
Sockets are handled through a Socket Manager BinanceSocketManager.
Multiple socket connections can be made through the manager.
5.1. Contents 21
python-binance Documentation, Release 0.2.0
Only one instance of each socket type will be created, i.e. only one BNBBTC Depth socket can be created and there
can be both a BNBBTC Depth and a BNBBTC Trade socket open at once.
When creating socket connections a callback function is passed which receives the messages.
Messages are received as dictionary objects relating to the message formats defined in the Binance WebSocket API
documentation.
Websockets are setup to reconnect with a maximum of 5 retries.
Websocket Usage
Create the manager like so, passing the API client.
from binance.websockets import BinanceSocketManager
bm = BinanceSocketManager(client)
# start any sockets here, i.e a trade socket
conn_key = bm.start_trade_socket('BNBBTC', process_message)
# then start the socket manager
bm.start()
A callback to process messages would take the format
def process_message(msg):
print("message type: {}".format(msg['e']))
print(msg)
# do something
Set a custom timeout for the websocket connection
# set a timeout of 60 seconds
bm = BinanceSocketManager(client, user_timeout=60)
Websocket Errors
If the websocket is disconnected and is unable to reconnect a message is sent to the callback to indicate this. The
format is
{
'e': 'error',
'm': 'Max reconnect retries reached'
}
# check for it like so
def process_message(msg):
if msg['e'] == 'error':
# close and restart the socket
else:
# process message normally
Multiplex Socket
Create a socket combining multiple streams.
22 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
These streams can include the depth, kline, ticker and trade streams but not the user stream which requires extra
authentication.
Symbols in socket name must be lowercase i.e bnbbtc@aggTrade, neobtc@ticker
See the Binance Websocket Streams API documentation for details on socket names.
def process_m_message(msg):
print("stream: {} data: {}".format(msg['stream'], msg['data']))
# pass a list of stream names
conn_key = bm.start_multiplex_socket(['bnbbtc@aggTrade', 'neobtc@ticker'], process_m_
˓→message)
Depth Socket
Depth sockets have an optional depth parameter to receive partial book rather than a diff response. By default this the
diff response is returned. Valid depth values are 5, 10 and 20 and defined as enums.
# depth diff response
diff_key = bm.start_depth_socket('BNBBTC', process_message)
# partial book response
partial_key = bm.start_depth_socket('BNBBTC', process_message,
˓→depth=BinanceSocketManager.WEBSOCKET_DEPTH_5)
Kline Socket
Kline sockets have an optional interval parameter. By default this is set to 1 minute. Valid interval values are defined
as enums.
from binance.enums import *
conn_key = bm.start_kline_socket('BNBBTC', process_message, interval=KLINE_INTERVAL_
˓→30MINUTE)
Aggregated Trade Socket
conn_key = bm.start_aggtrade_socket('BNBBTC', process_message)
Trade Socket
conn_key = bm.start_trade_socket('BNBBTC', process_message)
Symbol Ticker Socket
conn_key = bm.start_symbol_ticker_socket('BNBBTC', process_message)
5.1. Contents 23
python-binance Documentation, Release 0.2.0
Ticker Socket
conn_key = bm.start_ticker_socket(process_message)
Mini Ticker Socket
# by default updates every second
conn_key = bm.start_miniticker_socket(process_message)
# this socket can take an update interval parameter
# set as 5000 to receive updates every 5 seconds
conn_key = bm.start_miniticker_socket(process_message, 5000)
User Socket
This watches for 3 different user events
• Account Update Event
• Order Update Event
• Trade Update Event
The Manager handles keeping the socket alive.
bm.start_user_socket(process_message)
Close a Socket
To close an individual socket call the stop_socket function. This takes a conn_key parameter which is returned when
starting the socket.
bm.stop_socket(conn_key)
To stop all sockets and end the manager call close after doing this a start call would be required to connect any new
sockets.
bm.close()
Close and exit program
Websockets utilise a reactor loop from the Twisted library. Using the close method above will close the websocket
connections but it won’t stop the reactor loop so your code may not exit when you expect.
If you do want to exit then use the stop method from reactor like below.
from twisted.internet import reactor
# program code here
(continues on next page)
24 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
(continued from previous page)
# when you need to exit
reactor.stop()
5.1.9 Depth Cache
To follow the depth cache updates for a symbol use the DepthCacheManager
Create the manager like so, passing the api client, symbol and an optional callback function.
from binance.depthcache import DepthCacheManager
dcm = DepthCacheManager(client, 'BNBBTC', callback=process_depth)
The callback function receives the current DepthCache object which allows access to a pre-sorted list of bids or asks
able to be filtered as required.
Access the symbol value from the depth_cache object in case you have multiple caches using the same callback.
By default the depth cache will fetch the order book via REST request every 30 minutes. This duration can be changed
by using the refresh_interval parameter. To disable the refresh pass 0 or None. The socket connection will stay open
receiving updates to be replayed once the full order book is received.
Share a Socket Manager
Here dcm1 and dcm2 share the same instance of BinanceSocketManager
from binance.websockets import BinanceSocketManager
from binance.depthcache import DepthCacheManager
bm = BinanceSocketManager(client)
dcm1 = DepthCacheManager(client, 'BNBBTC', callback=process_depth1, bm=bm)
dcm2 = DepthCacheManager(client, 'ETHBTC', callback=process_depth2, bm=bm)
Because they both share the same BinanceSocketManager calling close can close both message streams.
# close just dcm1 stream
dcm1.close()
# close the underlying socket manager as well
dcm1.close(close_socket=True)
Websocket Errors
If the underlying websocket is disconnected and is unable to reconnect None is returned for the depth_cache parameter.
Examples
# 1 hour interval refresh
dcm = DepthCacheManager(client, 'BNBBTC', callback=process_depth, refresh_
˓→interval=60*60)
# disable refreshing
dcm = DepthCacheManager(client, 'BNBBTC', callback=process_depth, refresh_interval=0)
5.1. Contents 25
python-binance Documentation, Release 0.2.0
def process_depth(depth_cache):
if depth_cache is not None:
print("symbol {}".format(depth_cache.symbol))
print("top 5 bids")
print(depth_cache.get_bids()[:5])
print("top 5 asks")
print(depth_cache.get_asks()[:5])
print("last update time {}".format(depth_cache.update_time)
else:
# depth cache had an error and needs to be restarted
At any time the current DepthCache object can be retrieved from the DepthCacheManager
depth_cache = dcm.get_depth_cache()
if depth_cache is not None:
print("symbol {}".format(depth_cache.symbol))
print("top 5 bids")
print(depth_cache.get_bids()[:5])
print("top 5 asks")
print(depth_cache.get_asks()[:5])
print("last update time {}".format(depth_cache.update_time)
else:
# depth cache had an error and needs to be restarted
To stop the DepthCacheManager from returning messages use the close method. This will close the internal websocket
and this instance of the DepthCacheManager will not be able to be used again.
dcm.close()
5.1.10 Withdraw Endpoints
Place a withdrawal
Make sure you enable Withdrawal permissions for your API Key to use this call.
You must have withdrawn to the address through the website and approved the withdrawal via email before you can
withdraw using the API.
Raises a BinanceWithdrawException if the withdraw fails.
from binance.exceptions import BinanceAPIException, BinanceWithdrawException
try:
# name parameter will be set to the asset value by the client if not passed
result = client.withdraw(
asset='ETH',
address='<eth_address>',
amount=100)
except BinanceAPIException as e:
print(e)
except BinanceWithdrawException as e:
print(e)
else:
print("Success")
# passing a name parameter
result = client.withdraw(
(continues on next page)
26 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
(continued from previous page)
asset='ETH',
address='<eth_address>',
amount=100,
name='Withdraw')
# if the coin requires a extra tag or name such as XRP or XMR then pass an
˓→`addressTag` parameter.
result = client.withdraw(
asset='XRP',
address='<xrp_address>',
addressTag='<xrp_address_tag>',
amount=10000)
Fetch deposit history
deposits = client.get_deposit_history()
btc_deposits = client.get_deposit_history(asset='BTC')
Fetch withdraw history
withdraws = client.get_withdraw_history()
btc_withdraws = client.get_withdraw_history(asset='BTC')
Get deposit address
address = client.get_deposit_address(asset='BTC')
5.1.11 Helper Functions
binance.helpers
alias of binance.helpers
5.1.12 Exceptions
BinanceRequestException
Raised if a non JSON response is returned
BinanceAPIException
On an API call error a binance.exceptions.BinanceAPIException will be raised.
The exception provides access to the
• status_code - response status code
• response - response object
• code - Binance error code
5.1. Contents 27
python-binance Documentation, Release 0.2.0
• message - Binance error message
• request - request object if available
try:
client.get_all_orders()
except BinanceAPIException as e:
print e.status_code
print e.message
BinanceWithdrawException
Raised if the withdraw fails.
5.1.13 FAQ
Q: Why do I get “Timestamp for this request is not valid”
A: This occurs in 2 different cases.
The timestamp sent is outside of the serverTime - recvWindow value The timestamp sent is more than 1000ms ahead
of the server time
Check that your system time is in sync. See this issue for some sample code to check the difference between your
local time and the Binance server time.
Q: Why do I get “Signature for this request is not valid”
A1: One of your parameters may not be in the correct format.
Check recvWindow is an integer and not a string.
A2: You may need to regenerate your API Key and Secret
A3: You may be attempting to access the API from a Chinese IP address, these are now restricted by Binance.
Q: Twisted won’t install using pip on Windows
A:If you see errors building Twisted indication Microsoft Visual C++ is required you may need to install the Visual
C++ Build Tools refer to the Python Wiki on Widows Compilers for your relevant version.
5.1.14 Changelog
v0.7.3 - 2019-08-12
Added
• sub account endpoints
• dust transfer endpoint
• asset divident history endpoint
Removed
• deprecated withdraw fee endpoint
28 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
v0.7.2 - 2019-08-01
Added
• margin trading endpoints
Fixed
• depth cache clearing bug
v0.7.1 - 2019-01-23
Added
• limit param to DepthCacheManager
• limit param to get_historical_klines
• update_time to DepthCache class
Updated
• test coverage
Fixed
• super init in Websocket class
• removal of request params from signature
• empty set issue in aggregate_trade_iter
v0.7.0 - 2018-08-08
Added
• get_asset_details endpoint
• get_dust_log endpoint
• get_trade_fee endpoint
• ability for multiple DepthCacheManagers to share a BinanceSocketManager
• get_historial_klines_generator function
• custom socket timeout param for BinanceSocketManager
Updated
• general dependency version
• removed support for python3.3
Fixed
• add a super init on BinanceClientProtocol
5.1. Contents 29
python-binance Documentation, Release 0.2.0
v0.6.9 - 2018-04-27
Added
• timestamp in milliseconds to get_historical_klines function
• timestamp in milliseconds to aggregate_trade_iter function
Fixed
• Don’t close user stream listen key on socket close
v0.6.8 - 2018-03-29
Added
• get_withdraw_fee function
Fixed
• Remove unused LISTENKEY_NOT_EXISTS
• Optimise the historical klines function to reduce requests
• Issue with end_time in aggregate trade iterator
v0.6.7 - 2018-03-14
Fixed
• Issue with get_historical_klines when response had exactly 500 results
• Changed BinanceResponseException to BinanceRequestException
• Set default code value in BinanceApiException properly
v0.6.6 - 2018-02-17
Fixed
• User stream websocket keep alive strategy updated
v0.6.5 - 2018-02-13
Fixed
• get_historical_klines response for month interval
v0.6.4 - 2018-02-09
Added
• system status endpoint get_system_status
30 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
v0.6.3 - 2018-01-29
Added
• mini ticker socket function start_miniticker_socket
• aggregate trade iterator aggregate_trade_iter
Fixes
• clean up interval_to_milliseconds logic
• general doc and file cleanups
v0.6.2 - 2018-01-12
Fixes
• fixed handling Binance errors that aren’t JSON objects
v0.6.1 - 2018-01-10
Fixes
• added missing dateparser dependency to setup.py
• documentation fixes
v0.6.0 - 2018-01-09
New version because why not.
Added
• get_historical_klines function to fetch klines for any date range
• ability to override requests parameters globally
• error on websocket disconnect
• example related to blog post
Fixes
• documentation fixes
v0.5.17 - 2018-01-08
Added
• check for name parameter in withdraw, set to asset parameter if not passed
Update
• Windows install error documentation
Removed
• reference to disable_validation in documentation
5.1. Contents 31
python-binance Documentation, Release 0.2.0
v0.5.16 - 2018-01-06
Added
• addressTag documentation to withdraw function
• documentation about requests proxy environment variables
Update
• FAQ for signature error with solution to regenerate API key
• change create_order to create_test_order in example
Fixed
• reference to BinanceAPIException in documentation
v0.5.15 - 2018-01-03
Fixed
• removed all references to WEBSOCKET_DEPTH_1 enum
v0.5.14 - 2018-01-02
Added
• Wait for depth cache socket to start
• check for sequential depth cache messages
Updated
• documentation around depth websocket and diff and partial responses
Removed
• Removed unused WEBSOCKET_DEPTH_1 enum
• removed unused libraries and imports
v0.5.13 - 2018-01-01
Fixed
• Signature invalid error
v0.5.12 - 2017-12-29
Added
• get_asset_balance helper function to fetch an individual asset’s balance
Fixed
• added timeout to requests call to prevent hanging
• changed variable type to str for price parameter when creating an order
• documentation fixes
32 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
v0.5.11 - 2017-12-28
Added
• refresh interval parameter to depth cache to keep it fresh, set default at 30 minutes
Fixed
• watch depth cache socket before fetching order book to replay any messages
v0.5.10 - 2017-12-28
Updated
• updated dependencies certifi and cryptography to help resolve signature error
v0.5.9 - 2017-12-26
Fixed
• fixed websocket reconnecting, was no distinction between manual close or network error
v0.5.8 - 2017-12-25
Changed
• change symbol parameter to optional for get_open_orders function
• added listenKey parameter to stream_close function
Added
• get_account_status function that was missed
v0.5.7 - 2017-12-24
Changed
• change depth cache callback parameter to optional
Added
• note about stopping Twisted reactor loop to exit program
v0.5.6 - 2017-12-20
Added
• get_symbol_info function to simplify getting info about a particular symbol
v0.5.5 - 2017-12-19
Changed
• Increased default limit for order book on depth cache from 10 to 500
5.1. Contents 33
python-binance Documentation, Release 0.2.0
v0.5.4 - 2017-12-14
Added
• symbol property made public on DepthCache class
Changed
• Enums now also accessible from binance.client.Client and binance.websockets.BinanceSocketManager
v0.5.3 - 2017-12-09
Changed
• User stream refresh timeout from 50 minutes to 30 minutes
• User stream socket listen key change check simplified
v0.5.2 - 2017-12-08
Added
• start_multiplex_socket function to BinanceSocketManager to create multiplexed streams
v0.5.1 - 2017-12-06
Added
• Close method for DepthCacheManager
Fixes
• Fixed modifying array error message when closing the BinanceSocketManager
v0.5.0 - 2017-12-05
Updating to match new API documentation
Added
• Recent trades endpoint
• Historical trades endpoint
• Order response type option
• Check for invalid user stream listen key in socket to keep connected
Fixes
• Fixed exchange info endpoint as it was renamed slightly
v0.4.3 - 2017-12-04
Fixes
• Fixed stopping sockets where they were reconnecting
• Fixed websockets unable to be restarted after close
34 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
• Exception in parsing non-JSON websocket message
v0.4.2 - 2017-11-30
Removed
• Removed websocket update time as 0ms option is not available
v0.4.1 - 2017-11-24
Added
• Reconnecting websockets, automatic retry on disconnect
v0.4.0 - 2017-11-19
Added
• Get deposit address endpoint
• Upgraded withdraw endpoints to v3
• New exchange info endpoint with rate limits and full symbol info
Removed
• Order validation to return at a later date
v0.3.8 - 2017-11-17
Fixes
• Fix order validation for market orders
• WEBSOCKET_DEPTH_20 value, 20 instead of 5
• General tidy up
v0.3.7 - 2017-11-16
Fixes
• Fix multiple depth caches sharing a cache by initialising bid and ask objects each time
v0.3.6 - 2017-11-15
Fixes
• check if Reactor is already running
5.1. Contents 35
python-binance Documentation, Release 0.2.0
v0.3.5 - 2017-11-06
Added
• support for BNB market
Fixes
• fixed error if new market type is created that we don’t know about
v0.3.4 - 2017-10-31
Added
• depth parameter to depth socket
• interval parameter to kline socket
• update time parameter for compatible sockets
• new enums for socket depth and update time values
• better websocket documentation
Changed
• Depth Cache Manager uses 0ms socket update time
• connection key returned when creating socket, this key is then used to stop it
Fixes
• General fixes
v0.3.3 - 2017-10-31
Fixes
• Fixes for broken tests
v0.3.2 - 2017-10-30
Added
• More test coverage of requests
Fixes
• Order quantity validation fix
v0.3.1 - 2017-10-29
Added
• Withdraw exception handler with translation of obscure error
Fixes
• Validation fixes
36 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
v0.3.0 - 2017-10-29
Added
• Withdraw endpoints
• Order helper functions
v0.2.0 - 2017-10-27
Added
• Symbol Depth Cache
v0.1.6 - 2017-10-25
Changes
• Upgrade to v3 signed endpoints
• Update function documentation
v0.1.5 - 2017-09-12
Changes
• Added get_all_tickers call
• Added get_orderbook_tickers call
• Added some FAQs
Fixes
• Fix error in enum value
v0.1.4 - 2017-09-06
Changes
• Added parameter to disable client side order validation
v0.1.3 - 2017-08-26
Changes
• Updated documentation
Fixes
• Small bugfix
5.1. Contents 37
python-binance Documentation, Release 0.2.0
v0.1.2 - 2017-08-25
Added
• Travis.CI and Coveralls support
Changes
• Validation for pairs using public endpoint
v0.1.1 - 2017-08-17
Added
• Validation for HSR/BTC pair
v0.1.0 - 2017-08-16
Websocket release
Added
• Websocket manager
• Order parameter validation
• Order and Symbol enums
• API Endpoints for Data Streams
v0.0.2 - 2017-08-14
Initial version
Added
• General, Market Data and Account endpoints
5.1.15 Binance API
client module
class binance.client.Client(api_key, api_secret, requests_params=None)
Bases: object
AGG_BEST_MATCH = 'M'
AGG_BUYER_MAKES = 'm'
AGG_FIRST_TRADE_ID = 'f'
AGG_ID = 'a'
AGG_LAST_TRADE_ID = 'l'
AGG_PRICE = 'p'
AGG_QUANTITY = 'q'
AGG_TIME = 'T'
38 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
API_URL = 'https://api.binance.com/api'
KLINE_INTERVAL_12HOUR = '12h'
KLINE_INTERVAL_15MINUTE = '15m'
KLINE_INTERVAL_1DAY = '1d'
KLINE_INTERVAL_1HOUR = '1h'
KLINE_INTERVAL_1MINUTE = '1m'
KLINE_INTERVAL_1MONTH = '1M'
KLINE_INTERVAL_1WEEK = '1w'
KLINE_INTERVAL_2HOUR = '2h'
KLINE_INTERVAL_30MINUTE = '30m'
KLINE_INTERVAL_3DAY = '3d'
KLINE_INTERVAL_3MINUTE = '3m'
KLINE_INTERVAL_4HOUR = '4h'
KLINE_INTERVAL_5MINUTE = '5m'
KLINE_INTERVAL_6HOUR = '6h'
KLINE_INTERVAL_8HOUR = '8h'
MARGIN_API_URL = 'https://api.binance.com/sapi'
MARGIN_API_VERSION = 'v1'
ORDER_RESP_TYPE_ACK = 'ACK'
ORDER_RESP_TYPE_FULL = 'FULL'
ORDER_RESP_TYPE_RESULT = 'RESULT'
ORDER_STATUS_CANCELED = 'CANCELED'
ORDER_STATUS_EXPIRED = 'EXPIRED'
ORDER_STATUS_FILLED = 'FILLED'
ORDER_STATUS_NEW = 'NEW'
ORDER_STATUS_PARTIALLY_FILLED = 'PARTIALLY_FILLED'
ORDER_STATUS_PENDING_CANCEL = 'PENDING_CANCEL'
ORDER_STATUS_REJECTED = 'REJECTED'
ORDER_TYPE_LIMIT = 'LIMIT'
ORDER_TYPE_LIMIT_MAKER = 'LIMIT_MAKER'
ORDER_TYPE_MARKET = 'MARKET'
ORDER_TYPE_STOP_LOSS = 'STOP_LOSS'
ORDER_TYPE_STOP_LOSS_LIMIT = 'STOP_LOSS_LIMIT'
ORDER_TYPE_TAKE_PROFIT = 'TAKE_PROFIT'
ORDER_TYPE_TAKE_PROFIT_LIMIT = 'TAKE_PROFIT_LIMIT'
PRIVATE_API_VERSION = 'v3'
5.1. Contents 39
python-binance Documentation, Release 0.2.0
PUBLIC_API_VERSION = 'v1'
SIDE_BUY = 'BUY'
SIDE_SELL = 'SELL'
SYMBOL_TYPE_SPOT = 'SPOT'
TIME_IN_FORCE_FOK = 'FOK'
TIME_IN_FORCE_GTC = 'GTC'
TIME_IN_FORCE_IOC = 'IOC'
WEBSITE_URL = 'https://www.binance.com'
WITHDRAW_API_URL = 'https://api.binance.com/wapi'
WITHDRAW_API_VERSION = 'v3'
__init__(api_key, api_secret, requests_params=None)
Binance API Client constructor
Parameters
• api_key (str.) – Api Key
• api_secret (str.) – Api Secret
• requests_params (dict.) – optional - Dictionary of requests params to use for all
calls
aggregate_trade_iter(symbol, start_str=None, last_id=None)
Iterate over aggregate trade data from (start_time or last_id) to the end of the history so far.
If start_time is specified, start with the first trade after start_time. Meant to initialise a local cache of trade
data.
If last_id is specified, start with the trade after it. This is meant for updating a pre-existing local trade data
cache.
Only allows start_str or last_id—not both. Not guaranteed to work right if you’re running more than one
of these simultaneously. You will probably hit your rate limit.
See dateparser docs for valid start and end string formats http://dateparser.readthedocs.io/en/latest/
If using offset strings for dates add “UTC” to date string e.g. “now UTC”, “11 hours ago UTC”
Parameters
• symbol (str) – Symbol string e.g. ETHBTC
• start_str – Start date string in UTC format or timestamp in milliseconds. The iterator
will
return the first trade occurring later than this time. :type start_str: str|int :param last_id: aggregate trade
ID of the last known aggregate trade. Not a regular trade ID. See https://github.com/binance-exchange/
binance-official-api-docs/blob/master/rest-api.md#compressedaggregate-trades-list.
Returns an iterator of JSON objects, one per trade. The format of
each object is identical to Client.aggregate_trades().
cancel_margin_order(**params)
Cancel an active order for margin account.
40 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
Either orderId or origClientOrderId must be sent.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/margin-api.md#
margin-account-cancel-order-trade
Parameters
• symbol (str) – required
• orderId (str) –
• origClientOrderId (str) –
• newClientOrderId (str) – Used to uniquely identify this cancel. Automatically
generated by default.
• recvWindow (int) – the number of milliseconds the request is valid for
Returns
API response
{ “symbol”: “LTCBTC”, “orderId”: 28, “origClientOrderId”: “myOrder1”, “clientOrderId”: “cancelMyOrder1”, “transactTime”: 1507725176595, “price”: “1.00000000”,
“origQty”: “10.00000000”, “executedQty”: “8.00000000”, “cummulativeQuoteQty”:
“8.00000000”, “status”: “CANCELED”, “timeInForce”: “GTC”, “type”: “LIMIT”,
“side”: “SELL”
}
Raises BinanceRequestException, BinanceAPIException
cancel_order(**params)
Cancel an active order. Either orderId or origClientOrderId must be sent.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#
cancel-order-trade
Parameters
• symbol (str) – required
• orderId (int) – The unique order id
• origClientOrderId (str) – optional
• newClientOrderId (str) – Used to uniquely identify this cancel. Automatically
generated by default.
• recvWindow (int) – the number of milliseconds the request is valid for
Returns API response
{
"symbol": "LTCBTC",
"origClientOrderId": "myOrder1",
"orderId": 1,
"clientOrderId": "cancelMyOrder1"
}
Raises BinanceRequestException, BinanceAPIException
create_margin_loan(**params)
Apply for a loan.
5.1. Contents 41
python-binance Documentation, Release 0.2.0
https://github.com/binance-exchange/binance-official-api-docs/blob/master/margin-api.md#
margin-account-borrow-margin
Parameters
• asset (str) – name of the asset
• amount (str) – amount to transfer
• recvWindow (int) – the number of milliseconds the request is valid for
transaction = client.margin_create_loan(asset='BTC', amount='1.1')
Returns API response
{
"tranId": 100000001
}
Raises BinanceRequestException, BinanceAPIException
create_margin_order(**params)
Post a new order for margin account.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/margin-api.md#
margin-account-new-order-trade
Parameters
• symbol (str) – required
• side (str) – required
• type (str) – required
• quantity (decimal) – required
• price (str) – required
• stopPrice (str) – Used with STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT,
and TAKE_PROFIT_LIMIT orders.
• timeInForce (str) – required if limit order GTC,IOC,FOK
• newClientOrderId (str) – A unique id for the order. Automatically generated if not
sent.
• icebergQty (str) – Used with LIMIT, STOP_LOSS_LIMIT, and
TAKE_PROFIT_LIMIT to create an iceberg order.
• newOrderRespType (str) – Set the response JSON. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK.
• recvWindow (int) – the number of milliseconds the request is valid for
Returns API response
Response ACK:
{
"symbol": "BTCUSDT",
"orderId": 28,
(continues on next page)
42 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
(continued from previous page)
"clientOrderId": "6gCrw2kRUAF9CvJDGP16IP",
"transactTime": 1507725176595
}
Response RESULT:
{
"symbol": "BTCUSDT",
"orderId": 28,
"clientOrderId": "6gCrw2kRUAF9CvJDGP16IP",
"transactTime": 1507725176595,
"price": "1.00000000",
"origQty": "10.00000000",
"executedQty": "10.00000000",
"cummulativeQuoteQty": "10.00000000",
"status": "FILLED",
"timeInForce": "GTC",
"type": "MARKET",
"side": "SELL"
}
Response FULL:
{
"symbol": "BTCUSDT",
"orderId": 28,
"clientOrderId": "6gCrw2kRUAF9CvJDGP16IP",
"transactTime": 1507725176595,
"price": "1.00000000",
"origQty": "10.00000000",
"executedQty": "10.00000000",
"cummulativeQuoteQty": "10.00000000",
"status": "FILLED",
"timeInForce": "GTC",
"type": "MARKET",
"side": "SELL",
"fills": [
{
"price": "4000.00000000",
"qty": "1.00000000",
"commission": "4.00000000",
"commissionAsset": "USDT"
},
{
"price": "3999.00000000",
"qty": "5.00000000",
"commission": "19.99500000",
"commissionAsset": "USDT"
},
{
"price": "3998.00000000",
"qty": "2.00000000",
"commission": "7.99600000",
"commissionAsset": "USDT"
},
{
"price": "3997.00000000",
(continues on next page)
5.1. Contents 43
python-binance Documentation, Release 0.2.0
(continued from previous page)
"qty": "1.00000000",
"commission": "3.99700000",
"commissionAsset": "USDT"
},
{
"price": "3995.00000000",
"qty": "1.00000000",
"commission": "3.99500000",
"commissionAsset": "USDT"
}
]
}
Raises BinanceRequestException, BinanceAPIException, BinanceOrderException, BinanceOrderMinAmountException, BinanceOrderMinPriceException, BinanceOrderMinTotalException, BinanceOrderUnknownSymbolException, BinanceOrderInactiveSymbolException
create_order(**params)
Send in a new order
Any order with an icebergQty MUST have timeInForce set to GTC.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#new-order–trade
Parameters
• symbol (str) – required
• side (str) – required
• type (str) – required
• timeInForce (str) – required if limit order
• quantity (decimal) – required
• price (str) – required
• newClientOrderId (str) – A unique id for the order. Automatically generated if not
sent.
• icebergQty (decimal) – Used with LIMIT, STOP_LOSS_LIMIT, and
TAKE_PROFIT_LIMIT to create an iceberg order.
• newOrderRespType (str) – Set the response JSON. ACK, RESULT, or FULL; default: RESULT.
• recvWindow (int) – the number of milliseconds the request is valid for
Returns API response
Response ACK:
{
"symbol":"LTCBTC",
"orderId": 1,
"clientOrderId": "myOrder1" # Will be newClientOrderId
"transactTime": 1499827319559
}
Response RESULT:
44 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
{
"symbol": "BTCUSDT",
"orderId": 28,
"clientOrderId": "6gCrw2kRUAF9CvJDGP16IP",
"transactTime": 1507725176595,
"price": "0.00000000",
"origQty": "10.00000000",
"executedQty": "10.00000000",
"status": "FILLED",
"timeInForce": "GTC",
"type": "MARKET",
"side": "SELL"
}
Response FULL:
{
"symbol": "BTCUSDT",
"orderId": 28,
"clientOrderId": "6gCrw2kRUAF9CvJDGP16IP",
"transactTime": 1507725176595,
"price": "0.00000000",
"origQty": "10.00000000",
"executedQty": "10.00000000",
"status": "FILLED",
"timeInForce": "GTC",
"type": "MARKET",
"side": "SELL",
"fills": [
{
"price": "4000.00000000",
"qty": "1.00000000",
"commission": "4.00000000",
"commissionAsset": "USDT"
},
{
"price": "3999.00000000",
"qty": "5.00000000",
"commission": "19.99500000",
"commissionAsset": "USDT"
},
{
"price": "3998.00000000",
"qty": "2.00000000",
"commission": "7.99600000",
"commissionAsset": "USDT"
},
{
"price": "3997.00000000",
"qty": "1.00000000",
"commission": "3.99700000",
"commissionAsset": "USDT"
},
{
"price": "3995.00000000",
"qty": "1.00000000",
"commission": "3.99500000",
(continues on next page)
5.1. Contents 45
python-binance Documentation, Release 0.2.0
(continued from previous page)
"commissionAsset": "USDT"
}
]
}
Raises BinanceRequestException, BinanceAPIException, BinanceOrderException, BinanceOrderMinAmountException, BinanceOrderMinPriceException, BinanceOrderMinTotalException, BinanceOrderUnknownSymbolException, BinanceOrderInactiveSymbolException
create_sub_account_transfer(**params)
Execute sub-account transfer
https://github.com/binance-exchange/binance-official-api-docs/blob/9dbe0e961b80557bb19708a707c7fad08842b28e/
wapi-api.md#sub-account-transferfor-master-account
Parameters
• fromEmail (str) – required - Sender email
• toEmail (str) – required - Recipient email
• asset (str) – required
• amount (decimal) – required
• recvWindow (int) – optional
Returns API response
{
"success":true,
"txnId":"2966662589"
}
Raises BinanceRequestException, BinanceAPIException
create_test_order(**params)
Test new order creation and signature/recvWindow long. Creates and validates a new order but does not
send it into the matching engine.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#
test-new-order-trade
Parameters
• symbol (str) – required
• side (str) – required
• type (str) – required
• timeInForce (str) – required if limit order
• quantity (decimal) – required
• price (str) – required
• newClientOrderId (str) – A unique id for the order. Automatically generated if not
sent.
• icebergQty (decimal) – Used with iceberg orders
46 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
• newOrderRespType (str) – Set the response JSON. ACK, RESULT, or FULL; default: RESULT.
• recvWindow (int) – The number of milliseconds the request is valid for
Returns API response
{}
Raises BinanceRequestException, BinanceAPIException, BinanceOrderException, BinanceOrderMinAmountException, BinanceOrderMinPriceException, BinanceOrderMinTotalException, BinanceOrderUnknownSymbolException, BinanceOrderInactiveSymbolException
get_account(**params)
Get current account information.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#
account-information-user_data
Parameters recvWindow (int) – the number of milliseconds the request is valid for
Returns API response
{
"makerCommission": 15,
"takerCommission": 15,
"buyerCommission": 0,
"sellerCommission": 0,
"canTrade": true,
"canWithdraw": true,
"canDeposit": true,
"balances": [
{
"asset": "BTC",
"free": "4723846.89208129",
"locked": "0.00000000"
},
{
"asset": "LTC",
"free": "4763368.68006011",
"locked": "0.00000000"
}
]
}
Raises BinanceRequestException, BinanceAPIException
get_account_status(**params)
Get account status detail.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/wapi-api.md#
account-status-user_data
Parameters recvWindow (int) – the number of milliseconds the request is valid for
Returns API response
5.1. Contents 47
python-binance Documentation, Release 0.2.0
{
"msg": "Order failed:Low Order fill rate! Will be reactivated after 5
˓→minutes.",
"success": true,
"objs": [
"5"
]
}
Raises BinanceWithdrawException
get_aggregate_trades(**params)
Get compressed, aggregate trades. Trades that fill at the time, from the same order, with the same price
will have the quantity aggregated.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#
compressedaggregate-trades-list
Parameters
• symbol (str) – required
• fromId (str) – ID to get aggregate trades from INCLUSIVE.
• startTime (int) – Timestamp in ms to get aggregate trades from INCLUSIVE.
• endTime (int) – Timestamp in ms to get aggregate trades until INCLUSIVE.
• limit (int) – Default 500; max 500.
Returns API response
[
{
"a": 26129, # Aggregate tradeId
"p": "0.01633102", # Price
"q": "4.70443515", # Quantity
"f": 27781, # First tradeId
"l": 27781, # Last tradeId
"T": 1498793709153, # Timestamp
"m": true, # Was the buyer the maker?
"M": true # Was the trade the best price match?
}
]
Raises BinanceRequestException, BinanceAPIException
get_all_margin_orders(**params)
Query all margin accounts orders
If orderId is set, it will get orders >= that orderId. Otherwise most recent orders are returned.
For some historical orders cummulativeQuoteQty will be < 0, meaning the data is not available at this time.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/margin-api.md#
query-margin-accounts-open-order-user_data
Parameters
• symbol (str) – required
48 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
• orderId (str) – optional
• startTime (str) – optional
• endTime (str) – optional
• limit (int) – Default 500; max 1000
• recvWindow (int) – the number of milliseconds the request is valid for
Returns
API response
[
{ “id”: 43123876, “price”: “0.00395740”, “qty”: “4.06000000”, “quoteQty”:
“0.01606704”, “symbol”: “BNBBTC”, “time”: 1556089977693
}, {
”id”: 43123877, “price”: “0.00395740”, “qty”: “0.77000000”, “quoteQty”:
“0.00304719”, “symbol”: “BNBBTC”, “time”: 1556089977693
}, {
”id”: 43253549, “price”: “0.00428930”, “qty”: “23.30000000”, “quoteQty”:
“0.09994069”, “symbol”: “BNBBTC”, “time”: 1556163963504
}
]
Raises BinanceRequestException, BinanceAPIException
get_all_orders(**params)
Get all account orders; active, canceled, or filled.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#all-orders-user_
data
Parameters
• symbol (str) – required
• orderId (int) – The unique order id
• limit (int) – Default 500; max 500.
• recvWindow (int) – the number of milliseconds the request is valid for
Returns API response
[
{
"symbol": "LTCBTC",
"orderId": 1,
"clientOrderId": "myOrder1",
"price": "0.1",
"origQty": "1.0",
"executedQty": "0.0",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.0",
(continues on next page)
5.1. Contents 49
python-binance Documentation, Release 0.2.0
(continued from previous page)
"icebergQty": "0.0",
"time": 1499827319559
}
]
Raises BinanceRequestException, BinanceAPIException
get_all_tickers()
Latest price for all symbols.
https://www.binance.com/restapipub.html#symbols-price-ticker
Returns List of market tickers
[
{
"symbol": "LTCBTC",
"price": "4.00000200"
},
{
"symbol": "ETHBTC",
"price": "0.07946600"
}
]
Raises BinanceRequestException, BinanceAPIException
get_asset_balance(asset, **params)
Get current asset balance.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#
account-information-user_data
Parameters
• asset (str) – required
• recvWindow (int) – the number of milliseconds the request is valid for
Returns dictionary or None if not found
{
"asset": "BTC",
"free": "4723846.89208129",
"locked": "0.00000000"
}
Raises BinanceRequestException, BinanceAPIException
get_asset_details(**params)
Fetch details on assets.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/wapi-api.md#
asset-detail-user_data
Parameters recvWindow (int) – the number of milliseconds the request is valid for
Returns API response
50 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
{
"success": true,
"assetDetail": {
"CTR": {
"minWithdrawAmount": "70.00000000", //min withdraw amount
"depositStatus": false,//deposit status
"withdrawFee": 35, // withdraw fee
"withdrawStatus": true, //withdraw status
"depositTip": "Delisted, Deposit Suspended" //reason
},
"SKY": {
"minWithdrawAmount": "0.02000000",
"depositStatus": true,
"withdrawFee": 0.01,
"withdrawStatus": true
}
}
}
Raises BinanceWithdrawException
get_asset_dividend_history(**params)
Query asset dividend record.
https://github.com/binance-exchange/binance-official-api-docs/blob/9dbe0e961b80557bb19708a707c7fad08842b28e/
wapi-api.md#asset-dividend-record-user_data
Parameters
• asset (str) – optional
• startTime (long) – optional
• endTime (long) – optional
• recvWindow (int) – the number of milliseconds the request is valid for
result = client.get_asset_dividend_history()
Returns API response
{
"rows":[
{
"amount":"10.00000000",
"asset":"BHFT",
"divTime":1563189166000,
"enInfo":"BHFT distribution",
"tranId":2968885920
},
{
"amount":"10.00000000",
"asset":"BHFT",
"divTime":1563189165000,
"enInfo":"BHFT distribution",
"tranId":2968885920
}
(continues on next page)
5.1. Contents 51
python-binance Documentation, Release 0.2.0
(continued from previous page)
],
"total":2
}
Raises BinanceRequestException, BinanceAPIException
get_deposit_address(**params)
Fetch a deposit address for a symbol
https://www.binance.com/restapipub.html
Parameters
• asset (str) – required
• recvWindow (int) – the number of milliseconds the request is valid for
Returns API response
{
"address": "0x6915f16f8791d0a1cc2bf47c13a6b2a92000504b",
"success": true,
"addressTag": "1231212",
"asset": "BNB"
}
Raises BinanceRequestException, BinanceAPIException
get_deposit_history(**params)
Fetch deposit history.
https://www.binance.com/restapipub.html
Parameters
• asset (str) – optional
• startTime (long) – optional
• endTime (long) – optional
• recvWindow (int) – the number of milliseconds the request is valid for
Returns API response
{
"depositList": [
{
"insertTime": 1508198532000,
"amount": 0.04670582,
"asset": "ETH",
"status": 1
}
],
"success": true
}
Raises BinanceRequestException, BinanceAPIException
52 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
get_dust_log(**params)
Get log of small amounts exchanged for BNB.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/wapi-api.md#dustlog-user_
data
Parameters recvWindow (int) – the number of milliseconds the request is valid for
Returns API response
{
"success": true,
"results": {
"total": 2, //Total counts of exchange
"rows": [
{
"transfered_total": "0.00132256", # Total transfered BNB
˓→amount for this exchange.
"service_charge_total": "0.00002699", # Total service
˓→charge amount for this exchange.
"tran_id": 4359321,
"logs": [ # Details of this exchange.
{
"tranId": 4359321,
"serviceChargeAmount": "0.000009",
"uid": "10000015",
"amount": "0.0009",
"operateTime": "2018-05-03 17:07:04",
"transferedAmount": "0.000441",
"fromAsset": "USDT"
},
{
"tranId": 4359321,
"serviceChargeAmount": "0.00001799",
"uid": "10000015",
"amount": "0.0009",
"operateTime": "2018-05-03 17:07:04",
"transferedAmount": "0.00088156",
"fromAsset": "ETH"
}
],
"operate_time": "2018-05-03 17:07:04" //The time of this
˓→exchange.
},
{
"transfered_total": "0.00058795",
"service_charge_total": "0.000012",
"tran_id": 4357015,
"logs": [ // Details of this exchange.
{
"tranId": 4357015,
"serviceChargeAmount": "0.00001",
"uid": "10000015",
"amount": "0.001",
"operateTime": "2018-05-02 13:52:24",
"transferedAmount": "0.00049",
"fromAsset": "USDT"
},
{
(continues on next page)
5.1. Contents 53
python-binance Documentation, Release 0.2.0
(continued from previous page)
"tranId": 4357015,
"serviceChargeAmount": "0.000002",
"uid": "10000015",
"amount": "0.0001",
"operateTime": "2018-05-02 13:51:11",
"transferedAmount": "0.00009795",
"fromAsset": "ETH"
}
],
"operate_time": "2018-05-02 13:51:11"
}
]
}
}
Raises BinanceWithdrawException
get_exchange_info()
Return rate limits and list of symbols
Returns list - List of product dictionaries
{
"timezone": "UTC",
"serverTime": 1508631584636,
"rateLimits": [
{
"rateLimitType": "REQUESTS",
"interval": "MINUTE",
"limit": 1200
},
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"limit": 10
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"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",
(continues on next page)
54 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
(continued from previous page)
"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"
}
]
}
]
}
Raises BinanceRequestException, BinanceAPIException
get_historical_klines(symbol, interval, start_str, end_str=None, limit=500)
Get Historical Klines from Binance
See dateparser docs for valid start and end string formats http://dateparser.readthedocs.io/en/latest/
If using offset strings for dates add “UTC” to date string e.g. “now UTC”, “11 hours ago UTC”
Parameters
• symbol (str) – Name of symbol pair e.g BNBBTC
• interval (str) – Binance Kline interval
• start_str (str|int) – Start date string in UTC format or timestamp in milliseconds
• end_str (str|int) – optional - end date string in UTC format or timestamp in milliseconds (default will fetch everything up to now)
• limit (int) – Default 500; max 1000.
Returns list of OHLCV values
get_historical_klines_generator(symbol, interval, start_str, end_str=None)
Get Historical Klines from Binance
See dateparser docs for valid start and end string formats http://dateparser.readthedocs.io/en/latest/
If using offset strings for dates add “UTC” to date string e.g. “now UTC”, “11 hours ago UTC”
Parameters
• symbol (str) – Name of symbol pair e.g BNBBTC
• interval (str) – Binance Kline interval
• start_str (str|int) – Start date string in UTC format or timestamp in milliseconds
• end_str (str|int) – optional - end date string in UTC format or timestamp in milliseconds (default will fetch everything up to now)
Returns generator of OHLCV values
5.1. Contents 55
python-binance Documentation, Release 0.2.0
get_historical_trades(**params)
Get older trades.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#
recent-trades-list
Parameters
• symbol (str) – required
• limit (int) – Default 500; max 500.
• fromId (str) – TradeId to fetch from. Default gets most recent trades.
Returns API response
[
{
"id": 28457,
"price": "4.00000100",
"qty": "12.00000000",
"time": 1499865549590,
"isBuyerMaker": true,
"isBestMatch": true
}
]
Raises BinanceRequestException, BinanceAPIException
get_klines(**params)
Kline/candlestick bars for a symbol. Klines are uniquely identified by their open time.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#
klinecandlestick-data
Parameters
• symbol (str) – required
• interval (str) –
• limit (int) –
– Default 500; max 500.
• startTime (int) –
• endTime (int) –
Returns API response
[
[
1499040000000, # Open time
"0.01634790", # Open
"0.80000000", # High
"0.01575800", # Low
"0.01577100", # Close
"148976.11427815", # Volume
1499644799999, # Close time
"2434.19055334", # Quote asset volume
(continues on next page)
56 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
(continued from previous page)
308, # Number of trades
"1756.87402397", # Taker buy base asset volume
"28.46694368", # Taker buy quote asset volume
"17928899.62484339" # Can be ignored
]
]
Raises BinanceRequestException, BinanceAPIException
get_margin_account(**params)
Query margin account details
https://github.com/binance-exchange/binance-official-api-docs/blob/master/margin-api.md#
query-margin-account-details-user_data
Returns API response
{
"borrowEnabled": true,
"marginLevel": "11.64405625",
"totalAssetOfBtc": "6.82728457",
"totalLiabilityOfBtc": "0.58633215",
"totalNetAssetOfBtc": "6.24095242",
"tradeEnabled": true,
"transferEnabled": true,
"userAssets": [
{
"asset": "BTC",
"borrowed": "0.00000000",
"free": "0.00499500",
"interest": "0.00000000",
"locked": "0.00000000",
"netAsset": "0.00499500"
},
{
"asset": "BNB",
"borrowed": "201.66666672",
"free": "2346.50000000",
"interest": "0.00000000",
"locked": "0.00000000",
"netAsset": "2144.83333328"
},
{
"asset": "ETH",
"borrowed": "0.00000000",
"free": "0.00000000",
"interest": "0.00000000",
"locked": "0.00000000",
"netAsset": "0.00000000"
},
{
"asset": "USDT",
"borrowed": "0.00000000",
"free": "0.00000000",
"interest": "0.00000000",
"locked": "0.00000000",
(continues on next page)
5.1. Contents 57
python-binance Documentation, Release 0.2.0
(continued from previous page)
"netAsset": "0.00000000"
}
]
}
Raises BinanceRequestException, BinanceAPIException
get_margin_asset(**params)
Query margin asset
https://github.com/binance-exchange/binance-official-api-docs/blob/master/margin-api.md#
query-margin-asset-market_data
Parameters asset (str) – name of the asset
asset_details = client.get_margin_asset(asset='BNB')
Returns API response
{
"assetFullName": "Binance Coin",
"assetName": "BNB",
"isBorrowable": false,
"isMortgageable": true,
"userMinBorrow": "0.00000000",
"userMinRepay": "0.00000000"
}
Raises BinanceRequestException, BinanceAPIException
get_margin_loan_details(**params)
Query loan record
txId or startTime must be sent. txId takes precedence.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/margin-api.md#
margin-account-cancel-order-trade
Parameters
• asset (str) – required
• txId (str) – the tranId in of the created loan
• startTime (str) –
• endTime (str) – Used to uniquely identify this cancel. Automatically generated by
default.
• current (str) – Currently querying page. Start from 1. Default:1
• size (int) – Default:10 Max:100
• recvWindow (int) – the number of milliseconds the request is valid for
Returns
API response
{
58 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
“rows”: [
{ “asset”: “BNB”, “principal”: “0.84624403”, “timestamp”: 1555056425000, //one
of PENDING (pending to execution), CONFIRMED (successfully loaned), FAILED
(execution failed, nothing happened to your account); “status”: “CONFIRMED”
}
], “total”: 1
}
Raises BinanceRequestException, BinanceAPIException
get_margin_order(**params)
Query margin accounts order
Either orderId or origClientOrderId must be sent.
For some historical orders cummulativeQuoteQty will be < 0, meaning the data is not available at this
time.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/margin-api.md#
query-margin-accounts-order-user_data
Parameters
• symbol (str) – required
• orderId (str) –
• origClientOrderId (str) –
• recvWindow (int) – the number of milliseconds the request is valid for
Returns
API response
{ “clientOrderId”: “ZwfQzuDIGpceVhKW5DvCmO”, “cummulativeQuoteQty”:
“0.00000000”, “executedQty”: “0.00000000”, “icebergQty”: “0.00000000”,
“isWorking”: true, “orderId”: 213205622, “origQty”: “0.30000000”, “price”:
“0.00493630”, “side”: “SELL”, “status”: “NEW”, “stopPrice”: “0.00000000”,
“symbol”: “BNBBTC”, “time”: 1562133008725, “timeInForce”: “GTC”, “type”:
“LIMIT”, “updateTime”: 1562133008725
}
Raises BinanceRequestException, BinanceAPIException
get_margin_price_index(**params)
Query margin priceIndex
https://github.com/binance-exchange/binance-official-api-docs/blob/master/margin-api.md#
query-margin-priceindex-market_data
Parameters symbol (str) – name of the symbol pair
price_index_details = client.get_margin_pair(symbol='BTCUSDT')
Returns API response
5.1. Contents 59
python-binance Documentation, Release 0.2.0
{
"calcTime": 1562046418000,
"price": "0.00333930",
"symbol": "BNBBTC"
}
Raises BinanceRequestException, BinanceAPIException
get_margin_repay_details(**params)
Query repay record
txId or startTime must be sent. txId takes precedence.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/margin-api.md#
margin-account-cancel-order-trade
Parameters
• asset (str) – required
• txId (str) – the tranId in of the created loan
• startTime (str) –
• endTime (str) – Used to uniquely identify this cancel. Automatically generated by
default.
• current (str) – Currently querying page. Start from 1. Default:1
• size (int) – Default:10 Max:100
• recvWindow (int) – the number of milliseconds the request is valid for
Returns
API response
{
“rows”: [
{ //Total amount repaid “amount”: “14.00000000”, “asset”: “BNB”, //Interest repaid “interest”: “0.01866667”, //Principal repaid “principal”: “13.98133333”,
//one of PENDING (pending to execution), CONFIRMED (successfully loaned),
FAILED (execution failed, nothing happened to your account); “status”: “CONFIRMED”, “timestamp”: 1563438204000, “txId”: 2970933056
}
], “total”: 1
}
Raises BinanceRequestException, BinanceAPIException
get_margin_symbol(**params)
Query margin symbol info
https://github.com/binance-exchange/binance-official-api-docs/blob/master/margin-api.md#
query-margin-pair-market_data
Parameters symbol (str) – name of the symbol pair
60 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
pair_details = client.get_margin_symbol(symbol='BTCUSDT')
Returns API response
{
"id":323355778339572400,
"symbol":"BTCUSDT",
"base":"BTC",
"quote":"USDT",
"isMarginTrade":true,
"isBuyAllowed":true,
"isSellAllowed":true
}
Raises BinanceRequestException, BinanceAPIException
get_margin_trades(**params)
Query margin accounts trades
If fromId is set, it will get orders >= that fromId. Otherwise most recent orders are returned.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/margin-api.md#
query-margin-accounts-trade-list-user_data
Parameters
• symbol (str) – required
• fromId (str) – optional
• startTime (str) – optional
• endTime (str) – optional
• limit (int) – Default 500; max 1000
• recvWindow (int) – the number of milliseconds the request is valid for
Returns
API response
[
{ “commission”: “0.00006000”, “commissionAsset”: “BTC”, “id”: 34, “isBestMatch”: true, “isBuyer”: false, “isMaker”: false, “orderId”: 39324,
“price”: “0.02000000”, “qty”: “3.00000000”, “symbol”: “BNBBTC”, “time”:
1561973357171
}, { “commission”: “0.00002950”, “commissionAsset”: “BTC”, “id”: 32, “isBestMatch”: true, “isBuyer”: false, “isMaker”: true, “orderId”: 39319,
“price”: “0.00590000”, “qty”: “5.00000000”, “symbol”: “BNBBTC”, “time”:
1561964645345
}
]
Raises BinanceRequestException, BinanceAPIException
5.1. Contents 61
python-binance Documentation, Release 0.2.0
get_max_margin_loan(**params)
Query max borrow amount for an asset
https://github.com/binance-exchange/binance-official-api-docs/blob/master/margin-api.md#
query-max-borrow-user_data
Parameters
• asset (str) – required
• recvWindow (int) – the number of milliseconds the request is valid for
Returns
API response
{ “amount”: “1.69248805”
}
Raises BinanceRequestException, BinanceAPIException
get_max_margin_transfer(**params)
Query max transfer-out amount
https://github.com/binance-exchange/binance-official-api-docs/blob/master/margin-api.md#
query-max-transfer-out-amount-user_data
Parameters
• asset (str) – required
• recvWindow (int) – the number of milliseconds the request is valid for
Returns
API response
{ “amount”: “3.59498107”
}
Raises BinanceRequestException, BinanceAPIException
get_my_trades(**params)
Get trades for a specific symbol.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#
account-trade-list-user_data
Parameters
• symbol (str) – required
• limit (int) – Default 500; max 500.
• fromId (int) – TradeId to fetch from. Default gets most recent trades.
• recvWindow (int) – the number of milliseconds the request is valid for
Returns API response
[
{
"id": 28457,
"price": "4.00000100",
"qty": "12.00000000",
(continues on next page)
62 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
(continued from previous page)
"commission": "10.10000000",
"commissionAsset": "BNB",
"time": 1499865549590,
"isBuyer": true,
"isMaker": false,
"isBestMatch": true
}
]
Raises BinanceRequestException, BinanceAPIException
get_open_margin_orders(**params)
Query margin accounts open orders
If the symbol is not sent, orders for all symbols will be returned in an array.
When all symbols are returned, the number of requests counted against the rate limiter is equal to the
number of symbols currently trading on the exchange.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/margin-api.md#
query-margin-accounts-open-order-user_data
Parameters
• symbol (str) – optional
• recvWindow (int) – the number of milliseconds the request is valid for
Returns
API response
[
{ “clientOrderId”: “qhcZw71gAkCCTv0t0k8LUK”, “cummulativeQuoteQty”:
“0.00000000”, “executedQty”: “0.00000000”, “icebergQty”: “0.00000000”,
“isWorking”: true, “orderId”: 211842552, “origQty”: “0.30000000”, “price”:
“0.00475010”, “side”: “SELL”, “status”: “NEW”, “stopPrice”: “0.00000000”,
“symbol”: “BNBBTC”, “time”: 1562040170089, “timeInForce”: “GTC”, “type”:
“LIMIT”, “updateTime”: 1562040170089
}
]
Raises BinanceRequestException, BinanceAPIException
get_open_orders(**params)
Get all open orders on a symbol.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#
current-open-orders-user_data
Parameters
• symbol (str) – optional
• recvWindow (int) – the number of milliseconds the request is valid for
Returns API response
5.1. Contents 63
python-binance Documentation, Release 0.2.0
[
{
"symbol": "LTCBTC",
"orderId": 1,
"clientOrderId": "myOrder1",
"price": "0.1",
"origQty": "1.0",
"executedQty": "0.0",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.0",
"icebergQty": "0.0",
"time": 1499827319559
}
]
Raises BinanceRequestException, BinanceAPIException
get_order(**params)
Check an order’s status. Either orderId or origClientOrderId must be sent.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#
query-order-user_data
Parameters
• symbol (str) – required
• orderId (int) – The unique order id
• origClientOrderId (str) – optional
• recvWindow (int) – the number of milliseconds the request is valid for
Returns API response
{
"symbol": "LTCBTC",
"orderId": 1,
"clientOrderId": "myOrder1",
"price": "0.1",
"origQty": "1.0",
"executedQty": "0.0",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.0",
"icebergQty": "0.0",
"time": 1499827319559
}
Raises BinanceRequestException, BinanceAPIException
get_order_book(**params)
Get the Order Book for the market
64 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#order-book
Parameters
• symbol (str) – required
• limit (int) – Default 100; max 1000
Returns API response
{
"lastUpdateId": 1027024,
"bids": [
[
"4.00000000", # PRICE
"431.00000000", # QTY
[] # Can be ignored
]
],
"asks": [
[
"4.00000200",
"12.00000000",
[]
]
]
}
Raises BinanceRequestException, BinanceAPIException
get_orderbook_ticker(**params)
Latest price for a symbol or symbols.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#
symbol-order-book-ticker
Parameters symbol (str) –
Returns API response
{
"symbol": "LTCBTC",
"bidPrice": "4.00000000",
"bidQty": "431.00000000",
"askPrice": "4.00000200",
"askQty": "9.00000000"
}
OR
[
{
"symbol": "LTCBTC",
"bidPrice": "4.00000000",
"bidQty": "431.00000000",
"askPrice": "4.00000200",
"askQty": "9.00000000"
},
{
"symbol": "ETHBTC",
(continues on next page)
5.1. Contents 65
python-binance Documentation, Release 0.2.0
(continued from previous page)
"bidPrice": "0.07946700",
"bidQty": "9.00000000",
"askPrice": "100000.00000000",
"askQty": "1000.00000000"
}
]
Raises BinanceRequestException, BinanceAPIException
get_orderbook_tickers()
Best price/qty on the order book for all symbols.
https://www.binance.com/restapipub.html#symbols-order-book-ticker
Returns List of order book market entries
[
{
"symbol": "LTCBTC",
"bidPrice": "4.00000000",
"bidQty": "431.00000000",
"askPrice": "4.00000200",
"askQty": "9.00000000"
},
{
"symbol": "ETHBTC",
"bidPrice": "0.07946700",
"bidQty": "9.00000000",
"askPrice": "100000.00000000",
"askQty": "1000.00000000"
}
]
Raises BinanceRequestException, BinanceAPIException
get_products()
Return list of products currently listed on Binance
Use get_exchange_info() call instead
Returns list - List of product dictionaries
Raises BinanceRequestException, BinanceAPIException
get_recent_trades(**params)
Get recent trades (up to last 500).
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#
recent-trades-list
Parameters
• symbol (str) – required
• limit (int) – Default 500; max 500.
Returns API response
66 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
[
{
"id": 28457,
"price": "4.00000100",
"qty": "12.00000000",
"time": 1499865549590,
"isBuyerMaker": true,
"isBestMatch": true
}
]
Raises BinanceRequestException, BinanceAPIException
get_server_time()
Test connectivity to the Rest API and get the current server time.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#
check-server-time
Returns Current server time
{
"serverTime": 1499827319559
}
Raises BinanceRequestException, BinanceAPIException
get_sub_account_assets(**params)
Fetch sub-account assets
https://github.com/binance-exchange/binance-official-api-docs/blob/9dbe0e961b80557bb19708a707c7fad08842b28e/
wapi-api.md#query-sub-account-assetsfor-master-account
Parameters
• email (str) – required
• symbol (str) – optional
• recvWindow (int) – optional
Returns API response
{
"success":true,
"balances":[
{
"asset":"ADA",
"free":10000,
"locked":0
},
{
"asset":"BNB",
"free":10003,
"locked":0
},
{
"asset":"BTC",
(continues on next page)
5.1. Contents 67
python-binance Documentation, Release 0.2.0
(continued from previous page)
"free":11467.6399,
"locked":0
},
{
"asset":"ETH",
"free":10004.995,
"locked":0
},
{
"asset":"USDT",
"free":11652.14213,
"locked":0
}
]
}
Raises BinanceRequestException, BinanceAPIException
get_sub_account_list(**params)
Query Sub-account List.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/wapi-api.md#
query-sub-account-listfor-master-account
Parameters
• email (str) – optional
• startTime (int) – optional
• endTime (int) – optional
• page (int) – optional
• limit (int) – optional
• recvWindow (int) – optional
Returns API response
{
"success":true,
"subAccounts":[
{
"email":"123@test.com",
"status":"enabled",
"activated":true,
"mobile":"91605290",
"gAuth":true,
"createTime":1544433328000
},
{
"email":"321@test.com",
"status":"disabled",
"activated":true,
"mobile":"22501238",
"gAuth":true,
"createTime":1544433328000
}
(continues on next page)
68 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
(continued from previous page)
]
}
Raises BinanceRequestException, BinanceAPIException
get_sub_account_transfer_history(**params)
Query Sub-account Transfer History.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/wapi-api.md#
query-sub-account-transfer-historyfor-master-account
Parameters
• email (str) – required
• startTime (int) – optional
• endTime (int) – optional
• page (int) – optional
• limit (int) – optional
• recvWindow (int) – optional
Returns API response
{
"success":true,
"transfers":[
{
"from":"aaa@test.com",
"to":"bbb@test.com",
"asset":"BTC",
"qty":"1",
"time":1544433328000
},
{
"from":"bbb@test.com",
"to":"ccc@test.com",
"asset":"ETH",
"qty":"2",
"time":1544433328000
}
]
}
Raises BinanceRequestException, BinanceAPIException
get_symbol_info(symbol)
Return information about a symbol
Parameters symbol (str) – required e.g BNBBTC
Returns Dict if found, None if not
{
"symbol": "ETHBTC",
"status": "TRADING",
(continues on next page)
5.1. Contents 69
python-binance Documentation, Release 0.2.0
(continued from previous page)
"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"
}
]
}
Raises BinanceRequestException, BinanceAPIException
get_symbol_ticker(**params)
Latest price for a symbol or symbols.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#
24hr-ticker-price-change-statistics
Parameters symbol (str) –
Returns API response
{
"symbol": "LTCBTC",
"price": "4.00000200"
}
OR
[
{
"symbol": "LTCBTC",
"price": "4.00000200"
},
{
"symbol": "ETHBTC",
"price": "0.07946600"
}
]
Raises BinanceRequestException, BinanceAPIException
70 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
get_system_status()
Get system status detail.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/wapi-api.md#
system-status-system
Returns API response
{
"status": 0, # 0: normal1system maintenance
"msg": "normal" # normal or System maintenance.
}
Raises BinanceAPIException
get_ticker(**params)
24 hour price change statistics.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#
24hr-ticker-price-change-statistics
Parameters symbol (str) –
Returns API response
{
"priceChange": "-94.99999800",
"priceChangePercent": "-95.960",
"weightedAvgPrice": "0.29628482",
"prevClosePrice": "0.10002000",
"lastPrice": "4.00000200",
"bidPrice": "4.00000000",
"askPrice": "4.00000200",
"openPrice": "99.00000000",
"highPrice": "100.00000000",
"lowPrice": "0.10000000",
"volume": "8913.30000000",
"openTime": 1499783499040,
"closeTime": 1499869899040,
"fristId": 28385, # First tradeId
"lastId": 28460, # Last tradeId
"count": 76 # Trade count
}
OR
[
{
"priceChange": "-94.99999800",
"priceChangePercent": "-95.960",
"weightedAvgPrice": "0.29628482",
"prevClosePrice": "0.10002000",
"lastPrice": "4.00000200",
"bidPrice": "4.00000000",
"askPrice": "4.00000200",
"openPrice": "99.00000000",
"highPrice": "100.00000000",
"lowPrice": "0.10000000",
"volume": "8913.30000000",
(continues on next page)
5.1. Contents 71
python-binance Documentation, Release 0.2.0
(continued from previous page)
"openTime": 1499783499040,
"closeTime": 1499869899040,
"fristId": 28385, # First tradeId
"lastId": 28460, # Last tradeId
"count": 76 # Trade count
}
]
Raises BinanceRequestException, BinanceAPIException
get_trade_fee(**params)
Get trade fee.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/wapi-api.md#
trade-fee-user_data
Parameters
• symbol (str) – optional
• recvWindow (int) – the number of milliseconds the request is valid for
Returns API response
{
"tradeFee": [
{
"symbol": "ADABNB",
"maker": 0.9000,
"taker": 1.0000
}, {
"symbol": "BNBBTC",
"maker": 0.3000,
"taker": 0.3000
}
],
"success": true
}
Raises BinanceWithdrawException
get_withdraw_history(**params)
Fetch withdraw history.
https://www.binance.com/restapipub.html
Parameters
• asset (str) – optional
• startTime (long) – optional
• endTime (long) – optional
• recvWindow (int) – the number of milliseconds the request is valid for
Returns API response
72 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
{
"withdrawList": [
{
"amount": 1,
"address": "0x6915f16f8791d0a1cc2bf47c13a6b2a92000504b",
"asset": "ETH",
"applyTime": 1508198532000
"status": 4
},
{
"amount": 0.005,
"address": "0x6915f16f8791d0a1cc2bf47c13a6b2a92000504b",
"txId":
˓→"0x80aaabed54bdab3f6de5868f89929a2371ad21d666f20f7393d1a3389fad95a1",
"asset": "ETH",
"applyTime": 1508198532000,
"status": 4
}
],
"success": true
}
Raises BinanceRequestException, BinanceAPIException
margin_stream_close(listenKey)
Close out a margin data stream.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/margin-api.md#delete-userdata-stream-for-margin-account–user_stream
Parameters listenKey (str) – required
Returns API response
{}
Raises BinanceRequestException, BinanceAPIException
margin_stream_get_listen_key()
Start a new margin data stream and return the listen key If a stream already exists it should return the same
key. If the stream becomes invalid a new key is returned.
Can be used to keep the user stream alive.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/margin-api.md#
start-user-data-stream-for-margin-account-user_stream
Returns API response
{
"listenKey":
˓→"pqia91ma19a5s61cv6a81va65sdf19v8a65a1a5s61cv6a81va65sdf19v8a65a1"
}
Raises BinanceRequestException, BinanceAPIException
5.1. Contents 73
python-binance Documentation, Release 0.2.0
margin_stream_keepalive(listenKey)
PING a margin data stream to prevent a time out.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/margin-api.md#ping-userdata-stream-for-margin-account–user_stream
Parameters listenKey (str) – required
Returns API response
{}
Raises BinanceRequestException, BinanceAPIException
order_limit(timeInForce=’GTC’, **params)
Send in a new limit order
Any order with an icebergQty MUST have timeInForce set to GTC.
Parameters
• symbol (str) – required
• side (str) – required
• quantity (decimal) – required
• price (str) – required
• timeInForce (str) – default Good till cancelled
• newClientOrderId (str) – A unique id for the order. Automatically generated
if not sent.
• icebergQty (decimal) – Used with LIMIT, STOP_LOSS_LIMIT, and
TAKE_PROFIT_LIMIT to create an iceberg order.
• newOrderRespType (str) – Set the response JSON. ACK, RESULT, or FULL;
default: RESULT.
• recvWindow (int) – the number of milliseconds the request is valid for
Returns API response
See order endpoint for full response options
Raises BinanceRequestException, BinanceAPIException, BinanceOrderException, BinanceOrderMinAmountException, BinanceOrderMinPriceException, BinanceOrderMinTotalException, BinanceOrderUnknownSymbolException, BinanceOrderInactiveSymbolException
order_limit_buy(timeInForce=’GTC’, **params)
Send in a new limit buy order
Any order with an icebergQty MUST have timeInForce set to GTC.
Parameters
• symbol (str) – required
• quantity (decimal) – required
• price (str) – required
• timeInForce (str) – default Good till cancelled
74 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
• newClientOrderId (str) – A unique id for the order. Automatically generated
if not sent.
• stopPrice (decimal) – Used with stop orders
• icebergQty (decimal) – Used with iceberg orders
• newOrderRespType (str) – Set the response JSON. ACK, RESULT, or FULL;
default: RESULT.
• recvWindow (int) – the number of milliseconds the request is valid for
Returns API response
See order endpoint for full response options
Raises BinanceRequestException, BinanceAPIException, BinanceOrderException, BinanceOrderMinAmountException, BinanceOrderMinPriceException, BinanceOrderMinTotalException, BinanceOrderUnknownSymbolException, BinanceOrderInactiveSymbolException
order_limit_sell(timeInForce=’GTC’, **params)
Send in a new limit sell order
Parameters
• symbol (str) – required
• quantity (decimal) – required
• price (str) – required
• timeInForce (str) – default Good till cancelled
• newClientOrderId (str) – A unique id for the order. Automatically generated
if not sent.
• stopPrice (decimal) – Used with stop orders
• icebergQty (decimal) – Used with iceberg orders
• newOrderRespType (str) – Set the response JSON. ACK, RESULT, or FULL;
default: RESULT.
• recvWindow (int) – the number of milliseconds the request is valid for
Returns API response
See order endpoint for full response options
Raises BinanceRequestException, BinanceAPIException, BinanceOrderException, BinanceOrderMinAmountException, BinanceOrderMinPriceException, BinanceOrderMinTotalException, BinanceOrderUnknownSymbolException, BinanceOrderInactiveSymbolException
order_market(**params)
Send in a new market order
Parameters
• symbol (str) – required
• side (str) – required
• quantity (decimal) – required
5.1. Contents 75
python-binance Documentation, Release 0.2.0
• newClientOrderId (str) – A unique id for the order. Automatically generated
if not sent.
• newOrderRespType (str) – Set the response JSON. ACK, RESULT, or FULL;
default: RESULT.
• recvWindow (int) – the number of milliseconds the request is valid for
Returns API response
See order endpoint for full response options
Raises BinanceRequestException, BinanceAPIException, BinanceOrderException, BinanceOrderMinAmountException, BinanceOrderMinPriceException, BinanceOrderMinTotalException, BinanceOrderUnknownSymbolException, BinanceOrderInactiveSymbolException
order_market_buy(**params)
Send in a new market buy order
Parameters
• symbol (str) – required
• quantity (decimal) – required
• newClientOrderId (str) – A unique id for the order. Automatically generated
if not sent.
• newOrderRespType (str) – Set the response JSON. ACK, RESULT, or FULL;
default: RESULT.
• recvWindow (int) – the number of milliseconds the request is valid for
Returns API response
See order endpoint for full response options
Raises BinanceRequestException, BinanceAPIException, BinanceOrderException, BinanceOrderMinAmountException, BinanceOrderMinPriceException, BinanceOrderMinTotalException, BinanceOrderUnknownSymbolException, BinanceOrderInactiveSymbolException
order_market_sell(**params)
Send in a new market sell order
Parameters
• symbol (str) – required
• quantity (decimal) – required
• newClientOrderId (str) – A unique id for the order. Automatically generated
if not sent.
• newOrderRespType (str) – Set the response JSON. ACK, RESULT, or FULL;
default: RESULT.
• recvWindow (int) – the number of milliseconds the request is valid for
Returns API response
See order endpoint for full response options
76 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
Raises BinanceRequestException, BinanceAPIException, BinanceOrderException, BinanceOrderMinAmountException, BinanceOrderMinPriceException, BinanceOrderMinTotalException, BinanceOrderUnknownSymbolException, BinanceOrderInactiveSymbolException
ping()
Test connectivity to the Rest API.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#
test-connectivity
Returns Empty array
{}
Raises BinanceRequestException, BinanceAPIException
repay_margin_loan(**params)
Repay loan for margin account.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/margin-api.md#
margin-account-repay-margin
Parameters
• asset (str) – name of the asset
• amount (str) – amount to transfer
• recvWindow (int) – the number of milliseconds the request is valid for
transaction = client.margin_repay_loan(asset='BTC', amount='1.1')
Returns API response
{
"tranId": 100000001
}
Raises BinanceRequestException, BinanceAPIException
stream_close(listenKey)
Close out a user data stream.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#
close-user-data-stream-user_stream
Parameters listenKey (str) – required
Returns API response
{}
Raises BinanceRequestException, BinanceAPIException
stream_get_listen_key()
Start a new user data stream and return the listen key If a stream already exists it should return the same
key. If the stream becomes invalid a new key is returned.
5.1. Contents 77
python-binance Documentation, Release 0.2.0
Can be used to keep the user stream alive.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#
start-user-data-stream-user_stream
Returns API response
{
"listenKey":
˓→"pqia91ma19a5s61cv6a81va65sdf19v8a65a1a5s61cv6a81va65sdf19v8a65a1"
}
Raises BinanceRequestException, BinanceAPIException
stream_keepalive(listenKey)
PING a user data stream to prevent a time out.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#
keepalive-user-data-stream-user_stream
Parameters listenKey (str) – required
Returns API response
{}
Raises BinanceRequestException, BinanceAPIException
transfer_dust(**params)
Convert dust assets to BNB.
https://github.com/binance-exchange/binance-official-api-docs/blob/9dbe0e961b80557bb19708a707c7fad08842b28e/
wapi-api.md#dust-transfer-user_data
Parameters
• asset (str) – The asset being converted. e.g: ‘ONE’
• recvWindow (int) – the number of milliseconds the request is valid for
result = client.transfer_dust(asset='ONE')
Returns API response
{
"totalServiceCharge":"0.02102542",
"totalTransfered":"1.05127099",
"transferResult":[
{
"amount":"0.03000000",
"fromAsset":"ETH",
"operateTime":1563368549307,
"serviceChargeAmount":"0.00500000",
"tranId":2970932918,
"transferedAmount":"0.25000000"
}
]
}
78 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
Raises BinanceRequestException, BinanceAPIException
transfer_margin_to_spot(**params)
Execute transfer between margin account and spot account.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/margin-api.md#
margin-account-transfer-margin
Parameters
• asset (str) – name of the asset
• amount (str) – amount to transfer
• recvWindow (int) – the number of milliseconds the request is valid for
transfer = client.transfer_margin_to_spot(asset='BTC', amount='1.1')
Returns API response
{
"tranId": 100000001
}
Raises BinanceRequestException, BinanceAPIException
transfer_spot_to_margin(**params)
Execute transfer between spot account and margin account.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/margin-api.md#
margin-account-transfer-margin
Parameters
• asset (str) – name of the asset
• amount (str) – amount to transfer
• recvWindow (int) – the number of milliseconds the request is valid for
transfer = client.transfer_spot_to_margin(asset='BTC', amount='1.1')
Returns API response
{
"tranId": 100000001
}
Raises BinanceRequestException, BinanceAPIException
withdraw(**params)
Submit a withdraw request.
https://www.binance.com/restapipub.html
Assumptions:
• You must have Withdraw permissions enabled on your API key
5.1. Contents 79
python-binance Documentation, Release 0.2.0
• You must have withdrawn to the address specified through the website and approved the transaction
via email
Parameters
• asset (str) – required
• amount (decimal) – required
• name (str) – optional - Description of the address, default asset value passed will
be used
• recvWindow (int) – the number of milliseconds the request is valid for
Returns API response
{
"msg": "success",
"success": true,
"id":"7213fea8e94b4a5593d507237e5a555b"
}
Raises BinanceRequestException, BinanceAPIException, BinanceWithdrawException
depthcache module
class binance.depthcache.DepthCache(symbol)
Bases: object
__init__(symbol)
Initialise the DepthCache
Parameters symbol (string) – Symbol to create depth cache for
add_ask(ask)
Add an ask to the cache
Parameters ask –
Returns
add_bid(bid)
Add a bid to the cache
Parameters bid –
Returns
get_asks()
Get the current asks
Returns list of asks with price and quantity as floats
[
[
0.0001955, # Price
57.0' # Quantity
],
[
0.00019699,
(continues on next page)
80 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
(continued from previous page)
778.0
],
[
0.000197,
64.0
],
[
0.00019709,
1130.0
],
[
0.0001971,
385.0
]
]
get_bids()
Get the current bids
Returns list of bids with price and quantity as floats
[
[
0.0001946, # Price
45.0 # Quantity
],
[
0.00019459,
2384.0
],
[
0.00019158,
5219.0
],
[
0.00019157,
1180.0
],
[
0.00019082,
287.0
]
]
static sort_depth(vals, reverse=False)
Sort bids or asks by price
class binance.depthcache.DepthCacheManager(client, symbol, callback=None, refresh_interval=1800, bm=None, limit=500)
Bases: object
__init__(client, symbol, callback=None, refresh_interval=1800, bm=None, limit=500)
Initialise the DepthCacheManager
Parameters
• client (binance.Client) – Binance API client
• symbol (string) – Symbol to create depth cache for
5.1. Contents 81
python-binance Documentation, Release 0.2.0
• callback (function) – Optional function to receive depth cache updates
• refresh_interval (int) – Optional number of seconds between cache refresh,
use 0 or None to disable
• limit (int) – Optional number of orders to get from orderbook
close(close_socket=False)
Close the open socket for this manager
Returns
get_depth_cache()
Get the current depth cache
Returns DepthCache object
exceptions module
exception binance.exceptions.BinanceAPIException(response)
Bases: exceptions.Exception
__init__(response)
x.__init__(. . . ) initializes x; see help(type(x)) for signature
exception binance.exceptions.BinanceOrderException(code, message)
Bases: exceptions.Exception
__init__(code, message)
x.__init__(. . . ) initializes x; see help(type(x)) for signature
exception binance.exceptions.BinanceOrderInactiveSymbolException(value)
Bases: binance.exceptions.BinanceOrderException
__init__(value)
x.__init__(. . . ) initializes x; see help(type(x)) for signature
exception binance.exceptions.BinanceOrderMinAmountException(value)
Bases: binance.exceptions.BinanceOrderException
__init__(value)
x.__init__(. . . ) initializes x; see help(type(x)) for signature
exception binance.exceptions.BinanceOrderMinPriceException(value)
Bases: binance.exceptions.BinanceOrderException
__init__(value)
x.__init__(. . . ) initializes x; see help(type(x)) for signature
exception binance.exceptions.BinanceOrderMinTotalException(value)
Bases: binance.exceptions.BinanceOrderException
__init__(value)
x.__init__(. . . ) initializes x; see help(type(x)) for signature
exception binance.exceptions.BinanceOrderUnknownSymbolException(value)
Bases: binance.exceptions.BinanceOrderException
__init__(value)
x.__init__(. . . ) initializes x; see help(type(x)) for signature
exception binance.exceptions.BinanceRequestException(message)
Bases: exceptions.Exception
82 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
__init__(message)
x.__init__(. . . ) initializes x; see help(type(x)) for signature
exception binance.exceptions.BinanceWithdrawException(message)
Bases: exceptions.Exception
__init__(message)
x.__init__(. . . ) initializes x; see help(type(x)) for signature
helpers module
binance.helpers.date_to_milliseconds(date_str)
Convert UTC date to milliseconds
If using offset strings add “UTC” to date string e.g. “now UTC”, “11 hours ago UTC”
See dateparse docs for formats http://dateparser.readthedocs.io/en/latest/
Parameters date_str (str) – date in readable format, i.e. “January 01, 2018”, “11 hours ago
UTC”, “now UTC”
binance.helpers.interval_to_milliseconds(interval)
Convert a Binance interval string to milliseconds
Parameters interval (str) – Binance interval string, e.g.: 1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h,
6h, 8h, 12h, 1d, 3d, 1w
Returns int value of interval in milliseconds None if interval prefix is not a decimal integer None
if interval suffix is not one of m, h, d, w
websockets module
class binance.websockets.BinanceClientFactory(*args, **kwargs)
Bases: autobahn.twisted.websocket.WebSocketClientFactory, binance.websockets.
BinanceReconnectingClientFactory
clientConnectionFailed(connector, reason)
Called when a connection has failed to connect.
It may be useful to call connector.connect() - this will reconnect.
@type reason: L{twisted.python.failure.Failure}
clientConnectionLost(connector, reason)
Called when an established connection is lost.
It may be useful to call connector.connect() - this will reconnect.
@type reason: L{twisted.python.failure.Failure}
protocol
alias of BinanceClientProtocol
class binance.websockets.BinanceClientProtocol
Bases: autobahn.twisted.websocket.WebSocketClientProtocol
__init__()
x.__init__(. . . ) initializes x; see help(type(x)) for signature
onConnect(response)
Callback fired directly after WebSocket opening handshake when new WebSocket server connection was
established.
5.1. Contents 83
python-binance Documentation, Release 0.2.0
Parameters response (instance of autobahn.websocket.protocol.
ConnectionResponse) – WebSocket connection response information.
onMessage(payload, isBinary)
Implements autobahn.websocket.interfaces.IWebSocketChannel.onMessage()
class binance.websockets.BinanceReconnectingClientFactory
Bases: twisted.internet.protocol.ReconnectingClientFactory
initialDelay = 0.1
maxDelay = 10
maxRetries = 5
class binance.websockets.BinanceSocketManager(client, user_timeout=1800)
Bases: threading.Thread
DEFAULT_USER_TIMEOUT = 1800
STREAM_URL = 'wss://stream.binance.com:9443/'
WEBSOCKET_DEPTH_10 = '10'
WEBSOCKET_DEPTH_20 = '20'
WEBSOCKET_DEPTH_5 = '5'
__init__(client, user_timeout=1800)
Initialise the BinanceSocketManager
Parameters
• client (binance.Client) – Binance API client
• user_timeout (int) – Custom websocket timeout
close()
Close all connections
run()
Method representing the thread’s activity.
You may override this method in a subclass. The standard run() method invokes the callable object passed
to the object’s constructor as the target argument, if any, with sequential and keyword arguments taken
from the args and kwargs arguments, respectively.
start_aggtrade_socket(symbol, callback)
Start a websocket for symbol trade data
https://github.com/binance-exchange/binance-official-api-docs/blob/master/web-socket-streams.md#
aggregate-trade-streams
Parameters
• symbol (str) – required
• callback (function) – callback function to handle messages
Returns connection key string if successful, False otherwise
Message Format
{
"e": "aggTrade", # event type
"E": 1499405254326, # event time
(continues on next page)
84 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
(continued from previous page)
"s": "ETHBTC", # symbol
"a": 70232, # aggregated tradeid
"p": "0.10281118", # price
"q": "8.15632997", # quantity
"f": 77489, # first breakdown trade id
"l": 77489, # last breakdown trade id
"T": 1499405254324, # trade time
"m": false, # whether buyer is a maker
"M": true # can be ignored
}
start_depth_socket(symbol, callback, depth=None)
Start a websocket for symbol market depth returning either a diff or a partial book
https://github.com/binance-exchange/binance-official-api-docs/blob/master/web-socket-streams.md#
partial-book-depth-streams
Parameters
• symbol (str) – required
• callback (function) – callback function to handle messages
• depth (str) – optional Number of depth entries to return, default None. If passed
returns a partial book instead of a diff
Returns connection key string if successful, False otherwise
Partial Message Format
{
"lastUpdateId": 160, # Last update ID
"bids": [ # Bids to be updated
[
"0.0024", # price level to be updated
"10", # quantity
[] # ignore
]
],
"asks": [ # Asks to be updated
[
"0.0026", # price level to be updated
"100", # quantity
[] # ignore
]
]
}
Diff Message Format
{
"e": "depthUpdate", # Event type
"E": 123456789, # Event time
"s": "BNBBTC", # Symbol
"U": 157, # First update ID in event
"u": 160, # Final update ID in event
"b": [ # Bids to be updated
[
"0.0024", # price level to be updated
(continues on next page)
5.1. Contents 85
python-binance Documentation, Release 0.2.0
(continued from previous page)
"10", # quantity
[] # ignore
]
],
"a": [ # Asks to be updated
[
"0.0026", # price level to be updated
"100", # quantity
[] # ignore
]
]
}
start_kline_socket(symbol, callback, interval=’1m’)
Start a websocket for symbol kline data
https://github.com/binance-exchange/binance-official-api-docs/blob/master/web-socket-streams.md#
klinecandlestick-streams
Parameters
• symbol (str) – required
• callback (function) – callback function to handle messages
• interval (str) – Kline interval, default KLINE_INTERVAL_1MINUTE
Returns connection key string if successful, False otherwise
Message Format
{
"e": "kline", # event type
"E": 1499404907056, # event time
"s": "ETHBTC", # symbol
"k": {
"t": 1499404860000, # start time of this bar
"T": 1499404919999, # end time of this bar
"s": "ETHBTC", # symbol
"i": "1m", # interval
"f": 77462, # first trade id
"L": 77465, # last trade id
"o": "0.10278577", # open
"c": "0.10278645", # close
"h": "0.10278712", # high
"l": "0.10278518", # low
"v": "17.47929838", # volume
"n": 4, # number of
˓→trades
"x": false, # whether this bar is
˓→final
"q": "1.79662878", # quote volume
"V": "2.34879839", # volume of active buy
"Q": "0.24142166", # quote volume of active buy
"B": "13279784.01349473" # can be ignored
}
}
start_miniticker_socket(callback, update_time=1000)
Start a miniticker websocket for all trades
86 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
This is not in the official Binance api docs, but this is what feeds the right column on a ticker page on
Binance.
Parameters
• callback (function) – callback function to handle messages
• update_time (int) – time between callbacks in milliseconds, must be 1000 or
greater
Returns connection key string if successful, False otherwise
Message Format
[
{
'e': '24hrMiniTicker', # Event type
'E': 1515906156273, # Event time
's': 'QTUMETH', # Symbol
'c': '0.03836900', # close
'o': '0.03953500', # open
'h': '0.04400000', # high
'l': '0.03756000', # low
'v': '147435.80000000', # volume
'q': '5903.84338533' # quote volume
}
]
start_multiplex_socket(streams, callback)
Start a multiplexed socket using a list of socket names. User stream sockets can not be included.
Symbols in socket name must be lowercase i.e bnbbtc@aggTrade, neobtc@ticker
Combined stream events are wrapped as follows: {“stream”:”<streamName>”,”data”:<rawPayload>}
https://github.com/binance-exchange/binance-official-api-docs/blob/master/web-socket-streams.md
Parameters
• streams (list) – list of stream names in lower case
• callback (function) – callback function to handle messages
Returns connection key string if successful, False otherwise
Message Format - see Binance API docs for all types
start_symbol_ticker_socket(symbol, callback)
Start a websocket for a symbol’s ticker data
https://github.com/binance-exchange/binance-official-api-docs/blob/master/web-socket-streams.md#
individual-symbol-ticker-streams
Parameters
• symbol (str) – required
• callback (function) – callback function to handle messages
Returns connection key string if successful, False otherwise
Message Format
5.1. Contents 87
python-binance Documentation, Release 0.2.0
{
"e": "24hrTicker", # Event type
"E": 123456789, # Event time
"s": "BNBBTC", # Symbol
"p": "0.0015", # Price change
"P": "250.00", # Price change percent
"w": "0.0018", # Weighted average price
"x": "0.0009", # Previous day's close price
"c": "0.0025", # Current day's close price
"Q": "10", # Close trade's quantity
"b": "0.0024", # Best bid price
"B": "10", # Bid bid quantity
"a": "0.0026", # Best ask price
"A": "100", # Best ask quantity
"o": "0.0010", # Open price
"h": "0.0025", # High price
"l": "0.0010", # Low price
"v": "10000", # Total traded base asset volume
"q": "18", # Total traded quote asset volume
"O": 0, # Statistics open time
"C": 86400000, # Statistics close time
"F": 0, # First trade ID
"L": 18150, # Last trade Id
"n": 18151 # Total number of trades
}
start_ticker_socket(callback)
Start a websocket for all ticker data
By default all markets are included in an array.
https://github.com/binance-exchange/binance-official-api-docs/blob/master/web-socket-streams.md#
all-market-tickers-stream
Parameters callback (function) – callback function to handle messages
Returns connection key string if successful, False otherwise
Message Format
[
{
'F': 278610,
'o': '0.07393000',
's': 'BCCBTC',
'C': 1509622420916,
'b': '0.07800800',
'l': '0.07160300',
'h': '0.08199900',
'L': 287722,
'P': '6.694',
'Q': '0.10000000',
'q': '1202.67106335',
'p': '0.00494900',
'O': 1509536020916,
'a': '0.07887800',
'n': 9113,
'B': '1.00000000',
'c': '0.07887900',
(continues on next page)
88 Chapter 5. Other Exchanges
python-binance Documentation, Release 0.2.0
(continued from previous page)
'x': '0.07399600',
'w': '0.07639068',
'A': '2.41900000',
'v': '15743.68900000'
}
]
start_trade_socket(symbol, callback)
Start a websocket for symbol trade data
https://github.com/binance-exchange/binance-official-api-docs/blob/master/web-socket-streams.md#
trade-streams
Parameters
• symbol (str) – required
• callback (function) – callback function to handle messages
Returns connection key string if successful, False otherwise
Message Format
{
"e": "trade", # Event type
"E": 123456789, # Event time
"s": "BNBBTC", # Symbol
"t": 12345, # Trade ID
"p": "0.001", # Price
"q": "100", # Quantity
"b": 88, # Buyer order Id
"a": 50, # Seller order Id
"T": 123456785, # Trade time
"m": true, # Is the buyer the market maker?
"M": true # Ignore.
}
start_user_socket(callback)
Start a websocket for user data
https://github.com/binance-exchange/binance-official-api-docs/blob/master/user-data-stream.md
Parameters callback (function) – callback function to handle messages
Returns connection key string if successful, False otherwise
Message Format - see Binance API docs for all types
stop_socket(conn_key)
Stop a websocket given the connection key
Parameters conn_key (string) – Socket connection key
Returns connection key string if successful, False otherwise
5.2 Index
• genindex
5.2. Index 89
python-binance Documentation, Release 0.2.0
90 Chapter 5. Other Exchanges
Python Module Index
b
binance.client, 38
binance.depthcache, 80
binance.exceptions, 82
binance.helpers, 83
binance.websockets, 83
91
python-binance Documentation, Release 0.2.0
92 Python Module Index
Index
Symbols
__init__() (binance.client.Client method), 40
__init__() (binance.depthcache.DepthCache
method), 80
__init__() (binance.depthcache.DepthCacheManager
method), 81
__init__() (binance.exceptions.BinanceAPIException
method), 82
__init__() (binance.exceptions.BinanceOrderException
method), 82
__init__() (binance.exceptions.BinanceOrderInactiveSymbolException
method), 82
__init__() (binance.exceptions.BinanceOrderMinAmountException
method), 82
__init__() (binance.exceptions.BinanceOrderMinPriceException
method), 82
__init__() (binance.exceptions.BinanceOrderMinTotalException
method), 82
__init__() (binance.exceptions.BinanceOrderUnknownSymbolException
method), 82
__init__() (binance.exceptions.BinanceRequestException
method), 82
__init__() (binance.exceptions.BinanceWithdrawException
method), 83
__init__() (binance.websockets.BinanceClientProtocol
method), 83
__init__() (binance.websockets.BinanceSocketManager
method), 84
A
add_ask() (binance.depthcache.DepthCache method),
80
add_bid() (binance.depthcache.DepthCache method),
80
AGG_BEST_MATCH (binance.client.Client attribute), 38
AGG_BUYER_MAKES (binance.client.Client attribute),
38
AGG_FIRST_TRADE_ID (binance.client.Client attribute), 38
AGG_ID (binance.client.Client attribute), 38
AGG_LAST_TRADE_ID (binance.client.Client attribute), 38
AGG_PRICE (binance.client.Client attribute), 38
AGG_QUANTITY (binance.client.Client attribute), 38
AGG_TIME (binance.client.Client attribute), 38
aggregate_trade_iter() (binance.client.Client
method), 40
API_URL (binance.client.Client attribute), 38
B
binance.client (module), 38
binance.depthcache (module), 80
binance.exceptions (module), 82
binance.helpers (module), 83
binance.websockets (module), 83
BinanceAPIException, 82
BinanceClientFactory (class in binance.websockets), 83
BinanceClientProtocol (class in binance.websockets), 83
BinanceOrderException, 82
BinanceOrderInactiveSymbolException, 82
BinanceOrderMinAmountException, 82
BinanceOrderMinPriceException, 82
BinanceOrderMinTotalException, 82
BinanceOrderUnknownSymbolException, 82
BinanceReconnectingClientFactory (class in
binance.websockets), 84
BinanceRequestException, 82
BinanceSocketManager (class in binance.websockets), 84
BinanceWithdrawException, 83
C
cancel_margin_order() (binance.client.Client
method), 40
cancel_order() (binance.client.Client method), 41
Client (class in binance.client), 38
93
python-binance Documentation, Release 0.2.0
clientConnectionFailed() (binance.websockets.BinanceClientFactory
method), 83
clientConnectionLost() (binance.websockets.BinanceClientFactory
method), 83
close() (binance.depthcache.DepthCacheManager
method), 82
close() (binance.websockets.BinanceSocketManager
method), 84
create_margin_loan() (binance.client.Client
method), 41
create_margin_order() (binance.client.Client
method), 42
create_order() (binance.client.Client method), 44
create_sub_account_transfer() (binance.client.Client method), 46
create_test_order() (binance.client.Client
method), 46
D
date_to_milliseconds() (in module binance.helpers), 83
DEFAULT_USER_TIMEOUT (binance.websockets.BinanceSocketManager
attribute), 84
DepthCache (class in binance.depthcache), 80
DepthCacheManager (class in binance.depthcache),
81
G
get_account() (binance.client.Client method), 47
get_account_status() (binance.client.Client
method), 47
get_aggregate_trades() (binance.client.Client
method), 48
get_all_margin_orders() (binance.client.Client
method), 48
get_all_orders() (binance.client.Client method),
49
get_all_tickers() (binance.client.Client method),
50
get_asks() (binance.depthcache.DepthCache
method), 80
get_asset_balance() (binance.client.Client
method), 50
get_asset_details() (binance.client.Client
method), 50
get_asset_dividend_history() (binance.client.Client method), 51
get_bids() (binance.depthcache.DepthCache
method), 81
get_deposit_address() (binance.client.Client
method), 52
get_deposit_history() (binance.client.Client
method), 52
get_depth_cache() (binance.depthcache.DepthCacheManager
method), 82
get_dust_log() (binance.client.Client method), 52
get_exchange_info() (binance.client.Client
method), 54
get_historical_klines() (binance.client.Client
method), 55
get_historical_klines_generator() (binance.client.Client method), 55
get_historical_trades() (binance.client.Client
method), 55
get_klines() (binance.client.Client method), 56
get_margin_account() (binance.client.Client
method), 57
get_margin_asset() (binance.client.Client
method), 58
get_margin_loan_details() (binance.client.Client method), 58
get_margin_order() (binance.client.Client
method), 59
get_margin_price_index() (binance.client.Client method), 59
get_margin_repay_details() (binance.client.Client method), 60
get_margin_symbol() (binance.client.Client
method), 60
get_margin_trades() (binance.client.Client
method), 61
get_max_margin_loan() (binance.client.Client
method), 61
get_max_margin_transfer() (binance.client.Client method), 62
get_my_trades() (binance.client.Client method), 62
get_open_margin_orders() (binance.client.Client method), 63
get_open_orders() (binance.client.Client method),
63
get_order() (binance.client.Client method), 64
get_order_book() (binance.client.Client method),
64
get_orderbook_ticker() (binance.client.Client
method), 65
get_orderbook_tickers() (binance.client.Client
method), 66
get_products() (binance.client.Client method), 66
get_recent_trades() (binance.client.Client
method), 66
get_server_time() (binance.client.Client method),
67
get_sub_account_assets() (binance.client.Client method), 67
94 Index
python-binance Documentation, Release 0.2.0
get_sub_account_list() (binance.client.Client
method), 68
get_sub_account_transfer_history()
(binance.client.Client method), 69
get_symbol_info() (binance.client.Client method),
69
get_symbol_ticker() (binance.client.Client
method), 70
get_system_status() (binance.client.Client
method), 70
get_ticker() (binance.client.Client method), 71
get_trade_fee() (binance.client.Client method), 72
get_withdraw_history() (binance.client.Client
method), 72
I
initialDelay (binance.websockets.BinanceReconnectingClientFactory
attribute), 84
interval_to_milliseconds() (in module binance.helpers), 83
K
KLINE_INTERVAL_12HOUR (binance.client.Client attribute), 39
KLINE_INTERVAL_15MINUTE (binance.client.Client
attribute), 39
KLINE_INTERVAL_1DAY (binance.client.Client
attribute), 39
KLINE_INTERVAL_1HOUR (binance.client.Client attribute), 39
KLINE_INTERVAL_1MINUTE (binance.client.Client
attribute), 39
KLINE_INTERVAL_1MONTH (binance.client.Client attribute), 39
KLINE_INTERVAL_1WEEK (binance.client.Client attribute), 39
KLINE_INTERVAL_2HOUR (binance.client.Client attribute), 39
KLINE_INTERVAL_30MINUTE (binance.client.Client
attribute), 39
KLINE_INTERVAL_3DAY (binance.client.Client
attribute), 39
KLINE_INTERVAL_3MINUTE (binance.client.Client
attribute), 39
KLINE_INTERVAL_4HOUR (binance.client.Client attribute), 39
KLINE_INTERVAL_5MINUTE (binance.client.Client
attribute), 39
KLINE_INTERVAL_6HOUR (binance.client.Client attribute), 39
KLINE_INTERVAL_8HOUR (binance.client.Client attribute), 39
M
MARGIN_API_URL (binance.client.Client attribute), 39
MARGIN_API_VERSION (binance.client.Client attribute), 39
margin_stream_close() (binance.client.Client
method), 73
margin_stream_get_listen_key() (binance.client.Client method), 73
margin_stream_keepalive() (binance.client.Client method), 73
maxDelay (binance.websockets.BinanceReconnectingClientFactory
attribute), 84
maxRetries (binance.websockets.BinanceReconnectingClientFactory
attribute), 84
O
onConnect() (binance.websockets.BinanceClientProtocol
method), 83
onMessage() (binance.websockets.BinanceClientProtocol
method), 84
order_limit() (binance.client.Client method), 74
order_limit_buy() (binance.client.Client method),
74
order_limit_sell() (binance.client.Client
method), 75
order_market() (binance.client.Client method), 75
order_market_buy() (binance.client.Client
method), 76
order_market_sell() (binance.client.Client
method), 76
ORDER_RESP_TYPE_ACK (binance.client.Client
attribute), 39
ORDER_RESP_TYPE_FULL (binance.client.Client attribute), 39
ORDER_RESP_TYPE_RESULT (binance.client.Client
attribute), 39
ORDER_STATUS_CANCELED (binance.client.Client attribute), 39
ORDER_STATUS_EXPIRED (binance.client.Client attribute), 39
ORDER_STATUS_FILLED (binance.client.Client
attribute), 39
ORDER_STATUS_NEW (binance.client.Client attribute),
39
ORDER_STATUS_PARTIALLY_FILLED (binance.client.Client attribute), 39
ORDER_STATUS_PENDING_CANCEL (binance.client.Client attribute), 39
ORDER_STATUS_REJECTED (binance.client.Client attribute), 39
ORDER_TYPE_LIMIT (binance.client.Client attribute),
39
ORDER_TYPE_LIMIT_MAKER (binance.client.Client
attribute), 39
Index 95
python-binance Documentation, Release 0.2.0
ORDER_TYPE_MARKET (binance.client.Client attribute), 39
ORDER_TYPE_STOP_LOSS (binance.client.Client attribute), 39
ORDER_TYPE_STOP_LOSS_LIMIT (binance.client.Client attribute), 39
ORDER_TYPE_TAKE_PROFIT (binance.client.Client
attribute), 39
ORDER_TYPE_TAKE_PROFIT_LIMIT (binance.client.Client attribute), 39
P
ping() (binance.client.Client method), 77
PRIVATE_API_VERSION (binance.client.Client
attribute), 39
protocol (binance.websockets.BinanceClientFactory
attribute), 83
PUBLIC_API_VERSION (binance.client.Client attribute), 39
R
repay_margin_loan() (binance.client.Client
method), 77
run() (binance.websockets.BinanceSocketManager
method), 84
S
SIDE_BUY (binance.client.Client attribute), 40
SIDE_SELL (binance.client.Client attribute), 40
sort_depth() (binance.depthcache.DepthCache
static method), 81
start_aggtrade_socket() (binance.websockets.BinanceSocketManager
method), 84
start_depth_socket() (binance.websockets.BinanceSocketManager
method), 85
start_kline_socket() (binance.websockets.BinanceSocketManager
method), 86
start_miniticker_socket() (binance.websockets.BinanceSocketManager
method), 86
start_multiplex_socket() (binance.websockets.BinanceSocketManager
method), 87
start_symbol_ticker_socket() (binance.websockets.BinanceSocketManager
method), 87
start_ticker_socket() (binance.websockets.BinanceSocketManager
method), 88
start_trade_socket() (binance.websockets.BinanceSocketManager
method), 89
start_user_socket() (binance.websockets.BinanceSocketManager
method), 89
stop_socket() (binance.websockets.BinanceSocketManager
method), 89
stream_close() (binance.client.Client method), 77
stream_get_listen_key() (binance.client.Client
method), 77
stream_keepalive() (binance.client.Client
method), 78
STREAM_URL (binance.websockets.BinanceSocketManager
attribute), 84
SYMBOL_TYPE_SPOT (binance.client.Client attribute),
40
T
TIME_IN_FORCE_FOK (binance.client.Client attribute), 40
TIME_IN_FORCE_GTC (binance.client.Client attribute), 40
TIME_IN_FORCE_IOC (binance.client.Client attribute), 40
transfer_dust() (binance.client.Client method), 78
transfer_margin_to_spot() (binance.client.Client method), 79
transfer_spot_to_margin() (binance.client.Client method), 79
W
WEBSITE_URL (binance.client.Client attribute), 40
WEBSOCKET_DEPTH_10 (binance.websockets.BinanceSocketManager
attribute), 84
WEBSOCKET_DEPTH_20 (binance.websockets.BinanceSocketManager
attribute), 84
WEBSOCKET_DEPTH_5 (binance.websockets.BinanceSocketManager
attribute), 84
withdraw() (binance.client.Client method), 79
WITHDRAW_API_URL (binance.client.Client attribute),
40
WITHDRAW_API_VERSION (binance.client.Client attribute), 40
96 Index
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment