for model builders
Normalized odds across FanDuel, DraftKings, BetMGM, and Caesars. Built-in de-vig (Shin, multiplicative, additive). Resolved outcomes for backtesting. LLM-ready context exports. Everything a quantitative sports bettor needs in one API.
library(betflux) client <- BetFluxClient$new(api_key = "bfx_sk_live_...") # Pull today's NBA spread odds — all books, normalized odds <- client$get_odds( league = "nba", market = "spread", period = "full_game" ) head(odds) #> # A tibble: 12 × 6 #> game_id operator side spread odds timestamp #> <chr> <chr> <chr> <dbl> <int> <dttm> #> 1 bos-mia FANDUEL AWAY -3.5 -110 2025-04-14 09:31:00 #> 2 bos-mia DRAFTKINGS AWAY -3.5 -112 2025-04-14 09:31:00 #> 3 bos-mia BETMGM AWAY -3.5 -115 2025-04-14 09:31:00
Every book returns the same field names, the same market types, the same side values. No custom parsers per operator. Query all books in a single call.
Schema reference →Shin, multiplicative, and additive methods available server-side or via the free calculator. Get fair probabilities alongside raw odds without running the math yourself.
Try the calculator →Complete time-series from open to close for every market and book. The foundational data for CLV models, steam detection, and reverse line movement analysis.
Line movement feature →Every market tagged with its final result. Combine with odds history to build training sets, run flat-bet backtests, or calculate ROI by angle.
Resolved outcomes →Pre-formatted game context blocks for Claude, GPT-4, and Gemini. Export a full betting context — odds, movement, fair value — with one API call.
LLM export formats →NBA, NFL, MLB, NHL, NCAAF, NCAAB — identical schema, identical endpoints. Train on one league and expand to all of them without code changes.
Multi-sport API →Pull normalized odds
Fetch spread, total, and moneyline odds for your target league across all books in one call.
Apply de-vig
Strip the book's margin using Shin or multiplicative method to get fair implied probabilities.
Engineer features
Line movement direction, hold percentage, CLV signals, steam flags — all derivable from the normalized feed.
Join resolved outcomes
Attach win/loss/push labels from the resolved outcomes table to build your labeled training set.
Backtest & validate
Run flat-bet or Kelly-sized backtests. Filter by angle, odds bracket, league, or date range.
Deploy with LLM context
For LLM-assisted decision making, use the LLM export endpoint to generate structured context blocks.
early access
R and Python client libraries, normalized odds API, resolved outcomes, and LLM export formats. Join the waitlist for early access and priority onboarding.
Cookies
A few cookies keep you signed in, and the rest are analytics and marketing that show us what's working. You can accept, reject, or customize, and you can change your mind anytime from the footer.