Real prices from real sportsbooks. Refreshed every few seconds. No signup required for the live odds preview below. Free tier covers the rest after a 30-second signup.
| Matchup | Commences | Books | Best home | Best away |
|---|---|---|---|---|
| Click Refresh to load live data. | ||||
Backed by GET /v1/try/{sport_key}/odds. No auth, no credits, capped at 60 requests/hour per IP and the first 5 events. Sign up free for the full feed, all 90+ sport keys, every book.
We watch every major sportsbook's public odds feed, normalize the data into a clean API, and ship it as REST + WebSocket + an MCP server for AI agents. Five things we do that no one else in the space does:
GET /v1/meta/source-quality tells you which book is up-to-the-second and which is lagging, in real time. No auth.null. We never infer the missing side.POST /v1/clv/history returns both raw and no-vig CLV percent. The no-vig number is the one that actually measures your edge.POST /v1/sgp/price returns a correlation_audit[] with the literature source for every leg-pair rho. No black box.If you have a free API key already, use this prompt in a client that can make the HTTPS call for you: Claude Desktop, Claude Code, Cursor, or your own script against the Anthropic API. If your client cannot reach parlay-api.com, run the curl from the curl cookbook and paste the JSON in with the prompt.
You have access to https://parlay-api.com/v1/sports/table_tennis/odds
with my API key in the X-API-Key header.
1. Pull the next 20 events.
2. For each event, compute the no-vig fair line by de-vigging the
two-sided moneylines.
3. List any event where the best-available price is at least 2
percentage points better than the de-vigged fair line.
4. Rank by raw EV. Stop at EV < 1.5 percent.
Show me the top 5 with the exact taken price, book, fair line, and
EV percent. Do not fabricate prices; drop the leg if a side isn't
on the response.
You have access to POST https://parlay-api.com/v1/clv/history.
Parse the bet history below into the request shape, call the endpoint,
then:
1. Sum total_clv_pct and no_vig_clv_pct.
2. Bucket by status (ok / no_closing_data / no_price_for_side).
3. Show 5 worst (most -CLV) bets so I know what to stop doing.
4. Show 5 best (most +CLV) bets so I know what's working.
For status=no_closing_data, flag the date so I can verify the game
actually closed. Do not estimate closing lines.
<paste history>
Our MCP server gives Claude Desktop, Claude Code, Cursor, Continue and Devin 22 typed function calls into the API: live odds, player props, best line, consensus, bet verdicts, parlay grading, best-bets discovery, arbitrage, +EV and middles. Nine of them are keyless, so you can prove live coverage and even mint a free key from inside the conversation before you configure anything. CLV grading and SGP pricing are REST endpoints at /v1/clv and /v1/sgp/price rather than MCP tools.
pip install parlayapi-mcp
# add the server to your Claude Desktop config; restart
View on PyPI
MCP docs
/v1/ws/odds-fast/{sport_key}.