OKEx.Net 5.0.1

Suggested Alternatives

OKX.Api

There is a newer version of this package available.
See the version list below for details.
dotnet add package OKEx.Net --version 5.0.1
NuGet\Install-Package OKEx.Net -Version 5.0.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="OKEx.Net" Version="5.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add OKEx.Net --version 5.0.1
#r "nuget: OKEx.Net, 5.0.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 OKEx.Net as a Cake Addin
#addin nuget:?package=OKEx.Net&version=5.0.1

// Install OKEx.Net as a Cake Tool
#tool nuget:?package=OKEx.Net&version=5.0.1

Icon OKEx.Net

A .Net wrapper for the OKEx API as described on OKEx, including all features the API provides using clear and readable objects.

If you think something is broken, something is missing or have any questions, please open an Issue

CryptoExchange.Net

Implementation is build upon the CryptoExchange.Net library, make sure to also check out the documentation on that: docs

My CryptoExchange.Net implementations: <table> <tr> <td><a href="https://github.com/burakoner/OKEx.Net"><img src="https://github.com/burakoner/OKEx.Net/blob/master/Okex.Net/Icon/icon.png?raw=true"></a> <br /> <a href="https://github.com/burakoner/OKEx.Net">OKEx</a> </td> <td><a href="https://github.com/burakoner/Chiliz.Net"><img src="https://github.com/burakoner/Chiliz.Net/blob/master/Chiliz.Net/Icon/icon.png?raw=true"></a> <br /> <a href="https://github.com/burakoner/Chiliz.Net">Chiliz</a> </td> <td><a href="https://github.com/burakoner/BitMax.Net"><img src="https://github.com/burakoner/BitMax.Net/blob/master/BitMax.Net/Icon/icon.png?raw=true"></a> <br /> <a href="https://github.com/burakoner/BitMax.Net">BitMax</a> </td> <td><a href="https://github.com/burakoner/BtcTurk.Net"><img src="https://github.com/burakoner/BtcTurk.Net/blob/master/BtcTurk.Net/Icon/icon.png?raw=true"></a> <br /> <a href="https://github.com/burakoner/BtcTurk.Net">BtcTurk</a> </td> <td><a href="https://github.com/burakoner/Paribu.Net"><img src="https://github.com/burakoner/Paribu.Net/blob/master/Paribu.Net/Icon/icon.png?raw=true"></a> <br /> <a href="https://github.com/burakoner/Paribu.Net">Paribu</a> </td> <td><a href="https://github.com/burakoner/Thodex.Net"><img src="https://github.com/burakoner/Thodex.Net/blob/master/Thodex.Net/Icon/icon.png?raw=true"></a> <br /> <a href="https://github.com/burakoner/Thodex.Net">Thodex</a> </td> <td><a href="https://github.com/burakoner/Coinzo.Net"><img src="https://github.com/burakoner/Coinzo.Net/blob/master/Coinzo.Net/Icon/icon.png?raw=true"></a> <br /> <a href="https://github.com/burakoner/Coinzo.Net">Coinzo</a> </td> <td><a href="https://github.com/burakoner/Tatum.Net"><img src="https://github.com/burakoner/Tatum.Net/blob/master/Tatum.Net/Icon/icon.png?raw=true"></a> <br /> <a href="https://github.com/burakoner/Tatum.Net">Tatum</a> </td> </tr> </table>

JKorf CryptoExchange.Net implementations: <table> <tr> <td><a href="https://github.com/JKorf/Binance.Net"><img src="https://github.com/JKorf/Binance.Net/blob/master/Binance.Net/Icon/icon.png?raw=true"></a> <br /> <a href="https://github.com/JKorf/Binance.Net">Binance</a> </td> <td><a href="https://github.com/JKorf/Bitfinex.Net"><img src="https://github.com/JKorf/Bitfinex.Net/blob/master/Bitfinex.Net/Icon/icon.png?raw=true"></a> <br /> <a href="https://github.com/JKorf/Bitfinex.Net">Bitfinex</a> </td> <td><a href="https://github.com/JKorf/Bittrex.Net"><img src="https://github.com/JKorf/Bittrex.Net/blob/master/Bittrex.Net/Icon/icon.png?raw=true"></a> <br /> <a href="https://github.com/JKorf/Bittrex.Net">Bittrex</a> </td> <td><a href="https://github.com/JKorf/CoinEx.Net"><img src="https://github.com/JKorf/CoinEx.Net/blob/master/CoinEx.Net/Icon/icon.png?raw=true"></a> <br /> <a href="https://github.com/JKorf/CoinEx.Net">CoinEx</a> </td> <td><a href="https://github.com/JKorf/Huobi.Net"><img src="https://github.com/JKorf/Huobi.Net/blob/master/Huobi.Net/Icon/icon.png?raw=true"></a> <br /> <a href="https://github.com/JKorf/Huobi.Net">Huobi</a> </td> <td><a href="https://github.com/JKorf/Kraken.Net"><img src="https://github.com/JKorf/Kraken.Net/blob/master/Kraken.Net/Icon/icon.png?raw=true"></a> <br /> <a href="https://github.com/JKorf/Kraken.Net">Kraken</a> </td> <td><a href="https://github.com/JKorf/Kucoin.Net"><img src="https://github.com/JKorf/Kucoin.Net/blob/master/Kucoin.Net/Icon/icon.png?raw=true"></a> <br /> <a href="https://github.com/JKorf/Kucoin.Net">Kucoin</a> </td> </tr> </table>

Implementations from third parties: <table> <tr> <td><a href="https://github.com/ridicoulous/Bitmex.Net"><img src="https://github.com/ridicoulous/Bitmex.Net/blob/master/Bitmex.Net/Icon/icon.png"></a> <br /> <a href="https://github.com/ridicoulous/Bitmex.Net">Bitmex</a> </td> <td><a href="https://github.com/d-ugarov/Exante.Net"><img src="https://github.com/d-ugarov/Exante.Net/blob/master/Exante.Net/Icon/icon.png?raw=true"></a> <br /> <a href="https://github.com/d-ugarov/Exante.Net">Exante</a> </td> <td><a href="https://github.com/intelligences/HitBTC.Net"><img src="https://github.com/intelligences/HitBTC.Net/blob/master/src/HitBTC.Net/Icon/icon.png?raw=true"></a> <br /> <a href="https://github.com/intelligences/HitBTC.Net">HitBTC</a> </td> <td><a href="https://github.com/ridicoulous/LiquidQuoine.Net"><img src="https://github.com/ridicoulous/LiquidQuoine.Net/blob/master/Resources/icon.png?raw=true"></a> <br /> <a href="https://github.com/ridicoulous/LiquidQuoine.Net">Liquid</a> </td> <td><a href="https://github.com/EricGarnier/LiveCoin.Net"><img src="https://github.com/EricGarnier/LiveCoin.Net/blob/master/LiveCoin.Net/Icon/icon.png?raw=true"></a> <br /> <a href="https://github.com/EricGarnier/LiveCoin.Net">LiveCoin</a> </td> <td><a href="https://github.com/Zaliro/Switcheo.Net"><img src="https://github.com/Zaliro/Switcheo.Net/blob/master/Resources/switcheo-coin.png?raw=true"></a> <br /> <a href="https://github.com/Zaliro/Switcheo.Net">Switcheo</a> </td> </tr> </table>

