Sports Betting Odds
Get live betting odds from multiple sportsbooks using The Odds API. Free tier includes 500 requests/month.
Setup
- Get a free API key at https://the-odds-api.com/
- Set the environment variable:
export ODDS_API_KEY=your_key_here
Available Sports
List all available sports:
curl -s "https://api.the-odds-api.com/v4/sports?apiKey=$ODDS_API_KEY" | jq '.[] | {key, title, active}'
Common sport keys:
americanfootball_nfl- NFLbasketball_nba- NBAbaseball_mlb- MLBicehockey_nhl- NHLsoccer_epl- English Premier Leaguesoccer_usa_mls- MLS
Get Odds
Get current odds for a sport (NFL example):
curl -s "https://api.the-odds-api.com/v4/sports/americanfootball_nfl/odds?apiKey=$ODDS_API_KEY®ions=us&markets=h2h,spreads,totals" | jq '.'
Compact odds view:
curl -s "https://api.the-odds-api.com/v4/sports/americanfootball_nfl/odds?apiKey=$ODDS_API_KEY®ions=us&markets=h2h" | jq '.[] | {game: "\(.home_team) vs \(.away_team)", commence: .commence_time, bookmakers: [.bookmakers[] | {name: .title, odds: .markets[0].outcomes}]}'
Compare spreads across books:
curl -s "https://api.the-odds-api.com/v4/sports/basketball_nba/odds?apiKey=$ODDS_API_KEY®ions=us&markets=spreads" | jq '.[] | {matchup: "\(.away_team) @ \(.home_team)", books: [.bookmakers[] | {book: .title, spread: .markets[0].outcomes[0]}]}'
Markets
h2h- Moneyline (head-to-head)spreads- Point spreadstotals- Over/under totals
Regions
us- US sportsbooks (DraftKings, FanDuel, BetMGM, etc.)uk- UK bookmakerseu- European bookmakersau- Australian bookmakers
Best Line Finder
Find the best available line for a game:
# Get best moneyline odds
curl -s "https://api.the-odds-api.com/v4/sports/basketball_nba/odds?apiKey=$ODDS_API_KEY®ions=us&markets=h2h" | jq '
.[] |
{
game: "\(.away_team) @ \(.home_team)",
best_home: (.bookmakers | map(.markets[0].outcomes[] | select(.name == .home_team)) | max_by(.price)),
best_away: (.bookmakers | map(.markets[0].outcomes[] | select(.name == .away_team)) | max_by(.price))
}
'
Check API Usage
curl -s "https://api.the-odds-api.com/v4/sports?apiKey=$ODDS_API_KEY" -D - 2>&1 | grep -i "x-requests"
Headers show: x-requests-used and x-requests-remaining
Tips
- Cache responses to save API calls
- Use
oddsFormat=americanoroddsFormat=decimalparameter - Free tier: 500 requests/month, paid plans available for more