pub struct Client { /* private fields */ }Expand description
HTTP client for the Polymarket Data API.
Provides methods for querying user positions, trades, activity, market holders, open interest, volume data, and leaderboards.
§API Base URL
The default API endpoint is https://data-api.polymarket.com.
§Example
use polymarket_client_sdk::data::Client;
// Create client with default endpoint
let client = Client::default();
// Or with a custom endpoint
let client = Client::new("https://custom-api.example.com").unwrap();Implementations§
Source§impl Client
impl Client
Sourcepub async fn health(&self) -> Result<Health>
pub async fn health(&self) -> Result<Health>
Performs a health check on the API.
Returns “OK” when the API is healthy and operational.
§Errors
Returns an error if the request fails or the API returns an error response.
Sourcepub async fn positions(&self, req: &PositionsRequest) -> Result<Vec<Position>>
pub async fn positions(&self, req: &PositionsRequest) -> Result<Vec<Position>>
Fetches current (open) positions for a user.
Positions represent holdings of outcome tokens in prediction markets.
§Errors
Returns an error if the request fails or the API returns an error response.
Sourcepub async fn trades(&self, req: &TradesRequest) -> Result<Vec<Trade>>
pub async fn trades(&self, req: &TradesRequest) -> Result<Vec<Trade>>
Fetches trade history for a user or markets.
Trades represent executed orders where outcome tokens were bought or sold.
§Errors
Returns an error if the request fails or the API returns an error response.
Sourcepub async fn activity(&self, req: &ActivityRequest) -> Result<Vec<Activity>>
pub async fn activity(&self, req: &ActivityRequest) -> Result<Vec<Activity>>
Fetches on-chain activity for a user.
Returns various on-chain operations including trades, splits, merges, redemptions, rewards, and conversions.
§Errors
Returns an error if the request fails or the API returns an error response.
Sourcepub async fn holders(&self, req: &HoldersRequest) -> Result<Vec<MetaHolder>>
pub async fn holders(&self, req: &HoldersRequest) -> Result<Vec<MetaHolder>>
Fetches top token holders for specified markets.
Returns holders grouped by token (outcome) for each market.
§Errors
Returns an error if the request fails or the API returns an error response.
Sourcepub async fn value(&self, req: &ValueRequest) -> Result<Vec<Value>>
pub async fn value(&self, req: &ValueRequest) -> Result<Vec<Value>>
Fetches the total value of a user’s positions.
Optionally filtered by specific markets.
§Errors
Returns an error if the request fails or the API returns an error response.
Sourcepub async fn closed_positions(
&self,
req: &ClosedPositionsRequest,
) -> Result<Vec<ClosedPosition>>
pub async fn closed_positions( &self, req: &ClosedPositionsRequest, ) -> Result<Vec<ClosedPosition>>
Fetches closed (historical) positions for a user.
These are positions that have been fully sold or redeemed.
§Errors
Returns an error if the request fails or the API returns an error response.
Sourcepub async fn leaderboard(
&self,
req: &TraderLeaderboardRequest,
) -> Result<Vec<TraderLeaderboardEntry>>
pub async fn leaderboard( &self, req: &TraderLeaderboardRequest, ) -> Result<Vec<TraderLeaderboardEntry>>
Fetches trader leaderboard rankings.
Returns trader rankings filtered by category, time period, and ordering.
§Errors
Returns an error if the request fails or the API returns an error response.
Sourcepub async fn traded(&self, req: &TradedRequest) -> Result<Traded>
pub async fn traded(&self, req: &TradedRequest) -> Result<Traded>
Fetches the total count of unique markets a user has traded.
§Errors
Returns an error if the request fails or the API returns an error response.
Sourcepub async fn open_interest(
&self,
req: &OpenInterestRequest,
) -> Result<Vec<OpenInterest>>
pub async fn open_interest( &self, req: &OpenInterestRequest, ) -> Result<Vec<OpenInterest>>
Fetches open interest for markets.
Open interest represents the total value of outstanding positions in a market.
§Errors
Returns an error if the request fails or the API returns an error response.
Sourcepub async fn live_volume(
&self,
req: &LiveVolumeRequest,
) -> Result<Vec<LiveVolume>>
pub async fn live_volume( &self, req: &LiveVolumeRequest, ) -> Result<Vec<LiveVolume>>
Fetches live trading volume for an event.
Includes total volume and per-market breakdown.
§Errors
Returns an error if the request fails or the API returns an error response.
Sourcepub async fn builder_leaderboard(
&self,
req: &BuilderLeaderboardRequest,
) -> Result<Vec<BuilderLeaderboardEntry>>
pub async fn builder_leaderboard( &self, req: &BuilderLeaderboardRequest, ) -> Result<Vec<BuilderLeaderboardEntry>>
Fetches aggregated builder leaderboard rankings.
Builders are third-party applications that integrate with Polymarket. Returns one entry per builder with aggregated totals for the specified time period.
§Errors
Returns an error if the request fails or the API returns an error response.
Sourcepub async fn builder_volume(
&self,
req: &BuilderVolumeRequest,
) -> Result<Vec<BuilderVolumeEntry>>
pub async fn builder_volume( &self, req: &BuilderVolumeRequest, ) -> Result<Vec<BuilderVolumeEntry>>
Fetches daily time-series volume data for builders.
Returns multiple entries per builder (one per day), each including a timestamp.
§Errors
Returns an error if the request fails or the API returns an error response.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Client
impl !RefUnwindSafe for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl UnsafeUnpin for Client
impl !UnwindSafe for Client
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,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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