Donations

Donations are greatly appreciated and a motivation to keep improving.

BTC: 33WbRKqt7wXARVdAJSu1G1x3QnbyPtZ2bH
ETH: 0x65b02db9b67b73f5f1e983ae10796f91ded57b64

Installation

Nuget version Nuget downloads Available on Nuget.

PM> Install-Package OKEx.Net

To get started with OKEx.Net first you will need to get the library itself. The easiest way to do this is to install the package into your project using NuGet. Using Visual Studio this can be done in two ways.

Using the package manager

In Visual Studio right click on your solution and select 'Manage NuGet Packages for solution...'. A screen will appear which initially shows the currently installed packages. In the top bit select 'Browse'. This will let you download net package from the NuGet server. In the search box type 'OKEx.Net' and hit enter. The OKEx.Net package should come up in the results. After selecting the package you can then on the right hand side select in which projects in your solution the package should install. After you've selected all project you wish to install and use OKEx.Net in hit 'Install' and the package will be downloaded and added to you projects.

Using the package manager console

In Visual Studio in the top menu select 'Tools' → 'NuGet Package Manager' → 'Package Manager Console'. This should open up a command line interface. On top of the interface there is a dropdown menu where you can select the Default Project. This is the project that OKEx.Net will be installed in. After selecting the correct project type Install-Package OKEx.Net in the command line interface. This should install the latest version of the package in your project.

After doing either of above steps you should now be ready to actually start using OKEx.Net.

Getting started

After installing it's time to actually use it. To get started we have to add the OKEx.Net namespace: using Okex.Net;.

OKEx.Net provides two clients to interact with the OKEx API. The OkexClient provides all rest API calls. The OkexSocketClient provides functions to interact with the websocket provided by the OKEx API. Both clients are disposable and as such can be used in a usingstatement.

Rest Api Examples

System » Public Endpoints

OkexClient api = new OkexClient();
var system_public_01 = api.SystemTime();
var system_public_02 = api.SystemStatus();

Funding » Private Endpoints

OkexClient api = new OkexClient();
api.SetApiCredentials("XXXXXXXX-API-KEY-XXXXXXXX", "XXXXXXXX-API-SECRET-XXXXXXXX", "XXXXXXXX-API-PASSPHRASE-XXXXXXXX");
var funding_public_01 = api.Funding_GetAllBalances();
var funding_public_02 = api.Funding_GetSubAccount("subaccountname");
var funding_public_03 = api.Funding_GetAssetValuation(OkexFundingAccountType.TotalAccountAssets, "USD");
var funding_public_04 = api.Funding_GetCurrencyBalance("BTC");
var funding_public_05 = api.Funding_Transfer("ETH", 0.1m, OkexFundingTransferAccountType.FundingAccount, OkexFundingTransferAccountType.Spot);
var funding_public_06 = api.Funding_Withdrawal("ETH", 1.1m, OkexFundingWithdrawalDestination.Others, "0x65b02db9b67b73f5f1e983ae10796f91ded57b64", "--fundpassword--", 0.01m);
var funding_public_07 = api.Funding_GetWithdrawalHistory();
var funding_public_08 = api.Funding_GetDepositHistoryByCurrency("BTC");
var funding_public_09 = api.Funding_GetBills();
var funding_public_10 = api.Funding_GetDepositAddress("BTC");
var funding_public_11 = api.Funding_GetDepositHistory();
var funding_public_12 = api.Funding_GetWithdrawalHistoryByCurrency("BTC");
var funding_public_13 = api.Funding_GetAllCurrencies();
var funding_public_14 = api.Funding_GetUserID();
var funding_public_15 = api.Funding_GetWithdrawalFees();
var funding_public_16 = api.Funding_GetWithdrawalFees("ETH");
var funding_public_17 = api.Funding_PiggyBank("ETH", 0.1m, OkexFundingPiggyBankActionSide.Purchase);
var funding_public_18 = api.Funding_PiggyBank("ETH", 0.1m, OkexFundingPiggyBankActionSide.Redempt);

Spot » Public Endpoints

OkexClient api = new OkexClient();
var spot_public_01 = api.Spot_GetTradingPairs();
var spot_public_02 = api.Spot_GetOrderBook("BTC-USDT");
var spot_public_03 = api.Spot_GetAllTickers();
var spot_public_04 = api.Spot_GetSymbolTicker("BTC-USDT");
var spot_public_05 = api.Spot_GetTrades("BTC-USDT");
var spot_public_06 = api.Spot_GetCandles("BTC-USDT", OkexSpotPeriod.OneHour);
var spot_public_07 = api.Spot_GetHistoricalCandles("BTC-USDT", OkexSpotPeriod.OneHour);

Spot » Private Endpoints

OkexClient api = new OkexClient();
api.SetApiCredentials("XXXXXXXX-API-KEY-XXXXXXXX", "XXXXXXXX-API-SECRET-XXXXXXXX", "XXXXXXXX-API-PASSPHRASE-XXXXXXXX");
var spot_place_order_01 = new OkexSpotPlaceOrder
{
    Symbol = "ETH-BTC",
    ClientOrderId = "ClientOrderId",
    Type = OkexSpotOrderType.Limit,
    Side = OkexSpotOrderSide.Sell,
    TimeInForce = OkexSpotTimeInForce.NormalOrder,
    Price = 0.1m,
    Size = 0.1m,
};
var spot_place_order_02 = new OkexSpotPlaceOrder
{
    Symbol = "ETH-BTC",
    ClientOrderId = "ClientOrderIx",
    Type = OkexSpotOrderType.Limit,
    Side = OkexSpotOrderSide.Sell,
    TimeInForce = OkexSpotTimeInForce.NormalOrder,
    Price = 0.2m,
    Size = 0.2m,
};
var spot_place_orders = new List<OkexSpotPlaceOrder>();
spot_place_orders.Add(spot_place_order_01);
spot_place_orders.Add(spot_place_order_02);

var spot_cancel_order_01 = new OkexSpotCancelOrder
{
    Symbol = "ETH-BTC",
    OrderIds = new List<string> { "1001", "1002", "1003", "1004", "1005" },
    ClientOrderIds = new List<string>()
};
var spot_cancel_order_02 = new OkexSpotCancelOrder
{
    Symbol = "ETH-BTC",
    OrderIds = new List<string> { },
    ClientOrderIds = new List<string> { "coid001", "coid002", "coid003", "coid004", "coid005" }
};
var spot_cancel_orders = new List<OkexSpotCancelOrder>();
spot_cancel_orders.Add(spot_cancel_order_01);
spot_cancel_orders.Add(spot_cancel_order_02);

