UK Food Business Monitor - FSA hygiene register
Pricing
from $0.02 / actor start
UK Food Business Monitor - FSA hygiene register
Watches the Food Standards Agency register for newly registered food businesses and hygiene-rating changes in the local authorities you choose. Each scheduled run emits only what changed since the last run, with address, rating and coordinates, plus optional webhook POST.
Pricing
from $0.02 / actor start
Rating
0.0
(0)
Developer
FJ Banks
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Share
UK Food Business Monitor — FSA hygiene register
Watches the Food Standards Agency register for newly registered food businesses — and, optionally, hygiene-rating changes — in the local authorities you choose. Each scheduled run emits only what changed since the last run, with address, rating and coordinates. Optional webhook POST to Slack, Zapier, Make or n8n.
Who it's for
| Buyer | Use |
|---|---|
| EPOS / booking / kitchen-display vendors | A new restaurant or takeaway = a system to sell, week one |
| Food & drink wholesalers, packaging suppliers | New caterers in your delivery area |
| Commercial kitchen equipment / refrigeration | New premises fitting out |
| Business insurance brokers | New food businesses need cover |
| Accountants & bookkeepers | New hospitality clients in your town |
| Food-safety consultants / PR | A rating drop to 0–2 = an urgent-help lead |
| Local press / researchers | New-opening and rating-change feeds by area |
Quick start
- No API key — the FSA register is free open data.
- Set
localAuthoritiesto the councils you cover (names like"Manchester"or"Leeds"; fragments match, so"Kensington"finds "Kensington and Chelsea"). Optionally narrow bybusinessTypeIds. - Run once — the first run only seeds the state (emits nothing), because it
would otherwise dump every establishment. Set
emitOnFirstRun: trueif you want them all once. - Schedule it daily. Later runs report new registrations and rating changes.
Input
| Field | Type | Default | Description |
|---|---|---|---|
localAuthorities | string[] | — | Required. Local-authority names or numeric IDs. Name fragments match. |
businessTypeIds | string[] | [] (all) | FSA type IDs. Common: 1 Restaurant/Cafe/Canteen · 7844 Takeaway/sandwich shop · 7843 Pub/bar/nightclub · 7846 Mobile caterer · 7840 Supermarket · 7842 Hotel/B&B · 4613 Retailers-other · 5 Hospitals/Childcare/Caring. |
trackRatingChanges | boolean | true | Also emit establishments whose rating changed since last run. |
emitOnFirstRun | boolean | false | First run seeds silently by default; set true to emit every establishment once. |
webhookUrl | string | — | POST {source, authorities, count, establishments[]} each run. |
maxResults | integer 1–10000 | 1000 | Cap per run. |
Output
One dataset item per changed establishment:
| Field | Example |
|---|---|
fhrs_id | 593681 |
change_type | "new" or "rating_changed" |
previous_rating | "5" (only for rating_changed) |
business_name | "210 BISTRO" |
business_type / business_type_id | "Restaurant/Cafe/Canteen" / 1 |
rating_value / rating_date | "Pass" / "2026-03-26T00:00:00" |
local_authority | "Aberdeen City" |
address / post_code | "210 Market Street, Aberdeen, AB11 5PQ" / "AB11 5PQ" |
latitude / longitude | 57.142278 / -2.092258 |
link | https://ratings.food.gov.uk/business/en-GB/593681 |
scraped_at | "2026-09-03T09:00:00.000Z" |
Ratings are 0–5 in England/Wales/NI and Pass / Improvement Required in
Scotland.
How it works
Cross-run state lives in a named key-value store,
uk-food-monitor-state, namespaced by a hash of the authority + business-type
filter. It holds the set of seen FHRS IDs and, when trackRatingChanges is on, a
map of FHRSID → last rating. Each run pulls the current establishment list for
every configured authority and:
- an FHRS ID not seen before →
change_type: "new" - a seen FHRS ID whose rating differs from the stored one →
change_type: "rating_changed"
The seen-set is capped at 200,000 IDs.
Notes on the FSA API
- No key. Requires
x-api-version: 2and rejects unfiltered establishment queries — this actor always scopes by local authority. - Transient 5xx / 429 are retried (3 attempts, backoff); a hard failure mid-run
pushes what was collected and resumes next run (
partial: true). - The register is refreshed by each local authority on its own cadence (most daily). "New" means new to the register, which closely tracks new registrations.
Local development
npm installnpm testecho '{"localAuthorities":["Aberdeen City"],"businessTypeIds":[7846]}' > storage/key_value_stores/default/INPUT.jsonnpm start
Deploy
$npm i -g apify-cli && apify login && apify push
Data source & licensing
Data from the Food Standards Agency food hygiene rating scheme
(ratings.food.gov.uk), published under the
Open Government Licence v3.0.
Related actors
Part of a small suite of UK public-register monitors, same publisher, same pattern (incremental, no duplicates, webhook-ready):
- UK New Company Monitor — new incorporations by SIC / location
- UK Insolvency Notice Monitor — winding-up, administration, bankruptcy (The Gazette)
- UK Public Tender Monitor — public-sector tenders by CPV / value (Contracts Finder)
- UK Company Change Monitor — watchlist diffing: status, charges, officers, filings
Changelog
- 0.1 — Initial release: multi-authority, business-type filter, new-business
- rating-change detection, first-run seeding, webhook, transient-error retry.