JK.OKX.Net
2.7.0
dotnet add package JK.OKX.Net --version 2.7.0
NuGet\Install-Package JK.OKX.Net -Version 2.7.0
<PackageReference Include="JK.OKX.Net" Version="2.7.0" />
paket add JK.OKX.Net --version 2.7.0
#r "nuget: JK.OKX.Net, 2.7.0"
// Install JK.OKX.Net as a Cake Addin #addin nuget:?package=JK.OKX.Net&version=2.7.0 // Install JK.OKX.Net as a Cake Tool #tool nuget:?package=JK.OKX.Net&version=2.7.0
OKX.Net
OKX.Net is strongly typed client library for accessing the OKX REST and Websocket API.
Features
- Response data is mapped to descriptive models
- Input parameters and response values are mapped to discriptive enum values where possible
- Automatic websocket (re)connection management
- Client side rate limiting
- Client side order book implementation
- Extensive logging
- Support for different environments
- Easy integration with other exchange client based on the CryptoExchange.Net base library
Supported Frameworks
The library is targeting both .NET Standard 2.0
and .NET Standard 2.1
for optimal compatibility
.NET implementation | Version Support |
---|---|
.NET Core | 2.0 and higher |
.NET Framework | 4.6.1 and higher |
Mono | 5.4 and higher |
Xamarin.iOS | 10.14 and higher |
Xamarin.Android | 8.0 and higher |
UWP | 10.0.16299 and higher |
Unity | 2018.1 and higher |
Install the library
NuGet
dotnet add package JK.OKX.Net
GitHub packages
OKX.Net is available on GitHub packages. You'll need to add https://nuget.pkg.github.com/JKorf/index.json
as a NuGet package source.
Download release
The NuGet package files are added along side the source with the latest GitHub release which can found here.
How to use
REST Endpoints
// Get the ETH/USDT ticker via rest request
var restClient = new OKXRestClient();
var tickerResult = await restClient.UnifiedApi.ExchangeData.GetTickerAsync("ETH-USDT");
var lastPrice = tickerResult.Data.LastPrice;
Websocket streams
// Subscribe to ETH/USDT ticker updates via the websocket API
var socketClient = new OKXSocketClient();
var tickerSubscriptionResult = socketClient.UnifiedApi.ExchangeData.SubscribeToTickerUpdatesAsync("ETH-USDT", (update) =>
{
var lastPrice = update.Data.LastPrice;
});
For information on the clients, dependency injection, response processing and more see the OKX.Net documentation, CryptoExchange.Net documentation, or have a look at the examples here or here.
CryptoExchange.Net
OKX.Net is based on the CryptoExchange.Net base library. Other exchange API implementations based on the CryptoExchange.Net base library are available and follow the same logic.
CryptoExchange.Net also allows for easy access to different exchange API's.
Exchange | Repository | Nuget |
---|---|---|
Binance | JKorf/Binance.Net | |
BingX | JKorf/BingX.Net | |
Bitfinex | JKorf/Bitfinex.Net | |
Bitget | JKorf/Bitget.Net | |
BitMart | JKorf/BitMart.Net | |
Bybit | JKorf/Bybit.Net | |
Coinbase | JKorf/Coinbase.Net | |
CoinEx | JKorf/CoinEx.Net | |
CoinGecko | JKorf/CoinGecko.Net | |
Crypto.com | JKorf/CryptoCom.Net | |
Gate.io | JKorf/GateIo.Net | |
HTX | JKorf/HTX.Net | |
Kraken | JKorf/Kraken.Net | |
Kucoin | JKorf/Kucoin.Net | |
Mexc | JKorf/Mexc.Net |
Discord
A Discord server is available here. Feel free to join for discussion and/or questions around the CryptoExchange.Net and implementation libraries.
Supported functionality
Unified API
API | Supported | Location |
---|---|---|
Trading Account Rest | ✓ | restClient.UnifiedApi.Account |
Trading Account Websocket | ✓ | socketClient.UnifiedApi.Account |
Order Book Trade Rest | ✓ | restClient.UnifiedApi.Trading |
Order Book Trade Websocket | ✓ | socketClient.UnifiedApi.Trading |
Order Book Algo Trading Rest | ✓ | restClient.UnifiedApi.Trading |
Order Book Algo Trading Websocket | ✓ | socketClient.UnifiedApi.Trading |
Order Book Grid Trading Rest | x | |
Order Book Grid Trading Websocket | x | |
Order Book Signal Trading Rest | x | |
Order Book Recurring Buy Rest | x | |
Order Book Recurring Buy Websocket | x | |
Order Book Copy Trading Rest | x | |
Order Book Copy Trading Websocket | x | |
Order Book Market Data Rest | ✓ | restClient.UnifiedApi.ExchangeData |
Order Book Market Data Websocket | ✓ | socketClient.UnifiedApi.ExchangeData |
Block Trading | X | |
Spread Trading | X | |
Public Data Rest | ✓ | restClient.UnifiedApi.ExchangeData |
Public Data Websocket | ✓ | socketClient.UnifiedApi.ExchangeData |
Trading Statistics | ✓ | restClient.UnifiedApi.ExchangeData |
Funding Account Rest | ✓ | restClient.UnifiedApi.Account |
Funding Account Websocket | ✓ | socketClient.UnifiedApi.Account |
Sub-Account | ✓ | restClient.UnifiedApi.SubAccounts |
Financial Product | X | |
Affiliate | X | |
Status Rest | ✓ | restClient.UnifiedApi.ExchangeData |
Status Websocket | ✓ | socketClient.UnifiedApi.ExchangeData |
Broker API
API | Supported | Location |
---|---|---|
Trading Account Rest | X |
Support the project
Any support is greatly appreciated.
Donate
Make a one time donation in a crypto currency of your choice. If you prefer to donate a currency not listed here please contact me.
Btc: bc1q277a5n54s2l2mzlu778ef7lpkwhjhyvghuv8qf
Eth: 0xcb1b63aCF9fef2755eBf4a0506250074496Ad5b7
USDT (TRX) TKigKeJPXZYyMVDgMyXxMf17MWYia92Rjd
Sponsor
Alternatively, sponsor me on Github using Github Sponsors.
Release notes
Version 2.7.0 - 28 Oct 2024
- Updated CryptoExchange.Net to version 8.1.0, see https://github.com/JKorf/CryptoExchange.Net/releases/tag/8.1.0
- Moved FormatSymbol to OKXExchange class
- Added support Side setting on SharedTrade model
- Added OKXTrackerFactory for creating trackers
- Added overload to Create method on OKXOrderBookFactory support SharedSymbol parameter
- Added support for different order book levels in OKXSymbolOrderBook
Version 2.6.0 - 21 Oct 2024
- Added restClient.UnifiedApi.Account.ManualBorrowRepayAsync, SetAutoRepayAsync and GetBorrowRepayHistoryAsync endpoints
- Added EasyConvertDustAsync, GetEasyConvertDustAssetsAsync and GetEasyConvertDustHistoryAsync endpoints
- Added BurningFeeRate property to restClient.UnifiedApi.Account.GetAssetsAsync response model
- Updated AccountBillSubType and AccountSubType Enum values
- Refactored restClient.UnifiedApi.Trading.PlaceOrderAsync take profit / stop loss parameters to support the full functionality offered by the API
- Fixed restClient.UnifiedApi.Trading.CancelMultipleOrdersAsync order canceled event processing
- Removed restClient.UnifiedApi.Account.ConvertDustAsync deprecated endpoint
Version 2.5.1 - 14 Oct 2024
- Updated CryptoExchange.Net to version 8.0.3, see https://github.com/JKorf/CryptoExchange.Net/releases/tag/8.0.3
- Fixed TypeLoadException during initialization
Version 2.5.0 - 08 Oct 2024
- Added ExchangeData.GetAnnouncementsAsync and GetAnnouncementTypesAsync endpoints
- Added asset parameter to Account.GetLeverageAsync endpoint
- Added IsTradeBorrowMode property to Algo order response model
- Updated OKXAccountConfiguration response model
- Updated OKXDiscountInfo response model
Version 2.4.0 - 27 Sep 2024
- Updated CryptoExchange.Net to version 8.0.0, see https://github.com/JKorf/CryptoExchange.Net/releases/tag/8.0.0
- Added Shared client interfaces implementation for Unified Rest and Socket clients
- Updated Sourcelink package version
- Fixed UnifiedApi.ExchangeData.GetOpenInterestsAsync request for Swap instruments
- Marked ISpotClient references as deprecated
Version 2.3.1 - 11 Sep 2024
- Added Spot fields to Balance response models
- Added OpenInterestUsd field to ExchangeData.GetOpenInterestAsync response model
- Added RuleType parameter and response field to Account.GetFeeRatesAsync
- Added Attachment field to Account.GetDepositAddressAsync response model
Version 2.3.0 - 07 Aug 2024
- Updated CryptoExchange.Net to version 7.11.0, see https://github.com/JKorf/CryptoExchange.Net/releases/tag/7.11.0
- Updated XML code comments
- Added UnifiedApi.Trading.CheckOrderAsync endpoint
- Added PositionSide property to UnifiedApi.Account.GetPositionHistoryAsync response model
- Updated property nullability for OKXInterestAccrued.MarginMode and OKXAlgoOrder.PositionSide properties
Version 2.2.0 - 27 Jul 2024
- Updated CryptoExchange.Net to version 7.10.0, see https://github.com/JKorf/CryptoExchange.Net/releases/tag/7.10.0
- Added RuleType property on UnifiedApi.ExchangeData.GetSymbolsAsync response model
- Fixed marginMode serialization in multiple endpoints
Version 2.1.0 - 16 Jul 2024
- Updated CryptoExchange.Net to version 7.9.0, see https://github.com/JKorf/CryptoExchange.Net/releases/tag/7.9.0
Version 2.0.1 - 10 Jul 2024
- Fixed error during parsing of error response
- Fixed exception during CancelOrderAsync error response
- Updated internal classes to internal access modifier
Version 2.0.0 - 02 Jul 2024
- Updated CryptoExchange.Net to V7.8.0, see https://github.com/JKorf/CryptoExchange.Net/releases/tag/7.8.0
- Added client side rate limiting
- Added Trading.CancelAllAfterAsync endpoint
- Updated json serializer from Newtonsoft.Json to System.Text.Json
- Updated request sending to new CryptoExchange.Net implementation
- Updated all enum conversions to use new EnumConverter
- Updated websocket kline subscriptions models to IEnumerable
- Updated AccountBillSubType enum values
- Updated AccountBillType enum values
- Updated FundingBillType enum values
- Updated InstrumentAlias enum values
- Updated various response models
- Updated response checking from every endpoint to central method
- Renamed all enums, OKX prefix removed. For example OKXOrderSide is now OrderSide
- Renamed OrderType.MarketOrder to OrderType.Market
- Renamed OrderType.LimitOrder to OrderType.Limit
- Renamed Candlestick references to Kline
- Renamed OKXPeriod to KlineInterval
- Renamed Account.GetAccountPositionsAsync to GetPositionsAsync
- Renamed Account.GetAccountPositionHistoryAsync to GetPositionHistoryAsync
- Renamed Account.GetAccountPositionRiskAsync to GetPositionRiskAsync
- Renamed Account.SetAccountPositionModeAsync to SetPositionModeAsync
- Renamed Account.GetAccountLeverageAsync to GetLeverageAsync
- Renamed Account.SetAccountLeverageAsync to SetLeverageAsync
- Renamed Account.GetLightningWithdrawalsAsync to GetLightningWithdrawalAsync
- Renamed ExchangeData.GetRubik* to GetTradeStats*
- Cleanup unnused types
Version 1.11.1 - 25 Jun 2024
- Updated CryptoExchange.Net to 7.7.2, see https://github.com/JKorf/CryptoExchange.Net/releases/tag/7.7.2
- Fixed deserialization issue in OkxTicker
- Fixed deserialization issue in SetLeverage
Version 1.11.0 - 23 Jun 2024
- Updated CryptoExchange.Net to version 7.7.0, see https://github.com/JKorf/CryptoExchange.Net/releases/tag/7.7.0
- Added CancellationToken optional parameter to websocket requests
- Added dedicated connection configuration; a websocket connection can now be established before making the first request by calling
okxSocketClient.UnifiedApi.PrepareConnectionsAsync();
Version 1.10.1 - 17 Jun 2024
- Fixed deserialization issue in market sell websocket order updates
Version 1.10.0 - 11 Jun 2024
- Updated CryptoExchange.Net to v7.6.0, see https://github.com/JKorf/CryptoExchange.Net?tab=readme-ov-file#release-notes for release notes
Version 1.9.0 - 02 Jun 2024
- Added UnifiedApi.Account.GetAssetValuationAsync endpoint
- Renamed BestAskSize to BestAskQuantity in OKXTicker model
- Fixed OKXSocketOptions not using OKXApiCredentials
Version 1.8.4 - 07 May 2024
- Updated CryptoExchange.Net to v7.5.2, see https://github.com/JKorf/CryptoExchange.Net?tab=readme-ov-file#release-notes for release notes
Version 1.8.3 - 01 May 2024
- Updated CryptoExchange.Net to v7.5.0, see https://github.com/JKorf/CryptoExchange.Net?tab=readme-ov-file#release-notes for release notes
Version 1.8.2 - 28 Apr 2024
- Added OKXExchange static info class
- Added OKXOrderBookFactory book creation method
- Fixed OKXOrderBookFactory injection issue
- Updated CryptoExchange.Net to v7.4.0, see https://github.com/JKorf/CryptoExchange.Net?tab=readme-ov-file#release-notes for release notes
Version 1.8.1 - 23 Apr 2024
- Fixed error check on UnifiedApi.ExchangeData.GetOrderBookAsync
- Updated CryptoExchange.Net to 7.3.3, see https://github.com/JKorf/CryptoExchange.Net?tab=readme-ov-file#release-notes for release notes
Version 1.8.0 - 18 Apr 2024
- Updated CryptoExchange.Net to 7.3.1, see https://github.com/JKorf/CryptoExchange.Net?tab=readme-ov-file#release-notes for release notes
Version 1.7.2 - 28 Mar 2024
- Added support for multiple symbol tickers subscriptions in single call
- Fixed quantity being required in UnifiedApi.Trading.PlaceAlgoOrderAsync
Version 1.7.1 - 24 Mar 2024
- Updated CryptoExchange.Net to 7.2.0, see https://github.com/JKorf/CryptoExchange.Net?tab=readme-ov-file#release-notes for release notes
Version 1.7.0 - 16 Mar 2024
- Updated CryptoExchange.Net to 7.1.0, see https://github.com/JKorf/CryptoExchange.Net?tab=readme-ov-file#release-notes for release notes
Version 1.6.2 - 13 Mar 2024
- Added UnifiedApi.Account..GetAffiliateInviteeDetailsAsync endpoint
- Fixed websocket AlgoOrder update subscriptions url
- Fixed Symbol property not set on websocket kline updates
Version 1.6.1 - 26 Feb 2024
- Update OKXPosition model
- Fixed PlaceMultipleOrdersAsync and AmendMultipleOrdersAsync quantity and price parameter serialization
- Fixed deserialization OKXFundingRate model
Version 1.6.0 - 25 Feb 2024
- Updated the position model to include stop order info
- Updated CryptoExchange.Net and implemented reworked websocket message handling. For release notes for the CryptoExchange.Net base library see: https://github.com/JKorf/CryptoExchange.Net?tab=readme-ov-file#release-notes
- Fixed websocket message handling with empty data array
- Added UnifiedApi.Account.SetAccountModeAsync
- Fixed issue in DI registration causing http client to not be correctly injected
- Added DataEvent wrapper to socket client subscription callbacks
- Updated subscriptions to return lists where multiple updates are pushed in a single websocket message
- Updated socket client PlaceOrderAsync endpoint to correctly respect client order id
- Removed redundant OkxRestClient constructor overload
- Updated some namespaces
Version 1.5.0 - 04 Jan 2024
- Added UnifiedApi.Trading.GetAlgoOrderAsync endpoint
- Added UnifiedApi.Trading.AmendAlgoOrderAsync endpoint
- Added UnifiedApi.Account.SetIsolatedMarginModeAsync endpoint
- Added UnifiedApi.Account.GetTransferAsync endpoint
- Updated savings endpoints to new url
Version 1.4.5 - 26 Dec 2023
- Added Account.DusConvertAsync endpoint
Version 1.4.4 - 03 Dec 2023
- Updated CryptoExchange.Net
Version 1.4.3 - 28 Nov 2023
- Updated BrokerId logic so clientOrderId isn't influenced
- Fixed order update deserialization issue
Version 1.4.2 - 24 Oct 2023
- Updated CryptoExchange.Net
Version 1.4.1 - 09 Oct 2023
- Updated CryptoExchange.Net version
- Fix incorrect OKXSocketClient injection
- Added missing ISocketClient interface on IOKXSocketClient
Version 1.4.0 - 30 Sep 2023
- Added support for settings custom broker id
- Added missing fields for klines/candles
- Fix for Symbol deserialization
- Fix for Ticker deserialization
- Fixed algoId defined as long instead of string
Version 1.3.2 - 20 Sep 2023
- Added ISpotClient/CommonSpotClient implementation
- Added missing ConfigureAwait(false) statements
Version 1.3.1 - 17 Sep 2023
- Added demo environment support
Version 1.3.0 - 17 Sep 2023
- Fixed start/end time filtering
- Mapped BalanceAndPositionUpdates stream to new model
- Added missing properties to position model
Version 1.2.0 - 26 Aug 2023
- Split socket client into different topics
- Added websocket order management support
- Added LiquidationWarning update stream
- Added Withdrawal update stream
- Added Deposit update stream
Version 1.1.1 - 25 Aug 2023
- Updated CryptoExchange.Net
Version 1.1.0 - 13 Aug 2023
- Updated parameters for endpoints to the latest version of the documentation
Version 1.0.0 - 12 Aug 2023
- Updated models to latest documentation
- Added unit tests
Version 0.0.2 - 06 Aug 2023
- Fixed Unified socket API stream addresses
- Renamed Unified socket API underlying parameters to intrumentFamily
Version 0.0.1 - 04 Aug 2023
- Initial version
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- CryptoExchange.Net (>= 8.1.0)
-
.NETStandard 2.1
- CryptoExchange.Net (>= 8.1.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on JK.OKX.Net:
Package | Downloads |
---|---|
CryptoClients.Net
CryptoClients.Net is a collection of multiple cryptocurrency exchange API clients for accessing both the REST API's and WebSocket API's. Supports order and account management and requesting and streaming both public and private data. |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on JK.OKX.Net:
Repository | Stars |
---|---|
JKorf/CryptoExchange.Net
A C# .netstandard base library used for implementing cryptocurrency exchange API's.
|
Version | Downloads | Last updated |
---|---|---|
2.7.0 | 229 | 10/28/2024 |
2.6.0 | 308 | 10/21/2024 |
2.5.1 | 314 | 10/14/2024 |
2.5.0 | 510 | 10/8/2024 |
2.4.0 | 1,101 | 9/27/2024 |
2.3.1 | 456 | 9/11/2024 |
2.3.0 | 1,920 | 8/7/2024 |
2.2.0 | 725 | 7/29/2024 |
2.0.0 | 1,019 | 7/2/2024 |
1.11.1 | 938 | 6/25/2024 |
1.11.0 | 127 | 6/23/2024 |
1.10.1 | 234 | 6/17/2024 |
1.10.0 | 594 | 6/11/2024 |
1.9.0 | 355 | 6/2/2024 |
1.8.4 | 1,272 | 5/7/2024 |
1.8.3 | 220 | 5/1/2024 |
1.8.2 | 216 | 4/28/2024 |
1.8.1 | 213 | 4/23/2024 |
1.8.0 | 273 | 4/18/2024 |
1.7.2 | 425 | 3/28/2024 |
1.7.1 | 882 | 3/24/2024 |
1.7.0 | 316 | 3/16/2024 |
1.6.2 | 219 | 3/13/2024 |
1.6.1 | 328 | 2/26/2024 |
1.6.0 | 998 | 2/25/2024 |
1.6.0-beta3 | 193 | 2/18/2024 |
1.6.0-beta2 | 200 | 2/10/2024 |
1.6.0-beta1 | 249 | 2/6/2024 |
1.5.0 | 1,329 | 1/4/2024 |
1.4.5 | 439 | 12/26/2023 |
1.4.4 | 692 | 12/3/2023 |
1.4.3 | 436 | 11/28/2023 |
1.4.2 | 893 | 10/24/2023 |
1.4.1 | 536 | 10/9/2023 |
1.4.0 | 489 | 9/30/2023 |
1.3.2 | 519 | 9/20/2023 |
1.3.1 | 483 | 9/17/2023 |
1.3.0 | 427 | 9/17/2023 |
1.2.0 | 695 | 8/26/2023 |
1.1.1 | 484 | 8/25/2023 |
1.1.0 | 622 | 8/13/2023 |
1.0.0 | 528 | 8/12/2023 |
0.0.2 | 508 | 8/6/2023 |
0.0.1 | 480 | 8/4/2023 |