var spot_private_01 = api.Spot_GetAllBalances();
var spot_private_02 = api.Spot_GetSymbolBalance("BTC");
var spot_private_03 = api.Spot_GetSymbolBalance("ETH");
var spot_private_04 = api.Spot_GetSymbolBalance("eth");
var spot_private_05 = api.Spot_GetSymbolBills("ETH");
var spot_private_06 = api.Spot_PlaceOrder(spot_place_order_01);
var spot_private_07 = api.Spot_PlaceOrder(spot_place_order_02);
var spot_private_08 = api.Spot_PlaceOrder("ETH-BTC", OkexSpotOrderSide.Sell, OkexSpotOrderType.Limit, OkexSpotTimeInForce.NormalOrder, price: 0.1m, size: 0.11m);
var spot_private_09 = api.Spot_PlaceOrder("ETH-BTC", OkexSpotOrderSide.Sell, OkexSpotOrderType.Limit, OkexSpotTimeInForce.NormalOrder, price: 0.1m, size: 0.11m, clientOrderId: "ClientOrderId");
var spot_private_10 = api.Spot_BatchPlaceOrders(spot_place_orders);
var spot_private_11 = api.Spot_CancelOrder("ETH-BTC", 4275473321519104);
var spot_private_12 = api.Spot_CancelOrder("ETH-BTC", clientOrderId: "clientorderid"); // It works: Case Insensitive
var spot_private_13 = api.Spot_CancelOrder("ETH-BTC", clientOrderId: "CLIENTORDERID"); // It works: Case Insensitive 
var spot_private_14 = api.Spot_BatchCancelOrders(spot_cancel_orders);
var spot_private_15 = api.Spot_ModifyOrder("ETH-BTC", orderId: 1001, newSize: 0.1m);
var spot_private_16 = api.Spot_BatchModifyOrders(new List<OkexSpotModifyOrder> { });
var spot_private_17 = api.Spot_GetAllOrders("ETH-BTC", OkexSpotOrderState.Canceled);
var spot_private_18 = api.Spot_GetAllOrders("ETH-BTC", OkexSpotOrderState.Complete, 2, after: 1);
var spot_private_19 = api.Spot_GetOpenOrders("ETH-BTC");
var spot_private_20 = api.Spot_GetOrderDetails("ETH-BTC", clientOrderId: "clientorderid");
var spot_private_21 = api.Spot_TradeFeeRates();
var spot_private_22 = api.Spot_GetTransactionDetails("ETH-BTC");
var spot_private_23 = api.Spot_AlgoPlaceOrder("ETH-BTC", OkexAlgoOrderType.TriggerOrder, OkexMarket.Spot, OkexSpotOrderSide.Buy, size: 0.1m, trigger_price: 0.0101m, trigger_algo_price: 0.0100m, trigger_algo_type: OkexAlgoPriceType.Limit);
var spot_private_24 = api.Spot_AlgoCancelOrder("ETH-BTC", OkexAlgoOrderType.TriggerOrder, new List<string> { "1001" });
var spot_private_25 = api.Spot_AlgoGetOrders("ETH-BTC", OkexAlgoOrderType.TriggerOrder);

Margin » Public Endpoints

OkexClient api = new OkexClient();
var margin_public_01 = api.Margin_GetMarkPrice("BTC-USDT");

Margin » Private Endpoints

OkexClient api = new OkexClient();
api.SetApiCredentials("XXXXXXXX-API-KEY-XXXXXXXX", "XXXXXXXX-API-SECRET-XXXXXXXX", "XXXXXXXX-API-PASSPHRASE-XXXXXXXX");
var margin_private_01 = api.Margin_GetAllBalances();
var margin_private_02 = api.Margin_GetSymbolBalance("BTC-USDT");
var margin_private_03 = api.Margin_GetSymbolBills("BTC-USDT");
var margin_private_04 = api.Margin_GetAccountSettings();
var margin_private_05 = api.Margin_GetAccountSettings("BTC-USDT");
var margin_private_06 = api.Margin_GetLoanHistory(OkexMarginLoanStatus.Outstanding);
var margin_private_07 = api.Margin_GetLoanHistory("BTC-USDT", OkexMarginLoanState.Complete);
var margin_private_08 = api.Margin_Loan("BTC-USDT", "BTC", 0.1m);
var margin_private_09 = api.Margin_Repayment("BTC-USDT", "BTC", 0.1m);
var margin_private_10 = api.Margin_PlaceOrder("BTC-USDT", OkexSpotOrderSide.Buy, OkexSpotOrderType.Limit);
var margin_private_11 = api.Margin_BatchPlaceOrders(new List<OkexSpotPlaceOrder> { });
var margin_private_12 = api.Margin_CancelOrder("BTC-USDT", 1001);
var margin_private_13 = api.Margin_BatchCancelOrders(new List<OkexSpotCancelOrder> { });
var margin_private_14 = api.Margin_GetAllOrders("BTC-USDT", OkexSpotOrderState.Complete);
var margin_private_15 = api.Margin_GetLeverage("BTC-USDT");
var margin_private_16 = api.Margin_SetLeverage("BTC-USDT", 10);
var margin_private_17 = api.Margin_GetOrderDetails("BTC-USDT", 1001);
var margin_private_18 = api.Margin_GetOpenOrders("BTC-USDT");
var margin_private_19 = api.Margin_GetTransactionDetails("BTC-USDT", 1001);
var margin_private_20 = api.Margin_AlgoPlaceOrder("BTC-USDT", OkexAlgoOrderType.TriggerOrder, OkexMarket.Margin, OkexSpotOrderSide.Buy, size: 0.1m, trigger_price: 0.0101m, trigger_algo_price: 0.0100m, trigger_algo_type: OkexAlgoPriceType.Limit);
var margin_private_21 = api.Margin_AlgoCancelOrder("BTC-USDT", OkexAlgoOrderType.TriggerOrder, new List<string> { "1001" });
var margin_private_22 = api.Margin_AlgoGetOrders("BTC-USDT", OkexAlgoOrderType.TriggerOrder);

Futures » Public Endpoints

OkexClient api = new OkexClient();
var futures_public_01 = api.Futures_GetTradingContracts();
var futures_public_02 = api.Futures_GetOrderBook("BTC-USDT-201225", 20);
var futures_public_03 = api.Futures_GetAllTickers();
var futures_public_04 = api.Futures_GetSymbolTicker("BTC-USDT-201225");
var futures_public_05 = api.Futures_GetTrades("BTC-USDT-201225");
var futures_public_06 = api.Futures_GetCandles("BTC-USDT-201225", OkexSpotPeriod.OneHour);
var futures_public_07 = api.Futures_GetIndices("BTC-USDT-201225");
var futures_public_08 = api.Futures_GetFiatExchangeRates();
var futures_public_09 = api.Futures_GetEstimatedPrice("BTC-USDT-201225");
var futures_public_10 = api.Futures_GetOpenInterests("BTC-USDT-201225");
var futures_public_11 = api.Futures_GetPriceLimit("BTC-USDT-201225");
var futures_public_12 = api.Futures_GetMarkPrice("BTC-USDT-201225");
var futures_public_13 = api.Futures_GetLiquidatedOrders("BTC-USDT-201225", OkexFuturesLiquidationStatus.FilledOrdersInTheRecent7Days);
var futures_public_14 = api.Futures_GetSettlementHistory("BTC-USDT-201225");
var futures_public_15 = api.Futures_GetHistoricalMarketData("BTC-USDT-201225", OkexSpotPeriod.OneHour);

