For tipsters & content sites
Live matched odds inside your content.
The tools that turn readers into users are data problems. The data is the part you should not have to run. Paste a widget, or call the API when a table needs to be fully yours.
matched · exchange-paired · liquidity-gated
| event | back | lay | liquidity | rating |
|---|---|---|---|---|
Arsenal Arsenal v Chelsea | 2.10 Bet365 | 2.05 Smarkets | £1,840 | 102.4% |
Spurs Spurs v Everton | 2.05 BetVictor | 2.10 Smarkets | £860 | 97.6% |
Chelsea Arsenal v Chelsea | 3.55 William Hill | 3.65 Betfair Exchange | £980 | 97.3% |
Draw Spain v Brazil | 3.55 BetVictor | 3.70 Smarkets | £540 | 95.9% |
| … the full board runs to 70,000+ live rows | ||||
ratings = 100 × back ÷ lay, your commission rate · you render the rows
- 140+
- bookmakers covered
- 20
- countries in the network
- 17
- sports across the network
- 70,000+
- live opportunities, floor
Live coverage, update times and status are published on the coverage dashboard.
The row behind every table
A best-price cell, an oddsmatcher row and a proofing record are all views over the same delivered fields.
Event
Arsenal v Chelsea
home_team · away_team
Back book
Bet365
back.bookmaker
Back
2.10
back.price
Exchange
Smarkets
lay.exchange
Lay
2.05
lay.price
Liquidity
£1,840
available
Rating
102.4%
100 × back ÷ lay
Every column a table or embed renders maps to one of these wire fields.
Price-at-publish, on the record
Proofing separates a tipster service from a feed of guesses. The advised price goes on the record the moment a tip goes out, with the drift shown beside it.
- Advised odds captured at publish time
- Best price beside the tip, re-pricing on the feed cycle
- Results that settle into ROI, yield and strike rate
09:00
Tip published
your pick, your words
09:00
Advised price captured
2.10 at publish, on the record
09:00 → off
Best price beside the tip
re-prices on the feed cycle
17:04
Settled into your record
ROI + strike rate, auditable
Best-price tables that update themselves
A hand-edited odds table is wrong by the weekend. A feed-backed one re-prices across the books your readers actually use, on your own markup, so your affiliate links and tracking stay in place.
- One API behind every table on the site
- Prices normalised, so comparisons are true at load
best price · Arsenal v Chelsea · Arsenal
- Bet365best2.10
- Unibet2.09
- BetVictor2.08
- Coral2.07
- William Hill2.05
- …140+ books priced
re-prices on the feed cycle · your links, your markup
See the widgets render before you commit to anything.
Two lines, on any page
Paste the snippet where the widget should render. That is the whole install.
<div data-or-widget="oddsmatcher"
data-or-region="uk"
data-or-key="or_live_YOUR_KEY"></div>
<script src="https://oddsrelay.io/widgets/v1/oddsrelay-widgets.js" crossorigin="anonymous" async></script>what renders on your page
| event | back | lay | liquidity | rating |
|---|---|---|---|---|
Arsenal Arsenal v Chelsea | 2.10 Bet365 | 2.05 Smarkets | £1,840 | 102.4% |
Spurs Spurs v Everton | 2.05 BetVictor | 2.10 Smarkets | £860 | 97.6% |
Chelsea Arsenal v Chelsea | 3.55 William Hill | 3.65 Betfair Exchange | £980 | 97.3% |
Draw Spain v Brazil | 3.55 BetVictor | 3.70 Smarkets | £540 | 95.9% |
| … the full board runs to 70,000+ live rows | ||||
ratings = 100 × back ÷ lay, your commission rate · you render the rows
Two ways to take the feed
Most publishers start with widgets and add the API when a surface needs to be fully custom.
Embeddable widgets
The oddsmatcher and calculator suite as drop-in embeds, themed to your brand.
- No build step, any CMS that accepts HTML
- Origin-locked keys for live data
REST API
Full control for custom tables and proofing records: your UI over delivered rows.
- Event-grouped JSON, one endpoint per feed type
- Raw best prices or ready-matched rows
- ETag/304 caching on the polling cycle
Questions
Do I need a developer?
Not for widgets: the embed is one paste into anything that accepts HTML. The API path is there when you want fully custom tables.
Can the widgets match my site's look?
Yes. Theme, font, accent, surface and radius are set as data attributes on the embed, so the board picks up your site's look at render time.
What happens to my affiliate links?
Nothing. The widget renders odds data inside your page; the markup, links and tracking around it are yours and stay untouched.
Am I allowed to republish the data?
Rendering it for your readers is exactly what the license covers: tables, embeds and records on your own surfaces. What it never includes is re-selling raw feed access onward.
How fresh are the numbers?
Pre-match prices update on the feed's ~3s pre-match polling cycle, and every offer carries its own last_update timestamp. Update times are visible per book rather than asserted.
Put live odds in your content.
Embed a widget this afternoon, or talk to us about the tables and records your site should be running.