← Blog · 📝 Article · 15 October 2026
Exchange Cross Matching: Check Betfair’s API and Site Settings
Cross matching is Betfair’s engine for matching a bet against implied liquidity from related selections, not just against a direct opposing order, as set out in the Betfair Exchange API documentation. In practice, it means your bet can get matched faster, and sometimes at a better price, through an implied opposite rather than waiting for a direct counterparty. Betfair’s Best Price Execution rules govern when this happens, and understanding them changes how we read the order book.
TL;DR:
- At any price, the best offer fills first; at equal prices, direct opposing orders precede implied liquidity, and Bet ID breaks remaining ties.
- A basic listMarketBook request with EX_BEST_OFFERS shows direct orders only; virtualise: true or EX_BEST_OFFERS_DISP includes implied prices, which update about 150 milliseconds later.
- Check the market’s crossMatching field before staking; when it reads false, no implied liquidity exists, so price and size bets against direct orders.
- Best Price Execution is enabled by default, but account settings can change it; markets with several runners can produce partial matches as virtual prices shift.
Table of Contents
- How cross matching works: the mechanics and a worked example
- Why exchanges enable cross matching in the first place
- How cross matching changes behaviour for casual bettors and professional traders
- Viewing cross-matched liquidity in your tools or the API
- When cross matching is switched off and how to check
- A practical checklist for placing bets with cross matching in mind
- Why understanding cross matching matters for a data-led lay strategy
- Putting cross-matching awareness to work with DonkeyRadar
- FAQ
- Sources
How cross matching works: the mechanics and a worked example
Betfair matches bets in a fixed sequence. Price comes first: the best available price always gets matched before a worse one. When two bets sit at the same price, direct back versus lay orders take priority over cross-matched liquidity, and only then does time stamp (Bet ID) decide the order, according to Betfair’s own guidance on Best Price Execution.
Cross matching adds a second layer underneath that priority system. The engine calculates whether an unmatched bet on one selection is mathematically equivalent to an opposing bet on another selection in the same market, and where Betfair’s own accounting requires it, an internal account acts as the counterparty to complete the match, as described in the Betfair Hub explainer on cross matching.
A simple race shows the logic:
- You want to back Runner A at a particular price.
- Nobody has placed a direct lay against Runner A at that price.
- Punters have laid Runners B and C at prices that, combined, imply the same or a better price for backing Runner A.
- The system matches your back bet against that implied liquidity instead of leaving it unmatched.
This is the same math described in the API documentation on betting types, and it is why a market can look thin on one runner yet still fill your bet almost instantly.
Why exchanges enable cross matching in the first place
Betfair introduced cross matching in 2008 specifically to cut down on unmatched bets, which the exchange identified as the biggest barrier for new customers, according to its own API documentation. The goal was efficiency, not an edge against any particular type of user.
The practical benefits run in several directions:
- Casual bettors get higher fill rates because their bets draw on liquidity spread across the whole market, not just one runner.
- Liquidity distributes more evenly across selections, so thin markets behave more like deep ones.
- New users face less friction, since a bet no longer needs a perfectly matching opposite order to go through.
Betfair’s role throughout is as ledger and facilitator. The exchange earns commission on winning bets and does not take a position against any user, a point made directly in its documentation on betting types.
How cross matching changes behaviour for casual bettors and professional traders
The consequences split cleanly by how you use the exchange.
- Casual bettors generally see better fill rates and improved effective odds, since the market no longer depends on someone placing an exact opposing bet, as outlined in the Betfair Hub guide.
- Professional traders lose some of the manual arbitrage that used to come from spotting imbalances in the raw order book, because cross matching closes those gaps automatically, per the API documentation.
- Anyone relying on trading software that shows only raw, non-virtual offers risks misreading how strong a market really is, since the displayed liquidity understates what will actually match, as Betfair’s developer support explains.
Pro Tip: If your trading tool and the Betfair website ever disagree on available prices, assume the website is showing virtualised liquidity your tool is missing.
Viewing cross-matched liquidity in your tools or the API
The Betfair website shows cross-matched liquidity by default, because Best Price Execution is switched on for every account unless you deliberately change it, as confirmed in Betfair’s support article on the feature. Replicating that same view in third-party software takes a specific setting.
- In the API, a plain
listMarketBookcall withEX_BEST_OFFERSreturns only direct, non-virtual orders. - Adding
virtualise: trueto thepriceProjectionparameter, or subscribing toEX_BEST_OFFERS_DISP, returns prices including cross-matched virtual bets, matching what the website displays. - Virtualised price streams update roughly 150 milliseconds after the non-virtual figures, a small but real lag worth knowing if you trade on fast-moving prices, according to Betfair’s developer guidance.
Skipping this setting can make a bettor’s software show a thinner market than actually exists.
When cross matching is switched off and how to check
Cross matching is not a universal feature. It is not enabled on every market, as Betfair’s own API documentation makes clear.
Anyone pulling market data through the API can check the crossMatching boolean field in the market metadata before placing a bet. If it reads false, treat the order book as a true picture of what can match: there is no implied liquidity sitting behind the scenes, and you should size and price your bets as though only direct opposing orders exist.
A practical checklist for placing bets with cross matching in mind
A short routine before you place a bet avoids most of the confusion cross matching can cause.
- Confirm Best Price Execution is switched on in your account settings, since it is the feature that allows cross matching to help you at all.
- Check that your trading software enables
virtualise: trueor uses the display stream, so you see the same prices the website shows. - Check the market’s
crossMatchingflag before assuming implied liquidity exists. - Size your stake with the knowledge that partial matches become more likely in markets with several runners and shifting virtual prices.
Our pre-bet checklist for exchange beginners covers the wider set of checks worth running before you commit a stake, and our guide on fixing and avoiding unmatched bets goes deeper into what happens when a bet sits unfilled.
Pro Tip: When laying a horse, check implied probability against the price on offer first, since cross matching can fill you at a price that still carries a poor edge. Our guide to implied probability and the margin trap walks through that calculation.
Why understanding cross matching matters for a data-led lay strategy

