API · Reference
The Polymarket SDK names changed with CLOB V2, and there are now several, so "which one?" is the most common 2026 question. Short answer: use the V2 CLOB client for your language, and reach for Rust if you trade from a deposit wallet or need low latency. The old V1 clients are archived.
py-clob-client (latest
0.34.x) is archived and non-functional; Node @polymarket/clob-client is
superseded. There is no "py-clob-client 0.40". If a guide says that, it's wrong.The SDKs in 2026
| SDK | Package | Use for |
|---|---|---|
| Python - V2 CLOB | py-clob-client-v2 (1.x) | The default for Python trading. Import py_clob_client_v2. |
| Node - V2 CLOB | @polymarket/clob-client-v2 | The default for Node/TS trading (built on viem). |
| Rust - V2 (official) | polymarket_client_sdk_v2 | Low latency, market-making, and deposit wallets (the only client that works for POLY_1271 today). |
| Unified (beta) | polymarket-client / @polymarket/client | New projects, but currently read-only (no order placement yet). |
| Polymarket US | polymarket-us-python | The CFTC-regulated US platform (Ed25519 auth, a separate stack). |
Which should you pick?
- Reading market data, any language → any V2 client, or the read-only unified SDK. No key needed.
- Placing orders in Python →
py-clob-client-v2. - Placing orders in Node/TS →
@polymarket/clob-client-v2. - Trading from a deposit wallet (POLY_1271 / sig type 3) → Rust
(
polymarket_client_sdk_v2). The Python/TS clients have an open deposit-wallet auth bug. - Latency-critical (HFT, market making) → Rust.
- US, CFTC-regulated →
polymarket-us-python(Ed25519,polymarket.us).
Install
pip install py-clob-client-v2 # V2 CLOB client
npm install @polymarket/clob-client-v2
# Cargo.toml
polymarket_client_sdk_v2 = "0.5" # official, repo rs-clob-client-v2
py-clob-client-v2 1.0.1, @polymarket/clob-client-v2 1.0.6,
Rust ~0.5-0.6.Your first client (init + a read)
Same shape in every language - construct the client, read a book. Reads need no key:
from py_clob_client_v2 import ClobClient
c = ClobClient(host="https://clob.polymarket.com", chain_id=137)
print(c.get_order_book(TOKEN_ID).asks[:3])
import { ClobClient } from "@polymarket/clob-client-v2";
const c = new ClobClient("https://clob.polymarket.com", 137);
console.log(await c.getOrderBook(TOKEN_ID));
use polymarket_client_sdk_v2::ClobClient;
let c = ClobClient::new("https://clob.polymarket.com", 137);
let book = c.get_order_book(token_id).await?;
To place orders, derive credentials once and pass them to the client - see Authentication & wallets.
py-clob-client-v2 (not 0.x py-clob-client); credentials go into the constructor as
creds= (there is no set_api_creds); and you post in one call with
create_and_post_order(...) instead of create_order then post_order.
And collateral is pUSD, not USDC.e.Try a call (no install needed)
Every SDK above wraps these same public endpoints - run one live to see the shape before you pick:
Next: Authentication & wallets · CLOB API reference · Fix an SDK error.



