In-play betting: what it is and how live odds work
Contents

How in-play odds change during a match

Live odds represent the bookmaker’s current price for an outcome.

Before kick-off, a Match Winner market might price the home team at 2.10. Once the match starts, that price no longer exists in isolation from what is happening on the pitch.

If the home team takes the lead, its live win price will normally shorten because winning the match has become more likely than it was at 0-0.

If the away team equalises, the price can lengthen again.

Time matters too. A home team leading 1-0 after 20 minutes and the same team leading 1-0 after 88 minutes represent very different match states because the opposition has much less time to respond in the second case.

Other major events can also cause markets to be repriced. A red card, penalty or VAR decision can materially change the match state even when the score itself has not yet changed.

The exact bookmaker model behind each price is provider-specific. A betting platform should therefore consume the odds being offered rather than trying to infer a bookmaker’s exact live price from the score or event feed alone.

A worked live-odds example

The figures below are illustrative rather than real Sportmonks or bookmaker prices.

Market: Match Winner, home team

Kick-off
Score: 0-0
Home price: 2.10

34th minute
Home team scores, 1-0
Home price: 1.45

61st minute
Away team equalises, 1-1
Home price: 2.60

The selection is the same in all three cases: the home team to win.

What changes is the match state and therefore the current price.

At kick-off, the market has an entire match still to play.

At 1-0, the home team has an advantage.

At 1-1 in the 61st minute, that advantage has disappeared and less time remains to find another goal.

That is the basic mechanism behind in-play pricing. A live market is continuously repriced around the information available at that point in the match rather than remaining at its original pre-match value.

Pre-match odds vs in-play odds

Pre-match and in-play odds belong to the same broader betting system, but they represent different moments in the fixture lifecycle.

Pre-match odds are prices offered before kick-off.

In-play odds are prices available after the game has started.

Sportmonks keeps those data feeds separate. Pre-match prices use the /v3/football/odds/pre-match family of endpoints, while live prices use /v3/football/odds/inplay.

That separation is useful for developers because the same market can exist in both phases without the application confusing the closing pre-match price with a later in-play price.

For example, a Match Winner selection might exist at 2.10 immediately before kick-off and later appear at 1.45 in the in-play feed after the home team scores.

Those are different prices captured at different stages of the match.

Common in-play football markets

Many familiar pre-match markets also exist in live form.

A live Match Winner market still asks whether the home team, draw or away team will be the full-time result, but the prices are calculated against the current match state.

A live Over/Under market still asks whether the final number of goals will finish above or below a particular line. The current score and remaining match time make that price different from the equivalent pre-match market.

A live Asian Handicap market similarly uses handicap lines, but the available lines and prices can change as the fixture progresses.

A Correct Score market can also continue in-play. Once goals have already been scored, some final scorelines that existed before kick-off are no longer possible.

Other markets can be particularly suited to an active match, such as which team scores next.

The exact markets available depend on the bookmaker and feed. Applications should use the market identifiers returned by the odds data rather than assume that every bookmaker carries every market throughout the match.

Market suspension is part of in-play betting

A live market does not have to remain tradable every second of the match.

Bookmakers can temporarily suspend a market around significant incidents while the new match state is processed and prices are recalculated.

For example, a goal can create a sequence where the old prices are no longer suitable but the new ones have not yet been released.

The Sportmonks in-play odds response includes both suspended and stopped fields. Our current documentation also returns fields such as fixture_id, market_id, bookmaker_id, label, value, probability, total and handicap.

That means a betting interface should not treat the presence of an odd as proof that it is currently available for use.

If suspended is true, the frontend can reflect that market state instead of continuing to display the last price as though nothing has changed.

In-play betting and the Sportmonks API

Sportmonks provides the two main data layers a betting application needs to build an in-play interface: the current football state and the current odds.

For live fixtures, use:

GET https://api.sportmonks.com/v3/football/livescores/inplay

The endpoint returns fixtures currently in play and supports includes such as participants, scores, events, state, periods and inplayOdds.

For live bookmaker prices, use:

GET https://api.sportmonks.com/v3/football/odds/inplay

The current in-play odds endpoints support retrieving all live odds or narrowing them by fixture, bookmaker or market.