Futures » Private Endpoints

OkexClient api = new OkexClient();
api.SetApiCredentials("XXXXXXXX-API-KEY-XXXXXXXX", "XXXXXXXX-API-SECRET-XXXXXXXX", "XXXXXXXX-API-PASSPHRASE-XXXXXXXX");
var futures_private_01 = api.Futures_GetPositions();
var futures_private_02 = api.Futures_GetPositions("BTC-USDT-201225");
var futures_private_03 = api.Futures_GetBalances();
var futures_private_04 = api.Futures_GetBalances("BTC-USDT");
var futures_private_05 = api.Futures_GetLeverage("BTC-USDT");
var futures_private_06 = api.Futures_SetLeverage(OkexFuturesMarginMode.Crossed, "BTC-USDT", 10);
var futures_private_07 = api.Futures_GetSymbolBills("ETH-USDT");
var futures_private_08 = api.Futures_PlaceOrder("ETH-USDT", OkexFuturesOrderType.OpenLong, 0.1m, OkexFuturesTimeInForce.NormalOrder);
var futures_private_09 = api.Futures_BatchPlaceOrders("ETH-USDT", new List<OkexFuturesPlaceOrder> { });
var futures_private_10 = api.Futures_ModifyOrder("ETH-USDT", orderId: 1001, newSize: 0.1m);
var futures_private_11 = api.Futures_BatchModifyOrders("ETH-USDT", new List<OkexFuturesModifyOrder> { });
var futures_private_12 = api.Futures_CancelOrder("ETH-USDT", 1001);
var futures_private_13 = api.Futures_BatchCancelOrders("ETH-USDT", new List<string> { }, new List<string> { });
var futures_private_14 = api.Futures_GetAllOrders("ETH-USDT", OkexFuturesOrderState.Complete, 2, after: 1);
var futures_private_15 = api.Futures_GetOrderDetails("ETH-USDT", clientOrderId: "clientorderid");
var futures_private_16 = api.Futures_GetTransactionDetails("ETH-USDT", orderId: 1001);
var futures_private_17 = api.Futures_SetAccountMode("ETH-USDT", OkexFuturesMarginMode.Crossed);
var futures_private_18 = api.Futures_GetTradeFeeRates("ETH-USDT");
var futures_private_19 = api.Futures_MarketCloseAll("ETH-USDT", OkexFuturesDirection.Long);
var futures_private_20 = api.Futures_CancelAll("ETH-USDT", OkexFuturesDirection.Long);
var futures_private_21 = api.Futures_GetHoldAmount("ETH-USDT");
var futures_private_22 = api.Futures_AlgoPlaceOrder("BTC-USDT", OkexFuturesOrderType.OpenLong, OkexAlgoOrderType.TriggerOrder, size: 0.1m, trigger_price: 0.0101m, trigger_algo_price: 0.0100m, trigger_algo_type: OkexAlgoPriceType.Limit);
var futures_private_23 = api.Margin_AlgoCancelOrder("BTC-USDT", OkexAlgoOrderType.TriggerOrder, new List<string> { "1001" });
var futures_private_24 = api.Margin_AlgoGetOrders("BTC-USDT", OkexAlgoOrderType.TriggerOrder);

Swap » Public Endpoints

OkexClient api = new OkexClient();
var swap_public_01 = api.Swap_GetTradingContracts();
var swap_public_02 = api.Swap_GetOrderBook("BTC-USDT-SWAP");
var swap_public_03 = api.Swap_GetAllTickers();
var swap_public_04 = api.Swap_GetSymbolTicker("BTC-USDT-SWAP");
var swap_public_05 = api.Swap_GetTrades("BTC-USDT-SWAP");
var swap_public_06 = api.Swap_GetCandles("BTC-USDT-SWAP", OkexSpotPeriod.OneHour);
var swap_public_07 = api.Swap_GetIndices("BTC-USDT-SWAP");
var swap_public_08 = api.Swap_GetFiatExchangeRates();
var swap_public_09 = api.Swap_GetOpenInterests("BTC-USDT-SWAP");
var swap_public_10 = api.Swap_GetPriceLimit("BTC-USDT-SWAP");
var swap_public_11 = api.Swap_GetLiquidatedOrders("BTC-USDT-SWAP", OkexSwapLiquidationStatus.FilledOrdersInTheRecent7Days);
var swap_public_12 = api.Swap_GetNextSettlementTime("BTC-USDT-SWAP");
var swap_public_13 = api.Swap_GetMarkPrice("BTC-USDT-SWAP");
var swap_public_14 = api.Swap_GetFundingRateHistory("BTC-USDT-SWAP");
var swap_public_15 = api.Swap_GetHistoricalMarketData("BTC-USDT-SWAP", OkexSpotPeriod.OneHour);

Swap » Private Endpoints

