Early Access →

for model builders

A betting data feed built
for R, Python, and LLMs

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.

Client library examples

betflux.R
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

Built for quantitative workflows

Normalized odds schema

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 →

Built-in de-vig

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 →

Full line movement history

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 →

Resolved outcomes

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 →

LLM-ready context exports

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 →

Multi-league, same schema

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 →

Typical model-building workflow

01

Pull normalized odds

Fetch spread, total, and moneyline odds for your target league across all books in one call.

02

Apply de-vig

Strip the book's margin using Shin or multiplicative method to get fair implied probabilities.

03

Engineer features

Line movement direction, hold percentage, CLV signals, steam flags — all derivable from the normalized feed.

04

Join resolved outcomes

Attach win/loss/push labels from the resolved outcomes table to build your labeled training set.

05

Backtest & validate

Run flat-bet or Kelly-sized backtests. Filter by angle, odds bracket, league, or date range.

06

Deploy with LLM context

For LLM-assisted decision making, use the LLM export endpoint to generate structured context blocks.

early access

Get API access when we launch

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.