PMXT is a unified API for every major prediction market — Polymarket, Kalshi, Limitless, Smarkets, and 8 more venues. Same SDK methods, same response shape, regardless of which venue you’re talking to. It runs two ways:Documentation Index
Fetch the complete documentation index at: https://pmxt.dev/docs/llms.txt
Use this file to discover all available pages before exploring further.
- Locally — the open-source pmxt sidecar runs on your machine. No API key, no external dependency. Your requests go directly to the venues.
- Hosted —
api.pmxt.devadds a shared catalog, cross-venue search, and you skip running infrastructure. Set an API key and the SDK switches automatically.
pmxt.Kalshi(...), pmxt.Limitless(...) — and
the methods and response shapes stay the same.
The Router — cross-venue intelligence
The Router is PMXT’s cross-venue intelligence layer. Search, match, and compare prices across every venue — all from a single PMXT API key:Cross-venue search
One query fans out across every venue. Results in ~10ms from a
shared catalog.
Market matching
Find the same or related market on other venues with relation
types, confidence, and reasoning.
Price comparison
Compare bid/ask across venues and find related markets.
Compose with venues
Discover with the Router, trade on venue exchanges. Same schema,
same
marketId.Unified venue interface
Same methods, same response shape, every venue.fetch_markets,
create_order, fetch_positions work identically whether you’re on
Polymarket or Kalshi.
Unified schema
Event / Market / Outcome — the shape that works everywhere.Same SDK, local or hosted
The
pmxt (Python) and pmxtjs (TypeScript) SDKs work identically
against localhost or the hosted API. Set one env var to switch.What you’d build yourself
Without PMXT, getting cross-venue prediction market data means:- 11 venue integrations — each with its own auth, pagination, field names, and rate limits. Polymarket uses CLOB token IDs. Kalshi uses tickers. Smarkets uses contract IDs. You normalize all of it.
- A data pipeline — to ingest, deduplicate, and keep fresh as markets open, resolve, and re-price across every venue.
- A search layer — because querying 11 APIs sequentially is slow.
- Ongoing maintenance — every time a venue changes a field name or ships a new endpoint, your integration breaks.
fetch_markets(query="...") and get
back clean, unified data.
Get started
Quickstart
API key to working code in 30 seconds.
Router
Cross-venue search and the beginning of smart order routing.
Unified schema
The data shape that works everywhere.
API reference
Every method, with interactive try-it-out.

