SportsbookReview APIsportsbookreview.com ↗
Access betting odds, sportsbook reviews, line movement history, expert picks, and promos from SportsbookReview.com via a structured REST API.
What is the SportsbookReview API?
The SportsbookReview API exposes 7 endpoints covering betting odds across major sports, sportsbook ratings, line movement history, expert picks, and promotional offers. The get_odds_by_sport endpoint returns spread, moneyline, and totals data for all games on a given date, while get_line_history tracks how odds have moved across sportsbooks over time — giving you the raw data to build odds comparison tools or betting research workflows.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/20b4d472-b50e-49ea-8045-18fcbd7546b9/get_sportsbook_list' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace sportsbookreview-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: SportsbookReview SDK — betting odds, reviews, and line history."""
from parse_apis.Sportsbook_Review_API import SportsbookReview, Sport, PicksSport, SportsbookNotFound
sbr = SportsbookReview()
# List all reviewed sportsbooks
for book in sbr.sportsbooks.list(limit=5):
print(book.name, book.slug, book.url)
# Navigate to a specific sportsbook and get its review + promo
fanduel = sbr.sportsbook("fanduel")
review = fanduel.review.get()
print(review.rating, review.summary)
promo = fanduel.promo.get()
print(promo.bonus, promo.promo_code)
# List today's MLB games with consensus percentages
game = sbr.games.list_by_sport(sport=Sport.MLB_BASEBALL, limit=1).first()
if game:
print(game.game_id, game.home_team, game.away_team, game.home_ml_consensus)
# Get full matchup odds for this game
matchup = sbr.matchups.get(sport=Sport.MLB_BASEBALL, game_id=game.game_id)
print(matchup.home_team, matchup.venue)
for ml in matchup.moneyline_odds:
print(ml.sportsbook, ml.home_odds, ml.away_odds)
# Get line movement history
history = sbr.line_histories.get(sport=Sport.MLB_BASEBALL, game_id=game.game_id)
for sh in history.sportsbook_histories:
print(sh.sportsbook, len(sh.moneyline_history))
# Typed error handling
try:
sbr.sportsbook("nonexistent_book_xyz").review.get()
except SportsbookNotFound as exc:
print(f"not found: {exc.name}")
# Expert NFL picks
for pick in sbr.picks.list_by_sport(sport=PicksSport.NFL, limit=3):
print(pick.title, pick.link)
print("exercised: sportsbooks.list / review.get / promo.get / games.list_by_sport / matchups.get / line_histories.get / picks.list_by_sport")
Retrieve all reviewed sportsbooks with their names, slugs, and URLs. Returns the sportsbooks featured on the betting-sites page. Each entry's slug is the input key for get_sportsbook_review and get_promos_by_sportsbook.
No input parameters required.
{
"type": "object",
"fields": {
"sportsbooks": "array of sportsbook objects each containing name (display name), slug (identifier), and url (full review page URL)"
},
"sample": {
"data": {
"sportsbooks": [
{
"url": "https://www.sportsbookreview.com/betting-sites/betmgm-sportsbook/",
"name": "BetMGM",
"slug": "betmgm-sportsbook"
},
{
"url": "https://www.sportsbookreview.com/betting-sites/draftkings/",
"name": "DraftKings",
"slug": "draftkings"
},
{
"url": "https://www.sportsbookreview.com/betting-sites/fanduel/",
"name": "FanDuel",
"slug": "fanduel"
}
]
},
"status": "success"
}
}About the SportsbookReview API
Odds and Matchup Data
The get_odds_by_sport endpoint accepts a sport slug (e.g., nfl-football, nba-basketball, mlb-baseball) and an optional date in YYYY-MM-DD format, returning an oddsTables array with gameRows containing per-game odds across multiple sportsbooks. Game IDs from those rows feed directly into get_game_matchup_odds, which returns a matchupModel with gameView, oddsViews, matchupView, and a sportsbooks object — including consensus betting percentages and best available odds across books.
Line Movement and History
get_line_history takes the same sport and game_id parameters and returns a lineHistoryModel containing timestamped historical odds per sportsbook across moneyline, spread, and total markets. This lets you reconstruct how a line opened, moved, and settled at any tracked book, which is useful for sharp-money analysis or building line movement alerts.
Sportsbook Reviews and Promos
get_sportsbook_list returns all reviewed sportsbooks with their slugs, which you can pass to get_sportsbook_review for structured data including an overall rating, summary text, an array of highlights, and a quick_facts object. The get_promos_by_sportsbook endpoint returns the current bonus headline, promo_code string (or 'No code required'), and the direct url for a given sportsbook — useful for affiliate or comparison pages.
Expert Picks
get_picks_by_sport accepts a sport slug (e.g., nfl, nba, mlb) and returns an array of expert pick articles with title, link, and summary fields. This covers the editorial analysis side of the site and is separate from the odds and line data.
The SportsbookReview API is a managed, monitored endpoint for sportsbookreview.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when sportsbookreview.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official sportsbookreview.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a cross-book odds comparison table using
get_odds_by_sportspread and moneyline fields for NFL or NBA games. - Track line movement on a specific game with
get_line_historyto identify timing patterns in odds changes. - Aggregate sportsbook ratings and
quick_factsfromget_sportsbook_reviewto power a side-by-side book comparison page. - Display current promo codes and bonus offers from
get_promos_by_sportsbookon an affiliate landing page. - Pull expert pick articles via
get_picks_by_sportto populate a sports betting newsletter or content feed. - Use
get_game_matchup_oddsconsensus percentages to surface public betting splits for a given matchup. - Automate daily odds snapshots by scheduling
get_odds_by_sportcalls with a date parameter across multiple sport slugs.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does SportsbookReview have an official public developer API?+
What does `get_game_matchup_odds` return beyond basic odds?+
get_game_matchup_odds returns a matchupModel that includes oddsViews (odds per sportsbook), matchupView (consensus betting percentages), gameView (game metadata), and a sportsbooks object listing the books tracked for that game. You get both the best available line and the public betting split in a single call.Does `get_line_history` cover all bet types?+
get_line_history returns historical odds in the oddsViews array covering moneyline, spread, and total markets, each with timestamps. Coverage depends on which sportsbooks SportsbookReview tracks for a given game; not every book appears for every market.Are live in-game odds available through the API?+
Does the API cover player props or futures markets?+
get_odds_by_sport and get_game_matchup_odds. Player props and futures (e.g., season win totals, championship odds) are not currently included. You can fork the API on Parse and revise it to add endpoints targeting those markets.