For example, odds for one fixture can be requested through the fixture-specific in-play odds endpoint rather than processing every currently available odd.

The returned data includes the fixture, market, bookmaker, selection label and current value needed to connect the price with the football match.

Keeping live odds and match state together

An in-play betting interface should not display live prices separately from the football state they belong to.

Suppose an application’s screen shows:

Home 1-0 Away, 63rd minute.

If the odds displayed beside that score are still prices from before the goal, the interface is internally inconsistent even if both datasets were technically valid at different moments.

The backend therefore needs to update both sides of the product deliberately.

The livescore feed provides the fixture state. The in-play odds feed provides the current bookmaker prices.

Sportmonks also provides a latest-updated livescores endpoint that returns fixtures with changes from the previous 10 seconds, which can help a polling application avoid processing an entire live fixture list when only a small number of matches have changed.

The same architectural principle applies to odds: process the prices that changed and update the corresponding markets rather than rebuilding the whole betting board unnecessarily.

Using the latest updated in-play odds endpoint

The current Standard Odds Feed includes a Last Updated Inplay Odds endpoint in addition to the normal live odds endpoints.

That is useful for applications maintaining their own local odds state.

Instead of repeatedly treating every bookmaker price as new, the application can request recently updated odds and apply those changes to its existing state.

A typical backend might keep a record keyed by fixture, bookmaker, market and selection.

When a newer price arrives, that record is updated.

The frontend can then receive only the affected market update rather than an entirely new representation of the match.

This is particularly useful for busy in-play products covering several simultaneous fixtures because the quantity of odds records can be much larger than the number of football events occurring at any one moment.

Do not calculate bookmaker odds directly from Sportmonks match events

Live football events and live bookmaker odds are related, but they are not interchangeable.

A goal event tells an application that the score changed.

It does not tell the application exactly what decimal price a bookmaker must offer next.

Similarly, a red card can explain why a market moved without providing enough information to reconstruct the new price.

For a product displaying bookmaker odds, use the odds feed as the price source.

Use livescores, events and statistics to provide the football context around those prices.

That keeps the responsibilities clear: the bookmaker supplies the market price, while the football-data layer supplies the current state of the match.

In-play odds vs prediction probabilities

Sportmonks predictions should also remain separate from bookmaker in-play odds.

An odd is a bookmaker price associated with a particular market and selection.

A prediction is a model output estimating the probability of a football outcome.

The two can be compared in analytical products, but one should not overwrite or be presented as the other.

Our current Sports Betting API structure reflects this separation. Pre-match and in-play odds come from the odds endpoints, while model probabilities are requested through prediction data associated with a fixture.

A developer might therefore display a bookmaker’s live home-win price next to its own or Sportmonks’ relevant model information, but the UI should label those sources clearly.

Common in-play betting implementation mistakes

One mistake is keeping the pre-match price on screen after the match starts and treating it as though it were a current live price. Pre-match and in-play data should be handled separately.

Another is updating the score without updating the odds state. A price only makes sense when displayed alongside the match context it belongs to.

A third is ignoring suspended or stopped. A live odd can exist in the response while the market is temporarily unavailable.

It is also a mistake to calculate an exact bookmaker price from a goal or red card yourself. Events provide context, but the live odds feed should remain the source for bookmaker pricing.

For high-volume products, avoid processing every in-play odd as changed on every cycle. Use targeted fixture requests or latest-updated data where appropriate.

Finally, keep bookmaker odds and prediction probabilities separate. They may describe related outcomes, but they come from different systems and serve different purposes.

Related reading

Draw No Bet explains how one current fixed-odds football market settles when the match finishes level.

Double Chance covers the 1X, X2 and 12 markets and how their settlement differs from a normal Match Winner bet.

Sports Betting API explains the current Sportmonks pre-match odds, in-play odds and prediction data available to betting-platform builders.

Faq

Written by David Jaja

David Jaja is a technical content manager at Sportmonks, where he makes complex football data easier to understand for developers and businesses. With a background in frontend development and technical writing, he helps bridge the gap between technology and sports data. Through clear, insightful content, he ensures Sportmonks' APIs are accessible and easy to use, empowering developers to build standout football applications