Skip to main content

BinanceFuturesHttpClient

Struct BinanceFuturesHttpClient 

Source
pub struct BinanceFuturesHttpClient { /* private fields */ }
Expand description

Binance Futures HTTP client for USD-M and COIN-M perpetuals.

Implementations§

Source§

impl BinanceFuturesHttpClient

Source

pub fn new( product_type: BinanceProductType, environment: BinanceEnvironment, clock: &'static AtomicTime, api_key: Option<String>, api_secret: Option<String>, base_url_override: Option<String>, recv_window: Option<u64>, timeout_secs: Option<u64>, proxy_url: Option<String>, treat_expired_as_canceled: bool, ) -> BinanceFuturesHttpResult<Self>

Creates a new BinanceFuturesHttpClient instance.

§Errors

Returns an error if the product type is invalid or HTTP client creation fails.

Source

pub const fn product_type(&self) -> BinanceProductType

Returns the product type (UsdM or CoinM).

Source

pub fn inner(&self) -> &BinanceRawFuturesHttpClient

Returns a reference to the inner raw HTTP client.

Source

pub fn instruments_cache(&self) -> Arc<DashMap<Ustr, BinanceFuturesInstrument>>

Returns a clone of the instruments cache Arc.

Source

pub async fn server_time(&self) -> BinanceFuturesHttpResult<BinanceServerTime>

Returns server time.

§Errors

Returns an error if the request fails.

Source

pub async fn set_leverage( &self, params: &BinanceSetLeverageParams, ) -> BinanceFuturesHttpResult<BinanceLeverageResponse>

Sets leverage for a symbol.

§Errors

Returns an error if the request fails.

Source

pub async fn set_margin_type( &self, params: &BinanceSetMarginTypeParams, ) -> BinanceFuturesHttpResult<Value>

Sets margin type for a symbol.

§Errors

Returns an error if the request fails.

Source

pub async fn query_hedge_mode( &self, ) -> BinanceFuturesHttpResult<BinanceHedgeModeResponse>

Queries hedge mode (dual side position) setting.

§Errors

Returns an error if the request fails.

Source

pub async fn create_listen_key( &self, ) -> BinanceFuturesHttpResult<ListenKeyResponse>

Creates a listen key for user data stream.

§Errors

Returns an error if the request fails.

Source

pub async fn keepalive_listen_key( &self, listen_key: &str, ) -> BinanceFuturesHttpResult<()>

Keeps alive an existing listen key.

§Errors

Returns an error if the request fails.

Source

pub async fn close_listen_key( &self, listen_key: &str, ) -> BinanceFuturesHttpResult<()>

Closes an existing listen key.

§Errors

Returns an error if the request fails.

Source

pub async fn exchange_info(&self) -> BinanceFuturesHttpResult<()>

Fetches exchange information and populates the instrument cache.

§Errors

Returns an error if the request fails or the product type is invalid.

Source

pub async fn request_symbol_statuses( &self, ) -> BinanceFuturesHttpResult<AHashMap<Ustr, MarketStatusAction>>

Fetches exchange info and returns the current status of each symbol.

Builds a fresh status snapshot from the response without disturbing the shared instruments cache, so a transient failure does not break other HTTP operations that depend on cached precision data.

§Errors

Returns an error if the request fails or the product type is invalid.

Source

pub async fn request_instruments( &self, ) -> BinanceFuturesHttpResult<Vec<InstrumentAny>>

Fetches exchange information and returns parsed Nautilus instruments.

§Errors

Returns an error if the request fails or the product type is invalid.

Source

pub async fn ticker_24h( &self, params: &BinanceTicker24hrParams, ) -> BinanceFuturesHttpResult<Vec<BinanceFuturesTicker24hr>>

Fetches 24hr ticker statistics.

§Errors

Returns an error if the request fails.

Source

pub async fn book_ticker( &self, params: &BinanceBookTickerParams, ) -> BinanceFuturesHttpResult<Vec<BinanceBookTicker>>

Fetches best bid/ask prices.

§Errors

Returns an error if the request fails.

Source

pub async fn price_ticker( &self, symbol: Option<&str>, ) -> BinanceFuturesHttpResult<Vec<BinancePriceTicker>>

Fetches price ticker.

§Errors

Returns an error if the request fails.

Source

pub async fn depth( &self, params: &BinanceDepthParams, ) -> BinanceFuturesHttpResult<BinanceOrderBook>

Fetches order book depth.

§Errors

Returns an error if the request fails.

Source

pub async fn mark_price( &self, params: &BinanceMarkPriceParams, ) -> BinanceFuturesHttpResult<Vec<BinanceFuturesMarkPrice>>

Fetches mark price and funding rate.

§Errors

Returns an error if the request fails.

Source

pub async fn funding_rate( &self, params: &BinanceFundingRateParams, ) -> BinanceFuturesHttpResult<Vec<BinanceFundingRate>>

Fetches funding rate history.

§Errors

Returns an error if the request fails.

Source

pub async fn open_interest( &self, params: &BinanceOpenInterestParams, ) -> BinanceFuturesHttpResult<BinanceOpenInterest>

Fetches current open interest for a symbol.

§Errors

Returns an error if the request fails.

Source

pub async fn query_order( &self, params: &BinanceOrderQueryParams, ) -> BinanceFuturesHttpResult<BinanceFuturesOrder>

Queries a single order by order ID or client order ID.

§Errors

Returns an error if the request fails.

Source

pub async fn query_open_orders( &self, params: &BinanceOpenOrdersParams, ) -> BinanceFuturesHttpResult<Vec<BinanceFuturesOrder>>

Queries all open orders.

§Errors

Returns an error if the request fails.

Source

pub async fn query_all_orders( &self, params: &BinanceAllOrdersParams, ) -> BinanceFuturesHttpResult<Vec<BinanceFuturesOrder>>

Queries all orders (including historical).

§Errors

Returns an error if the request fails.

Source

pub async fn query_account( &self, ) -> BinanceFuturesHttpResult<BinanceFuturesAccountInfo>

Fetches account information including balances and positions.

§Errors

Returns an error if the request fails.

Source

pub async fn query_positions( &self, params: &BinancePositionRiskParams, ) -> BinanceFuturesHttpResult<Vec<BinancePositionRisk>>

Fetches position risk information.

§Errors

Returns an error if the request fails.

Source

pub async fn query_user_trades( &self, params: &BinanceUserTradesParams, ) -> BinanceFuturesHttpResult<Vec<BinanceUserTrade>>

Fetches user trades for a symbol.

§Errors

Returns an error if the request fails.

Source

pub async fn submit_order( &self, account_id: AccountId, instrument_id: InstrumentId, client_order_id: ClientOrderId, order_side: OrderSide, order_type: OrderType, quantity: Quantity, time_in_force: TimeInForce, price: Option<Price>, trigger_price: Option<Price>, reduce_only: bool, post_only: bool, position_side: Option<BinancePositionSide>, price_match: Option<BinancePriceMatch>, ) -> Result<OrderStatusReport>

Submits a new order.

§Errors

Returns an error if:

  • The instrument is not cached.
  • The order type or time-in-force is unsupported.
  • Stop orders are submitted without a trigger price.
  • The request fails.
Source

pub async fn submit_algo_order( &self, account_id: AccountId, instrument_id: InstrumentId, client_order_id: ClientOrderId, order_side: OrderSide, order_type: OrderType, quantity: Quantity, time_in_force: TimeInForce, price: Option<Price>, trigger_price: Option<Price>, reduce_only: bool, close_position: bool, position_side: Option<BinancePositionSide>, activation_price: Option<Price>, callback_rate: Option<String>, working_type: Option<BinanceWorkingType>, ) -> Result<OrderStatusReport>

Submits an algo order (conditional order) to the Binance Algo Service.

As of 2025-12-09, Binance migrated conditional order types to the Algo Service API. This method handles StopMarket, StopLimit, MarketIfTouched, LimitIfTouched, and TrailingStopMarket orders.

§Errors

Returns an error if:

  • The order type requires a trigger price but none is provided.
  • The instrument is not cached.
  • The request fails.
Source

pub async fn submit_order_list( &self, orders: &[BatchOrderItem], ) -> BinanceFuturesHttpResult<Vec<BatchOrderResult>>

Submits multiple orders in a single request (up to 5 orders).

Each order in the batch is processed independently. The response contains the result for each order, which can be either a success or an error.

§Errors

Returns an error if the batch exceeds 5 orders or the request fails.

Source

pub async fn modify_order( &self, account_id: AccountId, instrument_id: InstrumentId, venue_order_id: Option<VenueOrderId>, client_order_id: Option<ClientOrderId>, order_side: OrderSide, quantity: Quantity, price: Price, ) -> Result<OrderStatusReport>

Modifies an existing order (price and quantity only).

Either venue_order_id or client_order_id must be provided.

§Errors

Returns an error if:

  • Neither venue_order_id nor client_order_id is provided.
  • The instrument is not cached.
  • The request fails.
Source

pub async fn batch_modify_orders( &self, modifies: &[BatchModifyItem], ) -> BinanceFuturesHttpResult<Vec<BatchOrderResult>>

Modifies multiple orders in a single request (up to 5 orders).

Each modify in the batch is processed independently. The response contains the result for each modify, which can be either a success or an error.

§Errors

Returns an error if the batch exceeds 5 orders or the request fails.

Source

pub async fn cancel_order( &self, instrument_id: InstrumentId, venue_order_id: Option<VenueOrderId>, client_order_id: Option<ClientOrderId>, ) -> Result<VenueOrderId>

Cancels an order by venue order ID or client order ID.

Either venue_order_id or client_order_id must be provided.

§Errors

Returns an error if:

  • Neither venue_order_id nor client_order_id is provided.
  • The request fails.
Source

pub async fn cancel_algo_order( &self, client_order_id: ClientOrderId, ) -> Result<()>

Cancels an algo order (conditional order) via the Binance Algo Service.

Use the client_algo_id which corresponds to the client_order_id used when submitting the algo order.

§Errors

Returns an error if the request fails.

Source

pub async fn cancel_all_orders( &self, instrument_id: InstrumentId, ) -> Result<Vec<VenueOrderId>>

Cancels all open orders for a symbol.

§Errors

Returns an error if the request fails.

Source

pub async fn cancel_all_algo_orders( &self, instrument_id: InstrumentId, ) -> Result<()>

Cancels all open algo orders for a symbol.

§Errors

Returns an error if the request fails.

Source

pub async fn batch_cancel_orders( &self, cancels: &[BatchCancelItem], ) -> BinanceFuturesHttpResult<Vec<BatchOrderResult>>

Cancels multiple orders in a single request (up to 5 orders).

Each cancel in the batch is processed independently. The response contains the result for each cancel, which can be either a success or an error.

§Errors

Returns an error if the batch exceeds 5 orders or the request fails.

Source

pub async fn query_open_algo_orders( &self, instrument_id: Option<InstrumentId>, ) -> BinanceFuturesHttpResult<Vec<BinanceFuturesAlgoOrder>>

Queries open algo orders (conditional orders).

Returns all open algo orders, optionally filtered by symbol.

§Errors

Returns an error if the request fails.

Source

pub async fn query_algo_order( &self, client_order_id: ClientOrderId, ) -> BinanceFuturesHttpResult<BinanceFuturesAlgoOrder>

Queries a single algo order by client_order_id.

§Errors

Returns an error if the request fails.

Source

pub async fn request_account_state( &self, account_id: AccountId, ) -> Result<AccountState>

Requests the current account state.

§Errors

Returns an error if the request fails or parsing fails.

Source

pub async fn request_order_status_report( &self, account_id: AccountId, instrument_id: InstrumentId, venue_order_id: Option<VenueOrderId>, client_order_id: Option<ClientOrderId>, ) -> Result<OrderStatusReport>

Requests a single order status report.

Either venue_order_id or client_order_id must be provided.

§Errors

Returns an error if the request fails or parsing fails.

Source

pub async fn request_order_status_reports( &self, account_id: AccountId, instrument_id: Option<InstrumentId>, open_only: bool, ) -> Result<Vec<OrderStatusReport>>

Requests order status reports for open orders.

If instrument_id is None, returns all open orders.

§Errors

Returns an error if the request fails or parsing fails.

Source

pub async fn request_fill_reports( &self, account_id: AccountId, instrument_id: InstrumentId, venue_order_id: Option<VenueOrderId>, start: Option<i64>, end: Option<i64>, limit: Option<u32>, ) -> Result<Vec<FillReport>>

Requests fill reports for a symbol.

§Errors

Returns an error if the request fails or parsing fails.

Source

pub async fn request_trades( &self, instrument_id: InstrumentId, limit: Option<u32>, ) -> Result<Vec<TradeTick>>

Requests recent public trades for an instrument.

§Errors

Returns an error if the request fails, instrument is not cached, or parsing fails.

Source

pub async fn request_bars( &self, bar_type: BarType, start: Option<DateTime<Utc>>, end: Option<DateTime<Utc>>, limit: Option<u32>, ) -> Result<Vec<Bar>>

Requests bar (kline/candlestick) data for an instrument.

§Errors

Returns an error if the bar type is not supported, instrument is not cached, or the request fails.

Trait Implementations§

Source§

impl Clone for BinanceFuturesHttpClient

Source§

fn clone(&self) -> BinanceFuturesHttpClient

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for BinanceFuturesHttpClient

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> Ungil for T
where T: Send,