Live Market Data
Market status
Lifecycle changes: a market opening, pausing, closing, resolving.
WSSawait stream.watch_market_status()SDK stream · your process · venue credentials
Self-hosted. Opened from your own process straight to the venue. Nothing here runs on Synpath's servers.
state is Synpath's word, one of created, open, paused, closed, determined, settled or updated; native keeps the venue's own word and result the winning side where the venue names one.
Venues
| Venue | Support | Notes |
|---|---|---|
| Polymarket | Partial | New markets and resolutions, for the tokens subscribed. No pause or halt on this channel. |
| Kalshi | Supported | The full lifecycle, for every market. |
| Polymarket US | Partial | State changes arrive with the market-data subscription. |
| Opinion | Not offered |
MarketStatusEvent
A market's state changed.
| Name | Type | Description |
|---|---|---|
venue | string | Which venue the event came from. |
received_at | integer | When this process received it, ms since epoch. |
market_id | string | |
state | string | created, open, paused, closed, determined, settled or updated. |
native | string | null | The venue's own word. |
result | string | null | The winning side, once determined. |
timestamp | integer | null |
import asyncio
from synpath import PolymarketMarketStream
stream = PolymarketMarketStream() # no credentials
from synpath import MarketStatusEvent
async def main():
async with stream:
await stream.watch_market_status()
async for event in stream:
if isinstance(event, MarketStatusEvent):
print(event.market_id, event.state, event.result)
asyncio.run(main())MarketStatusEvent
{
"venue": "polymarket",
"received_at": 1790077592174,
"market_id": "polymarket:2252244",
"state": "determined",
"native": "market_resolved",
"result": "Yes",
"timestamp": 1789655011496,
"info": {}
}