We built our statistical approach to lay betting around the idea that execution details matter as much as selection. A signal is only as good as the price you actually get matched at, and cross matching is one of the quiet mechanics that decides that price.
Reading the order book correctly, with virtualised liquidity included, means fewer surprises between the price you expect and the price you receive. Our guide to Betfair lay betting strategy goes further into how execution awareness feeds a data-driven approach.
— Donkey
Putting cross-matching awareness to work with DonkeyRadar
Knowing how cross matching fills your bets is only half the job. The other half is knowing which horse to lay in the first place, and that is where our signals come in.

We publish lay signals before races start, not after, so every pick is checked against a public, verified results history rather than hindsight. DonkeyRadar Free gives you daily lay signals at no cost, while DonkeyRadar Pro adds real-time alerts, full results history, and API access for £29 per month.
- Signals link directly to the relevant Betfair Exchange market, so you can check cross-matching settings and virtualised prices before you commit.
- Staking tiers grade each signal by confidence, which helps with sizing stakes around partial fills.
- Telegram and e-mail alerts mean you see a signal the moment it publishes, not after the best price has moved.
Our lay betting explained guide covers the basics if you are new to laying. Our lay betting calculator is another resource to explore before you place a stake. Start with the free tier and see how the signals read against your own execution checks.
FAQ
How is cross matching performed?
Betfair’s engine checks whether an unmatched bet on one selection is mathematically equivalent to opposing bets on other selections in the same market, then matches it against that implied liquidity, using an internal account as counterparty where its own accounting requires it, as described in Betfair’s API documentation. Price takes priority throughout, and direct back versus lay matches are placed ahead of cross-matched ones at equal prices, per Betfair’s Best Price Execution rules.
What is major cross matching of blood?
This question relates to blood transfusion medicine, not betting exchanges, and sits outside what we cover here. If you are asking about betting, the relevant concept is Betfair’s exchange cross matching, which is matching a bet against implied liquidity from related selections rather than only a direct opposing bet, as covered above.
Where can I check whether cross matching is active on a market?
Market metadata returned through the Betfair API includes a crossMatching boolean field, and checking it before you trade tells you whether implied liquidity exists on that market, according to Betfair’s documentation. If the field reads false, treat the visible order book as the complete picture.
Why do prices in my trading software differ from the Betfair website?
The Betfair website shows virtualised prices that include cross-matched liquidity by default, while a basic API call often returns only raw, non-virtual offers, as explained by Betfair’s developer support. Enabling virtualise: true or subscribing to EX_BEST_OFFERS_DISP brings your software’s view in line with the website.
Sources
- Betting Type Definitions - Betfair Exchange API Documentation - Confluence
- Exchange: What is Best Price Execution?
- Why are the prices displayed on the website different from what I see in my API application? – Betfair Developer Program
- Cross matching on Exchange markets - Betfair Hub