bybit 1.3.0
bybit: ^1.3.0 copied to clipboard

Dart native js
Flutter Android iOS web

(Unofficial) Dart library to communicate with the bybit API over REST or WebSockets

pub package BSD License PRs Welcome Watch on GitHub Star on GitHub

ByBit #

ByBit is a Dart library for an easy communication with the bybit exchange platform API. This package allows to make simple REST API calls or to subscribe to several WebSockets channels topics.

How to use it #

Create a ByBit instance #

Note that all the parameters are optional, but you need a valid key and password to access private topics from bybit. You can create your own api-key on the bybit website.

var bybit = ByBit(
        key: 'yOuRsUpErKey',
        password: 'yOuRsUpErPaSsWoRd',
        logLevel: 'INFO',
        restUrl: '',
        restTimeout: 3000,
        websocketUrl: 'wss://',
        websocketTimeout: 2000);

Add periodic REST API call if you want to #

Sometimes, you want to get information from the API every x period of time. That's why this library allows one to set which REST API call has to be done periodically, and all the responses from the server are merged into one single stream. Please note the limit of API calls.

bybit.getServerTimePeriodic(period: Duration(seconds: 5));
bybit.getAnnouncementPeriodic(period: Duration(seconds: 5));
    symbol: 'ETHUSD',
    interval: '15min',
    period: Duration(seconds: 2),
    limit: 3);

Connect to the server #

WARNING: For the moment, the periodic REST API call functions (all functions that end with 'Periodic') must be called BEFORE the connect() function and the WebSockets subscription functions must be called AFTER connect(). This will be changed in the next release.


Subscribe to WebSocket topics #

// ...
bybit.subscribeToKlines(symbol: 'ETHUSD', interval: '1');
bybit.subscribeToKlines(symbol: 'BTCUSD', interval: 'D');
bybit.subscribeToOrderBook(depth: 25);

Read the ByBit stream and handle the server response #

Note that the streams all the data from the WebSockets and periodic REST API calls.

    builder: (context, bybitResponse) {
          print('From WebSocket: ' +;

You can also make single REST API calls #

// ...
    future: bybit.getKLine(symbol: 'BTCUSD', from: 1581231260, interval: 'D'),
    builder: (context, bybitResponse) {
        // Handle the bybit response here
        if (bybitResponse.hasData && != null) {
          print('From REST: ' +;

Example #

See the file main.dart in the example/lib/ directory for a simple Dart example. Also, the files main_flutter_stream.dart and main_flutter_future.dart show examples using FutureBuilder and StreamBuilder.

List of functions #

See the documentation for the latest avaiable functions.

pub points

(Unofficial) Dart library to communicate with the bybit API over REST or WebSockets

Repository (GitHub)
View/report issues


API reference





async, crypto, http, logger, meta, sortedmap, web_socket_channel


Packages that depend on bybit