UK Food Hygiene Ratings Scraper
Pricing
from $2.50 / 1,000 food hygiene rating results
UK Food Hygiene Ratings Scraper
Search official Food Standards Agency FHRS/FHIS data and return one structured record per UK food establishment. Filter by name, postcode/address, radius, rating, scheme, local authority, business type, or exact FHRS ID across England, Wales, Northern Ireland, and Scotland.
Pricing
from $2.50 / 1,000 food hygiene rating results
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
UK Food Hygiene Ratings Scraper searches the official Food Standards Agency (FSA) Food Hygiene Rating Scheme (FHRS) and Food Hygiene Information Scheme (FHIS) API and returns one structured dataset item per UK food establishment. It is designed for local restaurant research, food-safety monitoring, compliance workflows, property and location analysis, lead enrichment, and AI agents that need current public hygiene-rating records.
What this actor does
Use it when you need official hygiene ratings for restaurants, cafes, takeaways, pubs, hotels, supermarkets, schools, or other food businesses in England, Wales, Northern Ireland, or Scotland. Search by business name, address or postcode, coordinates and radius, rating, scheme, local authority, business type, or exact FHRS ID. The actor uses the FSA API directly, so it does not need browser automation, cookies, or an API key.
The default input searches for restaurant and returns up to 25 records. Results are capped before charging, and the actor uses the FSA-recommended paged requests of 200 records or fewer with configurable flow control.
Output and price
Each returned establishment costs $0.0025 per result, plus Apify platform compute according to your selected billing model. A small 25-result search therefore has a typical result-event charge of $0.0625, excluding platform compute. The actor stops before emitting a record when the per-run result cap or PPE event limit is reached.
The dataset contains businessName, ratingValue, ratingKey, schemeType, ratingDate, newRatingPending, address fields, postcode, phone, FSA scores when supplied, coordinates, distance, local authority details, fsaUrl, apiUrl, and scrapedAt. A run summary is written to the OUTPUT key-value record with counts, pages, warnings, and the FSA source.
When to use it
- Find all food businesses with a particular rating near a UK postcode or coordinate.
- Monitor a restaurant group, local authority, town, or business category.
- Retrieve exact records when you already have FHRS IDs.
- Build a local food-safety dataset for dashboards, research, or AI workflows.
- Enrich a list of venues with the latest public rating and inspection date.
This actor is for FHRS/FHIS establishment data. It is not a restaurant review scraper, menu scraper, food-delivery scraper, or general business directory scraper.
Input
All fields are optional. The default searchQuery is restaurant.
| Field | Description |
|---|---|
searchQuery | Business-name keyword, such as The Golden Lion or pizza. |
address | Street, town, city, or UK postcode, such as B1 1AA. |
latitude, longitude | Decimal coordinate pair for a radius search. |
radiusMiles | Coordinate-search radius from 0.1 to 100 miles; default 5. |
establishmentIds | Exact FHRS IDs, such as [80928, 1865746]; when present, search filters are ignored. |
schemeType | FHRS for ratings or FHIS for Scotland information statuses. |
rating | FHRS value such as 5 or FHIS status such as Pass. |
ratingOperator | Equal, GreaterThanOrEqual, or LessThanOrEqual for numeric FHRS ratings. |
businessTypeId | Official FSA business-type identifier. |
localAuthorityId | Official FSA local-authority identifier. |
countryId | Official FSA country identifier. |
sortBy | Relevance, rating, desc_rating, alpha, desc_alpha, or distance. |
maxResults | Maximum records and maximum result-event charges; 1–1000, default 25. |
pageSize | FSA page size; 1–200, default 100. |
requestDelayMs | Delay between requests; 100–10000 ms, default 500. |
For an exact record lookup:
{"establishmentIds": [1865746]}
For nearby five-star businesses:
{"searchQuery": "","address": "","latitude": 51.5074,"longitude": -0.1278,"radiusMiles": 2,"rating": "5","sortBy": "distance","maxResults": 50}
Output example
{"fhrsId": 1865746,"businessName": "The Golden Lion","businessType": "Restaurant/Cafe/Canteen","address": "10 High Street, Cambridge, CB2 1AA","postcode": "CB2 1AA","ratingValue": "5","ratingKey": "fhrs_5_en-gb","schemeType": "FHRS","ratingDate": "2026-07-29T00:00:00","newRatingPending": false,"localAuthorityName": "Cambridge City","fsaUrl": "https://ratings.food.gov.uk/business/1865746"}
How to use it from code
JavaScript with the Apify client:
const run = await apifyClient.actor('YOUR_USERNAME/uk-food-hygiene-ratings-scraper').call({searchQuery: 'pizza',address: 'Birmingham',rating: '5',maxResults: 25,});const { items } = await apifyClient.dataset(run.defaultDatasetId).listItems();console.log(items);
Python with the Apify client:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("YOUR_USERNAME/uk-food-hygiene-ratings-scraper").call({"searchQuery": "cafe","address": "Leeds","maxResults": 20,})items = list(client.dataset(run["defaultDatasetId"]).iterate_items())print(items)
Data source, freshness, and limitations
The source is the public Food Standards Agency FHRS API v2. The FSA data reflects the hygiene standards found at the date of inspection or visit; a food hygiene rating is not a guide to food quality. Records may have newRatingPending: true, and FHRS IDs can change when local authorities change or merge source databases. The source is updated by the FSA and participating local authorities, so the actor does not guarantee a particular update time or coverage for an individual authority.
The FSA applies traffic shaping. HTTP 403 and 429 responses can mean the service is throttling requests. This actor retries transient responses with exponential backoff and adds a configurable delay between pages, but a large run can still receive a partial result. Check the OUTPUT key for warnings. For full nightly authority downloads, use the FSA open-data files rather than repeatedly querying the live API.
Use the FSA data according to the FSA open-data terms and guidance and the FHRS API documentation. Do not present a rating as a food-quality or safety guarantee, and direct questions about a specific business to the responsible local authority.
Related Apify data tools
Explore related categories and dedicated actors for restaurant data, Google Maps leads, business directories, local business data, postcode data, location intelligence, compliance data, and public records.
FAQ
Is an API key required?
No. The FSA documents this as a public API with no registration requirement. The actor sends the required API-version header and handles ordinary throttling responses.
Can I search by postcode?
Yes. Put the postcode in address, for example B1 1AA. You can also combine an address with a name keyword.
Can I retrieve a single business?
Yes. Supply its FHRS ID in establishmentIds, for example [1865746]. This uses the direct FSA establishment endpoint.
Why did I receive fewer results than requested?
The FSA may return fewer matches than the cap, a filter may be restrictive, the source may be throttling, or the actor may have stopped after a diagnostic failure. Inspect OUTPUT.warnings, totalMatchingRecords, and pagesFetched.
What is the difference between FHRS and FHIS?
FHRS provides numeric hygiene ratings in England, Wales, and Northern Ireland. FHIS is the information scheme used in Scotland and can return statuses such as Pass, ImprovementRequired, or AwaitingInspection.