bybit.net.api 1.1.2

dotnet add package bybit.net.api --version 1.1.2                
NuGet\Install-Package bybit.net.api -Version 1.1.2                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="bybit.net.api" Version="1.1.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add bybit.net.api --version 1.1.2                
#r "nuget: bybit.net.api, 1.1.2"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install bybit.net.api as a Cake Addin
#addin nuget:?package=bybit.net.api&version=1.1.2

// Install bybit.net.api as a Cake Tool
#tool nuget:?package=bybit.net.api&version=1.1.2                

Bybit Open API Connector .Net6

Nuget License: MIT Contributor Victor

Table of Contents

About

Bybit.Net.Api offers an official, powerful, and efficient .NET connector to the Bybit public Trading API

Dive into a plethora of functionalities:

  • Public Websocket Streaming
  • Private Websocket Streaming
  • Market Data Retrieval
  • Trade Execution
  • Position Management
  • Account and Asset Info Retrieval
  • User Management
  • Upgrade History
  • Spot Margin UTA & Classical Service
  • Broker Earning Data

This initiative, originated by the renowned .NET developer Victor, now flourishes under the meticulous care of Bybit's dedicated team of in-house .NET professionals. Your contributions are warmly welcomed and appreciated!

Development

Bybit.Net.Api constantly evolves, keeping pace with the freshest features from Bybit's API. Crafted for efficiency, the library maintains a slim profile by minimizing external dependencies. If you've broadened its horizons or ironed out bugs, we eagerly await your pull request.

Installation

Ensure you're using .NET 6 or newer. This SDK depends on Microsoft.Extensions.Logging 7.0.0 and Newtonsoft 13.0.3. Dotnet CLI

dotnet add package bybit.net.api

Nuget tool

NuGet\Install-Package bybit.net.api

Package reference

<PackageReference Include="bybit.net.api"/>

Furthermore methods to install pakcage, please check Nuget Repository

Release-Notes

HTTP Request

  • Add Broker Refer Code to Request Header
  • Add User Agent
  • Add Https Connection Keep Live
  • New broker endpoints /v5/broker/account-info and /v5/broker/asset/query-sub-member-deposit-record
  • Demo trading Mainnet allow rest api
  • Demo trading Mainnet request test fund

Websocket

  • Demo trading support private websocket

Change log

  • Spot margin trade endpoint not suport classical account
  • Broker Earning info endpoint change from endpoint /v5/broker/earnings-records to /v5/broker/earnings-info
  • Set Risk Limit was deprecated because it will adapt automaticaaly by your hold position

Usage

By default is bybit Mainnet, if you want to test in Bybit testnet, please add a parameter useTestnet: true when initiate service instance

Note: Replace placeholders (like YOUR_API_KEY, links, or other details) with the actual information. You can also customize this template to better fit the actual state and details of your DotNet API.

RESTful APIs

  • Market Kline
BybitMarketDataService market = new();
var klineInfo = await market.GetMarketKline(Category.SPOT, "BTCUSDT", MarketInterval.OneMinute);
Console.WriteLine(klineInfo);

Authentication - RESTful APIs

  • Place Single Order
BybitTradeService tradeService = new(apiKey: "xxxxxxxxxxxxxx", apiSecret: "xxxxxxxxxxxxxxxxxxxxx");
var orderInfo = await tradeService.PlaceOrder(category: Category.LINEAR, symbol: "BLZUSDT", side: Side.BUY, orderType: OrderType.MARKET, qty: "15", timeInForce: TimeInForce.GTC);
Console.WriteLine(orderInfo);
  • Place Bacth Order by Dictionary
Dictionary<string, object> dict1 = new() { { "symbol", "XRPUSDT" }, { "orderType", "Limit" }, { "side", "Buy" }, { "qty", "10" }, { "price", "0.6080" }, { "timeInForce", "GTC" } };
Dictionary<string, object> dict2 = new() { { "symbol", "BLZUSDT" }, { "orderType", "Limit" }, { "side", "Buy" }, { "qty", "10" }, { "price", "0.6080" }, { "timeInForce", "GTC" } };
List<Dictionary<string, object>> request = new() { dict1, dict2 };
var orderInfoString = await TradeService.PlaceBatchOrder(category: Category.LINEAR, request: request);
Console.WriteLine(orderInfoString);
  • Place Bacth Order by dedicated OrderRequest Class
