Get access to Circa Sports odds in real time: main markets, alt lines and player props, pregame and live, with sub-second latency.
{
"timestamp": "2026-10-25T17:02:41.118302+00:00",
"action": "line_update",
"data": {
"sport": "NFL",
"sportsbook": "circa",
"game": "Kansas City Chiefs vs Las Vegas Raiders, 2026-10-25, 01",
"home_team": "Kansas City Chiefs",
"away_team": "Las Vegas Raiders",
"info": { ... },
"outcomes": {
"Kansas City Chiefs Moneyline": {
"odds": "-320",
"outcome_name": "Moneyline",
"outcome_line": null,
"outcome_over_under": null,
"outcome_target": "Kansas City Chiefs"
}
}
}
}
Circa moneylines, spreads and totals across every sport and league they offer.
Alternate spreads and totals, so you get Circa's full line ladder, not just the main number.
Circa player props in the same consistent format as every other book we cover.
Pregame odds hand off to live in-game odds on the same game, with no change to your integration.
No polling. Circa line moves are pushed to you over the WebSocket within a second.
Circa alongside 35+ other sportsbooks, exchanges and prediction markets, all in one format.
Circa odds are included with the Pro plan, alongside every other sportsbook we cover. Not ready yet? Start a 3-day free trial, no credit card required, and test the feed on the rest of our books first.
View Pro Plan
BoltOdds streams Circa odds the moment they change, with no polling and sub-second latency. Line shop Circa against DraftKings, FanDuel, bet365 and the rest of the market from a single connection.
See all sportsbooksimport asyncio, json, websockets
async def run_client():
uri = "wss://spro.agency/api?key=YOUR_TOKEN"
async with websockets.connect(uri) as ws:
await ws.recv() # socket_connected
await ws.send(json.dumps({
"action": "subscribe",
"filters": {"sportsbooks": ["circa"]}
}))
while True:
data = json.loads(await ws.recv())
print(data)
asyncio.run(run_client())
Sign up, grab your API key and subscribe with "sportsbooks": ["circa"]. Odds arrive as structured JSON over a WebSocket, so there's nothing to poll and nothing to scrape.
Read the docsGet your API key and start streaming Circa in minutes.