UK Food Business Data — FSA Hygiene Ratings & Addresses
Pricing
$3.00 / 1,000 company records
UK Food Business Data — FSA Hygiene Ratings & Addresses
Search the UK Food Standards Agency register of food businesses by name, town or postcode. Returns business name and type, full address and postcode, hygiene rating with inspection date, the hygiene/structural/management sub-scores, local authority and coordinates.
Pricing
$3.00 / 1,000 company records
Rating
0.0
(0)
Developer
Berkan Kaplan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Share
UK Food Business Data — FSA Hygiene Ratings & Addresses 🍽️
foXLabs UK series: UK companies · UK charities · UK public contracts · EU TED tenders
🎉 Every restaurant, café, takeaway, pub, shop and caterer in the UK with its food-hygiene rating, full address, postcode and coordinates — searched by brand, by town or by business type. No key, no login. Built for hospitality suppliers, food-tech sales teams, and anyone building a location list of UK food businesses.
🔍 What is this Actor — and when should you use it?
The Food Standards Agency rates every food business in the UK and publishes the result. This Actor searches that register by brand name, place name or business type and returns one clean row per premises: name, full address with postcode, hygiene rating and its component scores, the rating date, coordinates, and the local authority responsible — including that authority's contact e-mail.
Use it when you need: a list of every Nando's or Greggs branch with addresses; all restaurants in a postcode district; food businesses of one type (takeaways, mobile caterers, schools); or a hygiene-risk view of a supplier base.
Use something else when: you want company registration and directors rather than premises — use UK Company Data. The FSA register is about locations, not legal entities.
🤖 Use with AI agents
Already on the Apify MCP server? Ask for this Actor by name: foxlabs/uk-food-business-data.
Your agent can pay for its own runs. This Actor is pay-per-event with agentic payments, so an agent can discover it, run it and settle the bill over x402 (USDC on Base) or Skyfire — no Apify account or API token of its own. Billing is the same either way: per delivered premises row.
Otherwise paste this into Claude, ChatGPT, Cursor or any MCP-enabled assistant:
Run the Apify actor foxlabs/uk-food-business-data with{"queries":["Shoreditch"],"maxResultsPerQuery":30}and list the restaurants with their hygiene ratings and postcodes.
📋 Overview
| Source | UK Food Standards Agency (ratings.food.gov.uk) |
| Coverage | England, Wales, Northern Ireland and Scotland |
| Auth needed | None. No API key, no login, no proxy required |
| Row | One food premises |
| Measured run | 90 rows in 4.8 s for 3 queries (2026-09-20, build 0.1.8) |
| Pricing | $0.003 per delivered row — $3 per 1,000 |
✨ Features
- 🔎 Brand, place or type — search "Greggs", "Shoreditch" or filter to one business type
- ⭐ Hygiene rating plus the three component scores (hygiene, structural, management)
- 📮 Full address and postcode on every row
- 📍 Coordinates on most rows — plots straight onto a map
- 🏛️ Local authority with its contact e-mail and website
- 🆕 New-business flag — premises awaiting their first inspection
- ⚡ Key-free and fast — 90 premises in under 5 seconds, no proxy
🎬 Quick Start
curl -X POST "https://api.apify.com/v2/acts/foxlabs~uk-food-business-data/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"queries":["Nando'\''s","Greggs","Shoreditch"],"maxResultsPerQuery":30}'
🚀 Getting Started (3 steps)
- Search however you think.
queriestakes brand names or place names — the default run mixes both. - Narrow by type if you want.
businessTyperestricts to e.g. restaurants or takeaways. - Run it. Rows arrive in the dataset; export to CSV/JSON/Excel or read them over the API.
📥 Input
| Field | Type | Default | Description |
|---|---|---|---|
queries | array | ["Nando's","Greggs","Shoreditch"] | Brand names or place names |
businessType | string | "" (all) | Restrict to a single FSA business type |
maxResultsPerQuery | integer | 30 | Cap on premises returned per query |
maxConcurrency | integer | 4 | Parallel requests against the FSA |
requestDelayMs | integer | 0 | Optional pause between requests |
includeRaw | boolean | false | Attach the untouched FSA record to each row |
proxyConfiguration | object | proxy off | The FSA answers direct requests |
Example — every branch of a chain:
{ "queries": ["Greggs"], "maxResultsPerQuery": 200 }
Example — one neighbourhood:
{ "queries": ["Shoreditch", "Hackney"], "maxResultsPerQuery": 100 }
📤 Output
One row per premises. Fill rates from the measured run (90 rows, 3 queries, 2026-09-20):
| Field | Type | Fill | Description |
|---|---|---|---|
companyName | string | 100% | Trading name of the premises |
registrationNumber | string | 100% | FSA business id |
status | string | 100% | Record status |
address | string | 100% | Full address line |
postalCode | string | 100% | Postcode |
city | string | 99% | Town or city |
countryName | string | 100% | UK nation |
industry / industryCode | string | 100% | FSA business type and its code |
hygieneRating | string | 100% | The published rating |
ratedOn | string | 100% | Date of the rating |
hygieneScore | number | 97% | Hygiene component score |
structuralScore | number | 97% | Structural component score |
managementScore | number | 97% | Confidence-in-management score |
isNewBusiness | boolean | 100% | Awaiting first inspection |
schemeType | string | 100% | FHRS (England/Wales/NI) or FHIS (Scotland) |
localAuthority | string | 100% | Council responsible for the rating |
localAuthorityEmail | string | 99% | That council's contact e-mail |
localAuthorityWebsite | string | 100% | Council website |
latitude / longitude | number | 88% | Coordinates, where the FSA publishes them |
sourceUrl | string | 100% | FSA record for the premises |
country / registry / query / scrapedAt | string | 100% | Provenance fields |
The three component scores sit at 97% because new businesses awaiting inspection have a rating but no scores yet — isNewBusiness marks exactly those. Columns the FSA does not publish (tax number, legal form, incorporation date, headcount, capital, business website, business e-mail or phone) were removed rather than shipped permanently empty.
A real row from the default run:
{"companyName": "Camino Shoreditch","registrationNumber": "1008217","address": "2 CURTAIN ROAD, Hackney, London, EC2A 3BL","city": "London","postalCode": "EC2A 3BL","industry": "Restaurant/Cafe/Canteen","sourceUrl": "https://ratings.food.gov.uk/business/1008217"}
💼 Use cases
- Hospitality supply sales — build an address list of restaurants, cafés or takeaways in a territory
- Franchise mapping — every branch of a chain with postcodes and coordinates
- Site selection — food-business density by area, straight onto a map
- Supplier due diligence — hygiene ratings across a set of premises you buy from or deliver to
- Local-market research — business-type mix in one town or postcode district
🔗 Integration
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('foxlabs/uk-food-business-data').call({queries: ['Shoreditch'], maxResultsPerQuery: 30,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("foxlabs/uk-food-business-data").call(run_input={"queries": ["Shoreditch"], "maxResultsPerQuery": 30})items = client.dataset(run["defaultDatasetId"]).list_items().items
No-code: Make, n8n and Zapier reach this Actor through the Apify app — schedule it and push premises into a CRM or a sheet.
📊 Pricing
Pay-per-event: company-record — $0.003 per delivered row ($3 per 1,000). Compute and traffic are included; you pay for rows, not run time. Rows without a business name are not charged.
❓ FAQ
Do I need an FSA API key? No. The hygiene register is open data and this Actor needs no key, login or proxy.
Does it cover Scotland? Yes — Scotland uses the FHIS scheme rather than FHRS, and schemeType tells you which applies to each row.
Can I search by postcode? Place names work well; for a postcode district, search the town and filter the output by postalCode prefix.
Why do some premises have a rating but no scores? New businesses are listed before their first full inspection. isNewBusiness marks them.
Is there a phone number or the business's own e-mail? No — the FSA publishes the local authority's contact details, not the premises'. Those are the localAuthority* fields.
How current is the rating? ratedOn carries the inspection date; councils update on their own schedule.
🐛 Troubleshooting
A chain returns fewer branches than expected. maxResultsPerQuery caps per query — raise it for a national chain.
A place-name search returns nearby towns. The FSA matches loosely; filter the output by city or postalCode for a tight list.
Coordinates are missing on some rows. The FSA does not geocode every premises; that is the 88% figure above.
⚠️ Trademark
The Food Standards Agency is a UK government body. This Actor is an independent tool, is not affiliated with or endorsed by the FSA, and reads only publicly published hygiene-rating records. Brand names belong to their owners.
⚖️ Is it legal to scrape this data?
The FSA publishes hygiene ratings as open data precisely so the public can look them up before deciding where to eat. The rows this Actor returns describe business premises and their inspection results — business information, not personal data. You remain responsible for how you use the output.
🤝 Support & contact
Questions, a field you need, or a bug: info@foxlabs.com.tr — or open an issue on the Actor's Apify page.
Changelog
0.1.8
- Removed permanently-empty columns (tax number, status detail, legal form, incorporation date, headcount, capital, business website, e-mail, phone, officers) — the FSA register does not carry them. Row went from 36 columns to 26, with zero permanently-empty columns left.
0.1
- FSA hygiene-register search by brand or place, with ratings, component scores, coordinates and local-authority contacts.
- Pay-per-event billing on delivered rows (
company-record).