bet365 answers a plain HTTP client with 200 OK, 45,815 bytes and zero words of content, from every country we tried. Rendered through residential proxies, the same URL returns 987 words from a United Kingdom exit, 149 from Germany and 2,031 from the United States, because each exit lands on a different licensed product rather than a translation. We measured it on 26 and 28 September 2026. The setting that reads bet365 is one line long: residential exit, rendered fetch, country pinned to the market you are monitoring.
Search for bet365 proxies and you get two questions wearing one term
The UK first page for bet365 proxies is a per-IP vendor with a ten-question FAQ, a BlackHatWorld thread, a YouTube setup video, a bookmaker-access blog, an r/proxies thread from a bettor in France, and two VPN listicles. The suggest box splits the intent for you: on one side bet365 scraper github, bet365 scraper api, bet365 odds scraper, bet365 odds feed, bet365 historical odds api; on the other bet365 account restrictions, proxy bet365 uk, proxy betting uk.
This post answers the first side: reading what bet365 publishes to anyone who opens the site, for odds comparison, market-availability checks across licensed countries, and monitoring a competitor's promotions as they appear in each market. Not one of the ten results measures what the site actually serves a proxied client, and not one quotes the clause of the bet365 terms that governs the second side. We do both, and the last section says exactly where we stop.
Without JavaScript, bet365 is a 45 KB shell that says 200
We fetched https://www.bet365.com/ as a pure HTTP client through a UK residential exit. The response was clean: status 200, 45,815 bytes, a title of "Bet with bet365 – Live Online Betting Sportsbook – Latest Bets and Odds", a meta description, and a body with no extractable text at all. Our audit tool reports it as contentOnlyInJs: true, wordCount: 0, no H1, no JSON-LD.
| Fetch | Exit | Status | Bytes | Words | Title served |
|---|---|---|---|---|---|
| No JavaScript | United Kingdom | 200 | 45,815 | 0 | Bet with bet365 – Live Online Betting Sportsbook |
| No JavaScript | Germany | 200 | n/a | 0 | bet365 - Sportwetten Online |
| No JavaScript | United States | 200 | n/a | 0 | bet365 - Sportsbook and Casino Betting |
| Rendered | United Kingdom | 200 | 440,601 | 987 | Bet with bet365 – Live Online Betting Sportsbook |
| Rendered | Germany | 200 | n/a | 149 | bet365 - Sportwetten Online |
| Rendered | United States | 200 | n/a | 2,031 | bet365 - Licensed Sports Betting & Sportsbook |
Two things in the raw response are worth more than the body. First, the canonical is not in the HTML at all; it travels in the HTTP Link header, <https://www.bet365.com/>; rel="canonical", next to a stack of rel="preload" hints for the routing, manifest and sports-configuration endpoints the app will call. A parser that only looks at <head> sees no canonical; a parser that reads headers sees it and also sees the API endpoints the page is about to fetch. Second, the shell already carries the market: the UK exit gets a sportsbook title, the German exit gets "Sportwetten Online", the US exit gets "Sportsbook and Casino Betting", all before a byte of JavaScript runs. The exit decides the product at the first request.
The exit country picks the licence, not the language
bet365 is one brand and several licensed operators. The UK site runs under the Gambling Commission, the German one under the German federal licence with its narrower catalogue, the US one state by state. The rendered word counts are the size of each catalogue as served to a logged-out visitor: 987 words from London, 149 from Frankfurt, 2,031 from a US exit.
That 6.6-fold gap between the UK and Germany is not translation. A German bet365 home page rendered on 26 September 2026 was a short list of headline sports and a licence notice; the UK one was a full in-play grid. Anyone building a bookmaker odds comparison who fetches from whichever exit the pool hands them will see the catalogue shrink and grow with the IP and will read it as bet365 changing its markets. It is the pool changing countries. The same effect, in a different shape, is what we found on Facebook, where a German exit rewrites the number format inside the follower count; that measurement is in our Facebook proxies post.
So the country is a parameter of the job, not a nicety. Monitoring UK football markets means a UK exit on every request; monitoring what a German customer is offered means a German exit and a parser that expects 149 words, not 987. Pin it per job and the numbers become comparable day to day.
What a rendered bet365 page costs
The plain fetch is cheap and useless; the render is ten times heavier and it is the only fetch that returns content. On 28 September 2026 the rendered UK home page was 440,601 bytes and took 3.5 seconds end to end. Counting a gigabyte as 10^9 bytes, and using the per-GB prices on our pricing page:
| Fetch | Bytes per request | Requests per GB | Residential Basic $0.80/GB | Residential Premium $2.20/GB | Mobile $2.30/GB |
|---|---|---|---|---|---|
| No JavaScript (0 words) | 45,815 | 21,826 | $0.00004 | $0.00010 | $0.00011 |
| Rendered, UK (987 words) | 440,601 | 2,269 | $0.00035 | $0.00097 | $0.00101 |
A thousand rendered snapshots of the UK home page cost about $0.35 on the Basic line. Ten thousand a day, enough to watch every headline market every few minutes, is $3.50 a day in bandwidth. The first row is the trap: 21,826 fetches per gigabyte sounds like a bargain until you remember each one returns zero words. Budget by what a request yields, and on bet365 only the rendered request yields anything. If you are sizing a pool before buying, how much proxy data you need runs the same arithmetic the other way.
Nothing in six audits and two fetches asked about our IP. Every response was a 200; there was no challenge page, no verification interstitial, no rate limit. The barrier on bet365 is JavaScript, not reputation, which is why the cheapest residential line is the right one and the Premium and Mobile columns buy nothing we could measure on logged-out reads.
robots.txt allows everything except the members area, and names ChatGPT
bet365.com/robots.txt is 899 bytes and built backwards. It opens with Disallow: / and then allows the site back one initial letter at a time: Allow: /a*, Allow: /A*, through to /z*, plus /$, /?*, /mobile and one specific helper under /members/. The letter that is missing is m. Everything under /members/, the logged-in account area, stays disallowed, and so does anything else beginning with that letter. It is a precise way of saying: the public sportsbook is crawlable, the account is not.
User-agent: *
Disallow: /
Allow: /$
Allow: /a*
...
Allow: /mobile
Allow: /members/helpers/RouterPost.aspx
User-agent: ChatGPT-User
Disallow: /hub/*/open-account*
Then two blocks that exist for one visitor. ChatGPT-User, the agent OpenAI uses when a person asks ChatGPT to open a page, is kept out of the account-opening flow under /hub/ and nowhere else. bet365 wants assistants to read its sports hub and does not want them walking a user through registration. If you are deciding what to do about AI crawlers on your own site, that is a well-chosen line, and we compare the options in should I block AI crawlers.
What the bet365 terms say, in their own numbering
This is the line that the vendor pages ranking for this keyword leave out, so here it is with the clause numbers, from the Terms and Conditions on help.bet365.com effective 28 September 2026.
- Section 8.1: "You may open only one Account." Additional accounts are "Duplicate Accounts"; bet365 may close them, void the offers and void unsettled transactions on them, and where it believes accounts were opened "deliberately or fraudulently", close the original account too.
- Account-closure grounds, item (k): using "a VPN or similar technology to disguise your location". A proxy on an account is the same thing in the operator's eyes.
- Account-closure grounds, item (v): using "automated systems or software to copy and/or extract the whole or any part of the Services", which the terms themselves call "screen scraping"; item (w) adds commercial use of the data.
Read those three together and the boundary is clear. Reading the public, logged-out sportsbook is a public HTTP read of a page the site serves to anyone and lists as allowed in robots.txt. Doing anything with an account through a proxy is a breach of that account's contract, and doing it with several accounts is a breach bet365 explicitly reserves the right to punish by voiding winnings. Under English law, which section 29.5 makes the governing law, opening accounts in other people's names to keep betting after a restriction goes further than a contract breach: it is fraud by false representation under section 2 of the Fraud Act 2006. Matched betting on your own single account is lawful in the UK. We say all of this once, plainly, because it is the sentence that gets quoted, and then we go back to the data.
How the general question of reading public pages sits in UK law is in is web scraping legal in the UK.
The setting that works on bet365
- Network: residential proxies, Basic line, $0.80/GB. Six audits and two fetches produced no IP-level challenge; the Premium ($2.20/GB) and Mobile ($2.30/GB) lines returned nothing extra on logged-out reads.
- Fetch mode: rendered. Without JavaScript the page is 45,815 bytes and 0 words; rendered it is 440,601 bytes and 987 words from the UK. There is no plain-HTTP shortcut on this site.
- Country: pin the exit to the market you are reading. The same URL renders 987 words from the United Kingdom, 149 from Germany and 2,031 from the United States, and the title changes before any script runs. A rotating pool without a country is a different bookmaker every request.
- When the proxy is not enough: use the web scraping API with rendering on. It handles the browser, the wait and the exit for you, and returned the rendered UK page in 3.5 seconds for 440,601 bytes on 28 September 2026. There is no bookmaker collector in our catalogue; the pay-per-success API is the tool, and failed requests are never billed.
- Free tier: every account gets $2 of free API usage per month, which at $0.00035 per rendered page is about 5,700 snapshots of bet365 before you pay anything.
Read the public sportsbook, pin the country, render every time, and leave accounts out of it. That is the whole configuration.