Synpath-ai / synpath
git clone https://github.com/Synpath-ai/synpath.git
v0.8.1 Β· 7d ago
One open-source API for prediction markets. Trade Kalshi, Polymarket, Polymarket US and Opinion with one Python SDK: unified market data, smart order routing across venues, and advanced order types. Plus tick-level Kalshi order book history.
+0
stars, 24h Β· #31,838
+~0
stars, 7 days Β· #32,313
+183
stars, 30 days Β· #2,741
183
β
total
20
forks Β· 2 open issues
Star history (as recorded here)
LanguagePython
LicenseMIT
Created2026-09-28 (23d ago)
Last pushtoday
Watchers1
OwnerOrganization
GitHub topics
algorithmic-tradingccxtkalshimarket-dataorder-bookpolymarketprediction-marketspython-sdksmart-order-routingtrading-apiunified-api
Links
- GitHub: github.com/Synpath-ai/synpath
- Homepage: https://synpath.dev
- Releases Β· Issues Β· Hacker News mentions
README excerpt
# Synpath β One API for prediction markets **Build on prediction markets without building against each one.** One open-source API across 8 venues (Kalshi, Polymarket, Polymarket US, Opinion, Hyperliquid, predict.fun, Limitless and SX Bet): market data, order entry, live streams, and an execution engine that remembers what it sent. In-process from Python, over REST and WebSocket from anywhere. **π New: free tick-level Kalshi order book history.** Every public Kalshi market, full depth, every change and every trade, straight from Kalshi's live feed. Sign up from your terminal and query it in one line of Python. **Get it in 60 seconds β** β **Star Synpath on GitHub** if the data saves you money. Stars are how we decide what to open up next. --- ## Free Kalshi tick data in 60 seconds **1. Install** [code] **2. Sign up**: opens Google sign-in in your browser, then returns to the terminal. Free, no card. [code] **3. Create your API key**: it's saved on your machine and Python picks it up automatically. [code] **4. Query any moment** [code] Request windows use Kalshi venue time (`metadata.time_basis="venue"`); `observed_at_ms` is the separate recorder receive time. No silent gaps: if we weren't recording at a moment, you get the reason instead of an empty book. Up to an hour per request; plain HTTP works too (`Authorization: Bearer `). More: **synpath.dev/tick-data** Β· **API reference** > β **Free data stays free as long as people use it.** If this saves you a data bill, star the repo. It takes one click and it's how other traders find it. **Also new: smart order routing across Kalshi and Polymarket.** One order, both order books combined, filled from the cheapest price after fees. See how it works β --- ## Supported Exchanges | | Exchange | id | Market data | Order entry | Streams | Order books | |:-:|---|---|:-:|:-:|:-:|---| | | Kalshi | `kalshi` | β | β | WebSocket | one book per market, both sides read it | | | Polymarket | `polymarket` | β | β | WebSocket | one book per outcome token | | | Polymarket US | `polymarket_us` | β | β retail and exchange APIs | WebSocket and gRPC | one book per market, both sides read it | | | Opinion | `opinion` | β | β | WebSocket (API key) | one book per outcome token | | | Hyperliquid | `hyperliquid` | β outcome markets (HIP-4) | β | WebSocket (no key) | one book per market, both sides read it | | | predict.fun | `predict_fun` | β (API key) | β | WebSocket (API key) | one book per market, both sides read it | | | Limitless | `limitless` | β | β | WebSocket | one book per market, both sides read it | | | SX Bet | `sx_bet` | β sports | β | WebSocket | one book per market, both sides read it | ## Why Synpath - **Liquidity is fragmented. Your time shouldn't be.** The same market trades on Kalshi, Polymarket, Polymarket US, Opinion, Hyperliquid, predict.fun, Limitless and SX Bet, each with its own API, units and quirks. Synpath gives you one interface for all of them, and smart order routing buys from whichever