Rust SDK toolkit for Polymarket APIs. It includes library crates for use in your projects and a standalone CLI.
Warning
This is currently work-in-progress so the API may change and some features may be missing
| Crate | Description |
|---|---|
| polyte | Unified client for Polymarket APIs (CLOB, Gamma, Data, WebSocket) |
| polyte-cli | CLI tool for querying Polymarket APIs |
| polyte-clob | Client library for Polymarket CLOB (order book) API |
| polyte-core | Core utilities and shared types |
| polyte-data | Client library for Polymarket Data API |
| polyte-gamma | Client library for Polymarket Gamma (market data) API |
cargo add polyte
Or install individual APIs:
# Market data only
cargo add polyte --no-default-features --features gamma
# Trading only
cargo add polyte --no-default-features --features clob
# Data API only
cargo add polyte --no-default-features --features data
# WebSocket only
cargo add polyte --no-default-features --features ws
Install using cargo
cargo install polyte-cli
Or download binaries directly from Github releases
curl -fsSL https://raw.githubusercontent.com/roushou/polyte/main/scripts/install.sh | sh
See more information here.
use polyte::prelude::*;#[tokio::main]asyncfnmain() -> Result<(),Box<dyn std::error::Error>>{// Load account from environment variableslet account = Account::from_env()?;let client = Polymarket::builder(account).chain(Chain::PolygonMainnet).build()?;// Get marketslet markets = client.gamma.markets().list().send().await?;// Get balancelet balance = client.clob.balance_allowance().await?;Ok(())}use polyte::prelude::*;use futures_util::StreamExt;#[tokio::main]asyncfnmain() -> Result<(),Box<dyn std::error::Error>>{// Connect to market channel (no auth required)letmut ws = ws::WebSocket::connect_market(vec!["token_id".to_string(),]).await?;whileletSome(msg) = ws.next().await{match msg? {
ws::Channel::Market(ws::MarketMessage::Book(book)) => {println!("Order book: {} bids, {} asks", book.bids.len(), book.asks.len());}
ws::Channel::Market(ws::MarketMessage::PriceChange(pc)) => {println!("Price change: {:?}", pc.price_changes);}
_ => {}}}Ok(())}This project is licensed under the MIT License.