How it works
Integrate in an afternoon.
Get a key, call one endpoint, render matched opportunities. The hard parts — coverage, scraping, matching, rating, liquidity gating — are already done on our side.
- 01
Get a key
Start a free trial — the full UK product, bet365 included, for 14 days — or enquire for a paid key. Keys are or_live_* / or_test_*, sent as a Bearer token and scoped to the feed types and regions you need.
- 02
Call one endpoint
One authenticated GET, one of seven matcher types, a region filter. Predictable JSON, gzip on the wire, an ETag on every response. No SDK required — it is a plain REST call.
- 03
Render the opportunities
The response is already matched: each row is a back/exchange-lay pair with a rating, and qualifying loss and profit computed. You render rows — there is no matching engine to build.
- 04
Ship and stay efficient
Send If-None-Match to get cheap 304s, accept gzip, and poll on the matcher cycle. The OpenAPI spec and the API docs cover the full envelope, scopes and rate limits.
One call. Matched JSON back.
curl https://api.oddsrelay.io/v1/odds/standard?region=uk \
-H "Authorization: Bearer or_live_..." \
-H "Accept-Encoding: gzip"{
"opportunities": [
{
"event": "Arsenal v Chelsea",
"market": "Match Odds",
"back": { "bookmaker": "Bookmaker A", "odds": 2.10 },
"lay": { "exchange": "Exchange", "odds": 2.12 },
"rating": 98.1
// rating, qualifying loss and profit included
}
],
"opportunity_count": 1,
"processed_at": "2026-06-30T12:00:00Z"
}Illustrative shape only — the full envelope, every field, the seven types, scopes and rate limits are in the API docs.
Freshness, honestly
The feed refreshes on the matcher cycle — every few seconds, not per request. Poll on that cadence rather than hammering the endpoint: send If-None-Match and you get a cheap 304 until the board actually changes. Live freshness, uptime and latency are published on the coverage dashboard.
Try the real thing today.
A free trial gives you the full UK feed, bet365 included, for 14 days. Wire it into your product and see the matched rows for yourself.