OkexClient api = new OkexClient();
api.SetApiCredentials("XXXXXXXX-API-KEY-XXXXXXXX", "XXXXXXXX-API-SECRET-XXXXXXXX", "XXXXXXXX-API-PASSPHRASE-XXXXXXXX");
var swap_private_01 = api.Swap_GetPositions();
var swap_private_02 = api.Swap_GetPositions("BTC-USDT-SWAP");
var swap_private_03 = api.Swap_GetBalances();
var swap_private_04 = api.Swap_GetBalances("BTC-USDT-SWAP");
var swap_private_05 = api.Swap_GetLeverage("BTC-USDT-SWAP");
var swap_private_06 = api.Swap_SetLeverage("BTC-USDT-SWAP", OkexSwapLeverageSide.CrossedMargin, 17);
var swap_private_07 = api.Swap_GetBills("BTC-USDT-SWAP");
var swap_private_08 = api.Swap_PlaceOrder("BTC-USDT-SWAP", OkexSwapOrderType.OpenLong, 0.1m);
var swap_private_09 = api.Swap_BatchPlaceOrders("BTC-USDT-SWAP", new List<OkexSwapPlaceOrder> { });
var swap_private_10 = api.Swap_CancelOrder("BTC-USDT-SWAP", orderId:1001);
var swap_private_11 = api.Swap_BatchCancelOrders("BTC-USDT-SWAP", new List<string> { }, new List<string> { });
var swap_private_12 = api.Swap_ModifyOrder("BTC-USDT-SWAP", orderId: 1001, newSize: 0.1m);
var swap_private_13 = api.Swap_BatchModifyOrders("BTC-USDT-SWAP", new List<OkexSwapModifyOrder> { });
var swap_private_14 = api.Swap_GetAllOrders("BTC-USDT-SWAP", OkexSwapOrderState.Complete);
var swap_private_15 = api.Swap_GetOrderDetails("BTC-USDT-SWAP", clientOrderId: "clientorderid");
var swap_private_16 = api.Swap_GetTransactionDetails("BTC-USDT-SWAP", orderId: 1001);
var swap_private_17 = api.Swap_GetHoldAmount("BTC-USDT-SWAP");
var swap_private_18 = api.Swap_GetTradeFeeRates("BTC-USDT-SWAP");
var swap_private_19 = api.Swap_MarketCloseAll("BTC-USDT-SWAP", OkexSwapDirection.Long);
var swap_private_20 = api.Swap_CancelAll("BTC-USDT-SWAP", OkexSwapDirection.Long);
var swap_private_21 = api.Swap_AlgoPlaceOrder("BTC-USDT", OkexSwapOrderType.OpenLong, OkexAlgoOrderType.TriggerOrder, size: 0.1m, trigger_price: 0.0101m, trigger_algo_price: 0.0100m, trigger_algo_type: OkexAlgoPriceType.Limit);
var swap_private_22 = api.Swap_AlgoCancelOrder("BTC-USDT", OkexAlgoOrderType.TriggerOrder, new List<string> { "1001" });
var swap_private_23 = api.Swap_AlgoGetOrders("BTC-USDT", OkexAlgoOrderType.TriggerOrder);

Contract » Public Endpoints

OkexClient api = new OkexClient();
var options_public_01 = api.Contract_GetLongShortRatio("BTC", OkexContractPeriod.FiveMinutes);
var options_public_02 = api.Contract_GetVolume("BTC", OkexContractPeriod.FiveMinutes);
var options_public_03 = api.Contract_GetTakerVolume("BTC", OkexContractPeriod.FiveMinutes);
var options_public_04 = api.Contract_GetSentiment("BTC", OkexContractPeriod.FiveMinutes);
var options_public_05 = api.Contract_GetMargin("BTC", OkexContractPeriod.FiveMinutes);

Options » Public Endpoints

OkexClient api = new OkexClient();
var options_public_01 = api.Options_GetUnderlyingList();
var options_public_02 = api.Options_GetInstruments("BTC-USD");
var options_public_03 = api.Options_GetMarketData("BTC-USD");
var options_public_04 = api.Options_GetMarketData("BTC-USD", "BTC-USD-201218-16250-C");
var options_public_05 = api.Options_GetOrderBook("BTC-USD-201218-16250-C");
var options_public_06 = api.Options_GetTrades("BTC-USD-201218-16250-C");
var options_public_07 = api.Options_GetTicker("BTC-USD-201218-16250-P");
var options_public_08 = api.Options_GetCandles("BTC-USD-201218-16250-P", OkexSpotPeriod.OneHour);
var options_public_09 = api.Options_GetSettlementHistory("BTC-USD");

Options » Private Endpoints

OkexClient api = new OkexClient();
api.SetApiCredentials("XXXXXXXX-API-KEY-XXXXXXXX", "XXXXXXXX-API-SECRET-XXXXXXXX", "XXXXXXXX-API-PASSPHRASE-XXXXXXXX");
var options_private_01 = api.Options_GetPositions("BTC-USD");
var options_private_02 = api.Options_GetBalances("BTC-USD");
var options_private_03 = api.Options_PlaceOrder("BTC-USD-201218-16250-C", OkexOptionsOrderSide.Buy, 20000m, 0.1m, OkexOptionsTimeInForce.NormalOrder);
var options_private_04 = api.Options_BatchPlaceOrders("BTC-USD", new List<OkexOptionsPlaceOrder> { });
var options_private_05 = api.Options_CancelOrder("BTC-USD", 1001);
var options_private_06 = api.Options_BatchCancelOrders("BTC-USD", new List<string> { }, new List<string> { });
var options_private_07 = api.Options_CancelAllOrders("BTC-USD");
var options_private_08 = api.Options_ModifyOrder("BTC-USD", orderId: 1001, newSize: 0.1m);
var options_private_09 = api.Options_BatchModifyOrders("BTC-USD", new List<OkexOptionsModifyOrder> { });
var options_private_10 = api.Options_GetOrderDetails("BTC-USD", 1001);
var options_private_11 = api.Options_GetAllOrders("BTC-USD", OkexOptionsOrderState.Complete);
var options_private_12 = api.Options_GetTransactionDetails("BTC-USD");
var options_private_13 = api.Options_GetBills("BTC-USD");
var options_private_14 = api.Options_GetTradeFeeRates("BTC-USD");

Websocket Api Examples

The OKEx.Net socket client provides several socket endpoint to which can be subscribed.

Core » Public Feeds

var ws = new OkexSocketClient();
ws.SetApiCredentials("XXXXXXXX-API-KEY-XXXXXXXX", "XXXXXXXX-API-SECRET-XXXXXXXX", "XXXXXXXX-API-PASSPHRASE-XXXXXXXX");
var ws_core_public_01 = ws.Auth_Login("XXXXXXXX-API-KEY-XXXXXXXX", "XXXXXXXX-API-SECRET-XXXXXXXX", "XXXXXXXX-API-PASSPHRASE-XXXXXXXX");
var ws_system_public_01 = ws.Ping();

Spot » Public Feeds

var spot_pairs = new List<string> { "BTC-USDT", "LTC-USDT", "ETH-USDT", "XRP-USDT", "BCH-USDT", "EOS-USDT", "OKB-USDT", "ETC-USDT", "TRX-USDT", "BSV-USDT", "DASH-USDT", "NEO-USDT", "QTUM-USDT", "XLM-USDT", "ADA-USDT", "AE-USDT", "BLOC-USDT", "EGT-USDT", "IOTA-USDT", "SC-USDT", "WXT-USDT", "ZEC-USDT", };

// WS Subscriptions
var subs = new List<UpdateSubscription>();

// WS Api Client
var ws = new OkexSocketClient();

// Ticker
foreach (var pair in spot_pairs)
{
    var subscription = ws.Spot_SubscribeToTicker(pair, (data) =>
    {
        if (data != null)
        {
            Console.WriteLine($"Ticker >> {data.Symbol} >> LP:{data.LastPrice} LQ:{data.LastQuantity} Bid:{data.BestBidPrice} BS:{data.BestBidSize} Ask:{data.BestAskPrice} AS:{data.BestAskSize} 24O:{data.Open24H} 24H:{data.High24H} 24L:{data.Low24H} 24BV:{data.BaseVolume24H} 24QV:{data.QuoteVolume24H} ");
        }
    });
    subs.Add(subscription.Data);
}

