{"id":20716747,"url":"https://github.com/sngyai/go-bybit","last_synced_at":"2026-04-19T18:32:24.664Z","repository":{"id":83694895,"uuid":"606467696","full_name":"sngyai/go-bybit","owner":"sngyai","description":"A Go SDK for Bybit API","archived":false,"fork":false,"pushed_at":"2024-03-28T12:06:35.000Z","size":99,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-11T07:27:52.527Z","etag":null,"topics":["bybit","bybit-api","bybit-websocket"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sngyai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-25T15:30:17.000Z","updated_at":"2024-01-14T05:55:19.000Z","dependencies_parsed_at":"2024-06-21T11:49:00.081Z","dependency_job_id":"4e077756-4aae-4c5d-8f42-e44e064d8460","html_url":"https://github.com/sngyai/go-bybit","commit_stats":{"total_commits":16,"total_committers":1,"mean_commits":16.0,"dds":0.0,"last_synced_commit":"fee7cba1ad4bd9a881f4454a56d2cfa41c1bbf32"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/sngyai/go-bybit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sngyai%2Fgo-bybit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sngyai%2Fgo-bybit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sngyai%2Fgo-bybit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sngyai%2Fgo-bybit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sngyai","download_url":"https://codeload.github.com/sngyai/go-bybit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sngyai%2Fgo-bybit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32017897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bybit","bybit-api","bybit-websocket"],"created_at":"2024-11-17T03:06:41.424Z","updated_at":"2026-04-19T18:32:24.644Z","avatar_url":"https://github.com/sngyai.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Go Report Card](https://goreportcard.com/badge/github.com/sngyai/bybit)](https://goreportcard.com/report/github.com/sngyai/bybit)\n[![golangci-lint](https://github.com/sngyai/bybit/actions/workflows/golangci-lint.yml/badge.svg)](https://github.com/sngyai/bybit/actions/workflows/golangci-lint.yml)\n[![test](https://github.com/sngyai/bybit/actions/workflows/test.yml/badge.svg)](https://github.com/sngyai/bybit/actions/workflows/test.yml)\n\n# bybit\n\nbybit is an bybit client for the Go programming language.\n\n## Usage\n\n### REST API\n\n```golang\nimport (\n    \"github.com/sngyai/go-bybit\"\n    \"github.com/sngyai/go-bybit/rest\"\n)\n\nb := rest.NewClient().WithAuth(\"\", \"\").WithTestnet()\n\nsymbol := bybit.SymbolV5BTCUSDT\nres, err := b.V5().Market().GetInstrumentsInfo(rest.V5GetInstrumentsInfoParam{\n    Category: \"spot\",\n})\nif err != nil {\n\tlog.Println(err)\n}\nlog.Printf(\"InstrumentsInfo: %#v\\n\", res.Result.Spot.List)\n```\n\n### WebSocket API v5\ncreate new websocket\n```golang\nimport (\n    \"github.com/sngyai/go-bybit\"\n    \"github.com/sngyai/go-bybit/ws\"\n    \"github.com/sngyai/go-bybit/ws/wsv5\"\n)\n\nprx, _ := url.Parse(proxyURL) // some not-exist-proxy\n\nnetDialer, _ := proxy.SOCKS5(\"tcp\", prx.Host, nil, \u0026net.Dialer{})\ndialer := websocket.Dialer{NetDial: netDialer.Dial}\n\nclient := proxyClient(\"socks5://127.0.0.1:1086\")\nwsClient := ws.NewWebsocketClient().WithBaseURL(ws.TestWebsocketBaseURL).WithAuth(\"APIKey\", \"APISecret\").WithDialer(\u0026client)\n```\n\nfor single use\n```golang\nsvc, err := wsv5.NewWSClient(wsClient).Public(bybit.CategoryV5Spot)\nif err != nil {\n    fmt.Println(err)\n    return err\n}\n_, err = svc.SubscribeTickers(wsv5.PublicTickersParamKey{\n        Symbol: bybit.SymbolV5BTCUSDT,\n    },\n    func(response wsv5.PublicTickersResponse) error {\n        fmt.Printf(\"v5 recv tickers: %v\\n\", response)\n        return nil\n    })\nif err != nil {\n    fmt.Println(err)\n    return err\n}\n\nerrHandler := func(isWebsocketClosed bool, err error) {\n    fmt.Printf(\"handle ws failed, isWebsocketClosed: %b, err: %v\", isWebsocketClosed, err)\n}\nsvc.Start(context.Background(), errHandler)\n```\n\nfor multiple use\n```golang\nvar executors []ws.WebsocketExecutor\nsvcRoot := wsv5.NewWSClient(wsClient)\n{\n    svc, err := svcRoot.Public(bybit.CategoryV5Spot)\n    if err != nil {\n\t\treturn err\n    }\n    _, err = svc.SubscribeTickers(\n\t\twsv5.PublicTickersParamKey{\n\t\t\tSymbol: bybit.SymbolV5BTCUSDT,\n        }, \n\t\tfunc(response wsv5.PublicTickersResponse) error {\n\t\t\tfmt.Printf(\"v5 recv ticker: %v\\n\", response)\n\t\t\treturn nil\n        })\n\tif err != nil {\n\t\treturn err\n    }\n    executors = append(executors, svc)\n}\n{\n    svc, err := svcRoot.Public(bybit.CategoryV5Spot)\n    if err != nil {\n        return err\n    }\n    _, err = svc.SubscribeOrderBook(wsv5.PublicOrderBookParamKey{\n\t\tDepth:  50, \n\t\tSymbol: bybit.SymbolV5BTCUSDT,\n    }, \n\tfunc(response wsv5.PublicOrderBookResponse) error {\n\t\tfmt.Printf(\"v5 recv orderbook: %v\\n\", response)\n\t\treturn nil\n    })\n    if err != nil {\n        return err\n    }\n    executors = append(executors, svc)\n}\nwsClient.Start(context.Background(), executors)\n```\n\n## Implemented\n\nThe following API endpoints have been implemented\n\n### REST API V5\n\n#### Market\n\n- [`/v5/market/kline` Get Kline](https://bybit-exchange.github.io/docs/v5/market/kline)\n- [`/v5/market/mark-price-kline` Get Mark Price Kline](https://bybit-exchange.github.io/docs/v5/market/mark-kline)\n- [`/v5/market/index-price-kline` Get Index Price Kline](https://bybit-exchange.github.io/docs/v5/market/index-kline)\n- [`/v5/market/premium-index-price-kline` Get Premium Index Price Kline](https://bybit-exchange.github.io/docs/v5/market/preimum-index-kline)\n- [`/v5/market/instruments-info` Get Instruments Info](https://bybit-exchange.github.io/docs/v5/market/instrument)\n\n#### Position\n\n- [`/v5/position/list` Get Position Info](https://bybit-exchange.github.io/docs/v5/position)\n\n#### Order\n\n- [`/v5/order/create` Place Order](https://bybit-exchange.github.io/docs/v5/order/create-order)\n\n#### Account\n\n- [`/v5/account/wallet-balance` Get Wallet Balance](https://bybit-exchange.github.io/docs/v5/account/wallet-balance)\n\n#### User\n\n- [`/v5/user/query-api` Get API Key Information](https://bybit-exchange.github.io/docs/v5/user/apikey-info)\n\n\n### REST API\n\n#### [Derivatives Unified Margin](https://bybit-exchange.github.io/docs/derivativesV3/unified_margin)\n\n##### Market Data Endpoints\n\n- `/derivatives/v3/public/order-book/L2` Get Order Book\n- `/derivatives/v3/public/kline` Get Kline\n- `/derivatives/v3/public/tickers` Get Latest Information For Symbol\n- `/derivatives/v3/public/instruments-info` Get Instrument Info\n- `/derivatives/v3/public/mark-price-kline` Get Mark Price Kline\n- `/derivatives/v3/public/index-price-kline` Get Index Price Kline\n\n#### [Derivatives Contract](https://bybit-exchange.github.io/docs/derivativesV3/contract)\n\n##### Market Data Endpoints\n\n- `/derivatives/v3/public/order-book/L2` Get Order Book\n- `/derivatives/v3/public/kline` Get Kline\n- `/derivatives/v3/public/tickers` Get Latest Information For Symbol\n- `/derivatives/v3/public/instruments-info` Get Instrument Info\n- `/derivatives/v3/public/mark-price-kline` Get Mark Price Kline\n- `/derivatives/v3/public/index-price-kline` Get Index Price Kline\n\n#### [Inverse Perpetual](https://bybit-exchange.github.io/docs/futuresV2/inverse)\n\n##### Market Data Endpoints\n\n- `/v2/public/orderBook/L2` Order Book\n- `/v2/public/kline/list` Query Kline\n- `/v2/public/tickers` Latest Information for Symbol\n- `/v2/public/trading-records` Public Trading Records\n- `/v2/public/symbols` Query Symbol\n- `/v2/public/mark-price-kline` Query Mark Price Kline\n- `/v2/public/index-price-kline` Query Index Price Kline\n- `/v2/public/premium-index-kline` Query Premium Index Kline\n- `/v2/public/open-interest` Open Interest\n- `/v2/public/big-deal` Latest Big Deal\n- `/v2/public/account-ratio` Long-Short Ratio\n\n##### Account Data Endpoints\n\n- `/v2/private/order/create` Place Active Order\n- `/v2/private/order/list` Get Active Order\n- `/v2/private/order/cancel` Cancel Active Order\n- `/v2/private/order/cancelAll` Cancel All Active Orders\n- `/v2/private/order` Query Active Order (real-time)\n- `/v2/private/stop-order/create` Place Conditional Order\n- `/v2/private/stop-order/list` Get Conditional Order\n- `/v2/private/stop-order/cancel` Cancel Conditional Order\n- `/v2/private/stop-order/cancelAll` Cancel All Conditional Orders\n- `/v2/private/stop-order` Query Conditional Order (real-time)\n- `/v2/private/position/list` My Position\n- `/v2/private/position/trading-stop` Set Trading-Stop\n- `/v2/private/position/leverage/save` Set Leverage\n- `/v2/private/account/api-key` API Key info\n\n##### Wallet Data Endpoints\n\n- `/v2/private/wallet/balance` Get Wallet Balance\n\n#### [USDT Perpetual](https://bybit-exchange.github.io/docs/futuresV2/linear)\n\n##### Market Data Endpoints\n\n- `/v2/public/orderBook/L2` Order Book\n- `/public/linear/kline` Query Kline\n- `/v2/public/tickers` Latest Information for Symbol\n- `/v2/public/symbols` Query Symbol\n- `/v2/public/open-interest` Open Interest\n- `/v2/public/big-deal` Latest Big Deal\n- `/v2/public/account-ratio` Long-Short Ratio\n\n##### Account Data Endpoints\n\n- `/private/linear/order/create` Place Active Order\n- `/private/linear/order/list` Get Active Order\n- `/private/linear/order/cancel` Cancel Active Order\n- `/private/linear/order/cancel-all` Cancel All Active Orders\n- `/private/linear/order/replace` Replace Active Order\n- `/private/linear/order/search` Query Active Order (real-time)\n- `/private/linear/stop-order/create` Place Conditional Order\n- `/private/linear/stop-order/list` Get Conditional Order\n- `/private/linear/stop-order/cancel` Cancel Conditional Order\n- `/private/linear/stop-order/cancel-all` Cancel All Conditional Orders\n- `/private/linear/stop-order/search` Query Conditional Order (real-time)\n- `/private/linear/position/list` My Position\n- `/private/linear/position/set-leverage` Set Leverage\n- `/private/linear/position/trading-stop` Set Trading-Stop\n- `/private/linear/trade/execution/list` User Trade Records\n- `/v2/private/account/api-key` API Key info\n\n##### Wallet Data Endpoints\n\n- `/v2/private/wallet/balance` Get Wallet Balance\n\n#### [Inverse Future](https://bybit-exchange.github.io/docs/futuresV2/inverse_futures)\n\n##### Market Data Endpoints\n\n- `/v2/public/orderBook/L2` Order Book\n- `/v2/public/kline/list` Query Kline\n- `/v2/public/tickers` Latest Information for Symbol\n- `/v2/public/trading-records` Public Trading Records\n- `/v2/public/symbols` Query Symbol\n- `/v2/public/mark-price-kline` Query Index Price Kline\n- `/v2/public/index-price-kline` Query Index Price Kline\n- `/v2/public/open-interest` Open Interest\n- `/v2/public/big-deal` Latest Big Deal\n- `/v2/public/account-ratio` Long-Short Ratio\n\n##### Account Data Endpoints\n\n- `/futures/private/order/create` Place Active Order\n- `/futures/private/order/list` Get Active Order\n- `/futures/private/order/cancel` Cancel Active Order\n- `/futures/private/order/cancelAll` Cancel All Active Orders\n- `/futures/private/order` Query Active Order (real-time)\n- `/futures/private/stop-order/create` Place Conditional Order\n- `/futures/private/stop-order/list` Get Conditional Order\n- `/futures/private/stop-order/cancel` Cancel Conditional Order\n- `/futures/private/stop-order/cancelAll` Cancel All Conditional Orders\n- `/futures/private/stop-order` Query Conditional Order (real-time)\n- `/futures/private/position/list` My Position\n- `/futures/private/position/trading-stop` Set Trading-Stop\n- `/futures/private/position/leverage/save` Set Leverage\n- `/v2/private/account/api-key` API Key info\n\n##### Wallet Data Endpoints\n\n- `/v2/private/wallet/balance` Get Wallet Balance\n\n#### [Spot v1](https://bybit-exchange.github.io/docs/spot/v1)\n\n##### Market Data Endpoints\n\n- `/spot/v1/symbols` Query Symbol\n- `/spot/quote/v1/depth` Order Book\n- `/spot/quote/v1/depth/merged` Merged Order Book\n- `/spot/quote/v1/trades` Public Trading Records\n- `/spot/quote/v1/kline` Query Kline\n- `/spot/quote/v1/ticker/24hr` Latest Information for Symbol\n- `/spot/quote/v1/ticker/price` Last Traded Price\n- `/spot/quote/v1/ticker/book_ticker` Best Bid/Ask Price\n\n##### Account Data Endpoints\n\n- `/spot/v1/order`\n  - Place Active Order\n  - Get Active Order\n  - Cancel Active Order\n  - Fast Cancel Active Order\n- `/spot/v1/order/fast` Fast Cancel Active Order\n- `/spot/order/batch-cancel` Batch Cancel Active Order\n- `/spot/order/batch-fast-cancel` Batch Fast Cancel Active Order\n- `/spot/order/batch-cancel-by-ids` Batch Cancel Active Order By IDs\n- `/spot/v1/open-orders` Open Orders\n\n##### Wallet Data Endpoints\n\n- `/spot/v1/account` Get Wallet Balance\n\n### WebSocket API\n\n#### [Private v5](https://bybit-exchange.github.io/docs/v5/websocket/private/position)\n\n##### Private Topics\n\n- Position\n\n#### [Spot v1](https://bybit-exchange.github.io/docs/spot/v1/#t-websocket)\n\n##### Public Topics\n\n- trade\n\n##### Public Topics V2\n\n- trade\n\n##### Private Topics\n\n- outboundAccountInfo\n\n## Integration Tests\n\nThere are tests so that we can get to know the changes of bybit api response.\n\nSee below\n\n- [REST API Integration Test](./integrationtest/README.md)\n- [Websocket API Integration Test](./integrationtest-ws/README.md)\n\n## Contributing\n\nI 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/sngyai/bybit/pull/44.\n\nTo submit issues, PRs, and every other help is welcome.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsngyai%2Fgo-bybit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsngyai%2Fgo-bybit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsngyai%2Fgo-bybit/lists"}