diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/ISharedClient.cs b/CryptoExchange.Net/SharedApis/Legacy/ISharedClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/ISharedClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/ISharedClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Operations/CancelFuturesOrderSocketOptions.cs b/CryptoExchange.Net/SharedApis/Legacy/Options/CancelFuturesOrderSocketOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Operations/CancelFuturesOrderSocketOptions.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Options/CancelFuturesOrderSocketOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Operations/CancelSpotOrderSocketOptions.cs b/CryptoExchange.Net/SharedApis/Legacy/Options/CancelSpotOrderSocketOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Operations/CancelSpotOrderSocketOptions.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Options/CancelSpotOrderSocketOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Operations/PlaceFuturesOrderSocketOptions.cs b/CryptoExchange.Net/SharedApis/Legacy/Options/PlaceFuturesOrderSocketOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Operations/PlaceFuturesOrderSocketOptions.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Options/PlaceFuturesOrderSocketOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Operations/PlaceSpotOrderSocketOptions.cs b/CryptoExchange.Net/SharedApis/Legacy/Options/PlaceSpotOrderSocketOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Operations/PlaceSpotOrderSocketOptions.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Options/PlaceSpotOrderSocketOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IFundingRateRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IFundingRateRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IFundingRateRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IFundingRateRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IFuturesOrderClientIdRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IFuturesOrderClientIdRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IFuturesOrderClientIdRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IFuturesOrderClientIdRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IFuturesOrderRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IFuturesOrderRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IFuturesOrderRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IFuturesOrderRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IFuturesSymbolRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IFuturesSymbolRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IFuturesSymbolRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IFuturesSymbolRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IFuturesTickerRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IFuturesTickerRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IFuturesTickerRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IFuturesTickerRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IFuturesTpSlRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IFuturesTpSlRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IFuturesTpSlRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IFuturesTpSlRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IFuturesTriggerOrderRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IFuturesTriggerOrderRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IFuturesTriggerOrderRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IFuturesTriggerOrderRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IIndexPriceKlineRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IIndexPriceKlineRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IIndexPriceKlineRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IIndexPriceKlineRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/ILeverageRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/ILeverageRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/ILeverageRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/ILeverageRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IMarkPriceKlineRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IMarkPriceKlineRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IMarkPriceKlineRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IMarkPriceKlineRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IOpenInterestRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IOpenInterestRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IOpenInterestRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IOpenInterestRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IPositionHistoryRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IPositionHistoryRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IPositionHistoryRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IPositionHistoryRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IPositionModeRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IPositionModeRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Futures/IPositionModeRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/Futures/IPositionModeRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/IAssetsRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/IAssetsRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/IAssetsRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/IAssetsRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/IBalanceRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/IBalanceRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/IBalanceRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/IBalanceRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/IBookTickerRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/IBookTickerRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/IBookTickerRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/IBookTickerRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/IDepositRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/IDepositRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/IDepositRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/IDepositRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/IFeeRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/IFeeRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/IFeeRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/IFeeRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/IKlineRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/IKlineRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/IKlineRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/IKlineRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/IOrderBookRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/IOrderBookRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/IOrderBookRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/IOrderBookRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/IRecentTradeRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/IRecentTradeRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/IRecentTradeRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/IRecentTradeRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/ITradeHistoryRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/ITradeHistoryRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/ITradeHistoryRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/ITradeHistoryRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/ITransferRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/ITransferRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/ITransferRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/ITransferRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/IWithdrawRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/IWithdrawRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/IWithdrawRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/IWithdrawRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/IWithdrawalRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/IWithdrawalRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/IWithdrawalRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/IWithdrawalRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Spot/ISpotOrderClientIdRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/Spot/ISpotOrderClientIdRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Spot/ISpotOrderClientIdRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/Spot/ISpotOrderClientIdRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Spot/ISpotOrderRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/Spot/ISpotOrderRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Spot/ISpotOrderRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/Spot/ISpotOrderRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Spot/ISpotSymbolRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/Spot/ISpotSymbolRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Spot/ISpotSymbolRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/Spot/ISpotSymbolRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Spot/ISpotTickerRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/Spot/ISpotTickerRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Spot/ISpotTickerRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/Spot/ISpotTickerRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Spot/ISpotTriggerOrderRestClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Rest/Spot/ISpotTriggerOrderRestClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Rest/Spot/ISpotTriggerOrderRestClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Rest/Spot/ISpotTriggerOrderRestClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/Futures/IFuturesOrderManagementSocketClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Socket/Futures/IFuturesOrderManagementSocketClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/Futures/IFuturesOrderManagementSocketClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Socket/Futures/IFuturesOrderManagementSocketClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/Futures/IFuturesOrderSocketClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Socket/Futures/IFuturesOrderSocketClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/Futures/IFuturesOrderSocketClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Socket/Futures/IFuturesOrderSocketClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/Futures/IPositionSocketClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Socket/Futures/IPositionSocketClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/Futures/IPositionSocketClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Socket/Futures/IPositionSocketClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/IBalanceSocketClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Socket/IBalanceSocketClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/IBalanceSocketClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Socket/IBalanceSocketClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/IBookTickerSocketClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Socket/IBookTickerSocketClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/IBookTickerSocketClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Socket/IBookTickerSocketClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/IKlineSocketClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Socket/IKlineSocketClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/IKlineSocketClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Socket/IKlineSocketClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/IOrderBookSocketClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Socket/IOrderBookSocketClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/IOrderBookSocketClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Socket/IOrderBookSocketClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/ITickerSocketClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Socket/ITickerSocketClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/ITickerSocketClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Socket/ITickerSocketClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/ITickersSocketClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Socket/ITickersSocketClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/ITickersSocketClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Socket/ITickersSocketClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/ITradeSocketClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Socket/ITradeSocketClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/ITradeSocketClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Socket/ITradeSocketClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/IUserTradeSocketClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Socket/IUserTradeSocketClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/IUserTradeSocketClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Socket/IUserTradeSocketClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/Spot/ISpotOrderManagementSocketClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Socket/Spot/ISpotOrderManagementSocketClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/Spot/ISpotOrderManagementSocketClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Socket/Spot/ISpotOrderManagementSocketClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/Spot/ISpotOrderSocketClient.cs b/CryptoExchange.Net/SharedApis/Legacy/Socket/Spot/ISpotOrderSocketClient.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/Legacy/Socket/Spot/ISpotOrderSocketClient.cs
rename to CryptoExchange.Net/SharedApis/Legacy/Socket/Spot/ISpotOrderSocketClient.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Requests/CancelAllOrdersRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/CancelAllOrdersRequest.cs
new file mode 100644
index 00000000..15431d5d
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/Models/Requests/CancelAllOrdersRequest.cs
@@ -0,0 +1,16 @@
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Request to cancel all currently open orders
+ ///
+ public record CancelAllOrdersRequest : SharedRequest
+ {
+ ///
+ /// ctor
+ ///
+ /// Exchange specific parameters
+ public CancelAllOrdersRequest(ExchangeParameters? exchangeParameters = null) : base(null, exchangeParameters)
+ {
+ }
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/Models/Requests/CancelAllSymbolOrdersRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/CancelAllSymbolOrdersRequest.cs
new file mode 100644
index 00000000..46d04ee4
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/Models/Requests/CancelAllSymbolOrdersRequest.cs
@@ -0,0 +1,18 @@
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Request to cancel all currently open orders
+ ///
+ public record CancelAllSymbolOrdersRequest : SharedSymbolRequest
+ {
+ ///
+ /// ctor
+ ///
+ /// Symbol the order is on
+ /// Exchange specific parameters
+ public CancelAllSymbolOrdersRequest(SharedSymbol symbol, ExchangeParameters? exchangeParameters = null)
+ : base(symbol, exchangeParameters)
+ {
+ }
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/CancelOrderRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/CancelOrderRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/CancelOrderRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/CancelOrderRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/CancelTpSlRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/CancelTpSlRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/CancelTpSlRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/CancelTpSlRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/ClosePositionRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/ClosePositionRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/ClosePositionRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/ClosePositionRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Requests/EditFuturesOrderRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/EditFuturesOrderRequest.cs
new file mode 100644
index 00000000..493fc908
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/Models/Requests/EditFuturesOrderRequest.cs
@@ -0,0 +1,41 @@
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Request to place a new Futures order
+ ///
+ public record EditFuturesOrderRequest : SharedSymbolRequest
+ {
+ ///
+ /// Order id
+ ///
+ public string OrderId { get; set; }
+ ///
+ /// Quantity of the order
+ ///
+ public SharedQuantity? Quantity { get; set; }
+ ///
+ /// Price of the order
+ ///
+ public decimal? Price { get; set; }
+
+ ///
+ /// ctor
+ ///
+ /// Symbol to place the order on
+ /// The id of the order to edit
+ /// New quantity of the order
+ /// New price of the order
+ /// Exchange specific parameters
+ public EditFuturesOrderRequest(
+ SharedSymbol symbol,
+ string orderId,
+ SharedQuantity? quantity = null,
+ decimal? price = null,
+ ExchangeParameters? exchangeParameters = null) : base(symbol, exchangeParameters)
+ {
+ OrderId = orderId;
+ Quantity = quantity;
+ Price = price;
+ }
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/Models/Requests/EditSpotOrderRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/EditSpotOrderRequest.cs
new file mode 100644
index 00000000..d21e7f4d
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/Models/Requests/EditSpotOrderRequest.cs
@@ -0,0 +1,41 @@
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Request to place a new spot order
+ ///
+ public record EditSpotOrderRequest : SharedSymbolRequest
+ {
+ ///
+ /// Order id
+ ///
+ public string OrderId { get; set; }
+ ///
+ /// Quantity of the order
+ ///
+ public SharedQuantity? Quantity { get; set; }
+ ///
+ /// Price of the order
+ ///
+ public decimal? Price { get; set; }
+
+ ///
+ /// ctor
+ ///
+ /// Symbol to place the order on
+ /// The id of the order to edit
+ /// New quantity of the order
+ /// New price of the order
+ /// Exchange specific parameters
+ public EditSpotOrderRequest(
+ SharedSymbol symbol,
+ string orderId,
+ SharedQuantity? quantity = null,
+ decimal? price = null,
+ ExchangeParameters? exchangeParameters = null) : base(symbol, exchangeParameters)
+ {
+ OrderId = orderId;
+ Quantity = quantity;
+ Price = price;
+ }
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetAssetRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetAssetRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetAssetRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetAssetRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetAssetsRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetAssetsRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetAssetsRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetAssetsRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetBalancesRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetBalancesRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetBalancesRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetBalancesRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetBookTickerRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetBookTickerRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetBookTickerRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetBookTickerRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetClosedOrdersRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetClosedOrdersRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetClosedOrdersRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetClosedOrdersRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetDepositAddressesRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetDepositAddressesRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetDepositAddressesRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetDepositAddressesRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetDepositsRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetDepositsRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetDepositsRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetDepositsRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetFeeRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetFeeRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetFeeRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetFeeRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetFundingRateHistoryRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetFundingRateHistoryRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetFundingRateHistoryRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetFundingRateHistoryRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Requests/GetIndexPriceRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetIndexPriceRequest.cs
new file mode 100644
index 00000000..075e5725
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/Models/Requests/GetIndexPriceRequest.cs
@@ -0,0 +1,17 @@
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Request to retrieve the current index price for a symbol
+ ///
+ public record GetIndexPriceRequest : SharedSymbolRequest
+ {
+ ///
+ /// ctor
+ ///
+ /// Symbol to retrieve the index price for
+ /// Exchange specific parameters
+ public GetIndexPriceRequest(SharedSymbol symbol, ExchangeParameters? exchangeParameters = null) : base(symbol, exchangeParameters)
+ {
+ }
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/Models/Requests/GetIndexPricesRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetIndexPricesRequest.cs
new file mode 100644
index 00000000..71ee4c5e
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/Models/Requests/GetIndexPricesRequest.cs
@@ -0,0 +1,17 @@
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Request to retrieve the current index prices for all symbols
+ ///
+ public record GetIndexPricesRequest : SharedRequest
+ {
+ ///
+ /// ctor
+ ///
+ /// Trading mode
+ /// Exchange specific parameters
+ public GetIndexPricesRequest(TradingMode? tradingMode = null, ExchangeParameters? exchangeParameters = null) : base(tradingMode, exchangeParameters)
+ {
+ }
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetKlinesRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetKlinesRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetKlinesRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetKlinesRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetLeverageRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetLeverageRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetLeverageRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetLeverageRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Requests/GetMarkPriceRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetMarkPriceRequest.cs
new file mode 100644
index 00000000..32fe19c4
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/Models/Requests/GetMarkPriceRequest.cs
@@ -0,0 +1,17 @@
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Request to retrieve the current mark price for a symbol
+ ///
+ public record GetMarkPriceRequest : SharedSymbolRequest
+ {
+ ///
+ /// ctor
+ ///
+ /// Symbol to retrieve the mark price for
+ /// Exchange specific parameters
+ public GetMarkPriceRequest(SharedSymbol symbol, ExchangeParameters? exchangeParameters = null) : base(symbol, exchangeParameters)
+ {
+ }
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/Models/Requests/GetMarkPricesRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetMarkPricesRequest.cs
new file mode 100644
index 00000000..79a8638c
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/Models/Requests/GetMarkPricesRequest.cs
@@ -0,0 +1,17 @@
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Request to retrieve the current mark prices for all symbols
+ ///
+ public record GetMarkPricesRequest : SharedRequest
+ {
+ ///
+ /// ctor
+ ///
+ /// Trading mode
+ /// Exchange specific parameters
+ public GetMarkPricesRequest(TradingMode? tradingMode = null, ExchangeParameters? exchangeParameters = null) : base(tradingMode, exchangeParameters)
+ {
+ }
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetOpenInterestRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetOpenInterestRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetOpenInterestRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetOpenInterestRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetOpenOrdersRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetOpenOrdersRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetOpenOrdersRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetOpenOrdersRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetOrderBookRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetOrderBookRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetOrderBookRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetOrderBookRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetOrderRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetOrderRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetOrderRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetOrderRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetOrderTradesRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetOrderTradesRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetOrderTradesRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetOrderTradesRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetPositionHistoryRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetPositionHistoryRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetPositionHistoryRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetPositionHistoryRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetPositionModeRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetPositionModeRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetPositionModeRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetPositionModeRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetPositionsRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetPositionsRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetPositionsRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetPositionsRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetRecentTradesRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetRecentTradesRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetRecentTradesRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetRecentTradesRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetSymbolsRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetSymbolsRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetSymbolsRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetSymbolsRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetTickerRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetTickerRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetTickerRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetTickerRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetTickersRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetTickersRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetTickersRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetTickersRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetTradeHistoryRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetTradeHistoryRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetTradeHistoryRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetTradeHistoryRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetUserTradesRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetUserTradesRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetUserTradesRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetUserTradesRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/GetWithdrawalsRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/GetWithdrawalsRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/GetWithdrawalsRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/GetWithdrawalsRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/PlaceFuturesOrderRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/PlaceFuturesOrderRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/PlaceFuturesOrderRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/PlaceFuturesOrderRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/PlaceFuturesTriggerOrderRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/PlaceFuturesTriggerOrderRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/PlaceFuturesTriggerOrderRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/PlaceFuturesTriggerOrderRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/PlaceSpotOrderRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/PlaceSpotOrderRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/PlaceSpotOrderRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/PlaceSpotOrderRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/PlaceSpotTriggerOrderRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/PlaceSpotTriggerOrderRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/PlaceSpotTriggerOrderRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/PlaceSpotTriggerOrderRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/SetLeverageRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/SetLeverageRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/SetLeverageRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/SetLeverageRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/SetPositionModeRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/SetPositionModeRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/SetPositionModeRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/SetPositionModeRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/SetTpSlRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/SetTpSlRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/SetTpSlRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/SetTpSlRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Socket/SubscribeAllTickersRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/SubscribeAllTickersRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Socket/SubscribeAllTickersRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/SubscribeAllTickersRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Socket/SubscribeBalancesRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/SubscribeBalancesRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Socket/SubscribeBalancesRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/SubscribeBalancesRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Socket/SubscribeBookTickerRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/SubscribeBookTickerRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Socket/SubscribeBookTickerRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/SubscribeBookTickerRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Socket/SubscribeFuturesOrderRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/SubscribeFuturesOrderRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Socket/SubscribeFuturesOrderRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/SubscribeFuturesOrderRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Socket/SubscribeKlineRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/SubscribeKlineRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Socket/SubscribeKlineRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/SubscribeKlineRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Socket/SubscribeOrderBookRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/SubscribeOrderBookRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Socket/SubscribeOrderBookRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/SubscribeOrderBookRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Socket/SubscribePositionRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/SubscribePositionRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Socket/SubscribePositionRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/SubscribePositionRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Socket/SubscribeSpotOrderRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/SubscribeSpotOrderRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Socket/SubscribeSpotOrderRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/SubscribeSpotOrderRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Socket/SubscribeTickerRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/SubscribeTickerRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Socket/SubscribeTickerRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/SubscribeTickerRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Socket/SubscribeTradeRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/SubscribeTradeRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Socket/SubscribeTradeRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/SubscribeTradeRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Socket/SubscribeUserTradeRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/SubscribeUserTradeRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Socket/SubscribeUserTradeRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/SubscribeUserTradeRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/TransferRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/TransferRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/TransferRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/TransferRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Rest/WithdrawRequest.cs b/CryptoExchange.Net/SharedApis/Models/Requests/WithdrawRequest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Rest/WithdrawRequest.cs
rename to CryptoExchange.Net/SharedApis/Models/Requests/WithdrawRequest.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedAsset.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedAsset.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedAsset.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedAsset.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedBalance.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedBalance.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedBalance.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedBalance.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedBookTicker.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedBookTicker.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedBookTicker.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedBookTicker.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedDeposit.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedDeposit.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedDeposit.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedDeposit.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedDepositAddress.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedDepositAddress.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedDepositAddress.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedDepositAddress.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedFee.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedFee.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedFee.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedFee.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedFundingRate.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedFundingRate.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedFundingRate.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedFundingRate.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesKline.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedFuturesKline.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesKline.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedFuturesKline.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesOrder.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedFuturesOrder.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesOrder.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedFuturesOrder.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesOrderUpdate.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedFuturesOrderUpdate.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesOrderUpdate.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedFuturesOrderUpdate.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesSymbol.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedFuturesSymbol.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesSymbol.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedFuturesSymbol.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesTicker.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedFuturesTicker.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesTicker.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedFuturesTicker.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesTriggerOrder.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedFuturesTriggerOrder.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedFuturesTriggerOrder.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedFuturesTriggerOrder.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedId.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedId.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedId.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedId.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Responses/SharedIndexPrice.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedIndexPrice.cs
new file mode 100644
index 00000000..157b5415
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/Models/Responses/SharedIndexPrice.cs
@@ -0,0 +1,26 @@
+using System;
+using System.Diagnostics;
+
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Index price
+ ///
+ [DebuggerDisplay("{Symbol,nq}: {IndexPrice}")]
+ public record SharedIndexPrice : SharedSymbolModel
+ {
+ ///
+ /// Current index price
+ ///
+ public decimal IndexPrice { get; set; }
+
+ ///
+ /// ctor
+ ///
+ public SharedIndexPrice(SharedSymbol? sharedSymbol, string symbol, decimal indexPrice)
+ : base(sharedSymbol, symbol)
+ {
+ IndexPrice = indexPrice;
+ }
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedKline.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedKline.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedKline.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedKline.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedLeverage.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedLeverage.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedLeverage.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedLeverage.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Responses/SharedMarkPrice.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedMarkPrice.cs
new file mode 100644
index 00000000..999f7bf8
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/Models/Responses/SharedMarkPrice.cs
@@ -0,0 +1,26 @@
+using System;
+using System.Diagnostics;
+
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Mark price
+ ///
+ [DebuggerDisplay("{Symbol,nq}: {MarkPrice}")]
+ public record SharedMarkPrice : SharedSymbolModel
+ {
+ ///
+ /// Current mark price
+ ///
+ public decimal MarkPrice { get; set; }
+
+ ///
+ /// ctor
+ ///
+ public SharedMarkPrice(SharedSymbol? sharedSymbol, string symbol, decimal markPrice)
+ : base(sharedSymbol, symbol)
+ {
+ MarkPrice = markPrice;
+ }
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedOpenInterest.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedOpenInterest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedOpenInterest.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedOpenInterest.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedOrderBook.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedOrderBook.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedOrderBook.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedOrderBook.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedPosition.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedPosition.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedPosition.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedPosition.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedPositionHistory.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedPositionHistory.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedPositionHistory.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedPositionHistory.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedPositionModeResult.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedPositionModeResult.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedPositionModeResult.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedPositionModeResult.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedSpotOrder.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedSpotOrder.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedSpotOrder.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedSpotOrder.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedSpotOrderUpdate.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedSpotOrderUpdate.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedSpotOrderUpdate.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedSpotOrderUpdate.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedSpotSymbol.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedSpotSymbol.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedSpotSymbol.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedSpotSymbol.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedSpotTicker.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedSpotTicker.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedSpotTicker.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedSpotTicker.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedSpotTriggerOrder.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedSpotTriggerOrder.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedSpotTriggerOrder.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedSpotTriggerOrder.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedSymbolModel.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedSymbolModel.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedSymbolModel.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedSymbolModel.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedTicker.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedTicker.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedTicker.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedTicker.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedTrade.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedTrade.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedTrade.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedTrade.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedUserTrade.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedUserTrade.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedUserTrade.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedUserTrade.cs
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedWithdrawal.cs b/CryptoExchange.Net/SharedApis/Models/Responses/SharedWithdrawal.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/ResponseModels/SharedWithdrawal.cs
rename to CryptoExchange.Net/SharedApis/Models/Responses/SharedWithdrawal.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetAllAssetsOptions.cs b/CryptoExchange.Net/SharedApis/V2/Assets/GetAllAssets/GetAllAssetsOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetAllAssetsOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Assets/GetAllAssets/GetAllAssetsOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Assets/IGetAllAssetsRest.cs b/CryptoExchange.Net/SharedApis/V2/Assets/GetAllAssets/IGetAllAssets.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Assets/IGetAllAssetsRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Assets/GetAllAssets/IGetAllAssets.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetAssetOptions.cs b/CryptoExchange.Net/SharedApis/V2/Assets/GetAsset/GetAssetOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetAssetOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Assets/GetAsset/GetAssetOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Assets/IGetAssetRest.cs b/CryptoExchange.Net/SharedApis/V2/Assets/GetAsset/IGetAsset.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Assets/IGetAssetRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Assets/GetAsset/IGetAsset.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetBalancesOptions.cs b/CryptoExchange.Net/SharedApis/V2/Balances/GetBalances/GetBalancesOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetBalancesOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Balances/GetBalances/GetBalancesOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Balances/IGetBalancesRest.cs b/CryptoExchange.Net/SharedApis/V2/Balances/GetBalances/IGetBalances.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Balances/IGetBalancesRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Balances/GetBalances/IGetBalances.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Balances/ISubscribeBalancesSocket.cs b/CryptoExchange.Net/SharedApis/V2/Balances/SubscribeBalances/ISubscribeBalances.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Balances/ISubscribeBalancesSocket.cs
rename to CryptoExchange.Net/SharedApis/V2/Balances/SubscribeBalances/ISubscribeBalances.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribeBalanceOptions.cs b/CryptoExchange.Net/SharedApis/V2/Balances/SubscribeBalances/SubscribeBalanceOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribeBalanceOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Balances/SubscribeBalances/SubscribeBalanceOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetDepositAddressesOptions.cs b/CryptoExchange.Net/SharedApis/V2/Deposits/GetDepositAddresses/GetDepositAddressesOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetDepositAddressesOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Deposits/GetDepositAddresses/GetDepositAddressesOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Deposits/IGetDepositAddressesRest.cs b/CryptoExchange.Net/SharedApis/V2/Deposits/GetDepositAddresses/IGetDepositAddresses.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Deposits/IGetDepositAddressesRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Deposits/GetDepositAddresses/IGetDepositAddresses.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetDepositHistoryOptions.cs b/CryptoExchange.Net/SharedApis/V2/Deposits/GetDepositHistory/GetDepositHistoryOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetDepositHistoryOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Deposits/GetDepositHistory/GetDepositHistoryOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Deposits/IGetDepositHistoryRest.cs b/CryptoExchange.Net/SharedApis/V2/Deposits/GetDepositHistory/IGetDepositHistory.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Deposits/IGetDepositHistoryRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Deposits/GetDepositHistory/IGetDepositHistory.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetFeeOptions.cs b/CryptoExchange.Net/SharedApis/V2/Fees/GetFees/GetFeeOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetFeeOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Fees/GetFees/GetFeeOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Fees/IGetFeesRest.cs b/CryptoExchange.Net/SharedApis/V2/Fees/GetFees/IGetFees.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Fees/IGetFeesRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Fees/GetFees/IGetFees.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetFundingRateHistoryOptions.cs b/CryptoExchange.Net/SharedApis/V2/Funding/GetFundingRateHistory/GetFundingRateHistoryOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetFundingRateHistoryOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Funding/GetFundingRateHistory/GetFundingRateHistoryOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Funding/IGetFundingRateHistoryRest.cs b/CryptoExchange.Net/SharedApis/V2/Funding/GetFundingRateHistory/IGetFundingRateHistory.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Funding/IGetFundingRateHistoryRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Funding/GetFundingRateHistory/IGetFundingRateHistory.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/ISharedApi.cs b/CryptoExchange.Net/SharedApis/V2/ISharedApi.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/ISharedApi.cs
rename to CryptoExchange.Net/SharedApis/V2/ISharedApi.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/ISharedApiCapability.cs b/CryptoExchange.Net/SharedApis/V2/ISharedApiCapability.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/ISharedApiCapability.cs
rename to CryptoExchange.Net/SharedApis/V2/ISharedApiCapability.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/ISharedRest.cs b/CryptoExchange.Net/SharedApis/V2/ISharedRest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/ISharedRest.cs
rename to CryptoExchange.Net/SharedApis/V2/ISharedRest.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/ISharedSocket.cs b/CryptoExchange.Net/SharedApis/V2/ISharedSocket.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/ISharedSocket.cs
rename to CryptoExchange.Net/SharedApis/V2/ISharedSocket.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/ISharedSubscription.cs b/CryptoExchange.Net/SharedApis/V2/ISharedSubscription.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/ISharedSubscription.cs
rename to CryptoExchange.Net/SharedApis/V2/ISharedSubscription.cs
diff --git a/CryptoExchange.Net/SharedApis/V2/IndexPrice/GetIndexPrice/GetIndexPriceOptions.cs b/CryptoExchange.Net/SharedApis/V2/IndexPrice/GetIndexPrice/GetIndexPriceOptions.cs
new file mode 100644
index 00000000..2037da55
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/V2/IndexPrice/GetIndexPrice/GetIndexPriceOptions.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Options for requesting the index price
+ ///
+ public class GetIndexPriceOptions : CapabilityOptions
+ {
+ ///
+ public override string Description => "Retrieve the index price for a futures symbol";
+
+ ///
+ /// ctor
+ ///
+ public GetIndexPriceOptions(string exchange, bool authenticated) : base(exchange, authenticated, nameof(IGetIndexPriceRest.GetIndexPriceAsync))
+ {
+ }
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/V2/IndexPrice/GetIndexPrice/IGetIndexPrice.cs b/CryptoExchange.Net/SharedApis/V2/IndexPrice/GetIndexPrice/IGetIndexPrice.cs
new file mode 100644
index 00000000..a64f5b09
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/V2/IndexPrice/GetIndexPrice/IGetIndexPrice.cs
@@ -0,0 +1,37 @@
+using CryptoExchange.Net.Objects;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Operation for retrieving the index price for a symbol from an exchange.
+ ///
+ public interface IGetIndexPrice : ISharedApiCapability
+ {
+ ///
+ /// Index price request options.
+ /// Use , and to check for required and optional parameters for the request.
+ /// Exchange specific parameters can be added to the request via the `ExchangeParameters` property of the request object.
+ ///
+ GetIndexPriceOptions GetIndexPriceOptions { get; }
+ ///
+ /// Get the index price for a symbol, see for request options and exchange specific required/optional parameters.
+ ///
+ /// Request info
+ /// Cancellation token
+ Task> GetIndexPriceAsync(GetIndexPriceRequest request, CancellationToken ct = default);
+ }
+
+ ///
+ /// Operation for retrieving the index price for a symbol from an exchange via the REST API.
+ ///
+ public interface IGetIndexPriceRest : IGetIndexPrice, ISharedRest
+ {
+ ///
+ new Task> GetIndexPriceAsync(GetIndexPriceRequest request, CancellationToken ct = default);
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/V2/IndexPrice/GetIndexPrices/GetIndexPricesOptions.cs b/CryptoExchange.Net/SharedApis/V2/IndexPrice/GetIndexPrices/GetIndexPricesOptions.cs
new file mode 100644
index 00000000..cedb378b
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/V2/IndexPrice/GetIndexPrices/GetIndexPricesOptions.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Options for requesting the index price
+ ///
+ public class GetIndexPricesOptions : CapabilityOptions
+ {
+ ///
+ public override string Description => "Retrieve the index prices for all futures symbols";
+
+ ///
+ /// ctor
+ ///
+ public GetIndexPricesOptions(string exchange, bool authenticated) : base(exchange, authenticated, nameof(IGetIndexPricesRest.GetIndexPricesAsync))
+ {
+ }
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/V2/IndexPrice/GetIndexPrices/IGetIndexPrices.cs b/CryptoExchange.Net/SharedApis/V2/IndexPrice/GetIndexPrices/IGetIndexPrices.cs
new file mode 100644
index 00000000..9acafae2
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/V2/IndexPrice/GetIndexPrices/IGetIndexPrices.cs
@@ -0,0 +1,37 @@
+using CryptoExchange.Net.Objects;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Operation for retrieving the index price for a symbol from an exchange.
+ ///
+ public interface IGetIndexPrices : ISharedApiCapability
+ {
+ ///
+ /// Index price request options.
+ /// Use , and to check for required and optional parameters for the request.
+ /// Exchange specific parameters can be added to the request via the `ExchangeParameters` property of the request object.
+ ///
+ GetIndexPricesOptions GetIndexPricesOptions { get; }
+ ///
+ /// Get the index price for a symbol, see for request options and exchange specific required/optional parameters.
+ ///
+ /// Request info
+ /// Cancellation token
+ Task> GetIndexPricesAsync(GetIndexPricesRequest request, CancellationToken ct = default);
+ }
+
+ ///
+ /// Operation for retrieving the index price for a symbol from an exchange via the REST API.
+ ///
+ public interface IGetIndexPricesRest : IGetIndexPrices, ISharedRest
+ {
+ ///
+ new Task> GetIndexPricesAsync(GetIndexPricesRequest request, CancellationToken ct = default);
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetIndexPriceKlinesOptions.cs b/CryptoExchange.Net/SharedApis/V2/Klines/Futures/GetIndexPriceKlines/GetIndexPriceKlinesOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetIndexPriceKlinesOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Klines/Futures/GetIndexPriceKlines/GetIndexPriceKlinesOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Klines/Futures/IGetIndexPriceKlinesRest.cs b/CryptoExchange.Net/SharedApis/V2/Klines/Futures/GetIndexPriceKlines/IGetIndexPriceKlines.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Klines/Futures/IGetIndexPriceKlinesRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Klines/Futures/GetIndexPriceKlines/IGetIndexPriceKlines.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetMarkPriceKlinesOptions.cs b/CryptoExchange.Net/SharedApis/V2/Klines/Futures/GetMarkPriceKlines/GetMarkPriceKlinesOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetMarkPriceKlinesOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Klines/Futures/GetMarkPriceKlines/GetMarkPriceKlinesOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Klines/Futures/IGetMarkPriceKlinesRest.cs b/CryptoExchange.Net/SharedApis/V2/Klines/Futures/GetMarkPriceKlines/IGetMarkPriceKlines.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Klines/Futures/IGetMarkPriceKlinesRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Klines/Futures/GetMarkPriceKlines/IGetMarkPriceKlines.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetKlinesOptions.cs b/CryptoExchange.Net/SharedApis/V2/Klines/GetKlines/GetKlinesOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetKlinesOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Klines/GetKlines/GetKlinesOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Klines/IGetKlinesRest.cs b/CryptoExchange.Net/SharedApis/V2/Klines/GetKlines/IGetKlines.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Klines/IGetKlinesRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Klines/GetKlines/IGetKlines.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Klines/ISubscribeKlinesSocket.cs b/CryptoExchange.Net/SharedApis/V2/Klines/SubscribeKlines/ISubscribeKlines.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Klines/ISubscribeKlinesSocket.cs
rename to CryptoExchange.Net/SharedApis/V2/Klines/SubscribeKlines/ISubscribeKlines.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribeKlineOptions.cs b/CryptoExchange.Net/SharedApis/V2/Klines/SubscribeKlines/SubscribeKlineOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribeKlineOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Klines/SubscribeKlines/SubscribeKlineOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetLeverageOptions.cs b/CryptoExchange.Net/SharedApis/V2/Leverage/GetLeverage/GetLeverageOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetLeverageOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Leverage/GetLeverage/GetLeverageOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Leverage/IGetLeverageRest.cs b/CryptoExchange.Net/SharedApis/V2/Leverage/GetLeverage/IGetLeverage.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Leverage/IGetLeverageRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Leverage/GetLeverage/IGetLeverage.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Leverage/ISetLeverageRest.cs b/CryptoExchange.Net/SharedApis/V2/Leverage/SetLeverage/ISetLeverage.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Leverage/ISetLeverageRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Leverage/SetLeverage/ISetLeverage.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/SetLeverageOptions.cs b/CryptoExchange.Net/SharedApis/V2/Leverage/SetLeverage/SetLeverageOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/SetLeverageOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Leverage/SetLeverage/SetLeverageOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/V2/MarkPrice/GetMarkPrice/GetMarkPriceOptions.cs b/CryptoExchange.Net/SharedApis/V2/MarkPrice/GetMarkPrice/GetMarkPriceOptions.cs
new file mode 100644
index 00000000..33e806ba
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/V2/MarkPrice/GetMarkPrice/GetMarkPriceOptions.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Options for requesting the mark price
+ ///
+ public class GetMarkPriceOptions : CapabilityOptions
+ {
+ ///
+ public override string Description => "Retrieve the mark price for a futures symbol";
+
+ ///
+ /// ctor
+ ///
+ public GetMarkPriceOptions(string exchange, bool authenticated) : base(exchange, authenticated, nameof(IGetMarkPriceRest.GetMarkPriceAsync))
+ {
+ }
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/V2/MarkPrice/GetMarkPrice/IGetMarkPrice.cs b/CryptoExchange.Net/SharedApis/V2/MarkPrice/GetMarkPrice/IGetMarkPrice.cs
new file mode 100644
index 00000000..3ebec787
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/V2/MarkPrice/GetMarkPrice/IGetMarkPrice.cs
@@ -0,0 +1,37 @@
+using CryptoExchange.Net.Objects;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Operation for retrieving the mark price for a symbol from an exchange.
+ ///
+ public interface IGetMarkPrice : ISharedApiCapability
+ {
+ ///
+ /// Mark price request options.
+ /// Use , and to check for required and optional parameters for the request.
+ /// Exchange specific parameters can be added to the request via the `ExchangeParameters` property of the request object.
+ ///
+ GetMarkPriceOptions GetMarkPriceOptions { get; }
+ ///
+ /// Get the mark price for a symbol, see for request options and exchange specific required/optional parameters.
+ ///
+ /// Request info
+ /// Cancellation token
+ Task> GetMarkPriceAsync(GetMarkPriceRequest request, CancellationToken ct = default);
+ }
+
+ ///
+ /// Operation for retrieving the mark price for a symbol from an exchange via the REST API.
+ ///
+ public interface IGetMarkPriceRest : IGetMarkPrice, ISharedRest
+ {
+ ///
+ new Task> GetMarkPriceAsync(GetMarkPriceRequest request, CancellationToken ct = default);
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/V2/MarkPrice/GetMarkPrices/GetMarkPricesOptions.cs b/CryptoExchange.Net/SharedApis/V2/MarkPrice/GetMarkPrices/GetMarkPricesOptions.cs
new file mode 100644
index 00000000..084a00fa
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/V2/MarkPrice/GetMarkPrices/GetMarkPricesOptions.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Options for requesting the mark price
+ ///
+ public class GetMarkPricesOptions : CapabilityOptions
+ {
+ ///
+ public override string Description => "Retrieve the mark prices for all futures symbols";
+
+ ///
+ /// ctor
+ ///
+ public GetMarkPricesOptions(string exchange, bool authenticated) : base(exchange, authenticated, nameof(IGetMarkPricesRest.GetMarkPricesAsync))
+ {
+ }
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/V2/MarkPrice/GetMarkPrices/IGetMarkPrices.cs b/CryptoExchange.Net/SharedApis/V2/MarkPrice/GetMarkPrices/IGetMarkPrices.cs
new file mode 100644
index 00000000..776911c4
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/V2/MarkPrice/GetMarkPrices/IGetMarkPrices.cs
@@ -0,0 +1,37 @@
+using CryptoExchange.Net.Objects;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Operation for retrieving the mark price for a symbol from an exchange.
+ ///
+ public interface IGetMarkPrices : ISharedApiCapability
+ {
+ ///
+ /// Mark price request options.
+ /// Use , and to check for required and optional parameters for the request.
+ /// Exchange specific parameters can be added to the request via the `ExchangeParameters` property of the request object.
+ ///
+ GetMarkPricesOptions GetMarkPricesOptions { get; }
+ ///
+ /// Get the mark price for a symbol, see for request options and exchange specific required/optional parameters.
+ ///
+ /// Request info
+ /// Cancellation token
+ Task> GetMarkPricesAsync(GetMarkPricesRequest request, CancellationToken ct = default);
+ }
+
+ ///
+ /// Operation for retrieving the mark price for a symbol from an exchange via the REST API.
+ ///
+ public interface IGetMarkPricesRest : IGetMarkPrices, ISharedRest
+ {
+ ///
+ new Task> GetMarkPricesAsync(GetMarkPricesRequest request, CancellationToken ct = default);
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetOpenInterestOptions.cs b/CryptoExchange.Net/SharedApis/V2/OpenInterest/GetOpenInterestOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetOpenInterestOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/OpenInterest/GetOpenInterestOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/OpenInterest/IGetOpenInterestRest.cs b/CryptoExchange.Net/SharedApis/V2/OpenInterest/IGetOpenInterest.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/OpenInterest/IGetOpenInterestRest.cs
rename to CryptoExchange.Net/SharedApis/V2/OpenInterest/IGetOpenInterest.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetBookTickerOptions.cs b/CryptoExchange.Net/SharedApis/V2/OrderBooks/GetBookTicker/GetBookTickerOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetBookTickerOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/OrderBooks/GetBookTicker/GetBookTickerOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/OrderBooks/IGetBookTickerRest.cs b/CryptoExchange.Net/SharedApis/V2/OrderBooks/GetBookTicker/IGetBookTicker.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/OrderBooks/IGetBookTickerRest.cs
rename to CryptoExchange.Net/SharedApis/V2/OrderBooks/GetBookTicker/IGetBookTicker.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetOrderBookOptions.cs b/CryptoExchange.Net/SharedApis/V2/OrderBooks/GetOrderBook/GetOrderBookOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetOrderBookOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/OrderBooks/GetOrderBook/GetOrderBookOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/OrderBooks/IGetOrderBookRest.cs b/CryptoExchange.Net/SharedApis/V2/OrderBooks/GetOrderBook/IGetOrderBook.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/OrderBooks/IGetOrderBookRest.cs
rename to CryptoExchange.Net/SharedApis/V2/OrderBooks/GetOrderBook/IGetOrderBook.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/OrderBooks/ISubscribeIncrementalOrderBookSocket.cs b/CryptoExchange.Net/SharedApis/V2/OrderBooks/SubscribeIncrementalOrderBook/ISubscribeIncrementalOrderBook.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/OrderBooks/ISubscribeIncrementalOrderBookSocket.cs
rename to CryptoExchange.Net/SharedApis/V2/OrderBooks/SubscribeIncrementalOrderBook/ISubscribeIncrementalOrderBook.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribeIncrementalOrderBookOptions.cs b/CryptoExchange.Net/SharedApis/V2/OrderBooks/SubscribeIncrementalOrderBook/SubscribeIncrementalOrderBookOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribeIncrementalOrderBookOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/OrderBooks/SubscribeIncrementalOrderBook/SubscribeIncrementalOrderBookOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/OrderBooks/ISubscribeOrderBookSocket.cs b/CryptoExchange.Net/SharedApis/V2/OrderBooks/SubscribeOrderBook/ISubscribeOrderBook.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/OrderBooks/ISubscribeOrderBookSocket.cs
rename to CryptoExchange.Net/SharedApis/V2/OrderBooks/SubscribeOrderBook/ISubscribeOrderBook.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribeOrderBookOptions.cs b/CryptoExchange.Net/SharedApis/V2/OrderBooks/SubscribeOrderBook/SubscribeOrderBookOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribeOrderBookOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/OrderBooks/SubscribeOrderBook/SubscribeOrderBookOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/V2/Orders/Futures/CancelAllFuturesOrders/CancelAllFuturesOrdersOptions.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/CancelAllFuturesOrders/CancelAllFuturesOrdersOptions.cs
new file mode 100644
index 00000000..aa3b3f99
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/CancelAllFuturesOrders/CancelAllFuturesOrdersOptions.cs
@@ -0,0 +1,23 @@
+using CryptoExchange.Net.Objects;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Options for canceling all open Futures orders
+ ///
+ public class CancelAllFuturesOrdersOptions : CapabilityOptions
+ {
+ ///
+ public override string Description => "Cancel all Futures orders";
+
+ ///
+ /// ctor
+ ///
+ public CancelAllFuturesOrdersOptions(string exchange) : base(exchange, true, nameof(ICancelAllFuturesOrders.CancelAllFuturesOrdersAsync))
+ {
+ }
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/V2/Orders/Futures/CancelAllFuturesOrders/ICancelAllFuturesOrder.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/CancelAllFuturesOrders/ICancelAllFuturesOrder.cs
new file mode 100644
index 00000000..1f623135
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/CancelAllFuturesOrders/ICancelAllFuturesOrder.cs
@@ -0,0 +1,47 @@
+using CryptoExchange.Net.Objects;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Operation for canceling all Futures orders on an exchange.
+ ///
+ public interface ICancelAllFuturesOrders : ISharedApiCapability
+ {
+ ///
+ /// Futures cancel all orders request options.
+ /// Use , and to check for required and optional parameters for the request.
+ /// Exchange specific parameters can be added to the request via the `ExchangeParameters` property of the request object.
+ ///
+ CancelAllFuturesOrdersOptions CancelAllFuturesOrdersOptions { get; }
+ ///
+ /// Cancel all Futures orders, see for request options and exchange specific required/optional parameters.
+ ///
+ /// Request info
+ /// Cancellation token
+ Task CancelAllFuturesOrdersAsync(CancelAllOrdersRequest request, CancellationToken ct = default);
+ }
+
+ ///
+ /// Operation for canceling all Futures orders on an exchange via the REST API.
+ ///
+ public interface ICancelAllFuturesOrdersRest : ICancelAllFuturesOrders, ISharedRest
+ {
+ ///
+ new Task CancelAllFuturesOrdersAsync(CancelAllOrdersRequest request, CancellationToken ct = default);
+ }
+
+ ///
+ /// Operation for canceling all Futures orders on an exchange via the WebSocket API.
+ ///
+ public interface ICancelAllFuturesOrdersSocket : ICancelAllFuturesOrders, ISharedSocket
+ {
+ ///
+ new Task CancelAllFuturesOrdersAsync(CancelAllOrdersRequest request, CancellationToken ct = default);
+
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/V2/Orders/Futures/CancelAllFuturesSymbolOrders/CancelAllFuturesSymbolOrdersOptions.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/CancelAllFuturesSymbolOrders/CancelAllFuturesSymbolOrdersOptions.cs
new file mode 100644
index 00000000..01f987d1
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/CancelAllFuturesSymbolOrders/CancelAllFuturesSymbolOrdersOptions.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Options for canceling all open futures orders for a specific symbol
+ ///
+ public class CancelAllFuturesSymbolOrdersOptions : CapabilityOptions
+ {
+ ///
+ public override string Description => "Cancel all open futures orders for a specific symbol";
+
+ ///
+ /// ctor
+ ///
+ public CancelAllFuturesSymbolOrdersOptions(string exchange, bool authenticated) : base(exchange, authenticated, nameof(ICancelAllFuturesSymbolOrders.CancelAllFuturesSymbolOrdersAsync))
+ {
+ }
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/V2/Orders/Futures/CancelAllFuturesSymbolOrders/ICancelAllFuturesSymbolOrders.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/CancelAllFuturesSymbolOrders/ICancelAllFuturesSymbolOrders.cs
new file mode 100644
index 00000000..2c9714a8
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/CancelAllFuturesSymbolOrders/ICancelAllFuturesSymbolOrders.cs
@@ -0,0 +1,48 @@
+using CryptoExchange.Net.Objects;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Operation for canceling all open futures orders for a specific symbol on an exchange.
+ ///
+ public interface ICancelAllFuturesSymbolOrders : ISharedApiCapability
+ {
+ ///
+ /// Futures cancel order request options.
+ /// Use , and to check for required and optional parameters for the request.
+ /// Exchange specific parameters can be added to the request via the `ExchangeParameters` property of the request object.
+ ///
+ CancelAllFuturesSymbolOrdersOptions CancelAllFuturesSymbolOrdersOptions { get; }
+ ///
+ /// Cancel all open futures orders for a specific symbol, see for request options and exchange specific required/optional parameters.
+ ///
+ /// Request info
+ /// Cancellation token
+ Task CancelAllFuturesSymbolOrdersAsync(CancelAllSymbolOrdersRequest request, CancellationToken ct = default);
+ }
+
+ ///
+ /// Operation for canceling all open futures orders for a specific symbol on an exchange via the REST API.
+ ///
+ public interface ICancelAllFuturesSymbolOrdersRest : ICancelAllFuturesSymbolOrders, ISharedRest
+ {
+ ///
+ new Task CancelAllFuturesSymbolOrdersAsync(CancelAllSymbolOrdersRequest request, CancellationToken ct = default);
+
+ }
+
+ ///
+ /// Operation for canceling all open futures orders for a specific symbol on an exchange via the WebSocket API.
+ ///
+ public interface ICancelAllFuturesSymbolOrdersSocket : ICancelAllFuturesSymbolOrders, ISharedSocket
+ {
+ ///
+ new Task> CancelAllFuturesSymbolOrdersAsync(CancelAllSymbolOrdersRequest request, CancellationToken ct = default);
+
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/CancelFuturesOrderOptions.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/CancelFuturesOrder/CancelFuturesOrderOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/CancelFuturesOrderOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Futures/CancelFuturesOrder/CancelFuturesOrderOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Futures/ICancelFuturesOrder.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/CancelFuturesOrder/ICancelFuturesOrder.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Futures/ICancelFuturesOrder.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Futures/CancelFuturesOrder/ICancelFuturesOrder.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/CancelFuturesOrderByClientOrderIdOptions.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/CancelFuturesOrderByClientOrderId/CancelFuturesOrderByClientOrderIdOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/CancelFuturesOrderByClientOrderIdOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Futures/CancelFuturesOrderByClientOrderId/CancelFuturesOrderByClientOrderIdOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Futures/ICancelFuturesOrderByClientOrderId.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/CancelFuturesOrderByClientOrderId/ICancelFuturesOrderByClientOrderId.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Futures/ICancelFuturesOrderByClientOrderId.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Futures/CancelFuturesOrderByClientOrderId/ICancelFuturesOrderByClientOrderId.cs
diff --git a/CryptoExchange.Net/SharedApis/V2/Orders/Futures/EditFuturesOrder/EditFuturesOrderOptions.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/EditFuturesOrder/EditFuturesOrderOptions.cs
new file mode 100644
index 00000000..4aecd52d
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/EditFuturesOrder/EditFuturesOrderOptions.cs
@@ -0,0 +1,23 @@
+using CryptoExchange.Net.Objects;
+using System;
+using System.Linq;
+
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Options for editing an open Futures order
+ ///
+ public class EditFuturesOrderOptions : CapabilityOptions
+ {
+ ///
+ public override string Description => "Edit an existing Futures order";
+
+
+ ///
+ /// ctor
+ ///
+ public EditFuturesOrderOptions(string exchange) : base(exchange, true, nameof(IEditFuturesOrder.EditFuturesOrderAsync))
+ {
+ }
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/V2/Orders/Futures/EditFuturesOrder/IEditFuturesOrder.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/EditFuturesOrder/IEditFuturesOrder.cs
new file mode 100644
index 00000000..6afe6c57
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/EditFuturesOrder/IEditFuturesOrder.cs
@@ -0,0 +1,49 @@
+using CryptoExchange.Net.Objects;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Operation for editing an open Futures order on an exchange.
+ ///
+ public interface IEditFuturesOrder : ISharedApiCapability
+ {
+ ///
+ /// Futures edit order request options.
+ /// Use , and to check for required and optional parameters for the request.
+ /// Exchange specific parameters can be added to the request via the `ExchangeParameters` property of the request object.
+ ///
+ EditFuturesOrderOptions EditFuturesOrderOptions { get; }
+
+ ///
+ /// Edit an existing Futures order, see for request options and exchange specific required/optional parameters.
+ ///
+ /// Request info
+ /// Cancellation token
+ Task> EditFuturesOrderAsync(
+ EditFuturesOrderRequest request,
+ CancellationToken ct = default);
+ }
+
+ ///
+ /// Operation for editing a Futures order on an exchange via the REST API.
+ ///
+ public interface IEditFuturesOrderRest : IEditFuturesOrder, ISharedRest
+ {
+ ///
+ new Task> EditFuturesOrderAsync(EditFuturesOrderRequest request, CancellationToken ct = default);
+ }
+
+ ///
+ /// Operation for editing a Futures order on an exchange via the WebSocket API.
+ ///
+ public interface IEditFuturesOrderSocket : IEditFuturesOrder, ISharedSocket
+ {
+ ///
+ new Task> EditFuturesOrderAsync(EditFuturesOrderRequest request, CancellationToken ct = default);
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetFuturesClosedOrdersOptions.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/GetClosedFuturesOrders/GetFuturesClosedOrdersOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetFuturesClosedOrdersOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Futures/GetClosedFuturesOrders/GetFuturesClosedOrdersOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Futures/IGetClosedFuturesOrders.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/GetClosedFuturesOrders/IGetClosedFuturesOrders.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Futures/IGetClosedFuturesOrders.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Futures/GetClosedFuturesOrders/IGetClosedFuturesOrders.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetFuturesOrderOptions.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/GetFuturesOrder/GetFuturesOrderOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetFuturesOrderOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Futures/GetFuturesOrder/GetFuturesOrderOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Futures/IGetFuturesOrder.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/GetFuturesOrder/IGetFuturesOrder.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Futures/IGetFuturesOrder.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Futures/GetFuturesOrder/IGetFuturesOrder.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetFuturesOrderByClientOrderIdOptions.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/GetFuturesOrderByClientOrderId/GetFuturesOrderByClientOrderIdOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetFuturesOrderByClientOrderIdOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Futures/GetFuturesOrderByClientOrderId/GetFuturesOrderByClientOrderIdOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Futures/IGetFuturesOrderByClientOrderId.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/GetFuturesOrderByClientOrderId/IGetFuturesOrderByClientOrderId.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Futures/IGetFuturesOrderByClientOrderId.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Futures/GetFuturesOrderByClientOrderId/IGetFuturesOrderByClientOrderId.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetOpenFuturesOrdersOptions.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/GetOpenFuturesOrders/GetOpenFuturesOrdersOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetOpenFuturesOrdersOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Futures/GetOpenFuturesOrders/GetOpenFuturesOrdersOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Futures/IGetOpenFuturesOrders.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/GetOpenFuturesOrders/IGetOpenFuturesOrders.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Futures/IGetOpenFuturesOrders.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Futures/GetOpenFuturesOrders/IGetOpenFuturesOrders.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Futures/IPlaceFuturesOrder.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/PlaceFuturesOrder/IPlaceFuturesOrder.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Futures/IPlaceFuturesOrder.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Futures/PlaceFuturesOrder/IPlaceFuturesOrder.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/PlaceFuturesOrderOptions.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/PlaceFuturesOrder/PlaceFuturesOrderOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/PlaceFuturesOrderOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Futures/PlaceFuturesOrder/PlaceFuturesOrderOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Futures/ISubscribeFuturesOrdersSocket.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/SubscribeFuturesOrder/ISubscribeFuturesOrdersSocket.cs
similarity index 94%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Futures/ISubscribeFuturesOrdersSocket.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Futures/SubscribeFuturesOrder/ISubscribeFuturesOrdersSocket.cs
index 8a1eeb2a..d84748ff 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Futures/ISubscribeFuturesOrdersSocket.cs
+++ b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/SubscribeFuturesOrder/ISubscribeFuturesOrdersSocket.cs
@@ -7,7 +7,7 @@ using System.Threading.Tasks;
namespace CryptoExchange.Net.SharedApis
{
///
- /// Client for subscribing to user futures order updates
+ /// Operation for subscribing to user futures order updates
///
public interface ISubscribeFuturesOrdersSocket : ISharedSubscription
{
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribeFuturesOrderOptions.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Futures/SubscribeFuturesOrder/SubscribeFuturesOrderOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribeFuturesOrderOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Futures/SubscribeFuturesOrder/SubscribeFuturesOrderOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/V2/Orders/Spot/CancelAllSpotOrders/CancelAllSpotOrdersOptions.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/CancelAllSpotOrders/CancelAllSpotOrdersOptions.cs
new file mode 100644
index 00000000..fe5499f5
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/CancelAllSpotOrders/CancelAllSpotOrdersOptions.cs
@@ -0,0 +1,23 @@
+using CryptoExchange.Net.Objects;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Options for canceling all open spot orders
+ ///
+ public class CancelAllSpotOrdersOptions : CapabilityOptions
+ {
+ ///
+ public override string Description => "Cancel all spot orders";
+
+ ///
+ /// ctor
+ ///
+ public CancelAllSpotOrdersOptions(string exchange) : base(exchange, true, nameof(ICancelAllSpotOrders.CancelAllSpotOrdersAsync))
+ {
+ }
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/V2/Orders/Spot/CancelAllSpotOrders/ICancelAllSpotOrder.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/CancelAllSpotOrders/ICancelAllSpotOrder.cs
new file mode 100644
index 00000000..6da0bead
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/CancelAllSpotOrders/ICancelAllSpotOrder.cs
@@ -0,0 +1,47 @@
+using CryptoExchange.Net.Objects;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Operation for canceling all spot orders on an exchange.
+ ///
+ public interface ICancelAllSpotOrders : ISharedApiCapability
+ {
+ ///
+ /// Spot cancel all orders request options.
+ /// Use , and to check for required and optional parameters for the request.
+ /// Exchange specific parameters can be added to the request via the `ExchangeParameters` property of the request object.
+ ///
+ CancelAllSpotOrdersOptions CancelAllSpotOrdersOptions { get; }
+ ///
+ /// Cancel all spot orders, see for request options and exchange specific required/optional parameters.
+ ///
+ /// Request info
+ /// Cancellation token
+ Task CancelAllSpotOrdersAsync(CancelAllOrdersRequest request, CancellationToken ct = default);
+ }
+
+ ///
+ /// Operation for canceling all spot orders on an exchange via the REST API.
+ ///
+ public interface ICancelAllSpotOrdersRest : ICancelAllSpotOrders, ISharedRest
+ {
+ ///
+ new Task CancelAllSpotOrdersAsync(CancelAllOrdersRequest request, CancellationToken ct = default);
+ }
+
+ ///
+ /// Operation for canceling all spot orders on an exchange via the WebSocket API.
+ ///
+ public interface ICancelAllSpotOrdersSocket : ICancelAllSpotOrders, ISharedSocket
+ {
+ ///
+ new Task CancelAllSpotOrdersAsync(CancelAllOrdersRequest request, CancellationToken ct = default);
+
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/V2/Orders/Spot/CancelAllSpotSymbolOrders/CancelAllSpotSymbolOrdersOptions.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/CancelAllSpotSymbolOrders/CancelAllSpotSymbolOrdersOptions.cs
new file mode 100644
index 00000000..7103ae36
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/CancelAllSpotSymbolOrders/CancelAllSpotSymbolOrdersOptions.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Options for canceling all open Spot orders for a specific symbol
+ ///
+ public class CancelAllSpotSymbolOrdersOptions : CapabilityOptions
+ {
+ ///
+ public override string Description => "Cancel all open Spot orders for a specific symbol";
+
+ ///
+ /// ctor
+ ///
+ public CancelAllSpotSymbolOrdersOptions(string exchange, bool authenticated) : base(exchange, authenticated, nameof(ICancelAllSpotSymbolOrders.CancelAllSpotSymbolOrdersAsync))
+ {
+ }
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/V2/Orders/Spot/CancelAllSpotSymbolOrders/ICancelAllSpotSymbolOrders.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/CancelAllSpotSymbolOrders/ICancelAllSpotSymbolOrders.cs
new file mode 100644
index 00000000..1dde9b8e
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/CancelAllSpotSymbolOrders/ICancelAllSpotSymbolOrders.cs
@@ -0,0 +1,48 @@
+using CryptoExchange.Net.Objects;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Operation for canceling all open Spot orders for a specific symbol on an exchange.
+ ///
+ public interface ICancelAllSpotSymbolOrders : ISharedApiCapability
+ {
+ ///
+ /// Spot cancel order request options.
+ /// Use , and to check for required and optional parameters for the request.
+ /// Exchange specific parameters can be added to the request via the `ExchangeParameters` property of the request object.
+ ///
+ CancelAllSpotSymbolOrdersOptions CancelAllSpotSymbolOrdersOptions { get; }
+ ///
+ /// Cancel all open Spot orders for a specific symbol, see for request options and exchange specific required/optional parameters.
+ ///
+ /// Request info
+ /// Cancellation token
+ Task CancelAllSpotSymbolOrdersAsync(CancelAllSymbolOrdersRequest request, CancellationToken ct = default);
+ }
+
+ ///
+ /// Operation for canceling all open Spot orders for a specific symbol on an exchange via the REST API.
+ ///
+ public interface ICancelAllSpotSymbolOrdersRest : ICancelAllSpotSymbolOrders, ISharedRest
+ {
+ ///
+ new Task CancelAllSpotSymbolOrdersAsync(CancelAllSymbolOrdersRequest request, CancellationToken ct = default);
+
+ }
+
+ ///
+ /// Operation for canceling all open Spot orders for a specific symbol on an exchange via the WebSocket API.
+ ///
+ public interface ICancelAllSpotSymbolOrdersSocket : ICancelAllSpotSymbolOrders, ISharedSocket
+ {
+ ///
+ new Task> CancelAllSpotSymbolOrdersAsync(CancelAllSymbolOrdersRequest request, CancellationToken ct = default);
+
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/CancelSpotOrderOptions.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/CancelSpotOrder/CancelSpotOrderOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/CancelSpotOrderOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Spot/CancelSpotOrder/CancelSpotOrderOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Spot/ICancelSpotOrder.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/CancelSpotOrder/ICancelSpotOrder.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Spot/ICancelSpotOrder.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Spot/CancelSpotOrder/ICancelSpotOrder.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/CancelSpotOrderByClientOrderIdOptions.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/CancelSpotOrderByClientOrderId/CancelSpotOrderByClientOrderIdOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/CancelSpotOrderByClientOrderIdOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Spot/CancelSpotOrderByClientOrderId/CancelSpotOrderByClientOrderIdOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Spot/ICancelSpotOrderByClientOrderId.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/CancelSpotOrderByClientOrderId/ICancelSpotOrderByClientOrderId.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Spot/ICancelSpotOrderByClientOrderId.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Spot/CancelSpotOrderByClientOrderId/ICancelSpotOrderByClientOrderId.cs
diff --git a/CryptoExchange.Net/SharedApis/V2/Orders/Spot/EditSpotOrder/EditSpotOrderOptions.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/EditSpotOrder/EditSpotOrderOptions.cs
new file mode 100644
index 00000000..36f7bfc3
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/EditSpotOrder/EditSpotOrderOptions.cs
@@ -0,0 +1,36 @@
+using CryptoExchange.Net.Objects;
+using System;
+using System.Linq;
+
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Options for editing an open spot order
+ ///
+ public class EditSpotOrderOptions : CapabilityOptions
+ {
+ ///
+ public override string Description => "Edit an existing spot order";
+
+
+ ///
+ /// ctor
+ ///
+ public EditSpotOrderOptions(string exchange) : base(exchange, true, nameof(IEditSpotOrder.EditSpotOrderAsync))
+ {
+ }
+
+ ///
+ /// Validate a request
+ ///
+ public override Error? ValidateRequest(
+ EditSpotOrderRequest request,
+ IEditSpotOrder client)
+ {
+ if (request.Symbol!.TradingMode != TradingMode.Spot)
+ return ArgumentError.Invalid("TradingMode", $"TradingMode.{request.Symbol!.TradingMode} is not supported, should be Spot");
+
+ return base.ValidateRequest(request, client);
+ }
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/V2/Orders/Spot/EditSpotOrder/IEditSpotOrder.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/EditSpotOrder/IEditSpotOrder.cs
new file mode 100644
index 00000000..4f0cd8db
--- /dev/null
+++ b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/EditSpotOrder/IEditSpotOrder.cs
@@ -0,0 +1,49 @@
+using CryptoExchange.Net.Objects;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace CryptoExchange.Net.SharedApis
+{
+ ///
+ /// Operation for editing an open spot order on an exchange.
+ ///
+ public interface IEditSpotOrder : ISharedApiCapability
+ {
+ ///
+ /// Spot edit order request options.
+ /// Use , and to check for required and optional parameters for the request.
+ /// Exchange specific parameters can be added to the request via the `ExchangeParameters` property of the request object.
+ ///
+ EditSpotOrderOptions EditSpotOrderOptions { get; }
+
+ ///
+ /// Edit an existing spot order, see for request options and exchange specific required/optional parameters.
+ ///
+ /// Request info
+ /// Cancellation token
+ Task> EditSpotOrderAsync(
+ EditSpotOrderRequest request,
+ CancellationToken ct = default);
+ }
+
+ ///
+ /// Operation for editing a spot order on an exchange via the REST API.
+ ///
+ public interface IEditSpotOrderRest : IEditSpotOrder, ISharedRest
+ {
+ ///
+ new Task> EditSpotOrderAsync(EditSpotOrderRequest request, CancellationToken ct = default);
+ }
+
+ ///
+ /// Operation for editing a spot order on an exchange via the WebSocket API.
+ ///
+ public interface IEditSpotOrderSocket : IEditSpotOrder, ISharedSocket
+ {
+ ///
+ new Task> EditSpotOrderAsync(EditSpotOrderRequest request, CancellationToken ct = default);
+ }
+}
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetSpotClosedOrdersOptions.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/GetClosedSpotOrders/GetSpotClosedOrdersOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetSpotClosedOrdersOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Spot/GetClosedSpotOrders/GetSpotClosedOrdersOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Spot/IGetClosedSpotOrders.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/GetClosedSpotOrders/IGetClosedSpotOrders.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Spot/IGetClosedSpotOrders.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Spot/GetClosedSpotOrders/IGetClosedSpotOrders.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetOpenSpotOrdersOptions.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/GetOpenSpotOrders/GetOpenSpotOrdersOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetOpenSpotOrdersOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Spot/GetOpenSpotOrders/GetOpenSpotOrdersOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Spot/IGetOpenSpotOrders.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/GetOpenSpotOrders/IGetOpenSpotOrders.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Spot/IGetOpenSpotOrders.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Spot/GetOpenSpotOrders/IGetOpenSpotOrders.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetSpotOrderOptions.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/GetSpotOrder/GetSpotOrderOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetSpotOrderOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Spot/GetSpotOrder/GetSpotOrderOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Spot/IGetSpotOrder.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/GetSpotOrder/IGetSpotOrder.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Spot/IGetSpotOrder.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Spot/GetSpotOrder/IGetSpotOrder.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetSpotOrderByClientOrderIdOptions.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/GetSpotOrderByClientOrderId/GetSpotOrderByClientOrderIdOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetSpotOrderByClientOrderIdOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Spot/GetSpotOrderByClientOrderId/GetSpotOrderByClientOrderIdOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Spot/IGetSpotOrderByClientOrderId.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/GetSpotOrderByClientOrderId/IGetSpotOrderByClientOrderId.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Spot/IGetSpotOrderByClientOrderId.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Spot/GetSpotOrderByClientOrderId/IGetSpotOrderByClientOrderId.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Spot/IPlaceSpotOrder.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/PlaceSpotOrder/IPlaceSpotOrder.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Spot/IPlaceSpotOrder.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Spot/PlaceSpotOrder/IPlaceSpotOrder.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/PlaceSpotOrderOptions.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/PlaceSpotOrder/PlaceSpotOrderOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/PlaceSpotOrderOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Spot/PlaceSpotOrder/PlaceSpotOrderOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Spot/ISubscribeSpotOrdersSocket.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/SubscribeSpotOrder/ISubscribeSpotOrdersSocket.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Spot/ISubscribeSpotOrdersSocket.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Spot/SubscribeSpotOrder/ISubscribeSpotOrdersSocket.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribeSpotOrderOptions.cs b/CryptoExchange.Net/SharedApis/V2/Orders/Spot/SubscribeSpotOrder/SubscribeSpotOrderOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribeSpotOrderOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Orders/Spot/SubscribeSpotOrder/SubscribeSpotOrderOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetPositionModeOptions.cs b/CryptoExchange.Net/SharedApis/V2/PositionMode/GetPositionMode/GetPositionModeOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetPositionModeOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/PositionMode/GetPositionMode/GetPositionModeOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/PositionMode/IGetPositionModeRest.cs b/CryptoExchange.Net/SharedApis/V2/PositionMode/GetPositionMode/IGetPositionMode.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/PositionMode/IGetPositionModeRest.cs
rename to CryptoExchange.Net/SharedApis/V2/PositionMode/GetPositionMode/IGetPositionMode.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/PositionMode/ISetPositionModeRest.cs b/CryptoExchange.Net/SharedApis/V2/PositionMode/SetPositionMode/ISetPositionMode.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/PositionMode/ISetPositionModeRest.cs
rename to CryptoExchange.Net/SharedApis/V2/PositionMode/SetPositionMode/ISetPositionMode.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/SetPositionModeOptions.cs b/CryptoExchange.Net/SharedApis/V2/PositionMode/SetPositionMode/SetPositionModeOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/SetPositionModeOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/PositionMode/SetPositionMode/SetPositionModeOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/ClosePositionOptions.cs b/CryptoExchange.Net/SharedApis/V2/Positions/ClosePosition/ClosePositionOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/ClosePositionOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Positions/ClosePosition/ClosePositionOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Positions/IClosePositionRest.cs b/CryptoExchange.Net/SharedApis/V2/Positions/ClosePosition/IClosePosition.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Positions/IClosePositionRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Positions/ClosePosition/IClosePosition.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetPositionHistoryOptions.cs b/CryptoExchange.Net/SharedApis/V2/Positions/GetPositionHistory/GetPositionHistoryOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetPositionHistoryOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Positions/GetPositionHistory/GetPositionHistoryOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Positions/IGetPositionHistoryRest.cs b/CryptoExchange.Net/SharedApis/V2/Positions/GetPositionHistory/IGetPositionHistory.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Positions/IGetPositionHistoryRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Positions/GetPositionHistory/IGetPositionHistory.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetPositionsOptions.cs b/CryptoExchange.Net/SharedApis/V2/Positions/GetPositions/GetPositionsOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetPositionsOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Positions/GetPositions/GetPositionsOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Positions/IGetPositionsRest.cs b/CryptoExchange.Net/SharedApis/V2/Positions/GetPositions/IGetPositions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Positions/IGetPositionsRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Positions/GetPositions/IGetPositions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Futures/ISubscribePositionsSocket.cs b/CryptoExchange.Net/SharedApis/V2/Positions/SubscribePositions/ISubscribePositions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Orders/Futures/ISubscribePositionsSocket.cs
rename to CryptoExchange.Net/SharedApis/V2/Positions/SubscribePositions/ISubscribePositions.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribePositionOptions.cs b/CryptoExchange.Net/SharedApis/V2/Positions/SubscribePositions/SubscribePositionOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribePositionOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Positions/SubscribePositions/SubscribePositionOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetFuturesSymbolsOptions.cs b/CryptoExchange.Net/SharedApis/V2/Symbols/GetFuturesSymbols/GetFuturesSymbolsOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetFuturesSymbolsOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Symbols/GetFuturesSymbols/GetFuturesSymbolsOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Symbols/Futures/IGetFuturesSymbolsRest.cs b/CryptoExchange.Net/SharedApis/V2/Symbols/GetFuturesSymbols/IGetFuturesSymbols.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Symbols/Futures/IGetFuturesSymbolsRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Symbols/GetFuturesSymbols/IGetFuturesSymbols.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetSpotSymbolsOptions.cs b/CryptoExchange.Net/SharedApis/V2/Symbols/GetSpotSymbols/GetSpotSymbolsOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetSpotSymbolsOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Symbols/GetSpotSymbols/GetSpotSymbolsOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Symbols/Spot/IGetSpotSymbolsRest.cs b/CryptoExchange.Net/SharedApis/V2/Symbols/GetSpotSymbols/IGetSpotSymbols.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Symbols/Spot/IGetSpotSymbolsRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Symbols/GetSpotSymbols/IGetSpotSymbols.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetAllFuturesTickersOptions.cs b/CryptoExchange.Net/SharedApis/V2/Tickers/Futures/GetAllFuturesTicker/GetAllFuturesTickersOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetAllFuturesTickersOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Tickers/Futures/GetAllFuturesTicker/GetAllFuturesTickersOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Tickers/Futures/IGetAllFuturesTickersRest.cs b/CryptoExchange.Net/SharedApis/V2/Tickers/Futures/GetAllFuturesTicker/IGetAllFuturesTickers.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Tickers/Futures/IGetAllFuturesTickersRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Tickers/Futures/GetAllFuturesTicker/IGetAllFuturesTickers.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetFuturesTickerOptions.cs b/CryptoExchange.Net/SharedApis/V2/Tickers/Futures/GetFuturesTicker/GetFuturesTickerOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetFuturesTickerOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Tickers/Futures/GetFuturesTicker/GetFuturesTickerOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Tickers/Futures/IGetFuturesTickerRest.cs b/CryptoExchange.Net/SharedApis/V2/Tickers/Futures/GetFuturesTicker/IGetFuturesTicker.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Tickers/Futures/IGetFuturesTickerRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Tickers/Futures/GetFuturesTicker/IGetFuturesTicker.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetAllSpotTickersOptions.cs b/CryptoExchange.Net/SharedApis/V2/Tickers/Spot/GetAllSpotTickers/GetAllSpotTickersOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetAllSpotTickersOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Tickers/Spot/GetAllSpotTickers/GetAllSpotTickersOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Tickers/Spot/IGetAllSpotTickersRest.cs b/CryptoExchange.Net/SharedApis/V2/Tickers/Spot/GetAllSpotTickers/IGetAllSpotTickers.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Tickers/Spot/IGetAllSpotTickersRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Tickers/Spot/GetAllSpotTickers/IGetAllSpotTickers.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetSpotTickerOptions.cs b/CryptoExchange.Net/SharedApis/V2/Tickers/Spot/GetSpotTicker/GetSpotTickerOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetSpotTickerOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Tickers/Spot/GetSpotTicker/GetSpotTickerOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Tickers/Spot/IGetSpotTickerRest.cs b/CryptoExchange.Net/SharedApis/V2/Tickers/Spot/GetSpotTicker/IGetSpotTicker.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Tickers/Spot/IGetSpotTickerRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Tickers/Spot/GetSpotTicker/IGetSpotTicker.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Tickers/ISubscribeAllTickersSocket.cs b/CryptoExchange.Net/SharedApis/V2/Tickers/SubscribeAllTickers/ISubscribeAllTickers.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Tickers/ISubscribeAllTickersSocket.cs
rename to CryptoExchange.Net/SharedApis/V2/Tickers/SubscribeAllTickers/ISubscribeAllTickers.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribeTickersOptions.cs b/CryptoExchange.Net/SharedApis/V2/Tickers/SubscribeAllTickers/SubscribeTickersOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribeTickersOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Tickers/SubscribeAllTickers/SubscribeTickersOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Tickers/ISubscribeBookTickerSocket.cs b/CryptoExchange.Net/SharedApis/V2/Tickers/SubscribeBookTicker/ISubscribeBookTicker.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Tickers/ISubscribeBookTickerSocket.cs
rename to CryptoExchange.Net/SharedApis/V2/Tickers/SubscribeBookTicker/ISubscribeBookTicker.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribeBookTickerOptions.cs b/CryptoExchange.Net/SharedApis/V2/Tickers/SubscribeBookTicker/SubscribeBookTickerOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribeBookTickerOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Tickers/SubscribeBookTicker/SubscribeBookTickerOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Tickers/ISubscribeTickerSocket.cs b/CryptoExchange.Net/SharedApis/V2/Tickers/SubscribeTicker/ISubscribeTicker.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Tickers/ISubscribeTickerSocket.cs
rename to CryptoExchange.Net/SharedApis/V2/Tickers/SubscribeTicker/ISubscribeTicker.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribeTickerOptions.cs b/CryptoExchange.Net/SharedApis/V2/Tickers/SubscribeTicker/SubscribeTickerOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribeTickerOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Tickers/SubscribeTicker/SubscribeTickerOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/CancelFuturesTpSlOptions.cs b/CryptoExchange.Net/SharedApis/V2/TpSl/CancelFuturesTpSl/CancelFuturesTpSlOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/CancelFuturesTpSlOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/TpSl/CancelFuturesTpSl/CancelFuturesTpSlOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/TpSl/ICancelFuturesTpSlRest.cs b/CryptoExchange.Net/SharedApis/V2/TpSl/CancelFuturesTpSl/ICancelFuturesTpSl.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/TpSl/ICancelFuturesTpSlRest.cs
rename to CryptoExchange.Net/SharedApis/V2/TpSl/CancelFuturesTpSl/ICancelFuturesTpSl.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/TpSl/ISetFuturesTpSlRest.cs b/CryptoExchange.Net/SharedApis/V2/TpSl/SetFuturesTpSl/ISetFuturesTpSl.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/TpSl/ISetFuturesTpSlRest.cs
rename to CryptoExchange.Net/SharedApis/V2/TpSl/SetFuturesTpSl/ISetFuturesTpSl.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/SetFuturesTpSlOptions.cs b/CryptoExchange.Net/SharedApis/V2/TpSl/SetFuturesTpSl/SetFuturesTpSlOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/SetFuturesTpSlOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/TpSl/SetFuturesTpSl/SetFuturesTpSlOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetRecentTradesOptions.cs b/CryptoExchange.Net/SharedApis/V2/Trades/GetRecentTrades/GetRecentTradesOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetRecentTradesOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Trades/GetRecentTrades/GetRecentTradesOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Trades/IGetRecentTradesRest.cs b/CryptoExchange.Net/SharedApis/V2/Trades/GetRecentTrades/IGetRecentTrades.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Trades/IGetRecentTradesRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Trades/GetRecentTrades/IGetRecentTrades.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetTradeHistoryOptions.cs b/CryptoExchange.Net/SharedApis/V2/Trades/GetTradeHistory/GetTradeHistoryOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetTradeHistoryOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Trades/GetTradeHistory/GetTradeHistoryOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Trades/IGetTradeHistoryRest.cs b/CryptoExchange.Net/SharedApis/V2/Trades/GetTradeHistory/IGetTradeHistory.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Trades/IGetTradeHistoryRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Trades/GetTradeHistory/IGetTradeHistory.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Trades/ISubscribeTradesSocket.cs b/CryptoExchange.Net/SharedApis/V2/Trades/SubscribeTrades/ISubscribeTrades.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Trades/ISubscribeTradesSocket.cs
rename to CryptoExchange.Net/SharedApis/V2/Trades/SubscribeTrades/ISubscribeTrades.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribeTradeOptions.cs b/CryptoExchange.Net/SharedApis/V2/Trades/SubscribeTrades/SubscribeTradeOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribeTradeOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Trades/SubscribeTrades/SubscribeTradeOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Transfers/ITransferRest.cs b/CryptoExchange.Net/SharedApis/V2/Transfers/ITransfer.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Transfers/ITransferRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Transfers/ITransfer.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/TransferOptions.cs b/CryptoExchange.Net/SharedApis/V2/Transfers/TransferOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/TransferOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Transfers/TransferOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/CancelFuturesTriggerOrderOptions.cs b/CryptoExchange.Net/SharedApis/V2/TriggerOrders/Futures/CancelFuturesTriggerOrder/CancelFuturesTriggerOrderOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/CancelFuturesTriggerOrderOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/TriggerOrders/Futures/CancelFuturesTriggerOrder/CancelFuturesTriggerOrderOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/TriggerOrders/Futures/ICancelFuturesTriggerOrderRest.cs b/CryptoExchange.Net/SharedApis/V2/TriggerOrders/Futures/CancelFuturesTriggerOrder/ICancelFuturesTriggerOrder.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/TriggerOrders/Futures/ICancelFuturesTriggerOrderRest.cs
rename to CryptoExchange.Net/SharedApis/V2/TriggerOrders/Futures/CancelFuturesTriggerOrder/ICancelFuturesTriggerOrder.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetFuturesTriggerOrderOptions.cs b/CryptoExchange.Net/SharedApis/V2/TriggerOrders/Futures/GetFuturesTriggerOrder/GetFuturesTriggerOrderOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetFuturesTriggerOrderOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/TriggerOrders/Futures/GetFuturesTriggerOrder/GetFuturesTriggerOrderOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/TriggerOrders/Futures/IGetFuturesTriggerOrderRest.cs b/CryptoExchange.Net/SharedApis/V2/TriggerOrders/Futures/GetFuturesTriggerOrder/IGetFuturesTriggerOrder.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/TriggerOrders/Futures/IGetFuturesTriggerOrderRest.cs
rename to CryptoExchange.Net/SharedApis/V2/TriggerOrders/Futures/GetFuturesTriggerOrder/IGetFuturesTriggerOrder.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/TriggerOrders/Futures/IPlaceFuturesTriggerOrderRest.cs b/CryptoExchange.Net/SharedApis/V2/TriggerOrders/Futures/PlaceFuturesTriggerOrder/IPlaceFuturesTriggerOrder.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/TriggerOrders/Futures/IPlaceFuturesTriggerOrderRest.cs
rename to CryptoExchange.Net/SharedApis/V2/TriggerOrders/Futures/PlaceFuturesTriggerOrder/IPlaceFuturesTriggerOrder.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/PlaceFuturesTriggerOrderOptions.cs b/CryptoExchange.Net/SharedApis/V2/TriggerOrders/Futures/PlaceFuturesTriggerOrder/PlaceFuturesTriggerOrderOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/PlaceFuturesTriggerOrderOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/TriggerOrders/Futures/PlaceFuturesTriggerOrder/PlaceFuturesTriggerOrderOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/CancelSpotTriggerOrderOptions.cs b/CryptoExchange.Net/SharedApis/V2/TriggerOrders/Spot/CancelSpotTriggerOrder/CancelSpotTriggerOrderOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/CancelSpotTriggerOrderOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/TriggerOrders/Spot/CancelSpotTriggerOrder/CancelSpotTriggerOrderOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/TriggerOrders/Spot/ICancelSpotTriggerOrderRest.cs b/CryptoExchange.Net/SharedApis/V2/TriggerOrders/Spot/CancelSpotTriggerOrder/ICancelSpotTriggerOrder.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/TriggerOrders/Spot/ICancelSpotTriggerOrderRest.cs
rename to CryptoExchange.Net/SharedApis/V2/TriggerOrders/Spot/CancelSpotTriggerOrder/ICancelSpotTriggerOrder.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetSpotTriggerOrderOptions.cs b/CryptoExchange.Net/SharedApis/V2/TriggerOrders/Spot/GetSpotTriggerOrder/GetSpotTriggerOrderOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetSpotTriggerOrderOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/TriggerOrders/Spot/GetSpotTriggerOrder/GetSpotTriggerOrderOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/TriggerOrders/Spot/IGetSpotTriggerOrderRest.cs b/CryptoExchange.Net/SharedApis/V2/TriggerOrders/Spot/GetSpotTriggerOrder/IGetSpotTriggerOrder.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/TriggerOrders/Spot/IGetSpotTriggerOrderRest.cs
rename to CryptoExchange.Net/SharedApis/V2/TriggerOrders/Spot/GetSpotTriggerOrder/IGetSpotTriggerOrder.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/TriggerOrders/Spot/IPlaceSpotTriggerOrderRest.cs b/CryptoExchange.Net/SharedApis/V2/TriggerOrders/Spot/PlaceSpotTriggerOrder/IPlaceSpotTriggerOrder.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/TriggerOrders/Spot/IPlaceSpotTriggerOrderRest.cs
rename to CryptoExchange.Net/SharedApis/V2/TriggerOrders/Spot/PlaceSpotTriggerOrder/IPlaceSpotTriggerOrder.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/PlaceSpotTriggerOrderOptions.cs b/CryptoExchange.Net/SharedApis/V2/TriggerOrders/Spot/PlaceSpotTriggerOrder/PlaceSpotTriggerOrderOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/PlaceSpotTriggerOrderOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/TriggerOrders/Spot/PlaceSpotTriggerOrder/PlaceSpotTriggerOrderOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetFuturesOrderTradesOptions.cs b/CryptoExchange.Net/SharedApis/V2/UserTrades/Futures/GetFuturesOrderTrades/GetFuturesOrderTradesOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetFuturesOrderTradesOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/UserTrades/Futures/GetFuturesOrderTrades/GetFuturesOrderTradesOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/UserTrades/Futures/IGetFuturesOrderTradesRest.cs b/CryptoExchange.Net/SharedApis/V2/UserTrades/Futures/GetFuturesOrderTrades/IGetFuturesOrderTrades.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/UserTrades/Futures/IGetFuturesOrderTradesRest.cs
rename to CryptoExchange.Net/SharedApis/V2/UserTrades/Futures/GetFuturesOrderTrades/IGetFuturesOrderTrades.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetFuturesUserTradeHistoryOptions.cs b/CryptoExchange.Net/SharedApis/V2/UserTrades/Futures/GetFuturesUserTradeHistory/GetFuturesUserTradeHistoryOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetFuturesUserTradeHistoryOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/UserTrades/Futures/GetFuturesUserTradeHistory/GetFuturesUserTradeHistoryOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/UserTrades/Futures/IGetFuturesUserTradeHistoryRest.cs b/CryptoExchange.Net/SharedApis/V2/UserTrades/Futures/GetFuturesUserTradeHistory/IGetFuturesUserTradeHistory.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/UserTrades/Futures/IGetFuturesUserTradeHistoryRest.cs
rename to CryptoExchange.Net/SharedApis/V2/UserTrades/Futures/GetFuturesUserTradeHistory/IGetFuturesUserTradeHistory.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetSpotOrderTradesOptions.cs b/CryptoExchange.Net/SharedApis/V2/UserTrades/Spot/GetSpotOrderTrades/GetSpotOrderTradesOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetSpotOrderTradesOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/UserTrades/Spot/GetSpotOrderTrades/GetSpotOrderTradesOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/UserTrades/Spot/IGetSpotOrderTradesRest.cs b/CryptoExchange.Net/SharedApis/V2/UserTrades/Spot/GetSpotOrderTrades/IGetSpotOrderTrades.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/UserTrades/Spot/IGetSpotOrderTradesRest.cs
rename to CryptoExchange.Net/SharedApis/V2/UserTrades/Spot/GetSpotOrderTrades/IGetSpotOrderTrades.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetSpotUserTradeHistoryOptions.cs b/CryptoExchange.Net/SharedApis/V2/UserTrades/Spot/GetSpotUserTradeHistory/GetSpotUserTradeHistoryOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetSpotUserTradeHistoryOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/UserTrades/Spot/GetSpotUserTradeHistory/GetSpotUserTradeHistoryOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/UserTrades/Spot/IGetSpotUserTradeHistoryRest.cs b/CryptoExchange.Net/SharedApis/V2/UserTrades/Spot/GetSpotUserTradeHistory/IGetSpotUserTradeHistory.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/UserTrades/Spot/IGetSpotUserTradeHistoryRest.cs
rename to CryptoExchange.Net/SharedApis/V2/UserTrades/Spot/GetSpotUserTradeHistory/IGetSpotUserTradeHistory.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/UserTrades/ISubscribeUserTradesSocket.cs b/CryptoExchange.Net/SharedApis/V2/UserTrades/SubscribeUserTrades/ISubscribeUserTrades.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/UserTrades/ISubscribeUserTradesSocket.cs
rename to CryptoExchange.Net/SharedApis/V2/UserTrades/SubscribeUserTrades/ISubscribeUserTrades.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribeUserTradeOptions.cs b/CryptoExchange.Net/SharedApis/V2/UserTrades/SubscribeUserTrades/SubscribeUserTradeOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Operations/SubscribeUserTradeOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/UserTrades/SubscribeUserTrades/SubscribeUserTradeOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetWithdrawalHistoryOptions.cs b/CryptoExchange.Net/SharedApis/V2/Withdrawals/GetWithdrawalHistory/GetWithdrawalHistoryOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetWithdrawalHistoryOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Withdrawals/GetWithdrawalHistory/GetWithdrawalHistoryOptions.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Withdrawals/IGetWithdrawalHistoryRest.cs b/CryptoExchange.Net/SharedApis/V2/Withdrawals/GetWithdrawalHistory/IGetWithdrawalHistory.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Withdrawals/IGetWithdrawalHistoryRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Withdrawals/GetWithdrawalHistory/IGetWithdrawalHistory.cs
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/V2/Withdrawals/IWithdrawRest.cs b/CryptoExchange.Net/SharedApis/V2/Withdrawals/Withdraw/IWithdraw.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Interfaces/V2/Withdrawals/IWithdrawRest.cs
rename to CryptoExchange.Net/SharedApis/V2/Withdrawals/Withdraw/IWithdraw.cs
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/WithdrawOptions.cs b/CryptoExchange.Net/SharedApis/V2/Withdrawals/Withdraw/WithdrawOptions.cs
similarity index 100%
rename from CryptoExchange.Net/SharedApis/Models/Options/Endpoints/WithdrawOptions.cs
rename to CryptoExchange.Net/SharedApis/V2/Withdrawals/Withdraw/WithdrawOptions.cs