Skip to main content

CoinApiHttpClient

Struct CoinApiHttpClient 

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

Authenticated, data-only CoinAPI HTTP client.

REST requests return raw protocol models. The single-page historical methods fetch exactly one page; callers must not infer completeness from a full page. The range methods page through a whole window. Range requests run serially so each sizes its pages after earlier ranges settle their credits. Flat Files downloads stream raw bytes to disk without requiring instrument definitions.

Implementations§

Source§

impl CoinApiHttpClient

Source

pub fn new( api_key: SecretString, config: CoinApiHttpConfig, ) -> Result<Self, Error>

Creates a client using an explicit secret and endpoint configuration.

§Errors

Returns an error if the credentials, endpoint, limits, or transport configuration are invalid.

Source

pub fn cancel(&self)

Cancels pending and future requests on this instance.

Source

pub fn credits_remaining(&self) -> u64

Returns the remaining conservative local credit allowance.

Source

pub async fn download_flat_file( &self, bucket: &str, object_key: &str, filepath: &Path, ) -> Result<(), Error>

Downloads one Flat Files object, replacing the destination only after the stream succeeds.

Authentication is automatic. The destination’s parent directories are created as needed. Downloads share this client’s retry, cancellation, proxy, and concurrency controls, and reject redirects. Flat Files usage does not consume the local REST credit allowance.

§Errors

Returns an error if the bucket or object key contains empty or dot segments, the request fails, retry controls stop the download, or a file operation fails.

Source

pub async fn get_exchanges( &self, query: &ExchangesQuery, ) -> Result<Vec<Exchange>, Error>

Retrieves exchange metadata with optional filtering.

§Errors

Returns an error if the request fails, the credit budget is exhausted, the transport or HTTP request fails, or decoding fails.

Source

pub async fn get_symbols( &self, exchange_id: &str, query: &SymbolsQuery, ) -> Result<Vec<Symbol>, Error>

Retrieves active symbols for one exchange.

§Errors

Returns an error if validation fails, the credit budget is exhausted, the transport or HTTP request fails, or decoding fails.

Source

pub async fn request_instruments( &self, exchange_id: &str, query: &SymbolsQuery, price_precisions: &HashMap<InstrumentId, u8>, ts_init: UnixNanos, ) -> Result<Vec<CoinApiInstrument>, Error>

Loads native instruments from the active symbols of one exchange.

Only spot, perpetual, and futures symbols are parsed. Symbols of those types that cannot be mapped to a native instrument are logged and skipped. An instrument listed in price_precisions takes that price precision instead of the CoinAPI price resolution.

§Errors

Returns an error if validation fails, the credit budget is exhausted, the transport or HTTP request fails, or decoding fails. Validation rejects a price precision beyond the Nautilus maximum.

Source

pub async fn get_book( &self, symbol_id: &str, query: &BookQuery, ) -> Result<Book, Error>

Retrieves a current L2 market-by-price book for one symbol.

§Errors

Returns an error if validation fails, the credit budget is exhausted, the transport or HTTP request fails, or decoding fails.

Source

pub async fn get_book_l3( &self, symbol_id: &str, query: &BookQuery, ) -> Result<Book, Error>

Retrieves a current L3 market-by-order book for one symbol.

§Errors

Returns an error if validation fails, the credit budget is exhausted, the transport or HTTP request fails, or decoding fails.

Source

pub async fn get_quotes( &self, symbol_id: &str, query: &HistoryQuery, ) -> Result<Vec<Quote>, Error>

Retrieves one historical quote page with an explicit window and limit.

§Errors

Returns an error if validation fails, the credit budget is exhausted, the transport or HTTP request fails, or decoding fails.

Source

pub async fn get_quotes_range( &self, symbol_id: &str, range: &HistoryRange, ) -> Result<HistoryPages<Quote>, Error>

Retrieves historical quotes across a window, ordered and paged by time_exchange.

§Errors

Returns an error if validation fails, the credit budget is exhausted, the transport or HTTP request fails, decoding fails, or response ordering fails.

Source

pub async fn get_trades( &self, symbol_id: &str, query: &TradesQuery, ) -> Result<Vec<Trade>, Error>

Retrieves one historical trade page with an explicit window and limit.

§Errors

Returns an error if validation fails, the credit budget is exhausted, the transport or HTTP request fails, or decoding fails.

Source

pub async fn get_trades_range( &self, symbol_id: &str, range: &HistoryRange, ) -> Result<HistoryPages<Trade>, Error>

Retrieves historical trades across a window, ordered and paged by time_exchange.

§Errors

Returns an error if validation fails, the credit budget is exhausted, the transport or HTTP request fails, decoding fails, or response ordering fails.

Source

pub async fn get_ohlcv( &self, symbol_id: &str, query: &OhlcvQuery, ) -> Result<Vec<Ohlcv>, Error>

Retrieves one historical OHLCV page for the requested period.

§Errors

Returns an error if validation fails, the credit budget is exhausted, the transport or HTTP request fails, or decoding fails.

Source

pub async fn get_ohlcv_range( &self, symbol_id: &str, period_id: OhlcvPeriod, range: &HistoryRange, ) -> Result<HistoryPages<Ohlcv>, Error>

Retrieves OHLCV periods starting within a window, ordered and paged by time_period_start.

§Errors

Returns an error if validation fails, the credit budget is exhausted, the transport or HTTP request fails, decoding fails, or response ordering fails.

Trait Implementations§

Source§

impl Debug for CoinApiHttpClient

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

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

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

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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + 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
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + 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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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

impl<T> WithSubscriber for T

Source§

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

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

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