Markets get suspended or voided constantly, and a feed that hides those states will hand your users a wrong price. Here is how a good feed represents them, and what your product should do with each.
James··6 min read
Markets do not stay priced all the time. A selection can be suspended, meaning it is temporarily unpriced while the bookmaker pauses it, or voided, meaning a bet on it is settled as no-bet. A good odds feed represents both states explicitly: a suspended selection carries no usable price, and a void one should not be offered as a live opportunity. That lets your product hide or flag them, instead of showing a stale number as if it were still available.
This is one of the details that separates a feed you can build on from a raw dump of prices. If you are new to the shape of that data, how odds data is structured covers the baseline, and this post is the state machine that sits on top of it.
What is a suspended market?
A suspended market is one the bookmaker has temporarily stopped taking bets on, so there is no usable price for that moment. Suspension is normal and frequent. It happens when something changes the true odds faster than the book can re-price: a goal goes in, a red card is shown, a horse is being loaded, or the trader simply pulls the market to reassess.
The key word is temporary. A suspended selection is expected to come back, usually within seconds or minutes, at a new price. Nothing has been settled. The selection still exists, it just cannot be backed right now. For a matched-betting or arbitrage product this matters twice over, because both the back side and the exchange lay side can suspend independently, and a pairing is only real when both are open.
What is a void market?
A void market is a settlement outcome: a bet placed on it is treated as if it never happened, and the stake is returned. Voiding is permanent, and it is a decision about the past, not a pause. A match is abandoned, a player withdraws before a leg starts, a market was offered in error, or a rule triggers no-bet. Whatever the cause, a void selection is not something your users should still be trying to bet.
The distinction is worth holding firmly. Suspended means come back later; void means gone. Treating a void market as merely paused is how a scanner keeps surfacing an opportunity that no longer exists, and treating a brief suspension as a void is how it needlessly drops a selection that is about to return.
How does an odds feed represent these states?
A feed represents these states in one of three ways, and knowing which one you are dealing with is the whole job:
A null price: the selection is present but its odds are null, signalling there is no live price to show.
A status field: an explicit flag such as status: "suspended" alongside the price, so the state is unambiguous rather than inferred.
The selection dropping out: the selection is absent from the response entirely, which is common for a voided or removed market.
The honest note is that the feed reports the state; it does not paper over it. When bet365 suspends a selection, or a Betfair, Smarkets or Matchbook lay price becomes unavailable, the feed says so plainly rather than repeating the last number it saw. A feed that quietly holds a stale price to keep the JSON looking full is doing you a disservice. Here is a suspended selection sitting next to a normal, matched one (illustrative, not live data):
A suspended selection beside a live matched one · illustrative
Notice that the suspended row still carries its event, market and selection, so you can track it, but its odds, rating and qualifying_loss are null because there is nothing valid to compute. The status flag makes the state explicit rather than leaving you to guess from the nulls. For the full field list and where the state markers live in the payload, see the response envelope.
Why does handling these states matter?
Because showing a suspended price as if it were live is one of the fastest ways to lose a user's trust. A matched-betting or arbitrage user acts on the number you display. If that number was pulled by the bookmaker thirty seconds ago and your product still shows it as a green opportunity, the user clicks through, finds no bet, and blames your product, not the market.
Void markets carry the same risk in a slower, more damaging form. A scanner that keeps ranking a voided market will send users at an opportunity that was settled as no-bet. Do that a few times and the accuracy of the whole product is in question. The states are not edge cases you can defer; they are load-bearing, and they fire constantly across a feed of 60+ UK books with bet365 included.
What should your product do with them?
Hide the selection, or flag it clearly. Which one depends on your surface, but never render a suspended or void selection as if it were a normal, backable price. A short set of rules covers almost every case:
Suspended, in a scanner or oddsmatcher: drop it from the ranked results while it is unpriced, then let it reappear when a real price returns. It is temporary, so removing it permanently would be wrong.
Suspended, in a detail or comparison view: keep the row but mark it, for example greying it out with a "suspended" label, so the user sees it exists but cannot act on it.
Void: remove it, and if a user was tracking it, tell them it was voided rather than letting it vanish silently.
Any null price: treat null odds as absence of a price. Never substitute the last-seen value, and never let a null fall through into a calculation.
The pattern for consuming these fields cleanly is the same discipline as rendering any odds data well: check the state before you render the price. We walk through the display side, including empty and stale states, in displaying odds data.
The short answer
Suspended means temporarily unpriced and expected back; void means settled as no-bet and gone. A good feed marks both explicitly, with a null price, a status field, or the selection dropping out, so your product can hide or flag them instead of showing something wrong. The feed's job is to report the state honestly; your product's job is to respect it. OddsRelay does the first part across bet365 and every other book it carries, and it powers a leading UK matched-betting platform today. You can see how the states surface in a real payload on a free trial, or read the field-level detail in the API docs.
James is the founder of OddsRelay — the odds-data feed behind matched betting, arbitrage and odds-comparison products: 60+ UK bookmakers with bet365 included, matched against exchange lay prices and delivered as one clean, documented API. He writes here about how that data layer actually behaves — coverage, matching, freshness and the trade-offs — from the side that builds and runs it. The same feed powers a leading UK matched-betting platform today.