Pinnacle is the sharp anchor most arbitrage and +EV pipelines use as their reference price, so "is Pinnacle live for sport X right now?" is one of the most asked questions we get. This page shows it explicitly. Every row is a Pinnacle endpoint reading captured in the last 24 hours. No derivation, no extrapolation.
| Sport key | Games (24h) | Rows (24h) | Last update |
|---|---|---|---|
| loading… | |||
The data above comes from the public, no-auth endpoint /v1/pinnacle-coverage. Hit it directly:
curl https://parlay-api.com/v1/pinnacle-coverage | jq '.coverage[] | select(.sport_key | startswith("soccer"))'
For per-book diagnostics across all sources (not just Pinnacle), use the authed /v1/sports/{sport_key}/odds/coverage. It reports what /odds would actually serve you: it takes the same regions, markets, bookmakers, commenceTimeFrom/To, date, eventIds, live and include_live parameters, with the same defaults, and runs the same pipeline. Like /odds it is pregame-only unless you say otherwise, and the response splits the board into total_games_pregame and total_games_in_play so a smaller number explains itself. Still free.
curl "https://parlay-api.com/v1/sports/baseball_mlb/odds/coverage" \ -H "X-API-Key: YOUR_KEY" # the same board /odds?include_live=true would serve curl "https://parlay-api.com/v1/sports/baseball_mlb/odds/coverage?include_live=true" \ -H "X-API-Key: YOUR_KEY"
Game-line moneylines (h2h), captured from the public Pinnacle endpoint. Same data on REST and WebSocket, the WebSocket transport just push-delivers the same captures rather than requiring a poll. "Closing line" in our archive means "last captured price before commence_time"; absent sports indicate Pinnacle hasn't been posting for them or our capture cadence missed the window.