UK Food Hygiene Rating Downgrade Watchdog avatar

UK Food Hygiene Rating Downgrade Watchdog

Pricing

from $0.01 / 1,000 results

Go to Apify Store
UK Food Hygiene Rating Downgrade Watchdog

UK Food Hygiene Rating Downgrade Watchdog

Tracks UK Food Standards Agency hygiene ratings run over run and flags actual changes: rating downgrades, upgrades, and overdue re-inspections. Keyless official FSA API - no other Store Actor compares ratings across time.

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

Halil Erdogan

Halil Erdogan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Tracks UK Food Standards Agency (FSA) hygiene ratings run over run and flags what actually changed, instead of dumping a static snapshot.

Every other Food Hygiene Rating Scheme (FHRS/FHIS) Actor on the Apify Store (checked 27 Sep 2026 - eight competing scrapers, none above 4 total users) does the same thing: pull the current ratings for an area and hand them back as one list. None of them remember what the rating was last time. This Actor's whole point is that comparison.

What it does

On every run it:

  1. Loads the last-seen rating for every establishment it has ever checked from its own private key-value store.
  2. Queries the official, public, keyless FSA API (api.ratings.food.gov.uk) for every local authority, address/postcode, or specific establishment (FHRSID) you ask it to watch.
  3. Classifies each establishment against its saved state:
    • downgrade - the numeric FHRS rating fell (e.g. 5 → 1). The headline alert.
    • upgrade - the rating rose.
    • re_inspected_no_change - a new inspection happened but the rating stayed the same.
    • overdue_for_reinspection - not already top-rated (FHRS 5 or FHIS "Pass") and no new inspection in longer than your configured threshold. No other FSA Actor surfaces this at all.
    • new_establishment - the first time this business has been seen.
    • unchanged - nothing new.
  4. Pushes one row per establishment (or only the changed/alert rows, if you ask for that) and saves the new state for next run.

Why this is different

A one-off scrape of a council's food ratings is a commodity - eight Actors already do it, badly, at near-zero adoption. A downgrade watchdog that tells a resident, journalist, franchise auditor, or insurer "this specific restaurant just dropped from 5 to 1" - or "this takeaway hasn't been re-inspected in three years and isn't top-rated" - is a genuinely different product built on the exact same free data.

Input

FieldTypeDescription
localAuthoritiesarray of stringsCouncil names to watch, e.g. "Manchester".
addressesOrPostcodesarray of stringsFree-text address/postcode searches, e.g. "SW1A 1AA".
watchFhrsidsarray of numbers/stringsSpecific establishment IDs to track individually.
maxResultsPerAreaintegerCap per search area (default 200, max 2000).
overdueMonthsintegerRe-inspection overdue threshold in months (default 18).
onlyAlertsbooleanOnly push downgrade + overdue_for_reinspection rows.
onlyChangedRecordsbooleanSkip anything unchanged since the last run.

At least one of localAuthorities, addressesOrPostcodes, or watchFhrsids is required.

Output (one dataset row per establishment)

{
"fhrsid": 1821479,
"business_name": "Example Takeaway",
"business_type": "Takeaway/sandwich shop",
"address": "12 High Street, Manchester",
"postcode": "M1 1AA",
"local_authority": "Manchester",
"scheme_type": "FHRS",
"rating_value": "1",
"rating_date": "2026-09-01T00:00:00",
"months_since_inspection": 0.9,
"previous_rating_value": "5",
"previous_rating_date": "2025-02-17T00:00:00",
"rating_delta": -4,
"event_type": "downgrade",
"overdue_flag": false,
"fsa_url": "https://ratings.food.gov.uk/business/en-GB/1821479"
}

Data source

Food Standards Agency Food Hygiene Rating Scheme API

  • official UK government open data, public and keyless, covering FHRS (England/Wales/NI, 0-5 scale) and FHIS (Scotland, Pass/Improvement Required) establishments. No scraping, no authentication, no terms-of-use workaround: every request hits the documented public endpoint.

Pricing model

Pay-per-event (hygiene-record-detected), charged once per dataset row pushed. A search area that fails to respond charges nothing and is reported separately in the run's key-value store under RUN_STATS.