Skip to content

For businesses · public beta

Consensus odds API for football

Margin-free consensus odds for football, agreed across 3+ sources, each with its age.

Competitions, last 7 days
598
Figures held since
10 Oct 2026

Consensus 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). This is a reference price: the average of the books we collect, margin removed. It is not a forecast and not the price of the most efficient bookmakers, so a price above it at one bookmaker is not by itself a value bet.

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