Synpath
Live Market Data

Quotes

Top of book and market statistics as the venue summarises them, without carrying a full book.

WSSawait stream.watch_ticker(market_ids)SDK stream · your process · venue credentials

Self-hosted. Opened from your own process straight to the venue. Nothing here runs on Synpath's servers.

Lighter than a book subscription: the venue's own best bid and ask, last price and volume, as it publishes them. On Polymarket the market channel sends these for whatever books are subscribed, so watch_ticker and watch_order_book are the same subscription there.

Venues

VenueSupportNotes
PolymarketSupportedBest bid and ask per token.
KalshiSupportedBid, ask, last, volume and open interest.
Polymarket USSupportedThe venue's lite market-data channel.
OpinionPartialThe last traded price only, as QuoteEvent.last; no streamed top of book.

Parameters

NameTypeDescription
market_idslist[str] | NoneSynpath ids. On Kalshi, omit for every market.

QuoteEvent

The top of book moved.

NameTypeDescription
venuestringWhich venue the event came from.
received_atintegerWhen this process received it, ms since epoch.
market_idstring
sideyes | noThe terms the prices are in.
bid, askdecimal | null
bid_size, ask_sizedecimal | nullWhere the venue sends them.
lastdecimal | null
volume, open_interestdecimal | nullWhere the venue sends them (Kalshi, Polymarket US).
timestampinteger | null
import asyncio
from synpath import PolymarketMarketStream

stream = PolymarketMarketStream()                              # no credentials

from synpath import QuoteEvent

async def main():
    async with stream:
        await stream.watch_ticker(["polymarket:2252244"])
        async for event in stream:
            if isinstance(event, QuoteEvent):
                print(event.market_id, event.bid, event.ask, event.last)

asyncio.run(main())
QuoteEvent
{
  "venue": "polymarket",
  "received_at": 1790077592174,
  "market_id": "polymarket:2252244",
  "side": "yes",
  "bid": "0.41",
  "ask": "0.43",
  "bid_size": null,
  "ask_size": null,
  "last": null,
  "volume": null,
  "open_interest": null,
  "timestamp": 1789655011496,
  "info": {}
}