Migrate from The Odds API
ParlayAPI is wire-compatible with The Odds API on the endpoints that overlap. Migration is one URL change plus a key swap. Most code keeps working with no other edits.
What you save
| Tier (similar volumes) | The Odds API | ParlayAPI | Saved/year |
|---|---|---|---|
| Free | 500 calls/mo | 1,000 calls/mo | $0 (more calls) |
| Entry paid | $30/mo, 20K calls | $5/mo, 20K calls | $300 |
| Pro | $59/mo, 100K calls | $20/mo, 100K calls | $468 |
| Business | $199/mo, 1M calls | $40/mo, 1M calls | $1,908 |
Pricing pulled from each vendor’s public page (May 2026). Verify before relying on the math.
Step 1: get a ParlayAPI key
Sign up for the free tier (1,000 credits/mo, no card required). Verify your email, copy your API key from the dashboard.
Step 2: change one URL
Wire-compatible endpoints:
| The Odds API | ParlayAPI |
|---|---|
https://api.the-odds-api.com/v4/sports | https://parlay-api.com/v1/sports |
/v4/sports/{sport_key}/odds | /v1/sports/{sport_key}/odds |
/v4/sports/{sport_key}/scores | /v1/sports/{sport_key}/scores |
/v4/sports/{sport_key}/events | /v1/sports/{sport_key}/events |
/v4/historical/... | /v1/historical/... |
Same query params (apiKey, regions, markets, oddsFormat, bookmakers). Same response shape. Same bookmaker keys where they overlap (draftkings, fanduel, betmgm, caesars, pinnacle, etc).
Step 3: verify with your free tier
# Run the same call against both APIs and compare responses
curl "https://api.the-odds-api.com/v4/sports/baseball_mlb/odds?apiKey=OLD_KEY®ions=us&markets=h2h"
curl "https://parlay-api.com/v1/sports/baseball_mlb/odds?apiKey=NEW_KEY®ions=us&markets=h2h"
Same shape. If you have a parser, both responses go through the same code.
Step 4: cancel TOA, save the diff
Once you’ve verified your code works against ParlayAPI for a few days, cancel your TOA subscription. The savings start that month.
What you GAIN by switching
Endpoints The Odds API doesn’t carry, all on ParlayAPI:
- Player props with both Over and Under prices from real endpoints (
/v1/sports/{sport}/props) - DFS-style book lines (PrizePicks, Underdog, Sleeper, Dabble, ParlayPlay, Pick6) (
/v1/sports/{sport}/dfs/picks) - Prediction markets (Polymarket CLOB WebSocket + REST, Kalshi public API) (
/v1/prediction-markets/{sport_key}) - Live play-by-play across NFL, NBA, MLB, NHL, soccer, MMA, tennis, WNBA (
/v1/sports/{sport}/live/sse) - In-game period markets (1H, 2H, Q1-Q4, OT) with full historical archive (
/v1/sports/{sport}/live/period_markets) - WebSocket streaming (
wss://parlay-api.com/ws/odds/{sport}) - Source-freshness diagnostic for live-betting bots (
/v1/sports/{sport}/live/source-health) - Pinnacle access on the entry tier (TOA gates Pinnacle behind Pro+)
- Webhooks for arb / EV / line-move alerts (
/v1/webhooks)
Common gotchas
polymarket, kalshi, prizepicks, underdog, sleeper, dabble, parlayplay, pick6. If your parser whitelists books, you can keep the same whitelist or add these.
basketball_nba, baseball_mlb, soccer_england_premier_league, etc).
x-requests-remaining and x-requests-used headers on every response.
Help
Open an issue on the SDK repos or DM [email protected]. We migrate customers regularly. The longest one took 30 minutes.