Giter VIP home page Giter VIP logo

bybit's Introduction

Go Report Card golangci-lint test

bybit

bybit is an bybit client for the Go programming language.

Usage

REST API

import "github.com/padchin/bybit/v2"

client := bybit.NewClient().WithAuth("your api key", "your api secret")
res, err := client.Future().InversePerpetual().Balance(bybit.CoinBTC)
// do as you want

WebSocket API

for single use

import "github.com/padchin/bybit/v2"

wsClient := bybit.NewWebsocketClient()
svc, err := wsClient.Spot().V1().PublicV1()
if err != nil {
	return err
}
_, err = svc.SubscribeTrade(bybit.SymbolSpotBTCUSDT, func(response bybit.SpotWebsocketV1PublicV1TradeResponse) error {
	// do as you want
})
if err != nil {
	return err
}
svc.Start(context.Background())

for multiple use

import "github.com/padchin/bybit/v2"

wsClient := bybit.NewWebsocketClient()

executors := []bybit.WebsocketExecutor{}

svcRoot := wsClient.Spot().V1()
{
	svc, err := svcRoot.PublicV1()
	if err != nil {
		return err
	}
	_, err = svc.SubscribeTrade(bybit.SymbolSpotBTCUSDT, func(response bybit.SpotWebsocketV1PublicV1TradeResponse) error {
		// do as you want
	})
	if err != nil {
		return err
	}
	executors = append(executors, svc)
}
{
	svc, err := svcRoot.PublicV2()
	if err != nil {
		return err
	}
	_, err = svc.SubscribeTrade(bybit.SymbolSpotBTCUSDT, func(response bybit.SpotWebsocketV1PublicV2TradeResponse) error {
		// do as you want
	})
	if err != nil {
		return err
	}
	executors = append(executors, svc)
}

wsClient.Start(context.Background(), executors)

V5 usage

import "github.com/padchin/bybit/v2"

wsClient := bybit.NewWebsocketClient().WithBaseURL("wss://stream-testnet.bybit.com").WithAuth("key", "secret")
svc, err := wsClient.V5().Private()
if err != nil {
	// handle dialing error
}

err = svc.Subscribe()
if err != nil {
	// handle subscription error
}

err = svc.SubscribePosition(func(position bybit.V5WebsocketPrivatePositionResponse) error {
	// handle new position information
})
if err != nil {
	// handle registration error
}

errHandler := func(isWebsocketClosed bool, err error) {
	// Connection issue (timeout, etc.).

	// At this point, the connection is dead and you must handle the reconnection yourself
}

err = svc.Start(context.Background(), errHandler)
if err != nil {
	// handle reconnection (ping issue, etc.). Probably can be ignored as the errHandler would be notified too
}

Implemented

The following API endpoints have been implemented

REST API V5

Market

Position

Order

Account

Asset

User

REST API

Market Data Endpoints
  • /derivatives/v3/public/order-book/L2 Get Order Book
  • /derivatives/v3/public/kline Get Kline
  • /derivatives/v3/public/tickers Get Latest Information For Symbol
  • /derivatives/v3/public/instruments-info Get Instrument Info
  • /derivatives/v3/public/mark-price-kline Get Mark Price Kline
  • /derivatives/v3/public/index-price-kline Get Index Price Kline
Market Data Endpoints
  • /derivatives/v3/public/order-book/L2 Get Order Book
  • /derivatives/v3/public/kline Get Kline
  • /derivatives/v3/public/tickers Get Latest Information For Symbol
  • /derivatives/v3/public/instruments-info Get Instrument Info
  • /derivatives/v3/public/mark-price-kline Get Mark Price Kline
  • /derivatives/v3/public/index-price-kline Get Index Price Kline
Market Data Endpoints
  • /v2/public/orderBook/L2 Order Book
  • /v2/public/kline/list Query Kline
  • /v2/public/tickers Latest Information for Symbol
  • /v2/public/trading-records Public Trading Records
  • /v2/public/symbols Query Symbol
  • /v2/public/mark-price-kline Query Mark Price Kline
  • /v2/public/index-price-kline Query Index Price Kline
  • /v2/public/premium-index-kline Query Premium Index Kline
  • /v2/public/open-interest Open Interest
  • /v2/public/big-deal Latest Big Deal
  • /v2/public/account-ratio Long-Short Ratio
Account Data Endpoints
  • /v2/private/order/create Place Active Order
  • /v2/private/order/list Get Active Order
  • /v2/private/order/cancel Cancel Active Order
  • /v2/private/order/cancelAll Cancel All Active Orders
  • /v2/private/order Query Active Order (real-time)
  • /v2/private/stop-order/create Place Conditional Order
  • /v2/private/stop-order/list Get Conditional Order
  • /v2/private/stop-order/cancel Cancel Conditional Order
  • /v2/private/stop-order/cancelAll Cancel All Conditional Orders
  • /v2/private/stop-order Query Conditional Order (real-time)
  • /v2/private/position/list My Position
  • /v2/private/position/trading-stop Set Trading-Stop
  • /v2/private/position/leverage/save Set Leverage
  • /v2/private/account/api-key API Key info
