UK New Food Business Leads - FHRS Hygiene Ratings
Pricing
$0.50 / 1,000 per establishment returneds
UK New Food Business Leads - FHRS Hygiene Ratings
From $0.50 per 1,000 establishments, no start fee. Newly rated and newly registered UK food businesses from the FSA FHRS register, by date window: name, address, postcode, rating, sub-scores, geocode, council. All 363 councils, 613,379 premises, no API key. No business email or phone in this source.
Pricing
$0.50 / 1,000 per establishment returneds
Rating
0.0
(0)
Developer
Scrapers Delight
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
๐ฝ๏ธ UK New Food Business Leads โ FHRS Hygiene Ratings
Newly rated and newly registered UK food businesses, straight from the Food Standards Agency's official register. Set a date window, get the establishments that were rated in it โ plus the businesses that have just registered with their council and are still waiting for a first inspection. All 363 UK councils, 613,379 premises, no API key, no start fee.
This is a dated delta, not a 613,000-row dump. You can have the dump if you want it
(lookbackDays: 0), but the point of the Actor is the 8,300-ish businesses that got rated last
month and the ones that opened last week.
๐ What one row contains
Every number below was counted, not estimated โ over 84,835 real establishments pulled on
2026-09-16 from 48 councils stratified across all 12 FSA regions (13.8% of the register).
Literal "N/A", "-" and "" count as not filled.
| Field | Filled | Notes |
|---|---|---|
fhrsId | 100% | FSA's permanent id for the premises |
businessName | 100% | As published. Only 2.0% arrive in capitals, so nothing is re-cased |
businessType / businessTypeId | 100% | One of exactly 14 FSA categories |
ratingValue | 100% | 0โ5 (FHRS) or Pass / Improvement Required / Pass and Eat Safe (Scotland) |
ratingStatus | 100% | rated, awaiting-inspection, awaiting-publication, exempt |
awaitingInspection | 100% | true on 6.78% โ the newest businesses in the country |
newRatingPending | 100% | true on 0.55% โ a re-rating is already in the pipeline |
schemeType | 100% | FHRS (England/Wales/NI) or FHIS (Scotland) |
localAuthorityName / Code / Region / Website | 100% | Which council inspects it |
localAuthorityEmail | 100% | โ ๏ธ the council's food-safety inbox, not the business's |
localAuthorityBusinessId | 100% | The council's own reference โ joins to council FOI data |
fhrsUrl | 100% | Link to the premises page on ratings.food.gov.uk |
postcode | 97.88% | |
postcodeIsPartial | 100% | true on 14.22% of postcodes โ the council published only the outward code |
ratingDate | 90.49% | null on the 9.51% carrying a pre-2000 placeholder |
address | 86.20% | The populated address lines, joined |
ratingScore | 78.93% | 0โ5 as an integer; null for Scotland's word ratings |
hygieneScore / structuralScore / managementConfidenceScore | 78.21% | FHRS only (88.44% of FHRS rows, 0% of Scottish rows) |
latitude / longitude | 75.53% | Numbers, not strings. Never 0 โ measured zero fake coordinates |
๐ฏ How many rows a date window actually returns
Measured on the same sample and extrapolated to the full 613,379-row register:
| Window | % of register | UK-wide rows | Cost at $0.0005/row |
|---|---|---|---|
| Rated in last 7 days | 0.21% | ~1,272 | $0.64 |
| Rated in last 14 days | 0.47% | ~2,855 | $1.43 |
| Rated in last 30 days | 1.36% | ~8,314 | $4.16 |
| Rated in last 90 days | 7.08% | ~43,453 | $21.73 |
| Rated in last 365 days | 37.43% | ~229,604 | $114.80 |
| Awaiting first inspection | 6.78% | ~41,587 | $20.79 |
| Rated 0/1/2 or "Improvement Required" | 3.21% | ~19,687 | $9.84 |
Everything (lookbackDays: 0) | 100% | 613,379 | $306.69 |
Councils publish in batches, so the most recent fortnight fills in as they upload โ a 7-day window run today and re-run next week will not return the same rows.
โ The honest limits โ read these before you buy
1. There is no business email, and there is no business phone.
The FHRS schema has no email field at all. It does have a Phone field: it was filled on
0 of 84,835 records. The bulk XML export omits the element entirely. localAuthorityEmail is
100% filled but holds one address per council (5 councils in our fixtures โ 5 distinct addresses)
โ it is the town hall's food-safety inbox. This is a premises list, not a contact list. If you
need contact details you need a separate name+postcodeโwebsite enrichment step; that is a different
product and this Actor does not pretend to do it.
2. Newly registered โ dated. Businesses awaiting a first inspection carry the placeholder
1901-01-01 (measured on 84% of them), so they cannot be filtered by date. They are delivered as a
segment (ratingStatus: "awaiting-inspection") and their ratingDate is null, never 1901. If you
want a true "appeared since my last run" feed, use onlyNewSinceLastRun.
3. Not every council publishes the awaiting-inspection segment. Measured live on 2026-09-16: Liverpool 1,159, Bristol 595, Cardiff 403, Sheffield 353 โ but Birmingham, Leeds and Manchester returned zero. If your target city is one of those, the newly-registered half of this product does not exist there.
4. Scotland is a different scheme. FHIS publishes Pass / Improvement Required and no
sub-scores whatsoever โ hygieneScore is null on 100% of Scottish rows. It is not missing data,
it is not collected. A Scottish Pass is a good result; it is not scored 0.
5. 14.22% of postcodes are outward-code only (SW4, SE11), across 47 of the 48 councils
sampled. They are flagged with postcodeIsPartial so you do not post to a postcode district.
6. The cost of a run is fixed, not per row. The FSA API refuses an unfiltered query, so a
UK-wide run always reads all 363 council shards (376 requests, ~480 MB) no matter how narrow your
date window is. A 1-day national window costs the same compute as a 90-day one โ so prefer wider
windows, or narrow by localAuthorities/regions instead of by date.
7. ratingDate is the inspection date, not the publication date. A council can publish a
three-week-old inspection today. That is why onlyNewSinceLastRun exists.
๐ How it reads the register
api.ratings.food.gov.uk, the FSA's own documented API, with the keyless x-api-version: 2 header
(omit the header and the same URL returns 404, not 403). Measured on 2026-09-16:
- The unfiltered query is refused โ by design, not by a bot wall.
GET /Establishments?pageSize=10returns HTTP 403 with the body{"Message":"This is a CPU intensive query: please use one of the documented filters in your query (e.g. filter by LocalAuthority)."}No Cloudflare, no JS challenge, no cookie, no CAPTCHA. So the Actor shards by council: 363 shards, 12 of which need a second page and one (Birmingham, 10,239 rows) a third โ 376 requests for the whole country. - Concurrency is the real constraint. At 8 requests in flight, 8 of 16 came back HTTP 429
("This is a CPU intensive query. Please either: try again laterโฆ", no
Retry-After). At 5 in flight, 24 of 24 were clean; at 4, 48 of 48. The default is 4, and a 429 pauses the whole run briefly rather than retrying one request into the same wall. - Every page is checked against its own envelope. The API states
itemCountper page andtotalCountper council, so a short page is detected exactly instead of being shipped as a small council. Birmingham's three pages reconcile to 10,239 distinct ids with zero overlap. - Rows repeated across a page boundary are dropped before billing, so a live insert mid-sweep cannot double-charge you.
๐ท Pricing
$0.0005 per establishment delivered. No run-start fee. No monthly fee.
You are charged once per row that lands in your dataset. Establishments filtered out by your date
window, council, business type or rating are never delivered and never charged. A run that matches
nothing costs $0.00. Councils that could not be reached are listed in RUN_SUMMARY and charged
nothing.
| Typical run | Rows | Cost |
|---|---|---|
| One city, last 30 days, incl. new registrations | ~200โ900 | $0.10 โ $0.45 |
| Whole UK, rated in the last 7 days | ~1,272 | $0.64 |
| Whole UK, rated in the last 30 days | ~8,314 | $4.16 |
| Whole UK, everything awaiting a first inspection | ~41,587 | $20.79 |
โ๏ธ Recipes
Every food business rated in the last week, nationally
{ "lookbackDays": 7, "includeNewlyRegistered": false, "maxEstablishments": 0 }
Brand-new food businesses in your patch (the freshest lead in the register)
{ "lookbackDays": 0, "ratingValues": ["AwaitingInspection"], "regions": ["North West"] }
Premises that just failed โ the remedial-work list for a food-safety consultancy
{ "lookbackDays": 90, "ratingValues": ["0", "1", "2", "Improvement Required"], "maxEstablishments": 0 }
New restaurants and takeaways only, for an EPOS or delivery-platform rep
{ "lookbackDays": 30, "businessTypes": ["Restaurant/Cafe/Canteen", "Takeaway/sandwich shop"] }
A daily feed of what is genuinely new since you last looked
{ "lookbackDays": 0, "onlyNewSinceLastRun": true, "regions": ["London"], "maxEstablishments": 0 }
Run it on a schedule. The first run has no baseline so it returns everything in scope; every run after that returns only what this Actor has never delivered to you before.
โ FAQ
Does this give me the restaurant's email address or phone number?
No. Neither exists in the source. There is no email field, and Phone measured 0 filled out of
84,835 records. Anyone selling you an FHRS "email list" is enriching it from somewhere else.
Why is ratingDate empty on some rows?
Because the source put 1901-01-01 there. 9.51% of records carry a pre-2000 placeholder โ almost
all of them businesses awaiting a first inspection or exempt from rating. Passing that through would
put "last inspected 1901" at the top of your oldest-first sort, so it is null instead.
Why do Scottish rows have no hygiene scores?
Scotland runs FHIS, a different scheme. It publishes Pass / Improvement Required and no
numeric sub-scores at all. Set schemeType: "FHRS" to exclude Scotland.
What does a hygiene score of 0 mean?
The best possible result. FHRS sub-scores are penalty points โ lower is better, and a 5-star
premises typically scores 0 or 5. A null means not published; it never means 0.
Can I get the whole register?
Yes: lookbackDays: 0 with maxEstablishments: 0. That is 613,379 rows, 376 requests, roughly
480 MB and several minutes โ and $306.69. Most buyers want a window.
How fresh is it?
Each run records the API's own extractDate in RUN_SUMMARY. The register is live; councils upload
in batches, and /Authorities reports each council's LastPublishedDate. On 2026-09-16, 345 of 363
councils had published within 7 days.
Why is it slow for a one-day window?
Because the FSA refuses unfiltered queries, so the Actor must read every council shard and filter
locally. There is no server-side date filter โ we tested ratingDateFrom, ratingDate and
sortOptionKey=date against the live API and all three were silently ignored, returning exactly
the same result as a made-up parameter.
What happens if a council is down?
It is retried 5 times on a fresh proxy session, then reported in RUN_SUMMARY under
authoritiesUnreachable โ kept separate from authoritiesWithNoEstablishments, because "we could
not reach it" and "it has none" mean different things to someone working a lead list. Neither is
charged for. If more than 20% of councils fail, the run stops rather than presenting a partial
country as a complete one.
Can I use a residential proxy? You can, but don't. The source has no anti-bot of any kind and a national sweep reads ~480 MB โ datacenter is both sufficient and far cheaper.
โ๏ธ Legal
Food hygiene ratings are UK public-sector open data, published by the Food Standards Agency under the Open Government Licence v3.0 via the FSA's own documented public API, which requires no key and no account. This Actor reads that API exactly as documented, one council at a time, and honours its stated request limits.
robots.txt: checked on 2026-09-16 โ https://api.ratings.food.gov.uk/robots.txt returns
HTTP 404, and so does https://ratings.food.gov.uk/robots.txt. Neither host publishes a
robots.txt, so there is no crawl directive to honour or breach. The Actor reads only
api.ratings.food.gov.uk, the host the FSA publishes for programmatic access, and never the
consumer website's search pages.
No personal data is collected: every row describes a food business premises, not an individual. Some sole traders (childminders, mobile caterers) trade under their own name, which is how the FSA publishes it. You are responsible for your own use of the data, including UK GDPR and PECR obligations if you market to these businesses.
Data source: Food Standards Agency, ratings.food.gov.uk. This Actor is not affiliated with or endorsed by the FSA.