https://github.com/maxgfr/binance-historical
Get historical klines from binance api
https://github.com/maxgfr/binance-historical
binance binance-api binance-historical binance-historical-candle-data binance-history cryptocurrency data historical-data history javascript kline node nodejs trading typescript
Last synced: 2 months ago
JSON representation
Get historical klines from binance api
- Host: GitHub
- URL: https://github.com/maxgfr/binance-historical
- Owner: maxgfr
- License: mit
- Created: 2022-03-06T16:56:14.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2026-03-06T08:59:44.000Z (3 months ago)
- Last Synced: 2026-03-06T12:48:14.495Z (3 months ago)
- Topics: binance, binance-api, binance-historical, binance-historical-candle-data, binance-history, cryptocurrency, data, historical-data, history, javascript, kline, node, nodejs, trading, typescript
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/binance-historical
- Size: 4.86 MB
- Stars: 44
- Watchers: 0
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# binance-historical
Utility to retrieve historical data from Binance

## Installation
### Via Homebrew (macOS/Linux)
```sh
brew install maxgfr/tap/binance-historical
```
### Via npm
```sh
npm install -g binance-historical
```
### Download binary
Download the latest binary for your platform from the [releases page](https://github.com/maxgfr/binance-historical/releases).
## Usage
### CLI
#### Interactive mode
```sh
binance-historical download
```
#### Non-interactive mode
Pass all options as arguments:
```sh
binance-historical download \
--pair BTCUSDT \
--interval 4h \
--start 2024-01-01 \
--end 2024-12-31 \
--output ./data/ \
--format json
```
Export as CSV:
```sh
binance-historical download \
--pair ETHUSDT \
--interval 1h \
--start 2024-01-01 \
--end 2024-01-31 \
--output ./data/ \
--format csv
```
#### CLI Options
| Option | Alias | Description |
| ------ | ----- | ----------- |
| `--pair ` | `-p` | Trading pair (e.g., BTCUSDT, ETHUSDT) |
| `--interval ` | `-i` | Kline interval (1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 6h, 8h, 12h, 1d, 3d, 1w) |
| `--start ` | `-s` | Start date (YYYY-MM-DD or ISO 8601) |
| `--end ` | `-e` | End date (YYYY-MM-DD or ISO 8601) |
| `--output ` | `-o` | Output directory path (filename is auto-generated) |
| `--format ` | `-f` | Output format (json or csv, default: json) |
| `--help` | `-h` | Display help |
| `--version` | `-V` | Display version |
#### Hybrid mode
You can also provide some options and be prompted for the rest:
```sh
binance-historical download --pair ETHUSDT --interval 1h # Then you will be prompted for start date, end date, and output path
```
### Library
```ts
import { getKline, Kline } from 'binance-historical';
const result: Array = await getKline(
'ETHUSDT',
'4h',
new Date('01-09-2020'),
new Date('01-12-2021'),
);
console.log(result);
// [
// ...,
// {
// openTime: 1579953600000,
// open: '159.30000000',
// high: '161.00000000',
// low: '158.70000000',
// close: '160.41000000',
// volume: '25015.67605000',
// closeTime: 1579967999999,
// quoteAssetVolume: '4001959.95527980',
// trades: 14330,
// takerBaseAssetVolume: '13000.12296000',
// takerQuoteAssetVolume: '2079824.44045350',
// ignored: '0'
// },
// ...
// ]
```