Getting started
Introduction
One open-source API for prediction markets. Market data, order entry, live streams and an execution engine, across Kalshi and Polymarket.
New here? Start with the Quickstart (read-only, under a minute). Moving from another library? See Migrate from Dome / pmxt.
Welcome to Synpath
Synpath provides a unified, open-source API for prediction markets, including:
- Market data and search across Kalshi, Polymarket, Polymarket US and Opinion, with unified identifiers
- Order entry on every venue, with credentials that never leave your machine
- Live order books, trades, orders and fills as self-healing WebSocket and gRPC streams
- An execution engine with a journal, pre-trade risk, a ledger per strategy book, and the order types the venues do not hold
How It Works
- Search for markets across all supported exchanges with a single call, and match the same proposition from venue to venue
- Place orders using unified Synpath IDs, with no exchange-specific identifiers to manage
- Track orders, positions and fills in real time across every venue you trade on
- Run strategies through the engine: journaled orders, risk rules, and P&L per strategy book
Do you need to self-host?
- No, for market data, search, cross-venue matching and plain limit or market orders. Call the library from your code; orders go straight to the venue.
- Yes, for orders that must keep working after your script stops: stops, trailing stops, icebergs, TWAP, pegs, brackets and orders on a bucket. Also if you trade from a language other than Python, such as TypeScript or Go: those programs place orders through the HTTP API of your self-hosted server.
- What self-hosting gives you. Your self-hosted server is one command from the same install,
synpath serve, on your machine or your own server. It watches the markets and fires those orders on time, applies your risk limits, tracks positions and P&L, and picks up where it left off after a restart. Your venue keys stay with it, and no order passes through Synpath.

