binance / binance-connector-typescript

Simple Typescript connector to Binance API
MIT License
64 stars 29 forks source link
binance-api connector crypto library market-data real-time spot trading

Binance connector in Typescript

npm version License: MIT

This library is an easy, simple and clean connector to the Binance public API. It is divided into three distinct endpoints:

Installation

npm install @binance/connector-typescript

Documentation

RESTful APIs

All REST API endpoints are linked to a unique module called Spot. 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:

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 folder to check for more endpoints.

Testnet

While /sapi/* endpoints don't have testnet environment yet, /api/* endpoints can be tested in Spot Testnet. You can use it by changing the base URL:

// 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 module. To work with the websocket API, you will need to import the client and generate a callBack function to handle the messages:

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 folder to check for more endpoints.

Websocket Stream Client

All websocket streams are available with the WebsocketStream module. To work with the websocket API, you will need to import the client and generate a callBack function to handle the messages:

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 folder to check for more endpoints.

Test

npm install

npm run test

Limitation

Futures and European Options APIs are not supported:

License

MIT