Wallet Data Endpoints
  • /v2/private/wallet/balance Get Wallet Balance
Market Data Endpoints
  • /v2/public/orderBook/L2 Order Book
  • /public/linear/kline Query Kline
  • /v2/public/tickers Latest Information for Symbol
  • /v2/public/symbols Query Symbol
  • /v2/public/open-interest Open Interest
  • /v2/public/big-deal Latest Big Deal
  • /v2/public/account-ratio Long-Short Ratio
Account Data Endpoints
  • /private/linear/order/create Place Active Order
  • /private/linear/order/list Get Active Order
  • /private/linear/order/cancel Cancel Active Order
  • /private/linear/order/cancel-all Cancel All Active Orders
  • /private/linear/order/replace Replace Active Order
  • /private/linear/order/search Query Active Order (real-time)
  • /private/linear/stop-order/create Place Conditional Order
  • /private/linear/stop-order/list Get Conditional Order
  • /private/linear/stop-order/cancel Cancel Conditional Order
  • /private/linear/stop-order/cancel-all Cancel All Conditional Orders
  • /private/linear/stop-order/search Query Conditional Order (real-time)
  • /private/linear/position/list My Position
  • /private/linear/position/set-leverage Set Leverage
  • /private/linear/position/trading-stop Set Trading-Stop
  • /private/linear/trade/execution/list User Trade Records
  • /v2/private/account/api-key API Key info
Wallet Data Endpoints
  • /v2/private/wallet/balance Get Wallet Balance
Market Data Endpoints
  • /v2/public/orderBook/L2 Order Book
  • /v2/public/kline/list Query Kline
  • /v2/public/tickers Latest Information for Symbol
  • /v2/public/trading-records Public Trading Records
  • /v2/public/symbols Query Symbol
  • /v2/public/mark-price-kline Query Index Price Kline
  • /v2/public/index-price-kline Query Index Price Kline
  • /v2/public/open-interest Open Interest
  • /v2/public/big-deal Latest Big Deal
  • /v2/public/account-ratio Long-Short Ratio
Account Data Endpoints
  • /futures/private/order/create Place Active Order
  • /futures/private/order/list Get Active Order
  • /futures/private/order/cancel Cancel Active Order
  • /futures/private/order/cancelAll Cancel All Active Orders
  • /futures/private/order Query Active Order (real-time)
  • /futures/private/stop-order/create Place Conditional Order
  • /futures/private/stop-order/list Get Conditional Order
  • /futures/private/stop-order/cancel Cancel Conditional Order
  • /futures/private/stop-order/cancelAll Cancel All Conditional Orders
  • /futures/private/stop-order Query Conditional Order (real-time)
  • /futures/private/position/list My Position
  • /futures/private/position/trading-stop Set Trading-Stop
  • /futures/private/position/leverage/save Set Leverage
  • /v2/private/account/api-key API Key info
Wallet Data Endpoints
  • /v2/private/wallet/balance Get Wallet Balance
Market Data Endpoints
  • /spot/v1/symbols Query Symbol
  • /spot/quote/v1/depth Order Book
  • /spot/quote/v1/depth/merged Merged Order Book
  • /spot/quote/v1/trades Public Trading Records
  • /spot/quote/v1/kline Query Kline
  • /spot/quote/v1/ticker/24hr Latest Information for Symbol
  • /spot/quote/v1/ticker/price Last Traded Price
  • /spot/quote/v1/ticker/book_ticker Best Bid/Ask Price
Account Data Endpoints
  • /spot/v1/order
    • Place Active Order
    • Get Active Order
    • Cancel Active Order
    • Fast Cancel Active Order
  • /spot/v1/order/fast Fast Cancel Active Order
  • /spot/order/batch-cancel Batch Cancel Active Order
  • /spot/order/batch-fast-cancel Batch Fast Cancel Active Order
  • /spot/order/batch-cancel-by-ids Batch Cancel Active Order By IDs
  • /spot/v1/open-orders Open Orders
Wallet Data Endpoints
  • /spot/v1/account Get Wallet Balance

WebSocket API

Public Topics V5

Private Topics V5

Public Topics
  • trade
Public Topics V2
  • trade
Private Topics
  • outboundAccountInfo

Integration Tests

There are tests so that we can get to know the changes of bybit api response.

See below

Contributing

I would like to cover Bybit API and contributions are always welcome. The calling pattern is established, so adding new methods is relatively straightforward. See some PRs like https://github.com/padchin/bybit/pull/44.

To submit issues, PRs, and every other help is welcome.

bybit's People

Contributors

hirokisan avatar 0cv avatar rtunazzz avatar sagleft avatar davidphay avatar oleksandrdemidov avatar lyro41 avatar josephyim224 avatar padchin avatar mmavka avatar kbnchk avatar cksidharthan avatar pespantelis avatar thasianx avatar jiamingke avatar e-n-0 avatar quantoor avatar back1ng avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.