bybit.net.api 1.1.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package bybit.net.api --version 1.1.1
NuGet\Install-Package bybit.net.api -Version 1.1.1
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.1" />
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.1
#r "nuget: bybit.net.api, 1.1.1"
#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.1

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

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

  • Account Service new endpoint Batch Set Collateral Coin and Get Collateral Info
  • Position Service new endpoint Move Position and Get Move Position History
  • Trade Service add new parameter MarketUnit to Place Order and Batch Place Order
  • Fix issue of current timestamp by rest API reauest

Change log

GetExecutionList moved from PositionService to TradeService and rename to GetTradeHistory Set TP/SL Mode was deprecated because now tpsl is based on order level

  • 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);

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 115 4/16/2024
1.1.1 277 2/22/2024
1.1.0 411 2/6/2024
1.0.9 125 1/27/2024
1.0.8 429 12/19/2023
1.0.7 197 11/19/2023
1.0.6 141 11/12/2023
1.0.5 332 11/2/2023
1.0.4 121 10/29/2023
1.0.3 124 10/27/2023
1.0.2 127 10/24/2023
1.0.1 106 10/22/2023
1.0.0 127 10/22/2023

## Release-Notes
     - Fix an error Get Deposit Records (on-chain)
     - Spot Margin Trade is unavaivable for classical account from 22 Feb 2024