ParlayAPI is wire-compatible with the-odds-api v4 on the
core /sports and /sports/{key}/odds
surface. You change one base URL and your code keeps working
for the shared endpoints. You also gain 22 additional
bookmakers (Pinnacle, the exchanges Novig and ProphetX,
prediction markets Kalshi and Polymarket and Robinhood,
DFS pick'em PrizePicks / Underdog / Sleeper, plus French and
European books). Starter tier is 6x cheaper per credit;
see the pricing table below for the honest comparison.
If you're using the-odds-api.com directly, swap the base URL to parlay-api.com. That's it.
# Python (requests) - BASE_URL = "https://api.the-odds-api.com/v4" + BASE_URL = "https://parlay-api.com/v1" r = requests.get( f"{BASE_URL}/sports/baseball_mlb/odds", params={"markets": "h2h", "regions": "us"}, headers={"X-API-KEY": "YOUR_PARLAYAPI_KEY"}, )
If you're using their official the-odds-api SDK, point it at our base URL via the SDK's config option, or migrate to plain requests / fetch. Most users do the latter; the response is identical.
// JavaScript (fetch) - const BASE = "https://api.the-odds-api.com/v4"; + const BASE = "https://parlay-api.com/v1"; const events = await fetch( `${BASE}/sports/baseball_mlb/odds?markets=h2h®ions=us`, { headers: { "X-API-KEY": YOUR_KEY } } ).then(r => r.json());
| the-odds-api | ParlayAPI | Compat |
|---|---|---|
/v4/sports | /v1/sports | Identical |
/v4/sports/{key}/odds | /v1/sports/{key}/odds | Identical + more bookmakers + prop markets |
/v4/sports/{key}/events | /v1/sports/{key}/events | Identical |
/v4/historical/sports/{key}/odds | /v1/historical/sports/{key}/odds | Identical + deeper history (NFL 1999+, NBA 2017+) |
| (none) | /v1/sports/{key}/props | Player props from DK, FanDuel, BetMGM, Caesars, PrizePicks, Underdog, Sleeper, ProphetX, Novig, plus DFS-pick'em books |
| (none) | /v1/ws/odds/{key} | WebSocket streaming (push updates, no polling). Sport key is part of the path. |
| (none) | /v1/sse/odds/{key} | Server-Sent Events streaming (HTTP/2 friendly, EventSource-compatible) |
| (none) | /v1/sports/{key}/compare | Side-by-side bookmaker prices with the best line highlighted per outcome. Also reachable at /v1/sports/{key}/best-line. |
You don't need to change a single sport_key string for these:
baseball_mlb, basketball_nba, americanfootball_nfl, icehockey_nhlamericanfootball_ncaaf, basketball_ncaab, basketball_wnbamma_mixed_martial_arts, mma_ufcsoccer_epl, soccer_spain_la_liga, soccer_germany_bundesliga, soccer_italy_serie_a, soccer_france_ligue_onesoccer_uefa_champs_league, soccer_uefa_europa_league, soccer_conmebol_copa_libertadoresWe add 60+ sport keys the-odds-api doesn't carry: French Ligue 2, Brazilian Serie B, Korean KBO baseball, Japanese NPB, Polish Ekstraklasa, Swiss Super League, Czech table tennis, esports leagues (CS2, LoL, Valorant, Dota 2), and more. Full list at /v1/sports?all=true.
The authoritative list is GET /v1/bookmakers. Below is what's live today. If the key isn't in /v1/bookmakers, it isn't ingested; we do not maintain placeholder entries.
draftkings, fanduel, betmgm, caesars, betrivers, bovada, pinnacle, fanatics, bet365.
Some books the-odds-api lists (PointsBet US, William Hill US, Wynn, Unibet US) are not in our ingest. We avoid maintaining a dead key just for parity; if you depended on those, check the corresponding feed below or contact support.
pinnacle (US-blocked at the-odds-api)novig, prophetxkalshi, polymarket, robinhoodprizepicks, underdog, sleeper, parlayplay, betrfliff, hardrock, parxbwin, unibet, pmu, betclic, winamaxThe honest per-credit math. Read the rightmost column. Bigger plans on the-odds-api are cheaper per credit than our equivalent tier; smaller plans (Free, Starter, Pro) are dramatically cheaper on ParlayAPI. Pick the row that matches your monthly volume.
| Tier | the-odds-api | ParlayAPI | Per-credit comparison |
|---|---|---|---|
| Free | 500 credits/mo | 1,000 credits/mo | 2x more credits, same $0 |
| Starter | $30/mo (20K) = $1.50 per 1K | $5/mo (20K) = $0.25 per 1K | 6x cheaper per credit |
| Pro | $59/mo (100K) = $0.59 per 1K | $20/mo (100K) = $0.20 per 1K | 3x cheaper per credit |
| Business | $119/mo (5M) = $0.024 per 1K | $40/mo (1M) = $0.040 per 1K | Total bill is lower on our plan but you get 5x fewer credits. If you need 5M credits/mo on ParlayAPI, jump to Scale ($200/mo for 50M = $0.004 per 1K, 6x cheaper than their Business per credit). |
| Enterprise | Contact sales | Scale: $200/mo (50M) | Self-serve; no sales call required |
Credit costs per call vary by endpoint (1 credit for most reads, 5 credits for /v1/sports/{key}/compare and /v1/clv). Hit /v1/usage on your account to see your actual burn rate before migrating.
/v1/sports/{key}/props endpoint, with full market-key support (player_points, player_anytime_td, etc.)/v1/ws/odds/{key} and Server-Sent Events at /v1/sse/odds/{key} for push updates instead of polling/v1/sports/{key}/compare (also aliased to /v1/sports/{key}/best-line) for line-shopping botsGET /v1/status and GET /v1/meta/provider-state; treat the documented values as steady-state guidance, not strict SLA. Business+ adds WebSocket and SSE streaming for push updates with sub-second wire latency from the broadcast layer (still bounded by upstream cadence)./healthz ~500 ms, /v1/sports/{key}/odds 600 to 900 ms, /v1/sports/{key}/props 800 to 1200 ms (limit 5000), /v1/sports/{key}/compare 1.5 to 2.5 s, /v1/historical/coverage ~250 ms warm.x-result-page-size, x-result-limit, x-result-offset, x-result-has-more, x-next-offset) so you can walk pages without guessing. Body shape stays a flat list, preserving back-compat./v1/sports?all=true first.Both APIs accept X-API-KEY as a header. We also accept ?apiKey= as a query param for compatibility with code that uses the-odds-api's older docs. Either works.
None on paid tiers. Burst at whatever rate your client wants; you're metered on monthly credits, not per-second throughput. Free trial keeps a 60 req/s cap purely for anti-abuse during evaluation. If you need >10,000 req/s sustained from a single key (almost always a misconfigured retry loop), contact support to shard across keys.
Same commence_time ISO-8601 UTC format. Same last_update per bookmaker. No code change needed.
Same ?bookmakers= comma-separated key list. We support all keys the-odds-api does plus the additional ones above.
Sign up gets you an API key in 30 seconds. No credit card. Free tier supports real testing volume (1,000 credits/month).