Fetch binance public data easily.
Supports Python 3.8+.
$ pip install binance-history
>>> import binance_history as bh
>>> klines = bh.fetch_klines(
... symbol="BTCUSDT",
... timeframe="1m",
... start="2022-12-14",
... end="2022-12-24",
... )
open high low close volume quote_volume trades close_datetime
open_datetime
2022-12-14 00:00:00+08:00 17753.54 17768.41 17752.78 17766.99 240.82918 4.277685e+06 5241 2022-12-14 00:00:59.999000+08:00
2022-12-14 00:01:00+08:00 17766.99 17786.40 17764.37 17781.81 311.47670 5.536668e+06 6278 2022-12-14 00:01:59.999000+08:00
2022-12-14 00:02:00+08:00 17781.81 17790.54 17771.44 17785.37 372.12992 6.616562e+06 6911 2022-12-14 00:02:59.999000+08:00
2022-12-14 00:03:00+08:00 17786.23 17800.18 17774.63 17777.35 401.52223 7.142210e+06 6926 2022-12-14 00:03:59.999000+08:00
2022-12-14 00:04:00+08:00 17777.35 17785.98 17769.15 17781.93 218.03837 3.876373e+06 5519 2022-12-14 00:04:59.999000+08:00
... ... ... ... ... ... ... ... ...
2022-12-23 23:56:00+08:00 16850.22 16850.22 16839.55 16842.59 146.38906 2.465894e+06 4229 2022-12-23 23:56:59.999000+08:00
2022-12-23 23:57:00+08:00 16842.59 16846.22 16839.00 16840.99 86.95440 1.464495e+06 3152 2022-12-23 23:57:59.999000+08:00
2022-12-23 23:58:00+08:00 16840.99 16843.61 16827.28 16830.27 208.41471 3.508642e+06 4918 2022-12-23 23:58:59.999000+08:00
2022-12-23 23:59:00+08:00 16830.27 16836.66 16824.41 16832.16 154.10833 2.593717e+06 4502 2022-12-23 23:59:59.999000+08:00
2022-12-24 00:00:00+08:00 16832.15 16833.62 16828.42 16830.52 119.28572 2.007721e+06 3725 2022-12-24 00:00:59.999000+08:00
[14401 rows x 8 columns]
>>> bh.fetch_agg_trades(
... symbol="ETCBTC",
... start="2022-11 01:05",
... end="2022-11-25 3:20",
... tz="Europe/Paris"
... )
price quantity is_buyer_maker
datetime
2022-11-01 01:05:09.435000+01:00 0.001187 1.60 True
2022-11-01 01:05:17.639000+01:00 0.001186 29.56 True
2022-11-01 01:05:18.616000+01:00 0.001186 8.43 True
2022-11-01 01:05:18.621000+01:00 0.001186 37.31 True
2022-11-01 01:05:18.748000+01:00 0.001186 0.17 True
... ... ... ...
2022-11-25 03:19:18.317000+01:00 0.001199 5.00 False
2022-11-25 03:19:19.482000+01:00 0.001199 10.69 False
2022-11-25 03:19:23.270000+01:00 0.001199 7.55 True
2022-11-25 03:19:26.082000+01:00 0.001199 2.56 True
2022-11-25 03:19:40.375000+01:00 0.001199 2.20 False
binance-history comes with a command line interface, you need to install some extra dependencies to use it:
$ pip install 'binance-history[cli]'
$ bh --help
Usage: bh [OPTIONS]
Options:
--symbol TEXT The binance market pair name, e.g. BTCUSDT
[required]
--start TEXT The start datetime, e.g. '2022-1-2 1:10'
[required]
--end TEXT The end datetime, e.g. '2022-1-25 2:20
[required]
--data-type [klines|aggTrades] choose klines or aggTrades to download,
default to 'klines'
--asset-type [spot|futures/um|futures/cm]
choose spot or futures data, default to
'spot'
--timeframe [1s|1m|3m|5m|15m|30m|1h|2h|4h|6h|8h|12h|1d|3d|1w|1M]
The timeframe of klines, default to '15m',
can be omitted if --data-type is not
'klines'
--tz TEXT The tz database name of time zone, use your
local time zone if omitted'
--output-path TEXT The path you want to save the downloaded
data, support format: [csv, json, xlsx],
e.g. a.xlsx [required]
--help Show this message and exit.
$ bh --start 2022-1-5 --end 2022-1-7 --symbol ETCBTC --output-path a.xlsx