// Candlesticks
foreach (var pair in spot_pairs)
{
    var subscription = ws.Spot_SubscribeToCandlesticks(pair, OkexSpotPeriod.FiveMinutes, (data) =>
    {
        if (data != null)
        {
            Console.WriteLine($"Candle >> {data.Symbol} >> ST:{data.StartTime} O:{data.Open} H:{data.High} L:{data.Low} C:{data.Close} V:{data.Volume}");
        }
    });
    subs.Add(subscription.Data);
}

// Trades
foreach (var pair in spot_pairs)
{
    var subscription = ws.Spot_SubscribeToTrades(pair, (data) =>
    {
        if (data != null)
        {
            Console.WriteLine($"Trades >> {data.Symbol} >> ID:{data.TradeId} P:{data.Price} A:{data.Size} S:{data.Side} T:{data.Timestamp}");
        }
    });
    subs.Add(subscription.Data);
}

// Order Book
foreach (var pair in spot_pairs)
{
    var subscription = ws.Spot_SubscribeToOrderBook(pair, OkexOrderBookDepth.Depth400, (data) =>
    {
        if (data != null && data.Asks != null && data.Asks.Count() > 0 && data.Bids != null && data.Bids.Count() > 0)
        {
            Console.WriteLine($"Depth >> {data.Symbol} >> Ask P:{data.Asks.First().Price} Q:{data.Asks.First().Quantity} C:{data.Asks.First().OrdersCount} Bid P:{data.Bids.First().Price} Q:{data.Bids.First().Quantity} C:{data.Bids.First().OrdersCount} ");
        }
    });
    subs.Add(subscription.Data);
}

// Unsubscribe
foreach (var sub in subs)
{
    _ = ws.Unsubscribe(sub);
}

Spot » Private Feeds

// WS Api Client
var ws = new OkexSocketClient();
ws.SetApiCredentials("XXXXXXXX-API-KEY-XXXXXXXX", "XXXXXXXX-API-SECRET-XXXXXXXX", "XXXXXXXX-API-PASSPHRASE-XXXXXXXX");

// Balance
ws.Spot_SubscribeToBalance("ETH", (data) =>
{
    if (data != null)
    {
        Console.WriteLine($"Balance Update >> {data.Currency} >> Balance:{data.Balance} Available:{data.Available} Frozen:{data.Frozen}");
    }
});

// Orders
ws.Spot_SubscribeToOrders("ETH-USDT", (data) =>
{
    if (data != null)
    {
        Console.WriteLine($"Order Update >> {data.Symbol} >> Id:{data.OrderId} State:{data.State}");
    }
});

// Algo Orders
ws.Spot_SubscribeToAlgoOrders("ETH-USDT", (data) =>
{
    if (data != null)
    {
        Console.WriteLine($"Order Update >> {data.Symbol} >> Id:{data.OrderId} State:{data.Status}");
    }
});

Margin » Private Feeds

// WS Api Client
var ws = new OkexSocketClient();
ws.SetApiCredentials("XXXXXXXX-API-KEY-XXXXXXXX", "XXXXXXXX-API-SECRET-XXXXXXXX", "XXXXXXXX-API-PASSPHRASE-XXXXXXXX");

// Balance
ws.Margin_SubscribeToBalance("ETH-USDT", (data) =>
{
    if (data != null)
    {
        Console.WriteLine($"Balance Update >> {data.ProductId} >> MarginRatio:{data.MarginRatio} Liq:{data.LiquidationPrice}");
    }
});

Futures » Public Feeds

var futures_pairs = new List<string> { "BTC-USD-210625", "BTC-USD-210326", "BTC-USD-210101", "BTC-USD-201225", "LTC-USD-210625", "LTC-USD-210326", "LTC-USD-210101", "LTC-USD-201225", "ETH-USD-210326", "ETH-USD-210101", "ETH-USD-210625", "ETH-USD-201225", };

// WS Api Client
var ws = new OkexSocketClient();

// Contracts
ws.Futures_SubscribeToInstruments((data) =>
{
    if (data != null)
    {
        Console.WriteLine($"Contract >> {data.Symbol} >> BC:{data.BaseCurrency} QC:{data.QuoteCurrency}");
    }
});

// Ticker
foreach (var pair in futures_pairs)
{
    var subscription = ws.Futures_SubscribeToTicker(pair, (data) =>
    {
        if (data != null)
        {
            Console.WriteLine($"Ticker >> {data.Symbol} >> LP:{data.LastPrice} LQ:{data.LastQuantity} Bid:{data.BestBidPrice} BS:{data.BestBidSize} Ask:{data.BestAskPrice} AS:{data.BestAskSize} 24H:{data.High24H} 24L:{data.Low24H} 24BV:{data.BaseVolume24H} 24QV:{data.QuoteVolume24H} ");
        }
    });
    subs.Add(subscription.Data);
}

// Candlesticks
foreach (var pair in futures_pairs)
{
    var subscription = ws.Futures_SubscribeToCandlesticks(pair, OkexSpotPeriod.FiveMinutes, (data) =>
    {
        if (data != null)
        {
            Console.WriteLine($"Candle >> {data.Symbol} >> ST:{data.StartTime} O:{data.Open} H:{data.High} L:{data.Low} C:{data.Close} V:{data.BaseVolume}");
        }
    });
    subs.Add(subscription.Data);
}

// Trades
foreach (var pair in futures_pairs)
{
    var subscription = ws.Futures_SubscribeToTrades(pair, (data) =>
    {
        if (data != null)
        {
            Console.WriteLine($"Trades >> {pair} >> ID:{data.TradeId} P:{data.Price} Q:{data.Quantity} S:{data.Side} T:{data.Timestamp}");
        }
    });
    subs.Add(subscription.Data);
}

// Price Range
foreach (var pair in futures_pairs)
{
    var subscription = ws.Futures_SubscribeToPriceRange(pair, (data) =>
    {
        if (data != null)
        {
            Console.WriteLine($"Price Range >> {pair} >> H:{data.Highest} L:{data.Lowest} T:{data.Timestamp}");
        }
    });
    subs.Add(subscription.Data);
}

// Estimated Price
foreach (var pair in futures_pairs)
{
    var subscription = ws.Futures_SubscribeToEstimatedPrice(pair, (data) =>
    {
        if (data != null)
        {
            Console.WriteLine($"Estimated Price >> {pair} >> R:{data.Rate} T:{data.Timestamp}");
        }
    });
    subs.Add(subscription.Data);
}

// Order Book
foreach (var pair in futures_pairs)
{
    var subscription = ws.Futures_SubscribeToOrderBook(pair, OkexOrderBookDepth.Depth400, (data) =>
    {
        if (data != null && data.Asks != null && data.Asks.Count() > 0 && data.Bids != null && data.Bids.Count() > 0)
        {
            Console.WriteLine($"Depth >> {data.Symbol} >> Ask P:{data.Asks.First().Price} Q:{data.Asks.First().Quantity} C:{data.Asks.First().OrdersCount} Bid P:{data.Bids.First().Price} Q:{data.Bids.First().Quantity} C:{data.Bids.First().OrdersCount} ");
        }
    });
    subs.Add(subscription.Data);
}

