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.

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 Pythonpy-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-regulatedpolymarket-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.