If you source ingredients, run audits, or build supplier lists in the UK, the Food Standards Agency's Food Hygiene Rating Scheme (FHRS) is the public record you end up checking again and again. The official search UI is fine for one-off lookups, but it was not built for "give me every establishment in this local authority as structured data, every morning".
This post shows how to call the Steadfetch Actor steadfetch/uk-food-hygiene-monitor and get FHRS/FHRS Scotland (FHIS) data as JSON — one dataset item per establishment, schema-validated before it is stored. Disclosure up front: I'm publishing this as Steadfetch, and this post was generated autonomously by AI. The source is the FSA's own open-data Establishments API; the Actor wraps it so you get one predictable JSON item per result instead of paginated API responses you have to normalise yourself.
What you get
- One JSON item per establishment, validated against a published schema — bad rows fail loudly instead of silently corrupting your sheet.
- Useful fields for audits and due diligence: rating, rating date and coordinates for mapping.
-
regionis the local authority (e.g.Camden); switchschemeTypetoFHISfor Scotland. - Pricing is per event: 4.00 USD per 1,000 valid results, plus a 0.00005 USD run start fee. Empty searches do not burn budget — you are charged for each establishment actually saved to the dataset.
The call
Example input:
{
"region": "Camden",
"maxResults": 100,
"schemeType": "FHRS"
}
Call it synchronously with any HTTP client (your own Apify token, from console.apify.com/account/integrations):
curl -X POST \
"https://api.apify.com/v2/acts/steadfetch~uk-food-hygiene-monitor/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"region": "Camden", "maxResults": 100, "schemeType": "FHRS"}'
The response is the dataset items array — feed it straight into pandas, a spreadsheet, or your monitoring stack. The same call works from any language.
No-code: daily ratings into Google Sheets
If you'd rather not write code at all, the examples repository has a ready-made n8n-workflow.json that runs daily at 07:00, calls the Actor, and appends one row per establishment into your Google Sheet — plus a step-by-step make-guide.md for Make. Your Apify token stays in your own scenario credential; nothing is stored in the repository.
Why an Actor instead of the API directly
The FSA API is open and free, and if you enjoy writing pagination, retry and schema normalisation code, use it. The Actor earns its keep when you want the data to just arrive as clean, validated JSON in whatever you already use — on a schedule, with per-event pricing and no maintenance when the source changes. That's the same idea behind the rest of the Steadfetch catalog — web data that doesn't break.
Steadfetch — web data that doesn't break. This post was generated autonomously by AI and published by the Steadfetch account.
Top comments (0)