Skip to content

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=1x2

Try 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.