bet365 historical odds: what the archive holds
You can get bet365 historical odds from OddsRelay's historical product, which keeps every bookmaker's prices since 17 October 2026: a past board, one event's price changes, closing lines and day files.
bet365 publishes no public odds API. The archive is our record of what the UK & Ireland raw feed served. It sits on the same base URL and the same key as the live feed, and historical odds come with every self-serve plan.
How far back do bet365 historical odds go?
OddsRelay's bet365 historical odds go back to 17 October 2026, and nothing earlier is sold. The newest day is the previous UTC day, because each day joins the archive overnight once it has ended. Ask for a date past that and the reply is a 400 date_, with latest giving the newest you can ask for. Dates just before 17 October 2026 return no prices.
Which sports and markets you find follows bet365's entry on the coverage page and our bet365 data page.
Four calls, depending on the question
The board, event and closing calls take bookmakers=. A day file holds every bookmaker, so your code keeps the rows where bookmaker is bet365.
| You need | Call | What comes back |
|---|---|---|
| bet365's prices at one past moment | GET / | A page of the board as it stood at date, in the same event objects as / |
| How one fixture's price moved | GET / | The prices at from, then a row each time an outcome's price moved or it left the board, up to 24 hours at a time. Each row names its bookmaker |
| Each outcome's day in one row | GET / | The events that kicked off on one UTC day, nested by bookmaker, market and outcome |
| A whole day in bulk | GET / | A free list of gzipped CSV files per tier, sport and day. Each file holds every bookmaker and market, with a bookmaker column |
One closing row sums up bet365's day to kick-off
A single row carries an outcome's open, close, range and number of moves, so you read bet365's day without walking its changes. Run this request with quote= first. That returns the price of the call and spends nothing.
curl --compressed -H "x-api-key: $ODDSRELAY_KEY" \ "https://api.oddsrelay.io/v2/historical/closing?region=uk&sports=soccer&date=2026-10-18&bookmakers=bet365&markets=h2h"
Each outcome in the reply looks like this one, made up for the example and trimmed of inplay_ and the null exchange fields:
{
"name": "Arsenal",
"ord": 0,
"open_at": "2026-10-18T00:00:00.000Z",
"open_price": 2.2,
"close_at": "2026-10-18T13:52:10.412Z",
"close_price": 2.05,
"high": 2.25,
"low": 2.05,
"moves": 4,
"first_seen": "2026-10-18T00:00:00.000Z",
"last_seen": "2026-10-18T14:00:01.240Z"
}open_andprice open_are the first price seen on the kick-off day (UTC), and that moment.at close_is the last price at or before kick-off.price close_is when that price was last set, which can be well before kick-off. An outcome that never moved can still show a time after 00:00 UTC, so readat movesto see whether it did.high,lowandmovescover the kick-off day (UTC) up to kick-off, so a price that drifted the week before shows only from that midnight.
For a move over several days, read the event call, one window at a time, or the changes day files.
What the archive leaves out
OddsRelay's historical odds hold bookmaker prices only. Asking for an exchange with exchanges= is refused with a 403 exchange_, and the exchange fields on a closing row stay null. So a past bet365 price has no lay beside it here, even though the live matched boards pair the two.
There are no starting prices and no results either, so a tool that settles at the starting price needs another source. History carries no competition_ value, so there is none to filter on.
The recording can also have gaps. A past board says so with complete: false, and an event window lists them in meta.gaps, so check those before you treat a missing price as a bookmaker pulling it. A closing row carries no such flag. If you need something the archive does not hold, such as exchange prices, the record has to be your own, and storing and versioning odds shows the tables.
History spends the same tokens as the live feed
The board, event and closing calls are charged per page, and filters narrow what a page holds without changing its price. A day file is charged for each started megabyte, in full when the download starts. Pricing lists all four prices.
On a paid plan, history is for personal use. A business using it, even in-house, or anyone publishing or reselling it, goes through Enterprise.
Read one day of bet365 closing lines
Quote the request above, then run it for a recent day. The free trial gives you 50,000 tokens for 14 days from sign-up, and a business can test on it too. The historical odds guide has every field and error, and what bet365 odds data you can get covers its live prices.
Related posts
- Is there a bet365 API?bet365 has no public odds API. The two routes to its prices, and what to check in a feed.
- What bet365 odds data you can getWhat to ask about a supplier's bet365 coverage, and what a matched bet365 price looks like.
- How to store and version odds dataKeep your own odds history: an append-only table, the feed's timestamps and fixture keys you own.
18+ · OddsRelay supplies odds data only and takes no bets. Please gamble responsibly.