Skip to main content

Client

Struct Client 

Source
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

Source

pub fn new(host: &str) -> Result<Client>

Creates a new Data API client with a custom host URL.

§Arguments
  • host - The base URL for the Data API (e.g., https://data-api.polymarket.com).
§Errors

Returns an error if the URL is invalid or the HTTP client cannot be created.

Source

pub fn host(&self) -> &Url

Returns the base URL of the API.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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§

Source§

impl Clone for Client

Source§

fn clone(&self) -> Client

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 Client

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Client

Source§

fn default() -> Self

Returns the “default value” for a type. 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<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.

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

impl<T> PolicyExt for T
where T: ?Sized,

Source§

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

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

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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