Skip to content

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.

Widget embedsBest-price tablesPrice-at-publish records

matched · exchange-paired · liquidity-gated

eventbacklayliquidityrating

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
  1. 09:00

    Tip published

    your pick, your words

  2. 09:00

    Advised price captured

    2.10 at publish, on the record

  3. 09:00 → off

    Best price beside the tip

    re-prices on the feed cycle

  4. 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.

paste anywhere HTML is accepted
<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

eventbacklayliquidityrating

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

Browse the widgets

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

Read the API docs

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.