In-play prices
Events under way with inPlay on raw, one event, standard and dutching: what each value returns, what an in-play price carries and how a call is priced.
The values, route by route
Since 2 November 2026, inPlay serves prices on events that are under way. Without it, a call answers as it did before.
- GET /v2/odds/raw and GET /v2/odds/event/{id}:
exclude, the default, leaves the events in play out.includeserves pre-match and in-play events together, andonlyserves the events in play alone. - GET /v2/odds/{type} for
standardanddutching:exclude, the default, oronly. - Any other value is 400
bad_,request includeon a matched board among them. 2up,each-way,extra-placeandbogstay pre-match:inPlayon them is 400bad_, the answer to any parameter a route doesn't read.request
curl --compressed -s -H "Authorization: Bearer $ODDSRELAY_KEY" \ "https://api.oddsrelay.io/v2/odds/standard?region=uk&sports=soccer&markets=h2h&inPlay=only"
When an event is in play
An event is in play once its venues show it in play, whatever its commence_ says. On raw, under include or only, each event carries in_, true while it is in play. On standard and dutching, each event under only carries in_.
An event keeps its id across kick-off, and its place in the include order. include serves it once.
One event across kick-off
GET /v2/odds/event/{id} answers 404 unknown_ for an event its inPlay value leaves out: under the default, an event that has gone in play. Send inPlay= to follow one event before and after kick-off.
curl --compressed -s -H "Authorization: Bearer $ODDSRELAY_KEY" \ "https://api.oddsrelay.io/v2/odds/event/$EVENT_ID?region=uk&inPlay=include"
What an in-play price carries
An in-play price is served only while it was read in the last 10 seconds. In-play lays come from Betfair, Smarkets and Matchbook.
The reply holds prices and nothing about the match itself: no score, clock or result. Horse racing is never in play. You poll for in-play prices as for any other call.
The big bookmakers in play
Of the big UK bookmakers, Sky Bet, Ladbrokes, Coral and Betfred carry football and tennis in play, and Paddy Power carries tennis. bet365 and William Hill have no in-play prices. Coverage lists each bookmaker's sports.
What in-play costs
An in-play call is priced as the same call without inPlay is, and quote= prices it first, free. On raw, one price covers the whole walk, so a walk of the events in play pays that whole price, however few they are.
To follow the events in play on raw, walk again with updatedSince set to the start of your previous walk: one no more than 120 s back pays 10% of the price. When nothing is in play, the reply holds no events, and a reply with no events is free.
An in-play reply changes each time one of its prices moves. Name only the sports, bookmakers, exchanges and markets you use (Polling for fewer tokens), and send each ETag back (Polling with ETags).
# 1. The price of a walk of football in play, free curl --compressed -s -H "Authorization: Bearer $ODDSRELAY_KEY" \ "https://api.oddsrelay.io/v2/odds/raw?region=uk&sports=soccer&inPlay=only"e=true" # {"cost": …, "remaining": …, "rate_card": "…"} # 2. The next walk: SINCE is when your previous walk started, as YYYY-MM-DDTHH:MM:SSZ curl --compressed -s -H "Authorization: Bearer $ODDSRELAY_KEY" \ "https://api.oddsrelay.io/v2/odds/raw?region=uk&sports=soccer&inPlay=only&updatedSince=$SINCE"
From the blog
Every parameter: API reference.