pub struct BybitHttpClient { /* private fields */ }Expand description
Provides a HTTP client for connecting to the Bybit REST API.
Implementations§
Source§impl BybitHttpClient
impl BybitHttpClient
Sourcepub fn new(
base_url: Option<String>,
timeout_secs: Option<u64>,
max_retries: Option<u32>,
retry_delay_ms: Option<u64>,
retry_delay_max_ms: Option<u64>,
) -> Result<Self, BybitHttpError>
pub fn new( base_url: Option<String>, timeout_secs: Option<u64>, max_retries: Option<u32>, retry_delay_ms: Option<u64>, retry_delay_max_ms: Option<u64>, ) -> Result<Self, BybitHttpError>
Creates a new BybitHttpClient using the default Bybit HTTP URL.
§Errors
Returns an error if the retry manager cannot be created.
Sourcepub fn with_credentials(
api_key: String,
api_secret: String,
base_url: Option<String>,
timeout_secs: Option<u64>,
max_retries: Option<u32>,
retry_delay_ms: Option<u64>,
retry_delay_max_ms: Option<u64>,
) -> Result<Self, BybitHttpError>
pub fn with_credentials( api_key: String, api_secret: String, base_url: Option<String>, timeout_secs: Option<u64>, max_retries: Option<u32>, retry_delay_ms: Option<u64>, retry_delay_max_ms: Option<u64>, ) -> Result<Self, BybitHttpError>
Creates a new BybitHttpClient configured with credentials.
§Errors
Returns an error if the retry manager cannot be created.
Sourcepub fn recv_window_ms(&self) -> u64
pub fn recv_window_ms(&self) -> u64
Returns the configured receive window in milliseconds.
Sourcepub fn credential(&self) -> Option<&Credential>
pub fn credential(&self) -> Option<&Credential>
Returns the API credential if configured.
Sourcepub fn cancel_all_requests(&self)
pub fn cancel_all_requests(&self)
Cancel all pending HTTP requests.
Sourcepub fn cancellation_token(&self) -> &CancellationToken
pub fn cancellation_token(&self) -> &CancellationToken
Get the cancellation token for this client.
Sourcepub async fn http_get_server_time(
&self,
) -> Result<BybitServerTimeResponse, BybitHttpError>
pub async fn http_get_server_time( &self, ) -> Result<BybitServerTimeResponse, BybitHttpError>
Sourcepub async fn http_get_instruments<T: DeserializeOwned>(
&self,
params: &BybitInstrumentsInfoParams,
) -> Result<T, BybitHttpError>
pub async fn http_get_instruments<T: DeserializeOwned>( &self, params: &BybitInstrumentsInfoParams, ) -> Result<T, BybitHttpError>
Sourcepub async fn http_get_instruments_spot(
&self,
params: &BybitInstrumentsInfoParams,
) -> Result<BybitInstrumentSpotResponse, BybitHttpError>
pub async fn http_get_instruments_spot( &self, params: &BybitInstrumentsInfoParams, ) -> Result<BybitInstrumentSpotResponse, BybitHttpError>
Sourcepub async fn http_get_instruments_linear(
&self,
params: &BybitInstrumentsInfoParams,
) -> Result<BybitInstrumentLinearResponse, BybitHttpError>
pub async fn http_get_instruments_linear( &self, params: &BybitInstrumentsInfoParams, ) -> Result<BybitInstrumentLinearResponse, BybitHttpError>
Sourcepub async fn http_get_instruments_inverse(
&self,
params: &BybitInstrumentsInfoParams,
) -> Result<BybitInstrumentInverseResponse, BybitHttpError>
pub async fn http_get_instruments_inverse( &self, params: &BybitInstrumentsInfoParams, ) -> Result<BybitInstrumentInverseResponse, BybitHttpError>
Sourcepub async fn http_get_instruments_option(
&self,
params: &BybitInstrumentsInfoParams,
) -> Result<BybitInstrumentOptionResponse, BybitHttpError>
pub async fn http_get_instruments_option( &self, params: &BybitInstrumentsInfoParams, ) -> Result<BybitInstrumentOptionResponse, BybitHttpError>
Sourcepub async fn http_get_klines(
&self,
params: &BybitKlinesParams,
) -> Result<BybitKlinesResponse, BybitHttpError>
pub async fn http_get_klines( &self, params: &BybitKlinesParams, ) -> Result<BybitKlinesResponse, BybitHttpError>
Sourcepub async fn http_get_recent_trades(
&self,
params: &BybitTradesParams,
) -> Result<BybitTradesResponse, BybitHttpError>
pub async fn http_get_recent_trades( &self, params: &BybitTradesParams, ) -> Result<BybitTradesResponse, BybitHttpError>
Sourcepub async fn http_get_open_orders(
&self,
category: BybitProductType,
symbol: Option<&str>,
) -> Result<BybitOpenOrdersResponse, BybitHttpError>
pub async fn http_get_open_orders( &self, category: BybitProductType, symbol: Option<&str>, ) -> Result<BybitOpenOrdersResponse, BybitHttpError>
Sourcepub async fn http_place_order(
&self,
request: &Value,
) -> Result<BybitPlaceOrderResponse, BybitHttpError>
pub async fn http_place_order( &self, request: &Value, ) -> Result<BybitPlaceOrderResponse, BybitHttpError>
Sourcepub fn add_instrument(&self, instrument: InstrumentAny)
pub fn add_instrument(&self, instrument: InstrumentAny)
Add an instrument to the cache.
Sourcepub async fn submit_order(
&self,
product_type: BybitProductType,
instrument_id: InstrumentId,
client_order_id: ClientOrderId,
order_side: OrderSide,
order_type: OrderType,
quantity: Quantity,
time_in_force: TimeInForce,
price: Option<Price>,
reduce_only: bool,
) -> Result<OrderStatusReport>
pub async fn submit_order( &self, product_type: BybitProductType, instrument_id: InstrumentId, client_order_id: ClientOrderId, order_side: OrderSide, order_type: OrderType, quantity: Quantity, time_in_force: TimeInForce, price: Option<Price>, reduce_only: bool, ) -> Result<OrderStatusReport>
Submit a new order.
§Errors
Returns an error if:
- Credentials are missing.
- The request fails.
- Order validation fails.
- The order is rejected.
- The API returns an error.
Sourcepub async fn modify_order(
&self,
product_type: BybitProductType,
instrument_id: InstrumentId,
client_order_id: Option<ClientOrderId>,
venue_order_id: Option<VenueOrderId>,
quantity: Option<Quantity>,
price: Option<Price>,
) -> Result<OrderStatusReport>
pub async fn modify_order( &self, product_type: BybitProductType, instrument_id: InstrumentId, client_order_id: Option<ClientOrderId>, venue_order_id: Option<VenueOrderId>, quantity: Option<Quantity>, price: Option<Price>, ) -> Result<OrderStatusReport>
Modify an existing order.
§Errors
Returns an error if:
- Credentials are missing.
- The request fails.
- The order doesn’t exist.
- The order is already closed.
- The API returns an error.
Sourcepub async fn cancel_order(
&self,
product_type: BybitProductType,
instrument_id: InstrumentId,
client_order_id: Option<ClientOrderId>,
venue_order_id: Option<VenueOrderId>,
) -> Result<OrderStatusReport>
pub async fn cancel_order( &self, product_type: BybitProductType, instrument_id: InstrumentId, client_order_id: Option<ClientOrderId>, venue_order_id: Option<VenueOrderId>, ) -> Result<OrderStatusReport>
Cancel an order.
§Errors
Returns an error if:
- Credentials are missing.
- The request fails.
- The order doesn’t exist.
- The API returns an error.
Sourcepub async fn cancel_all_orders(
&self,
product_type: BybitProductType,
instrument_id: InstrumentId,
) -> Result<Vec<OrderStatusReport>>
pub async fn cancel_all_orders( &self, product_type: BybitProductType, instrument_id: InstrumentId, ) -> Result<Vec<OrderStatusReport>>
Cancel all orders for an instrument.
§Errors
Returns an error if:
- Credentials are missing.
- The request fails.
- The API returns an error.
Sourcepub async fn query_order(
&self,
account_id: AccountId,
product_type: BybitProductType,
instrument_id: InstrumentId,
client_order_id: Option<ClientOrderId>,
venue_order_id: Option<VenueOrderId>,
) -> Result<Option<OrderStatusReport>>
pub async fn query_order( &self, account_id: AccountId, product_type: BybitProductType, instrument_id: InstrumentId, client_order_id: Option<ClientOrderId>, venue_order_id: Option<VenueOrderId>, ) -> Result<Option<OrderStatusReport>>
Query a single order by client order ID or venue order ID.
§Errors
Returns an error if:
- Credentials are missing.
- The request fails.
- The API returns an error.
Sourcepub async fn request_order_status_reports(
&self,
account_id: AccountId,
product_type: BybitProductType,
instrument_id: Option<InstrumentId>,
open_only: bool,
limit: Option<u32>,
) -> Result<Vec<OrderStatusReport>>
pub async fn request_order_status_reports( &self, account_id: AccountId, product_type: BybitProductType, instrument_id: Option<InstrumentId>, open_only: bool, limit: Option<u32>, ) -> Result<Vec<OrderStatusReport>>
Request multiple order status reports.
§Errors
Returns an error if:
- Credentials are missing.
- The request fails.
- The API returns an error.
Sourcepub async fn request_instruments(
&self,
product_type: BybitProductType,
symbol: Option<String>,
) -> Result<Vec<InstrumentAny>>
pub async fn request_instruments( &self, product_type: BybitProductType, symbol: Option<String>, ) -> Result<Vec<InstrumentAny>>
Request instruments for a given product type.
§Errors
Returns an error if:
- The request fails.
- Parsing fails.
Sourcepub async fn request_trades(
&self,
product_type: BybitProductType,
instrument_id: InstrumentId,
limit: Option<u32>,
) -> Result<Vec<TradeTick>>
pub async fn request_trades( &self, product_type: BybitProductType, instrument_id: InstrumentId, limit: Option<u32>, ) -> Result<Vec<TradeTick>>
Request trade tick history for a given symbol.
§Errors
Returns an error if:
- The instrument is not found in cache.
- The request fails.
- Parsing fails.
§References
https://bybit-exchange.github.io/docs/v5/market/recent-trade
Sourcepub async fn request_bars(
&self,
product_type: BybitProductType,
bar_type: BarType,
start: Option<i64>,
end: Option<i64>,
limit: Option<u32>,
) -> Result<Vec<Bar>>
pub async fn request_bars( &self, product_type: BybitProductType, bar_type: BarType, start: Option<i64>, end: Option<i64>, limit: Option<u32>, ) -> Result<Vec<Bar>>
Sourcepub async fn request_fill_reports(
&self,
account_id: AccountId,
product_type: BybitProductType,
instrument_id: Option<InstrumentId>,
start: Option<i64>,
end: Option<i64>,
limit: Option<u32>,
) -> Result<Vec<FillReport>>
pub async fn request_fill_reports( &self, account_id: AccountId, product_type: BybitProductType, instrument_id: Option<InstrumentId>, start: Option<i64>, end: Option<i64>, limit: Option<u32>, ) -> Result<Vec<FillReport>>
Sourcepub async fn request_position_status_reports(
&self,
account_id: AccountId,
product_type: BybitProductType,
instrument_id: Option<InstrumentId>,
) -> Result<Vec<PositionStatusReport>>
pub async fn request_position_status_reports( &self, account_id: AccountId, product_type: BybitProductType, instrument_id: Option<InstrumentId>, ) -> Result<Vec<PositionStatusReport>>
Fetches position information for the account.
§Errors
This function returns an error if:
- Required instruments are not cached.
- The instrument is not found in cache.
- The request fails.
- Parsing fails.
§References
https://bybit-exchange.github.io/docs/v5/position/position-info
Sourcepub async fn request_account_state(
&self,
account_type: BybitAccountType,
account_id: AccountId,
) -> Result<AccountState>
pub async fn request_account_state( &self, account_type: BybitAccountType, account_id: AccountId, ) -> Result<AccountState>
Requests the current account state for the specified account type.
§Errors
Returns an error if:
- The request fails.
- Parsing fails.
§References
https://bybit-exchange.github.io/docs/v5/account/wallet-balance
Sourcepub async fn request_fee_rates(
&self,
product_type: BybitProductType,
symbol: Option<String>,
base_coin: Option<String>,
) -> Result<Vec<BybitFeeRate>>
pub async fn request_fee_rates( &self, product_type: BybitProductType, symbol: Option<String>, base_coin: Option<String>, ) -> Result<Vec<BybitFeeRate>>
Source§impl BybitHttpClient
impl BybitHttpClient
pub fn py_base_url(&self) -> &str
pub fn py_api_key(&self) -> Option<&str>
Trait Implementations§
Source§impl Clone for BybitHttpClient
impl Clone for BybitHttpClient
Source§fn clone(&self) -> BybitHttpClient
fn clone(&self) -> BybitHttpClient
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BybitHttpClient
impl Debug for BybitHttpClient
Source§impl Default for BybitHttpClient
impl Default for BybitHttpClient
Source§impl<'py> IntoPyObject<'py> for BybitHttpClient
impl<'py> IntoPyObject<'py> for BybitHttpClient
Source§type Target = BybitHttpClient
type Target = BybitHttpClient
Source§type Output = Bound<'py, <BybitHttpClient as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <BybitHttpClient as IntoPyObject<'py>>::Target>
Source§fn into_pyobject(
self,
py: Python<'py>,
) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
fn into_pyobject( self, py: Python<'py>, ) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
Source§impl PyClass for BybitHttpClient
impl PyClass for BybitHttpClient
Source§impl PyClassImpl for BybitHttpClient
impl PyClassImpl for BybitHttpClient
Source§const IS_BASETYPE: bool = false
const IS_BASETYPE: bool = false
Source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
Source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
Source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
Source§const IS_IMMUTABLE_TYPE: bool = false
const IS_IMMUTABLE_TYPE: bool = false
Source§const RAW_DOC: &'static CStr = /// Provides a HTTP client for connecting to the [Bybit](https://bybit.com) REST API.
const RAW_DOC: &'static CStr = /// Provides a HTTP client for connecting to the [Bybit](https://bybit.com) REST API.
Source§const DOC: &'static CStr
const DOC: &'static CStr
text_signature if a constructor is defined. Read moreSource§type ThreadChecker = SendablePyClass<BybitHttpClient>
type ThreadChecker = SendablePyClass<BybitHttpClient>
Source§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
Source§type BaseNativeType = PyAny
type BaseNativeType = PyAny
PyAny by default, and when you declare
#[pyclass(extends=PyDict)], it’s PyDict.fn items_iter() -> PyClassItemsIter
fn lazy_type_object() -> &'static LazyTypeObject<Self>
fn dict_offset() -> Option<isize>
fn weaklist_offset() -> Option<isize>
Source§impl PyClassNewTextSignature for BybitHttpClient
impl PyClassNewTextSignature for BybitHttpClient
const TEXT_SIGNATURE: &'static str = "(api_key=None, api_secret=None, base_url=None, timeout_secs=None, max_retries=None, retry_delay_ms=None, retry_delay_max_ms=None)"
Source§impl<'a, 'holder, 'py> PyFunctionArgument<'a, 'holder, 'py, false> for &'holder BybitHttpClient
impl<'a, 'holder, 'py> PyFunctionArgument<'a, 'holder, 'py, false> for &'holder BybitHttpClient
Source§impl<'a, 'holder, 'py> PyFunctionArgument<'a, 'holder, 'py, false> for &'holder mut BybitHttpClient
impl<'a, 'holder, 'py> PyFunctionArgument<'a, 'holder, 'py, false> for &'holder mut BybitHttpClient
Source§impl PyMethods<BybitHttpClient> for PyClassImplCollector<BybitHttpClient>
impl PyMethods<BybitHttpClient> for PyClassImplCollector<BybitHttpClient>
fn py_methods(self) -> &'static PyClassItems
Source§impl PyTypeInfo for BybitHttpClient
impl PyTypeInfo for BybitHttpClient
Source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
§fn type_object(py: Python<'_>) -> Bound<'_, PyType>
fn type_object(py: Python<'_>) -> Bound<'_, PyType>
§fn is_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type or a subclass of this type.§fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type.impl DerefToPyAny for BybitHttpClient
Auto Trait Implementations§
impl Freeze for BybitHttpClient
impl !RefUnwindSafe for BybitHttpClient
impl Send for BybitHttpClient
impl Sync for BybitHttpClient
impl Unpin for BybitHttpClient
impl !UnwindSafe for BybitHttpClient
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FromPyObject<'_> for Twhere
T: PyClass + Clone,
impl<T> FromPyObject<'_> for Twhere
T: PyClass + Clone,
§fn extract_bound(obj: &Bound<'_, PyAny>) -> Result<T, PyErr>
fn extract_bound(obj: &Bound<'_, PyAny>) -> Result<T, PyErr>
§impl<'py, T> FromPyObjectBound<'_, 'py> for Twhere
T: FromPyObject<'py>,
impl<'py, T> FromPyObjectBound<'_, 'py> for Twhere
T: FromPyObject<'py>,
§fn from_py_object_bound(ob: Borrowed<'_, 'py, PyAny>) -> Result<T, PyErr>
fn from_py_object_bound(ob: Borrowed<'_, 'py, PyAny>) -> Result<T, PyErr>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 Twhere
T: IntoPyObject<'py>,
impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
§fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
self into an owned Python object, dropping type information.§fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
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>
fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
self into a Python object. Read more