pub struct RestClient { /* private fields */ }Expand description
REST client for the Coinbase Advanced Trade API.
Implementations§
Source§impl RestClient
impl RestClient
Sourcepub fn builder() -> RestClientBuilder
pub fn builder() -> RestClientBuilder
Create a new client builder.
Sourcepub fn has_credentials(&self) -> bool
pub fn has_credentials(&self) -> bool
Check if the client has credentials configured.
Sourcepub fn accounts(&self) -> AccountsApi<'_>
pub fn accounts(&self) -> AccountsApi<'_>
Access the Accounts API.
§Example
let client = RestClient::builder()
.credentials(Credentials::from_env()?)
.build()?;
let accounts = client.accounts().list_all().await?;Sourcepub fn products(&self) -> ProductsApi<'_>
pub fn products(&self) -> ProductsApi<'_>
Access the Products API.
§Example
let client = RestClient::builder()
.credentials(Credentials::from_env()?)
.build()?;
let products = client.products().list_all().await?;Sourcepub fn public(&self) -> PublicApi<'_>
pub fn public(&self) -> PublicApi<'_>
Access the Public API.
These endpoints do not require authentication.
§Example
let client = RestClient::builder().build()?;
let time = client.public().get_time().await?;
println!("Server time: {}", time.iso);Sourcepub fn orders(&self) -> OrdersApi<'_>
pub fn orders(&self) -> OrdersApi<'_>
Access the Orders API.
§Example
let client = RestClient::builder()
.credentials(Credentials::from_env()?)
.build()?;
let orders = client.orders().list_all().await?;Sourcepub fn fees(&self) -> FeesApi<'_>
pub fn fees(&self) -> FeesApi<'_>
Access the Fees API.
§Example
let client = RestClient::builder()
.credentials(Credentials::from_env()?)
.build()?;
let summary = client.fees().get_transaction_summary().await?;
println!("Fee tier: {}", summary.fee_tier.pricing_tier);Sourcepub fn data(&self) -> DataApi<'_>
pub fn data(&self) -> DataApi<'_>
Access the Data API.
§Example
let client = RestClient::builder()
.credentials(Credentials::from_env()?)
.build()?;
let permissions = client.data().get_key_permissions().await?;
println!("Can trade: {}", permissions.can_trade);Sourcepub fn payment_methods(&self) -> PaymentMethodsApi<'_>
pub fn payment_methods(&self) -> PaymentMethodsApi<'_>
Access the Payment Methods API.
§Example
let client = RestClient::builder()
.credentials(Credentials::from_env()?)
.build()?;
let payment_methods = client.payment_methods().list().await?;
for pm in payment_methods {
println!("{}: {}", pm.name, pm.payment_type);
}Sourcepub fn portfolios(&self) -> PortfoliosApi<'_>
pub fn portfolios(&self) -> PortfoliosApi<'_>
Access the Portfolios API.
§Example
let client = RestClient::builder()
.credentials(Credentials::from_env()?)
.build()?;
let portfolios = client.portfolios().list().await?;
for portfolio in portfolios {
println!("{}: {}", portfolio.uuid, portfolio.name);
}Sourcepub fn convert(&self) -> ConvertApi<'_>
pub fn convert(&self) -> ConvertApi<'_>
Access the Convert API.
§Example
let client = RestClient::builder()
.credentials(Credentials::from_env()?)
.build()?;
let request = CreateConvertQuoteRequest::new("USD-account", "USDC-account", "100.00");
let quote = client.convert().create_quote(request).await?;Sourcepub fn perpetuals(&self) -> PerpetualsApi<'_>
pub fn perpetuals(&self) -> PerpetualsApi<'_>
Access the Perpetuals (INTX) API.
§Example
let client = RestClient::builder()
.credentials(Credentials::from_env()?)
.build()?;
let response = client.perpetuals().list_positions("portfolio-uuid").await?;Sourcepub fn futures(&self) -> FuturesApi<'_>
pub fn futures(&self) -> FuturesApi<'_>
Access the Futures (CFM) API.
§Example
let client = RestClient::builder()
.credentials(Credentials::from_env()?)
.build()?;
let positions = client.futures().list_positions().await?;Sourcepub async fn get<T: DeserializeOwned>(&self, endpoint: &str) -> Result<T>
pub async fn get<T: DeserializeOwned>(&self, endpoint: &str) -> Result<T>
Make a GET request to an authenticated endpoint.
Sourcepub async fn get_with_query<Q: Serialize, T: DeserializeOwned>(
&self,
endpoint: &str,
query: &Q,
) -> Result<T>
pub async fn get_with_query<Q: Serialize, T: DeserializeOwned>( &self, endpoint: &str, query: &Q, ) -> Result<T>
Make a GET request with query parameters.
Sourcepub async fn post<B: Serialize, T: DeserializeOwned>(
&self,
endpoint: &str,
body: &B,
) -> Result<T>
pub async fn post<B: Serialize, T: DeserializeOwned>( &self, endpoint: &str, body: &B, ) -> Result<T>
Make a POST request.
Sourcepub async fn put<B: Serialize, T: DeserializeOwned>(
&self,
endpoint: &str,
body: &B,
) -> Result<T>
pub async fn put<B: Serialize, T: DeserializeOwned>( &self, endpoint: &str, body: &B, ) -> Result<T>
Make a PUT request.
Sourcepub async fn delete<T: DeserializeOwned>(&self, endpoint: &str) -> Result<T>
pub async fn delete<T: DeserializeOwned>(&self, endpoint: &str) -> Result<T>
Make a DELETE request.
Sourcepub async fn public_get<T: DeserializeOwned>(&self, endpoint: &str) -> Result<T>
pub async fn public_get<T: DeserializeOwned>(&self, endpoint: &str) -> Result<T>
Make a public (unauthenticated) GET request.
Sourcepub async fn public_get_with_query<Q: Serialize, T: DeserializeOwned>(
&self,
endpoint: &str,
query: &Q,
) -> Result<T>
pub async fn public_get_with_query<Q: Serialize, T: DeserializeOwned>( &self, endpoint: &str, query: &Q, ) -> Result<T>
Make a public GET request with query parameters.
Source§impl RestClient
impl RestClient
Sourcepub fn market_order(&self) -> MarketOrderBuilder<'_>
pub fn market_order(&self) -> MarketOrderBuilder<'_>
Create a market order builder.
§Example
let client = RestClient::builder()
.credentials(Credentials::from_env()?)
.build()?;
// Buy $100 of BTC
let response = client.market_order()
.buy("BTC-USD")
.quote_size("100.00")
.send()
.await?;
// Sell 0.001 BTC
let response = client.market_order()
.sell("BTC-USD")
.base_size("0.001")
.send()
.await?;Sourcepub fn limit_order_gtc(&self) -> LimitOrderGtcBuilder<'_>
pub fn limit_order_gtc(&self) -> LimitOrderGtcBuilder<'_>
Create a limit order (GTC) builder.
§Example
let client = RestClient::builder()
.credentials(Credentials::from_env()?)
.build()?;
let response = client.limit_order_gtc()
.buy("BTC-USD")
.base_size("0.001")
.limit_price("50000.00")
.post_only(true)
.send()
.await?;Sourcepub fn limit_order_gtd(&self) -> LimitOrderGtdBuilder<'_>
pub fn limit_order_gtd(&self) -> LimitOrderGtdBuilder<'_>
Create a limit order (GTD) builder.
§Example
let client = RestClient::builder()
.credentials(Credentials::from_env()?)
.build()?;
let response = client.limit_order_gtd()
.buy("BTC-USD")
.base_size("0.001")
.limit_price("50000.00")
.end_time("2024-12-31T23:59:59Z")
.send()
.await?;Sourcepub fn stop_limit_order_gtc(&self) -> StopLimitOrderGtcBuilder<'_>
pub fn stop_limit_order_gtc(&self) -> StopLimitOrderGtcBuilder<'_>
Create a stop-limit order (GTC) builder.
§Example
let client = RestClient::builder()
.credentials(Credentials::from_env()?)
.build()?;
let response = client.stop_limit_order_gtc()
.sell("BTC-USD")
.base_size("0.001")
.limit_price("49000.00")
.stop_price("50000.00")
.stop_direction(StopDirection::StopDirectionStopDown)
.send()
.await?;Trait Implementations§
Source§impl Clone for RestClient
impl Clone for RestClient
Source§fn clone(&self) -> RestClient
fn clone(&self) -> RestClient
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more