// Mark Price
foreach (var pair in futures_pairs)
{
    var subscription = ws.Futures_SubscribeToMarkPrice(pair, (data) =>
    {
        if (data != null)
        {
            Console.WriteLine($"Trades >> {pair} >> P:{data.MarkPrice} T:{data.Timestamp}");
        }
    });
    subs.Add(subscription.Data);
}

Futures » Private Feeds

// WS Api Client
var ws = new OkexSocketClient();
ws.SetApiCredentials("XXXXXXXX-API-KEY-XXXXXXXX", "XXXXXXXX-API-SECRET-XXXXXXXX", "XXXXXXXX-API-PASSPHRASE-XXXXXXXX");

// Positions
ws.Futures_SubscribeToPositions("ETH-USDT", (data) =>
{
    if (data != null)
    {
        Console.WriteLine($"Positions Update >> {data.Symbol} >> RPNL:{data.RealisedPnl} LUPNL:{data.LongUnrealisedPnl} SUPNL:{data.ShortUnrealisedPnl}");
    }
});

// Balance
ws.Futures_SubscribeToBalance("ETH-USDT", (data) =>
{
    if (data != null)
    {
        Console.WriteLine($"Balance Update >> {data.Currency} >> Balance:{data.TotalAvailableBalance} Available:{data.MarginMode} Frozen:{data.MarginFrozen}");
    }
});

// Orders
ws.Futures_SubscribeToOrders("ETH-USDT", (data) =>
{
    if (data != null)
    {
        Console.WriteLine($"Order Update >> {data.Symbol} >> Id:{data.OrderId} State:{data.State}");
    }
});

// Algo Orders
ws.Futures_SubscribeToAlgoOrders("ETH-USDT", (data) =>
{
    if (data != null)
    {
        Console.WriteLine($"Order Update >> {data.Symbol} >> Id:{data.OrderId} State:{data.Status}");
    }
});

Swap » Public Feeds

var swap_pairs = new List<string> { "BTC-USD-SWAP", "LTC-USD-SWAP", "ETH-USD-SWAP", };

// WS Api Client
var ws = new OkexSocketClient();

// Ticker
foreach (var pair in swap_pairs)
{
    var subscription = ws.Swap_SubscribeToTicker(pair, (data) =>
    {
        if (data != null)
        {
            Console.WriteLine($"Ticker >> {data.Symbol} >> LP:{data.LastPrice} LQ:{data.LastQuantity} Bid:{data.BestBidPrice} BS:{data.BestBidSize} Ask:{data.BestAskPrice} AS:{data.BestAskSize} 24H:{data.High24H} 24L:{data.Low24H} 24BV:{data.BaseVolume24H} 24QV:{data.QuoteVolume24H} ");
        }
    });
    subs.Add(subscription.Data);
}

// Candlesticks
foreach (var pair in swap_pairs)
{
    var subscription = ws.Swap_SubscribeToCandlesticks(pair, OkexSpotPeriod.FiveMinutes, (data) =>
    {
        if (data != null)
        {
            Console.WriteLine($"Candle >> {data.Symbol} >> ST:{data.StartTime} O:{data.Open} H:{data.High} L:{data.Low} C:{data.Close} V:{data.BaseVolume}");
        }
    });
    subs.Add(subscription.Data);
}

// Trades
foreach (var pair in swap_pairs)
{
    var subscription = ws.Swap_SubscribeToTrades(pair, (data) =>
    {
        if (data != null)
        {
            Console.WriteLine($"Trades >> {pair} >> ID:{data.TradeId} P:{data.Price} Q:{data.Quantity} S:{data.Side} T:{data.Timestamp}");
        }
    });
    subs.Add(subscription.Data);
}

// Funding Rate
foreach (var pair in swap_pairs)
{
    var subscription = ws.Swap_SubscribeToFundingRate(pair, (data) =>
    {
        if (data != null)
        {
            Console.WriteLine($"Price Range >> {pair} >> RR:{data.RealizedRate} FR:{data.FundingRate} IR:{data.InterestRate}");
        }
    });
    subs.Add(subscription.Data);
}

// Price Range
foreach (var pair in swap_pairs)
{
    var subscription = ws.Swap_SubscribeToPriceRange(pair, (data) =>
    {
        if (data != null)
        {
            Console.WriteLine($"Price Range >> {pair} >> H:{data.Highest} L:{data.Lowest} T:{data.Timestamp}");
        }
    });
    subs.Add(subscription.Data);
}

// Order Book
foreach (var pair in swap_pairs)
{
    var subscription = ws.Swap_SubscribeToOrderBook(pair, OkexOrderBookDepth.Depth400, (data) =>
    {
        if (data != null && data.Asks != null && data.Asks.Count() > 0 && data.Bids != null && data.Bids.Count() > 0)
        {
            Console.WriteLine($"Depth >> {data.Symbol} >> Ask P:{data.Asks.First().Price} Q:{data.Asks.First().Quantity} C:{data.Asks.First().OrdersCount} Bid P:{data.Bids.First().Price} Q:{data.Bids.First().Quantity} C:{data.Bids.First().OrdersCount} ");
        }
    });
    subs.Add(subscription.Data);
}

// Mark Price
foreach (var pair in swap_pairs)
{
    var subscription = ws.Swap_SubscribeToMarkPrice(pair, (data) =>
    {
        if (data != null)
        {
            Console.WriteLine($"Trades >> {pair} >> P:{data.MarkPrice} T:{data.Timestamp}");
        }
    });
    subs.Add(subscription.Data);
}

Swap » Private Feeds

// WS Api Client
var ws = new OkexSocketClient();
ws.SetApiCredentials("XXXXXXXX-API-KEY-XXXXXXXX", "XXXXXXXX-API-SECRET-XXXXXXXX", "XXXXXXXX-API-PASSPHRASE-XXXXXXXX");

// Positions
ws.Swap_SubscribeToPositions("BTC-USD-SWAP", (data) =>
{
    if (data != null)
    {
        Console.WriteLine($"Positions Update >> BTC-USD-SWAP >> MM:{data.MarginMode} T:{data.Timestamp}");
    }
});

// Balance
ws.Swap_SubscribeToBalance("BTC-USD-SWAP", (data) =>
{
    if (data != null)
    {
        Console.WriteLine($"Balance Update >> BTC-USD-SWAP >> Balance:{data.TotalAvailableBalance} Available:{data.MarginMode} Frozen:{data.MarginFrozen}");
    }
});

// Orders
ws.Swap_SubscribeToOrders("BTC-USD-SWAP", (data) =>
{
    if (data != null)
    {
        Console.WriteLine($"Order Update >> {data.Symbol} >> Id:{data.OrderId} State:{data.State}");
    }
});

