Blogbet365

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_out_of_range, 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=bet365. A day file holds every bookmaker, so your code keeps the rows where bookmaker is bet365.

You needCallWhat comes back
bet365's prices at one past momentGET /v2/historical/odds/rawA page of the board as it stood at date, in the same event objects as /v2/odds/raw
How one fixture's price movedGET /v2/historical/events/{id}/oddsThe 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 rowGET /v2/historical/closingThe events that kicked off on one UTC day, nested by bookmaker, market and outcome
A whole day in bulkGET /v2/historical/filesA 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=true first. That returns the price of the call and spends nothing.

Request · bet365 football match odds for one day · example

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_seen and the null exchange fields:

GET /v2/historical/closing · trimmed to one outcome · example

{
  "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_price and open_at are the first price seen on the kick-off day (UTC), and that moment.
  • close_price is the last price at or before kick-off. close_at 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 read moves to see whether it did.
  • high, low and moves cover 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_history_unavailable, 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_key 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

18+ · OddsRelay supplies odds data only and takes no bets. Please gamble responsibly.