Odds API comparison
PingOdds vs The Odds API
PingOdds and The Odds API are both JSON APIs for sportsbook odds. This page puts them side by side: what each costs, which books and leagues each covers, how fresh the prices are, and how to move a request from The Odds API to PingOdds.
The Odds API’s column comes from its own public pages, read on 23 October 2026; they’re listed at the bottom. Prices and coverage change, so if something here is out of date, tell us.
Pick The Odds API if
- You need UK, European or Australian books, or sports PingOdds doesn’t cover.
- You need player props.
- You need historical snapshots going back to 2020.
- You poll a lot of featured markets: their 5M-credit plan is $119 a month.
Pick PingOdds if
- You build for Ontario and need FanDuel, Betway, LeoVegas, Unibet or Bally Bet there.
- You want every price change PingOdds records, on every plan, instead of 5-minute snapshots on paid plans.
- You want each response to say when every book’s price last changed and when it was last checked.
- You want +EV, steam, outlier and arbitrage signals, webhooks, a WebSocket stream or an MCP server for your AI agent.
- You’d rather count calls than credits per market per region.
Side by side
| What | PingOdds | The Odds API |
|---|---|---|
| Free plan | 250 requests a month, 5 a minute; every book and league; no card | 500 credits a month; most bookmakers; no historical odds |
| Paid plans | Starter $19/mo (50,000 requests), Pro $99/mo (500,000 requests) | 20K credits $30/mo, 100K $59, 5M $119, 15M $249; bigger plans after sign-up |
| What counts against your plan | One request per API call, however many books, markets or games it returns | Credits: 1 per market per region on each call (3 markets × 3 regions = 9); 10 per market per region for historical odds |
| Sportsbooks | 14, the same on every plan: Pinnacle, FanDuel, BetRivers, Bally Bet, betPARX, Bovada, FanDuel Ontario, BetRivers Ontario, Bally Bet Ontario, Unibet Ontario, LeoVegas Ontario, Proline+, BET99 and Betway Ontario | Over 100, in regions for the US, UK, Europe, Australia, Canada, France, Sweden and Finland |
| Ontario books | 8: FanDuel Ontario, BetRivers Ontario, Bally Bet Ontario, Unibet Ontario, LeoVegas Ontario, Betway Ontario, BET99 and Proline+ | One ca region of 8 books, 7 marked Ontario: BET99, Betano, BetMGM, BetRivers, PointsBet, PROLINE and Sports Interaction. FanDuel, Betway, LeoVegas and Unibet aren’t listed for Ontario |
| Sports and leagues | 15 leagues: NFL, NBA, MLB, NHL, NCAAF, NCAAB, EPL, MLS, Champions League, La Liga, Bundesliga, Serie A, Ligue 1, ATP and WTA | Over 100 sports, all on every plan |
| Markets | Moneylines, spreads and totals. No player props yet | Moneylines, spreads, totals, outrights, alternates, periods and player props (props mainly for US sports and books, one game per call) |
| Live (in-play) odds | No live feed yet | Yes |
| How often prices update | Each league checked every 60–90 seconds, on every plan; no delay added on Free | Featured markets every 60 seconds before the game and 40 seconds in play; props and alternates every 60 seconds |
| How old each price is | last_update (last price change) and last_checked (last successful check) for every book, and meta.staleness_ms for the whole response | last_update per bookmaker (per market on single-game calls) |
| Price history | Every price change PingOdds records, on every plan | Snapshots every 5 minutes since September 2022 (every 10 minutes from June 2020), on paid plans |
| Betting signals | No-vig consensus and closing lines on every plan; steam, +EV and outlier signals from Starter; arbitrage on Pro | Not in their docs |
| Streaming | WebSocket, included in Pro ($99/mo) | Not in their docs: REST polling only |
| Webhooks | For signals, on Pro | Not in their docs |
| AI agents (MCP) | Hosted MCP server with 13 tools, on Starter and Pro, with its own call allowance | Not in their docs |
| API key goes in | Authorization: Bearer header | apiKey query parameter |
What PingOdds doesn’t cover yet
- No player props: moneylines, spreads and totals only.
- No live (in-play) feed: each league is checked every 60–90 seconds, which suits pregame odds.
- 15 leagues: NFL, NBA, MLB, NHL, NCAAF, NCAAB, EPL, MLS, Champions League, La Liga, Bundesliga, Serie A, Ligue 1, ATP and WTA. No golf, MMA, cricket or esports.
- US and Ontario books only: no UK, European or Australian books, and no DraftKings, BetMGM or Caesars yet.
Moving from The Odds API
The same odds, asked of each API:
The Odds API
curl "https://api.the-odds-api.com/v4/sports/basketball_nba/odds/?apiKey=$ODDS_API_KEY®ions=us&markets=h2h,spreads&oddsFormat=american" PingOdds
curl -H "Authorization: Bearer $PINGODDS_API_KEY" \
"https://api.pingodds.com/v2/odds?league=basketball_nba&markets=h2h,spreads" PingOdds uses The Odds API’s sport keys for its 13 team-sport leagues (basketball_nba, soccer_epl …), so league takes the value you already send; tennis is one league per tour, tennis_atp and tennis_wta. There are no regions: a call returns every book unless you name some in books. Market keys are the same: h2h, spreads, totals.
| The Odds API | PingOdds |
|---|---|
[] of games | events[], each with an event and its markets |
bookmakers[].markets[].outcomes[] | markets[].books[].outcomes[] (market first, then book) |
home_team, away_team | event.home.name, event.away.name |
outcomes[].name (a team name) | outcomes[].name: home, away, draw, over or under |
price (decimal or American, per oddsFormat) | price_dec and price_am, always both |
point | line |
last_update per bookmaker | last_update and last_checked per book |
bookmakers= | books= |
x-requests-remaining header | X-RateLimit-Remaining header |
The quickstart shows a full response, and the API reference every field.
Sources
The Odds API’s own pages, as they read on 23 October 2026:
- Plans and prices
- API guide (v4): usage costs, request format
- Bookmakers by region
- Betting markets
- Update intervals
- Historical odds
More comparisons: PingOdds vs TheRundown · PingOdds vs SharpAPI