Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/binance/binance-connector-typescript

Simple Typescript connector to Binance API
https://github.com/binance/binance-connector-typescript

binance-api connector crypto library market-data real-time spot trading

Last synced: 3 days ago
JSON representation

Simple Typescript connector to Binance API

Awesome Lists containing this project

README

        

# Binance connector in Typescript

[![npm version](https://badge.fury.io/js/@binance%2Fconnector-typescript.svg)](https://badge.fury.io/js/@binance%2Fconnector-typescript)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

This library is an easy, simple and clean connector to the [Binance public API](https://github.com/binance/binance-spot-api-docs). It is divided into three distinct endpoints:
- [RESTful API](./src/spot.ts)
- [Websocket API](./src/websocketAPI.ts)
- [Websocket Stream](./src/websocketStream.ts)

- Supported APIs:
- `/api/*`
- `/sapi/*`
- Inclusion of test cases and examples
- Request and response types

## Installation

```bash
npm install @binance/connector-typescript
```

## Documentation

### RESTful APIs

All REST API endpoints are linked to a unique module called [`Spot`](./src/spot.ts#L4).
To start working with the REST API, you will need to import and create the client. Keep in mind that some of the endpoints require authentication with your API credentials keys:
```typescript
import { Spot } from '@binance/connector-typescript';

const API_KEY = '';
const API_SECRET = '';
const BASE_URL = 'https://api.binance.com';

const client = new Spot(API_KEY, API_SECRET, { baseURL: BASE_URL });
client.exchangeInformation().then((res) => {
console.log(res);
}).catch(err => { console.log(err) });
```
Please look at [`examples/restful`](./examples/restful/) folder to check for more endpoints.

#### Testnet

While `/sapi/*` endpoints don't have testnet environment yet, `/api/*` endpoints can be tested in
[Spot Testnet](https://testnet.binance.vision/). You can use it by changing the base URL:

```typescript
// provide the testnet base url
const client = new Spot(apiKey, apiSecret, { baseURL: 'https://testnet.binance.vision'})
```
If base_url is not provided, it defaults to api.binance.com.

### Websockets

#### Websocket API Client

All websocket are available with the [`WebsocketAPI`](./src/websocketAPI.ts#L6) module.
To work with the websocket API, you will need to import the client and generate a callBack function to handle the messages:
```typescript
import { WebsocketAPI } from '@binance/connector-typescript';

const API_KEY = '';
const API_SECRET = '';

const callbacks = {
open: (client: WebsocketAPI) => client.exchangeInfo(),
close: () => console.debug('Disconnected from WebSocket server'),
message: (data: string) => console.info(JSON.parse(data))
}
const websocketAPIClient = new WebsocketAPI(API_KEY, API_SECRET, { callbacks });
setTimeout(() => websocketAPIClient.disconnect(), 20000);
```
Please look at [`examples/websocketAPI`](./examples/websocketAPI/) folder to check for more endpoints.

#### Websocket Stream Client

All websocket streams are available with the [`WebsocketStream`](./src/websocketStream.ts#L4) module.
To work with the websocket API, you will need to import the client and generate a callBack function to handle the messages:
```typescript
import { WebsocketStream } from '@binance/connector-typescript';

const callbacks = {
open: () => console.debug('Connected to WebSocket server'),
close: () => console.debug('Disconnected from WebSocket server'),
message: (data: string) => console.info(data)
}

const websocketStreamClient = new WebsocketStream({ callbacks });
websocketStreamClient.aggTrade('bnbusdt');
setTimeout(() => websocketStreamClient.disconnect(), 6000);
```
Please look at [`examples/websocketStream`](./examples/websocketStream/) folder to check for more endpoints.

## Test

```bash
npm install

npm run test
```

## Limitation

Futures and European Options APIs are not supported:

- `/fapi/*`
- `/dapi/*`
- `/eapi/*`
- Associated Websocket Market and User Data Streams

## License
MIT