var order1 = new OrderRequest { Symbol = "XRPUSDT", OrderType = OrderType.LIMIT.Value, Side = Side.BUY.Value, Qty = "10", Price = "0.6080", TimeInForce = TimeInForce.GTC.Value };
var order2 = new OrderRequest { Symbol = "BLZUSDT", OrderType = OrderType.LIMIT.Value, Side = Side.BUY.Value, Qty = "10", Price = "0.6080", TimeInForce = TimeInForce.GTC.Value };
var request = new List<OrderRequest> { order1, order2 };
var orderInfoString = await TradeService.PlaceBatchOrder(category: Category.LINEAR, request: request);
Console.WriteLine(orderInfoString);
  • Account Wallet
BybitAccountService accountService = new(apiKey: "xxxxxxxxxxxxxx", apiSecret: "xxxxxxxxxxxxxxxxxxxxx");
var accountInfo = await accountService.GetAccountBalance(accountType: AccountType.Unified);
Console.WriteLine(accountInfo);
  • Position Info
BybitPositionService positionService = new(apiKey: "xxxxxxxxxxxxxx", apiSecret: "xxxxxxxxxxxxxxxxxxxxx");
var positionInfo = await positionService.GetPositionInfo(category: Category.LINEAR, symbol: "BLZUSDT");
Console.WriteLine(positionInfo);

Demo Trading Apply Money

BybitPositionService positionService = new(apiKey: "xxxxxxxxxxxxxx", apiSecret: "xxxxxxxxxxxxxxxxxxxxx", url: BybitConstants.DEMO_TRADING_MAINNET_URL);
var testFundRequestDict = new Dictionary<string,string>{{"USDT", "109" },{"ETH", "1" }};
var tradeInfoString = await TradeService.RequestTestFund(testFundRequestDict);
await Console.Out.WriteLineAsync(tradeInfoString);

Websocket public channel

  • Trade Subscribe
var linearWebsocket = new BybitLinearWebSocket(useTestNet: true, pingIntevral: 5);
linearWebsocket.OnMessageReceived(
    (data) =>
    {
        Console.WriteLine(data);
        return Task.CompletedTask;
    }, CancellationToken.None);
await linearWebsocket.ConnectAsync(new string[] { "publicTrade.BTCUSDT" }, CancellationToken.None);

Websocket private channel

  • Order Subscribe
var privateWebsocket = new(apiKey: "xxxxxxxxxxx", apiSecret: "xxxxxxxxxxxxxxx", useTestNet: true, pingIntevral: 5, maxAliveTime:"120s");
privateWebsocket.OnMessageReceived(
    (data) =>
    {
        Console.WriteLine(data);
        return Task.CompletedTask;
    }, CancellationToken.None);
await privateWebsocket.ConnectAsync(new string[] { "order" }, CancellationToken.None);

Contact

For support, join our Bybit API community on Telegram.

Contributors

List of other contributors <table> <tr> <td align="center"> <a href="https://github.com/wuhewuhe"> <img src="https://avatars.githubusercontent.com/u/32245754?v=4" width="100px;" alt=""/> <br /> <sub>
<b>Victor</b> </sub> </a> <br /> <a href="https://github.com/wuhewuhe/bybit.net.api/commits?author=wuhewuhe" title="Code">💻</a> <a href="https://github.com/wuhewuhe/bybit.net.api/commits?author=wuhewuhe" title="Documentation">📖</a> </td> </tr> </table>

Donations

Your donations keep our development active and our community growing. Donate USDT to our ERC20 Wallet Address.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.1.2 1,826 4/16/2024
1.1.1 430 2/22/2024
1.1.0 490 2/6/2024
1.0.9 158 1/27/2024
1.0.8 519 12/19/2023
1.0.7 233 11/19/2023
1.0.6 169 11/12/2023
1.0.5 546 11/2/2023
1.0.4 150 10/29/2023
1.0.3 154 10/27/2023
1.0.2 155 10/24/2023
1.0.1 135 10/22/2023
1.0.0 165 10/22/2023

## Release-Notes
     ### HTTP Request
     - Add Broker Refer Code to Request Header
     - Add User Agent
     - Add Https Connection Keep Live
     - New broker endpoints /v5/broker/account-info and /v5/broker/asset/query-sub-member-deposit-record
     - Demo trading Mainnet allow rest api
     - Demo trading Mainnet request test fund

     ### Websocket
     - Demo trading support private websocket

     ### Change log
     - Spot margin trade endpoint not suport classical account
     - Broker Earning info endpoint change from endpoint /v5/broker/earnings-records to /v5/broker/earnings-info
     - Set Risk Limit was deprecated because it will adapt automaticaaly by your hold position