Skip to main content

Crate polymarket_client

Crate polymarket_client 

Source
Expand description

Unified Polymarket Rust SDK for prediction markets on Polygon.

§Clients

  • PublicClient — read-only discovery, market data, and (with account) portfolio reads
  • SecureClient — authenticated trading, notifications, rewards, CTF wallet ops, and user websockets

§Feature flags

FeatureEnables
(default)HTTP discovery + CLOB market data
accountData API reads on PublicClient
websocketsRealtime subscribe() on PublicClient
secureaccount + websockets + SecureClient trading and wallet ops

§Quickstart

use polymarket_client::{Environment, PublicClient};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = PublicClient::new(Environment::production());
    let mut paginator = client.list_markets(polymarket_client::ListMarketsRequest {
        closed: Some(false),
        page_size: Some(5),
        ..Default::default()
    })?;
    let page = paginator.first_page().await?;
    for market in &page.items {
        println!("{}: {}", market.id, market.question.as_deref().unwrap_or(""));
    }
    Ok(())
}

§Realtime (websockets)

use futures::StreamExt as _;
use polymarket_client::{Environment, MarketSubscription, PublicClient, SubscriptionSpec};

let client = PublicClient::new(Environment::production());
let mut handle = client.subscribe(vec![SubscriptionSpec::Market(MarketSubscription {
    token_ids: vec!["123".into()],
    custom_feature_enabled: false,
})])?;
if let Some(Ok(event)) = handle.next().await {
    println!("{event:?}");
}
handle.close();

Structs§

AccountTrade
Activity
ApiCredentials
Persisted L2 API credentials for session reuse.
CancelMarketOrdersRequest
CancelOrderRequest
CancelOrderResponse
CommentsSubscription
CryptoPricesSubscription
CtfConditionId
CTF condition identifier (bytes32 hex).
CurrentReward
DecimalString
Environment
Production and preproduction environment configuration.
EquityPricesSubscription
Event
Normalized Polymarket event.
EventId
EvmAddress
An EVM account or contract address.
FetchMidpointRequest
FetchOrderBookRequest
FetchOrderRequest
FetchOrderScoringRequest
FetchPortfolioValueRequest
ListAccountTradesRequest
ListActivityRequest
ListEventsRequest
ListMarketsRequest
ListOpenOrdersRequest
ListPositionsRequest
Market
MarketId
MarketSubscription
MergePositionsRequest
Notification
OpenOrder
OrderBook
OrderBookLevel
Page
PaginationCursor
Paginator
PlaceLimitOrderRequest
PlaceMarketOrderRequest
PortfolioValue
Position
PublicClient
Read-only Polymarket client for discovery and market data.
PublicClientBuilder
Builder for PublicClient.
RateLimitError
RedeemPositionsRequest
RequestRejectedError
SecureClient
Authenticated Polymarket client for trading and account-scoped CLOB operations.
SecureClientBuilder
Builder for SecureClient.
SplitPositionRequest
SportsStreamEvent
SubscriptionHandle
Handle for an active subscription (or merged subscriptions).
TokenId
TransactionOutcome
TransportError
UnexpectedResponseError
UserInputError
UserSubscription

Enums§

BuildSecureClientError
Errors while constructing a SecureClient.
CancelOrderError
Error
Top-level SDK error.
FetchMarketError
FetchMarketRequest
FetchMidpointError
FetchNotificationsError
FetchOrderBookError
FetchOrderError
FetchOrderScoringError
FetchPortfolioValueError
ListAccountTradesError
ListActivityError
ListCurrentRewardsError
ListEventsError
ListMarketsError
ListOpenOrdersError
ListPositionsError
MarketOrderType
MarketStreamEvent
OrderSide
OrderType
PlaceOrderError
SetupTradingApprovalsError
StreamEvent
Unified realtime event envelope.
SubscribeError
SubscriptionSpec
Subscription spec for unified realtime channels.
UserStreamEvent
WalletOperationError

Constants§

PRIVATE_KEY_VAR

Functions§

unexpected_response
user_input

Type Aliases§

ListActivityPaginator
ListPositionsPaginator
PlaceOrderResponse