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.

Build your own theme park, free in your browserAd Advertise here
Do not use the V1 line. Python 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

SDKPackageUse for
Python - V2 CLOBpy-clob-client-v2 (1.x)The default for Python trading. Import py_clob_client_v2.
Node - V2 CLOB@polymarket/clob-client-v2The default for Node/TS trading (built on viem).
Rust - V2 (official)polymarket_client_sdk_v2Low latency, market-making, and deposit wallets (the only client that works for POLY_1271 today).
Unified (beta)polymarket-client / @polymarket/clientNew projects - but currently read-only (no order placement yet).
Polymarket USpolymarket-us-pythonThe 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
Versions move weekly. Re-check PyPI / npm / crates.io for the latest before you pin. As of June 2026: 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.

Migrating from V1? Three renames catch everyone: the package is 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.