UK Food Hygiene Ratings Scraper icon

Lead generation

UK Food Hygiene Ratings Scraper — FSA Establishments

Export UK Food Standards Agency hygiene ratings — business name, type, rating, rating date, full address, postcode, phone and local authority — as clean JSON, CSV or Excel.

Free Apify credit covers a first run. No credit card to try.

What this Actor scrapes

The FSA publishes a hygiene rating for every food business in the UK, which makes it one of the few open datasets with a name, an address and a phone number for hundreds of thousands of hospitality venues. The API is fussy — it needs a version header, refuses unfiltered queries outright, and splits the address across four numbered fields. This Actor handles all three and hands back one clean row per establishment.

What we handle for you

  • 🛡️ Browser fingerprint rotation — the target sees a real browser TLS handshake, not a script.
  • 🌐 Proxy rotation — fresh exit on every block through Apify Proxy.
  • 🔁 Retries with backoff — 408 / 429 / 5xx retried up to five times, Retry-After honoured.
  • 🧊 Clean, typed rows — schema-validated output with ISO-8601 timestamps.
  • 💰 Pay per result — no data, no result charge.

Use cases

  • Build a hospitality prospect list with names, addresses and phone numbers by council area.
  • Screen suppliers or franchise sites against their current hygiene rating.
  • Track rating changes across a chain or a town over time.
  • Map food businesses in a catchment area using the published coordinates.

Input

Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.

FieldTypeRequiredWhat it does
businessName string no Match establishments whose name contains this text. Leave empty to filter by authority or town instead.
localAuthorityId string no FSA local authority ID, e.g. 413. Use this to pull a whole council area.
address string no Match on address text — a town, street or postcode fragment.
minRating integer no Only establishments rated at least this (0-5). Leave at 0 for every rating. Non-numeric ratings (Scotland's Pass/Improvement Required) are kept regardless.
maxResults integer no Stop after this many establishments. Each one is one billed result row.
{
  "businessName": "cafe",
  "maxResults": 3,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}

Output

One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.

fhrs_idbusiness_namebusiness_typerating_valuerating_dateaddresspostcodephonelocal_authoritylocal_authority_websitelatitudelongitudescheme_type

{}

Pricing

EventPriceWhen
Actor start$0.20Once per run, covers warm-up and proxy session setup.
Result emitted$0.0020Per result written to the dataset.

You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.

Limitations

  • Returns the current rating only — the API does not expose full inspection history.
  • Phone numbers and coordinates are published for most but not all establishments.

FAQ

Do I need an API key?
No. The FSA API is open. The Actor sends the version header the API requires, which is the usual reason a hand-rolled request gets a confusing 404.
Why must I set a filter?
The API rejects an unfiltered query with a 403 explaining it is CPU intensive. Give it a name, an authority or an address and it answers immediately.
What about Scottish ratings?
Scotland uses FHIS (Pass / Improvement Required) rather than 0-5. Those rows come through unchanged and are never dropped by the minimum-rating filter.

Ready to run it?

Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.

Related Actors

Teams that run this also run