// Algo Orders
ws.Swap_SubscribeToAlgoOrders("BTC-USD-SWAP", (data) =>
{
    if (data != null)
    {
        Console.WriteLine($"Order Update >> {data.Symbol} >> Id:{data.OrderId} State:{data.Status}");
    }
});

Options » Public Feeds

// WS Api Client
var ws = new OkexSocketClient();

// Contracts
ws.Options_SubscribeToContracts("BTC-USD", (data) =>
{
    if (data != null)
    {
        Console.WriteLine($"Contract >> {data.Instrument} >> C:{data.Category} U:{data.Underlying}");
    }
});

// MarketData
ws.Options_SubscribeToMarketData("BTC-USD", (data) =>
{
    if (data != null)
    {
        Console.WriteLine($"Ticker >> {data.Instrument} >> LP:{data.Last} Bid:{data.BestBid} BS:{data.BidVolume} Ask:{data.BestAsk} AS:{data.AskVolume} 24H:{data.High24H} 24L:{data.Low24H}");
    }
});

// Candlesticks
ws.Options_SubscribeToCandlesticks("BTC-USD-201218-16250-C", OkexSpotPeriod.FiveMinutes, (data) =>
{
    if (data != null)
    {
        Console.WriteLine($"Candle >> {data.Symbol} >> ST:{data.StartTime} O:{data.Open} H:{data.High} L:{data.Low} C:{data.Close} V:{data.BaseVolume}");
    }
});

// Trades
ws.Options_SubscribeToTrades("BTC-USD-201218-16250-C", (data) =>
{
    if (data != null)
    {
        Console.WriteLine($"Trades >> ID:{data.TradeId} P:{data.Price} Q:{data.Quantity} S:{data.Side} T:{data.Timestamp}");
    }
});

// Ticker
ws.Options_SubscribeToTicker("BTC-USD-201218-16250-C", (data) =>
{
    if (data != null)
    {
        Console.WriteLine($"Ticker >> {data.Symbol} >> LP:{data.LastPrice} LQ:{data.LastQuantity} Bid:{data.BestBidPrice} BS:{data.BestBidSize} Ask:{data.BestAskPrice} AS:{data.BestAskSize} 24H:{data.High24H} 24L:{data.Low24H}");
    }
});

// Order Book
ws.Options_SubscribeToOrderBook("BTC-USD-201218-16250-C", OkexOrderBookDepth.Depth400, (data) =>
{
    if (data != null && data.Asks != null && data.Asks.Count() > 0 && data.Bids != null && data.Bids.Count() > 0)
    {
        Console.WriteLine($"Depth >> {data.Symbol} >> Ask P:{data.Asks.First().Price} Q:{data.Asks.First().Quantity} C:{data.Asks.First().OrdersCount} Bid P:{data.Bids.First().Price} Q:{data.Bids.First().Quantity} C:{data.Bids.First().OrdersCount} ");
    }
});

Options » Private Feeds

// WS Api Client
var ws = new OkexSocketClient();
ws.SetApiCredentials("XXXXXXXX-API-KEY-XXXXXXXX", "XXXXXXXX-API-SECRET-XXXXXXXX", "XXXXXXXX-API-PASSPHRASE-XXXXXXXX");

// Positions
ws.Options_SubscribeToPositions("BTC-USD", (data) =>
{
    if (data != null)
    {
        Console.WriteLine($"Positions Update >> {data.Instrument} >> RPNL:{data.RealizedPnl} UPNL:{data.UnrealizedPnl}");
    }
});

// Balance
ws.Options_SubscribeToBalance("BTC-USD", (data) =>
{
    if (data != null)
    {
        Console.WriteLine($"Balance Update >> {data.Currency} >> Balance:{data.TotalAvailableBalance} Status:{data.AccountStatus}");
    }
});

// Orders
ws.Options_SubscribeToOrders("BTC-USD", (data) =>
{
    if (data != null)
    {
        Console.WriteLine($"Order Update >> {data.Instrument} >> Id:{data.OrderId} State:{data.State}");
    }
});

Index » Public Feeds

// WS Api Client
var ws = new OkexSocketClient();

// Ticker
ws.Index_SubscribeToTicker("BTC-USD", (data) =>
{
    if (data != null)
    {
        Console.WriteLine($"Ticker >> {data.Symbol} >> 24O:{data.Open24H} 24H:{data.High24H} 24L:{data.Low24H}");
    }
});

// Candlesticks
ws.Index_SubscribeToCandlesticks("BTC-USD", OkexSpotPeriod.FiveMinutes, (data) =>
{
    if (data != null)
    {
        Console.WriteLine($"Candle >> {data.Symbol} >> ST:{data.StartTime} O:{data.Open} H:{data.High} L:{data.Low} C:{data.Close} V:{data.BaseVolume}");
    }
});

Release Notes

Please refer to <a href="https://github.com/burakoner/OKEx.Net/blob/master/VERSION.md">VERSION</a> file.

Product 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. 
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
5.3.4 2,998 5/6/2023
5.3.3 503 4/18/2023
5.3.2 308 4/17/2023
5.3.1 1,255 2/20/2023
5.3.0 7,383 12/9/2022
5.2.6 1,221 10/13/2022
5.2.5 615 8/21/2022
5.2.4 574 8/21/2022
5.2.0 1,667 1/30/2022
5.1.5 659 1/8/2022
5.1.3 705 12/7/2021
5.1.2 3,515 11/26/2021
5.1.1 2,387 11/26/2021
5.1.0 2,868 11/25/2021
5.0.6 451 11/16/2021
5.0.5 569 11/2/2021
5.0.4 532 10/22/2021
5.0.3 479 10/16/2021
5.0.2 547 10/8/2021
5.0.1 484 10/6/2021
2.5.0 574 9/18/2021
2.1.0 1,963 3/31/2021
2.0.2 532 2/23/2021
2.0.1 553 2/2/2021
2.0.0 531 1/17/2021
1.6.0 567 1/16/2021
1.5.9 492 1/15/2021
1.5.8 510 1/12/2021
1.5.7 503 12/28/2020
1.5.6 555 12/22/2020
1.4.3 598 12/20/2020
1.4.1 534 12/16/2020
1.4.0 557 12/15/2020
1.3.1 539 12/13/2020
1.3.0 545 12/13/2020
1.2.4 584 12/12/2020
1.2.3 1,027 11/8/2020
1.2.2 534 11/8/2020
1.2.1 568 11/8/2020
1.2.0 614 9/21/2020
1.1.3 5,304 3/4/2020
1.1.2 681 2/21/2020
1.1.1 628 2/16/2020
1.1.0 771 2/15/2020
1.0.6 675 2/15/2020
1.0.5 591 2/2/2020
1.0.4 616 1/31/2020
1.0.2 689 1/28/2020
1.0.0 698 1/26/2020

Version 5.0.1 - 07 Oct 2021
- Switched to OKEx V5 API