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, 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>, ) -> 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 const fn raw(&self) -> &BinanceRawFuturesHttpClient

Returns a reference to the underlying 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_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, position_side: Option<BinancePositionSide>, ) -> 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, position_side: Option<BinancePositionSide>, ) -> 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.

Source§

impl BinanceFuturesHttpClient

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
Source§

impl<'py> IntoPyObject<'py> for BinanceFuturesHttpClient

Source§

type Target = BinanceFuturesHttpClient

The Python output type
Source§

type Output = Bound<'py, <BinanceFuturesHttpClient as IntoPyObject<'py>>::Target>

The smart pointer type to use. Read more
Source§

type Error = PyErr

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

fn into_pyobject( self, py: Python<'py>, ) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>

Performs the conversion.
Source§

impl PyClass for BinanceFuturesHttpClient

Source§

type Frozen = False

Whether the pyclass is frozen. Read more
Source§

impl PyClassImpl for BinanceFuturesHttpClient

Source§

const IS_BASETYPE: bool = false

#[pyclass(subclass)]
Source§

const IS_SUBCLASS: bool = false

#[pyclass(extends=…)]
Source§

const IS_MAPPING: bool = false

#[pyclass(mapping)]
Source§

const IS_SEQUENCE: bool = false

#[pyclass(sequence)]
Source§

const IS_IMMUTABLE_TYPE: bool = false

#[pyclass(immutable_type)]
Source§

const RAW_DOC: &'static CStr = /// Binance Futures HTTP client for USD-M and COIN-M perpetuals.

Docstring for the class provided on the struct or enum. Read more
Source§

const DOC: &'static CStr

Fully rendered class doc, including the text_signature if a constructor is defined. Read more
Source§

type BaseType = PyAny

Base class
Source§

type ThreadChecker = SendablePyClass<BinanceFuturesHttpClient>

This handles following two situations: Read more
Source§

type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild

Immutable or mutable
Source§

type Dict = PyClassDummySlot

Specify this class has #[pyclass(dict)] or not.
Source§

type WeakRef = PyClassDummySlot

Specify this class has #[pyclass(weakref)] or not.
Source§

type BaseNativeType = PyAny

The closest native ancestor. This is PyAny by default, and when you declare #[pyclass(extends=PyDict)], it’s PyDict.
Source§

fn items_iter() -> PyClassItemsIter

Source§

fn lazy_type_object() -> &'static LazyTypeObject<Self>

§

fn dict_offset() -> Option<isize>

§

fn weaklist_offset() -> Option<isize>

Source§

impl PyClassNewTextSignature for BinanceFuturesHttpClient

Source§

const TEXT_SIGNATURE: &'static str = "(product_type, environment=..., api_key=None, api_secret=None, base_url=None, recv_window=None, timeout_secs=None, proxy_url=None)"

Source§

impl PyMethods<BinanceFuturesHttpClient> for PyClassImplCollector<BinanceFuturesHttpClient>

Source§

fn py_methods(self) -> &'static PyClassItems

Source§

impl PyTypeInfo for BinanceFuturesHttpClient

Source§

const NAME: &'static str = "BinanceFuturesHttpClient"

Class name.
Source§

const MODULE: Option<&'static str>

Module name, if any.
Source§

fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject

Returns the PyTypeObject instance for this type.
§

fn type_object(py: Python<'_>) -> Bound<'_, PyType>

Returns the safe abstraction over the type object.
§

fn is_type_of(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of this type or a subclass of this type.
§

fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of this type.
Source§

impl DerefToPyAny for BinanceFuturesHttpClient

Source§

impl ExtractPyClassWithClone for BinanceFuturesHttpClient

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<'a, 'py, T> FromPyObject<'a, 'py> for T
where T: PyClass + Clone + ExtractPyClassWithClone,

§

type Error = PyClassGuardError<'a, 'py>

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

fn extract( obj: Borrowed<'a, 'py, PyAny>, ) -> Result<T, <T as FromPyObject<'a, 'py>>::Error>

Extracts Self from the bound smart pointer obj. Read more
§

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<'py, T> IntoPyObjectExt<'py> for T
where T: IntoPyObject<'py>,

§

fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>

Converts self into an owned Python object, dropping type information.
§

fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>

Converts self into an owned Python object, dropping type information and unbinding it from the 'py lifetime.
§

fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>

Converts self into a Python object. Read more
§

impl<'py, T> IntoPyObjectNautilusExt<'py> for T
where T: IntoPyObjectExt<'py>,

§

fn into_py_any_unwrap(self, py: Python<'py>) -> Py<PyAny>

Convert self into a [Py<PyAny>] while panicking if the conversion fails. 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
§

impl<T> PyErrArguments for T
where T: for<'py> IntoPyObject<'py> + Send + Sync,

§

fn arguments(self, py: Python<'_>) -> Py<PyAny>

Arguments for exception
§

impl<T> PyTypeCheck for T
where T: PyTypeInfo,

§

const NAME: &'static str = T::NAME

👎Deprecated since 0.27.0: Use ::classinfo_object() instead and format the type name at runtime. Note that using built-in cast features is often better than manual PyTypeCheck usage.
Name of self. This is used in error messages, for example.
§

fn type_check(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of Self, which may include a subtype. Read more
§

fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>

Returns the expected type as a possible argument for the isinstance and issubclass function. 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<'py, T> FromPyObjectOwned<'py> for T
where T: for<'a> FromPyObject<'a, 'py>,

§

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