UK Food Hygiene Ratings avatar

UK Food Hygiene Ratings

Pricing

from $1.80 / 1,000 establishments

Go to Apify Store
UK Food Hygiene Ratings

UK Food Hygiene Ratings

Official FSA food hygiene ratings for every UK food business. Search by council, postcode, business type or rating, and isolate businesses rated 2 or below.

Pricing

from $1.80 / 1,000 establishments

Rating

0.0

(0)

Developer

丂卩ㄖㄖҜㄚ

丂卩ㄖㄖҜㄚ

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 hours ago

Last modified

Share

UK Food Hygiene Ratings, FSA

Food hygiene ratings for every food business in the UK, straight from the official Food Standards Agency register. Restaurants, cafes, takeaways, pubs, hotels, schools, care homes, shops and manufacturers.

No API key needed. Search by council, postcode, coordinates, business name, business type or rating.

The useful bit

Set actionableOnly and you get only businesses rated 2 or below, meaning the FSA has told them to improve. Those are the businesses actively looking to fix something right now.

That matters if you sell:

  • Food hygiene consultancy, audits or Level 2 and 3 training
  • Pest control
  • Commercial kitchen deep cleaning or equipment
  • HACCP software or temperature monitoring
  • EPOS and compliance systems

Every record includes the address, postcode, coordinates, and the council's own environmental health contact.

Other uses

Market research. Rating distribution by area or business type.

Property and franchise. Check hygiene history before signing a site or a franchisee.

Journalism. Find the worst rated venues in any council area in one query.

Consumer apps. Enrich a restaurant listing with its official rating.

Input

The FSA rejects unfiltered queries, so set at least one of localAuthorityId, name, postcodeOrAddress, latitude and longitude, businessTypeId or ratingValue.

FieldDescription
localAuthorityIdOne of 363 councils. Full list at api.ratings.food.gov.uk/Authorities
postcodeOrAddressFree text address or postcode
latitude, longitude, radiusMilesRadius search
nameBusiness name contains
businessTypeIdNumeric type id. List at api.ratings.food.gov.uk/BusinessTypes
ratingValueExact rating, 0 to 5
actionableOnlyKeep only businesses rated 2 or below
sortByrating, alpha or distance
maxResultsHard cap on billable results
{
"postcodeOrAddress": "M1 1AE",
"radiusMiles": 5,
"ratingValue": "2",
"actionableOnly": true,
"maxResults": 200
}
FieldTypeDefaultWhat it does
postcodeOrAddressstringM1 1AEFree text address or postcode
namestringBusiness name contains
businessTypeIdintegerNumeric business type id
ratingValuestringExact rating, 0 to 5
actionableOnlybooleanfalseKeep only businesses rated 2 or below
radiusMilesinteger1Radius around the postcode or coordinates
maxResultsinteger500Hard cap on billable results

Output

One item per establishment.

FieldDescription
fhrsIdFSA establishment id
businessName, businessType, businessTypeIdBusiness and its category
address, postcode, phoneLocation and contact where published
latitude, longitudeCoordinates
ratingValueRating as published, 0 to 5, or Pass and Improvement Required in Scotland
ratingNumericNumeric rating, null for Scottish ratings
ratingDateWhen the rating was given
newRatingPendingA re-inspection result is due
isActionableTrue when rated 2 or below
hygieneScore, structuralScore, managementConfidenceScoreComponent scores, lower is better
schemeTypeFHRS for England, Wales and NI, FHIS for Scotland
localAuthority, localAuthorityEmail, localAuthorityWebsiteResponsible council
fsaUrlLink to the public FSA record
retrievedAtRetrieval timestamp

Note that Scotland uses a different scheme with Pass and Improvement Required rather than 0 to 5, so ratingNumeric and isActionable are null and false for Scottish records.

A typical row:

{
"businessName": "Abaseen",
"businessType": "Takeaway/sandwich shop",
"ratingValue": "2",
"ratingDate": "2025-04-18T00:00:00.000Z",
"address": "484 Cheetham Hill Road, Manchester",
"postcode": "M8 9JW",
"localAuthority": "Manchester City Council",
"fsaUrl": "https://ratings.food.gov.uk/business/1820175",
"fhrsId": 1820175
}

Download it from the run as JSON, CSV or Excel, or read it straight from the API.

Run it from the API

curl -X POST "https://api.apify.com/v2/acts/spookyweb~uk-food-hygiene-ratings/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"postcodeOrAddress": "M1 1AE", "radiusMiles": 5, "ratingValue": "2", "actionableOnly": true, "maxResults": 200}'

Or with the Apify client:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('spookyweb/uk-food-hygiene-ratings').call({
postcodeOrAddress: 'M1 1AE',
radiusMiles: 5,
ratingValue: '2',
actionableOnly: true,
maxResults: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Data source

Food Standards Agency, ratings.food.gov.uk, published under the Open Government Licence v3.0. Ratings are a snapshot of the last inspection and can change. Always link back to fsaUrl for the current position.

Postcode formats

Type the postcode however you have it. All of these reach the same place:

M1 1AE m1 1ae M11AE m11ae
M1-1AE M1.1AE "M1 1AE" M1 1AE.

Case, spacing and surrounding punctuation are all normalised before the lookup runs. This matters more than it looks: the postcode is geocoded so that the radius is honoured, and a postcode that fails to resolve falls back to being matched as literal address text, which quietly returns a single business instead of the surrounding area.

GIR 0AA is handled as the special case it is. Anything that is not a postcode, such as a place name or a full address, is matched as address text instead.