Expand description
Unified Polymarket Rust SDK for prediction markets on Polygon.
§Clients
PublicClient— read-only discovery, market data, and (withaccount) portfolio readsSecureClient— authenticated trading, notifications, rewards, CTF wallet ops, and user websockets
§Feature flags
| Feature | Enables |
|---|---|
| (default) | HTTP discovery + CLOB market data |
account | Data API reads on PublicClient |
websockets | Realtime subscribe() on PublicClient |
secure | account + 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§
- Account
Trade - Activity
- ApiCredentials
- Persisted L2 API credentials for session reuse.
- Cancel
Market Orders Request - Cancel
Order Request - Cancel
Order Response - Comments
Subscription - Crypto
Prices Subscription - CtfCondition
Id - CTF condition identifier (bytes32 hex).
- Current
Reward - Decimal
String - Environment
- Production and preproduction environment configuration.
- Equity
Prices Subscription - Event
- Normalized Polymarket event.
- EventId
- EvmAddress
- An EVM account or contract address.
- Fetch
Midpoint Request - Fetch
Order Book Request - Fetch
Order Request - Fetch
Order Scoring Request - Fetch
Portfolio Value Request - List
Account Trades Request - List
Activity Request - List
Events Request - List
Markets Request - List
Open Orders Request - List
Positions Request - Market
- Market
Id - Market
Subscription - Merge
Positions Request - Notification
- Open
Order - Order
Book - Order
Book Level - Page
- Pagination
Cursor - Paginator
- Place
Limit Order Request - Place
Market Order Request - Portfolio
Value - Position
- Public
Client - Read-only Polymarket client for discovery and market data.
- Public
Client Builder - Builder for
PublicClient. - Rate
Limit Error - Redeem
Positions Request - Request
Rejected Error - Secure
Client - Authenticated Polymarket client for trading and account-scoped CLOB operations.
- Secure
Client Builder - Builder for
SecureClient. - Split
Position Request - Sports
Stream Event - Subscription
Handle - Handle for an active subscription (or merged subscriptions).
- TokenId
- Transaction
Outcome - Transport
Error - Unexpected
Response Error - User
Input Error - User
Subscription
Enums§
- Build
Secure Client Error - Errors while constructing a
SecureClient. - Cancel
Order Error - Error
- Top-level SDK error.
- Fetch
Market Error - Fetch
Market Request - Fetch
Midpoint Error - Fetch
Notifications Error - Fetch
Order Book Error - Fetch
Order Error - Fetch
Order Scoring Error - Fetch
Portfolio Value Error - List
Account Trades Error - List
Activity Error - List
Current Rewards Error - List
Events Error - List
Markets Error - List
Open Orders Error - List
Positions Error - Market
Order Type - Market
Stream Event - Order
Side - Order
Type - Place
Order Error - Setup
Trading Approvals Error - Stream
Event - Unified realtime event envelope.
- Subscribe
Error - Subscription
Spec - Subscription spec for unified realtime channels.
- User
Stream Event - Wallet
Operation Error