For businesses · public beta
Fair odds API for football
Margin-free fair odds for football, agreed across 3+ sources, each with its age.
- Competitions, last 7 days
- 589
- Figures held since
- 10 Oct 2026
Fair price
Margin out, one figure in
A bookmaker's price includes its margin. We remove each margin, set outliers aside, and average the rest, one vote per independent source, into one probability, fair_p. fair_odds is 1 / fair_p. Markets: 1X2, over/under goals, both teams to score and Asian handicap.
Books owned by one company count as one. With fewer than three, we show no figure (the row says withheld).
Price age
Every figure says how old it is
Before kick-off a row is provisional. read_age_s is how long ago its newest input price was confirmed by a read. Inputs not read within 45 minutes are withheld rather than served old. When our data as a whole is more than 10 minutes old, the API answers 503.
Every row
What each figure carries
The same fields on every plan, free or paid.
fair_pConsensus probability, margin removed (0–1).fair_oddsThe same figure in decimal odds.n_sourcesIndependent sources behind it.price_age_sSeconds since the figure last changed.read_age_sSeconds since its newest input was confirmed by a read.oldest_input_age_sAge of its oldest input.dispersion_ppHow far the sources disagree, in points.statusprovisional, confirmed_before_ko or withheld.
Get it
One call per day
/v1/fair?date=YYYY-MM-DD returns the day's fair prices as JSON; filter by market or competition. A free Sample key reads today and the next 2 days on a 2-hour delay; paid plans have no added delay. We hold figures since 10 Oct 2026.
Today's fair prices
curl -G https://data.oddsintel.app/v1/fair \ -H "X-Api-Key: $ODDSINTEL_KEY" \ -d date=$(date -u +%F) -d market=1x2Try it on today’s matches
Sample is free. Starter and Pro are paid monthly by card and can be cancelled any time.
Which leagues? See the coverage list.