UK Food Business Data — FSA Hygiene Ratings & Addresses avatar

UK Food Business Data — FSA Hygiene Ratings & Addresses

Pricing

$3.00 / 1,000 company records

Go to Apify Store
UK Food Business Data — FSA Hygiene Ratings & Addresses

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

Berkan Kaplan

Maintained by Community

Actor 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

SourceUK Food Standards Agency (ratings.food.gov.uk)
CoverageEngland, Wales, Northern Ireland and Scotland
Auth neededNone. No API key, no login, no proxy required
RowOne food premises
Measured run90 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)

  1. Search however you think. queries takes brand names or place names — the default run mixes both.
  2. Narrow by type if you want. businessType restricts to e.g. restaurants or takeaways.
  3. Run it. Rows arrive in the dataset; export to CSV/JSON/Excel or read them over the API.

📥 Input

FieldTypeDefaultDescription
queriesarray["Nando's","Greggs","Shoreditch"]Brand names or place names
businessTypestring"" (all)Restrict to a single FSA business type
maxResultsPerQueryinteger30Cap on premises returned per query
maxConcurrencyinteger4Parallel requests against the FSA
requestDelayMsinteger0Optional pause between requests
includeRawbooleanfalseAttach the untouched FSA record to each row
proxyConfigurationobjectproxy offThe 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):

FieldTypeFillDescription
companyNamestring100%Trading name of the premises
registrationNumberstring100%FSA business id
statusstring100%Record status
addressstring100%Full address line
postalCodestring100%Postcode
citystring99%Town or city
countryNamestring100%UK nation
industry / industryCodestring100%FSA business type and its code
hygieneRatingstring100%The published rating
ratedOnstring100%Date of the rating
hygieneScorenumber97%Hygiene component score
structuralScorenumber97%Structural component score
managementScorenumber97%Confidence-in-management score
isNewBusinessboolean100%Awaiting first inspection
schemeTypestring100%FHRS (England/Wales/NI) or FHIS (Scotland)
localAuthoritystring100%Council responsible for the rating
localAuthorityEmailstring99%That council's contact e-mail
localAuthorityWebsitestring100%Council website
latitude / longitudenumber88%Coordinates, where the FSA publishes them
sourceUrlstring100%FSA record for the premises
country / registry / query / scrapedAtstring100%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 ApifyClient
client = 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.

View current pricing.

❓ 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.

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).