# Food Hygiene Ratings (FSA)

> Look up UK food hygiene ratings from the Food Standards Agency: search restaurants, takeaways, shops and other food businesses by name, postcode or location, and get each one's rating, inspection scores and the council that inspected it. Covers England, Wales, Northern Ireland and Scotland. No account or API key required.

App · 3 actions. Web page: https://docs.lodol.com/docs/integrations/food-standards-agency

## Actions

### Get establishment

Get one food business's hygiene rating by its FHRS ID: the rating and when it was given, the three inspection scores with the FSA's description of each, the address and the council that inspected it. No API key required.

**Inputs**

- FHRS ID (`establishment_id`, text, required): The establishment's FHRS ID, as Search establishments returns it or as it appears at the end of its page on ratings.food.gov.uk.

**Outputs**

- `address` (text): The full address on one line, postcode last.
- `business_type` (text): The kind of business, e.g. 'Takeaway/sandwich shop'.
- `business_type_id` (number): The FSA's ID for that kind.
- `distance_miles` (number): Miles from the point searched around. Empty unless a latitude and longitude were given.
- `hygiene_description` (text): The FSA's words for the hygiene score, e.g. 'Very good'.
- `hygiene_score` (number): The inspection score for food hygiene and safety. Lower is better: 0 is the best, 25 the worst.
- `id` (number): The establishment's FHRS ID, for use with Get establishment.
- `latitude` (number): Latitude, when the FSA has it.
- `local_authority` (text): The council that inspected it, e.g. 'Westminster'.
- `local_authority_code` (text): The council's FSA code.
- `local_authority_email` (text): The council's food safety email address.
- `local_authority_website` (text): The council's website.
- `longitude` (number): Longitude, when the FSA has it.
- `management_description` (text): The FSA's words for the management score.
- `management_score` (number): The inspection score for how food safety is managed. Lower is better.
- `name` (text): The business name, e.g. 'Pret A Manger'.
- `new_rating_pending` (true/false): True when a new rating has been given but not yet published.
- `phone` (text): A phone number, when the council gave one.
- `postcode` (text): The postcode, e.g. 'W12 7GA'.
- `rating` (text): The rating as the FSA shows it: '0' to '5', 'Pass', 'Improvement Required', 'Awaiting Inspection', 'Awaiting Publication' or 'Exempt'.
- `rating_date` (text): When the rating was given, as YYYY-MM-DD.
- `rating_number` (number): The rating as a number from 0 to 5. Empty for Scottish and unrated establishments.
- `right_to_reply` (text): The business's published reply to its rating, if any.
- `scheme` (text): 'FHRS' (England, Wales and Northern Ireland, rated 0 to 5) or 'FHIS' (Scotland, rated Pass or Improvement Required).
- `structural_description` (text): The FSA's words for the structural score, e.g. 'Good'.
- `structural_score` (number): The inspection score for the building's cleanliness and condition. Lower is better.
- `summary` (text): One readable line, e.g. 'Petit Pret: rated 5 (Very good) on 2024-09-27, Hammersmith and Fulham'.
- `url` (text): The establishment's page on the FSA website.

**Example output**

```json
{
  "address": "Unit C302A, Westfield London Shopping Centre, Ariel Way, London, W12 7GA",
  "business_type": "Restaurant/Cafe/Canteen",
  "business_type_id": 1,
  "distance_miles": null,
  "hygiene_description": "Very good",
  "hygiene_score": 0,
  "id": 1006008,
  "latitude": 51.507578,
  "local_authority": "Hammersmith and Fulham",
  "local_authority_code": "513",
  "local_authority_email": "foodandsafety@lbhf.gov.uk",
  "local_authority_website": "http://www.lbhf.gov.uk",
  "longitude": -0.22128,
  "management_description": "Very good",
  "management_score": 0,
  "name": "Petit Pret",
  "new_rating_pending": false,
  "phone": null,
  "postcode": "W12 7GA",
  "rating": "5",
  "rating_date": "2024-09-27",
  "rating_number": 5,
  "right_to_reply": null,
  "scheme": "FHRS",
  "structural_description": "Good",
  "structural_score": 5,
  "summary": "Petit Pret: rated 5 (Very good) on 2024-09-27, Hammersmith and Fulham",
  "url": "https://ratings.food.gov.uk/business/1006008"
}
```

### List local authorities

List the councils that inspect and rate food businesses, with their IDs for searching, regions, how many businesses each has rated and their food safety contacts. Narrow it by name or region. No API key required.

**Inputs**

- Name (`name`, text): Only councils whose name contains this.
- Region (`region`, text): Only councils in this region, e.g. London, Scotland, Wales or North West.

**Outputs**

- `authorities` (list): The councils, A to Z.
- `count` (number): How many councils were returned.

**Example output**

```json
{
  "authorities": [
    {
      "code": "501",
      "email": "foodsafety@lbbd.gov.uk",
      "establishment_count": 1469,
      "id": 88,
      "last_published": "2026-10-14",
      "name": "Barking and Dagenham",
      "region": "London",
      "scheme": "FHRS",
      "website": "http://www.lbbd.gov.uk/Pages/Home.aspx"
    }
  ],
  "count": 1
}
```

### Search establishments

Search the UK's food hygiene ratings for restaurants, takeaways, shops and other food businesses by name, address or postcode, or near a point. Filter by business type, rating, council or country, and sort by rating, name or distance. Each result has its rating, inspection scores and council. No API key required.

**Inputs**

- Business name (`name`, text): Words in the business name, e.g. Pret.
- Address or postcode (`address`, text): Words in the address or postcode, e.g. London or W12 7GA.
- Business type (`business_type_id`, text): Only this kind of business. One of: `1` (Restaurant/Cafe/Canteen), `7844` (Takeaway/sandwich shop), `7843` (Pub/bar/nightclub), `7842` (Hotel/bed & breakfast/guest house), `7846` (Mobile caterer), `7841` (Other catering premises), `7840` (Retailers - supermarkets/hypermarkets), `4613` (Retailers - other), `5` (Hospitals/Childcare/Caring Premises), `7845` (School/college/university), and 4 more.
- Rating (`rating`, text): Only establishments with this rating. One of: `5` (5 - Very good), `4` (4 - Good), `3` (3 - Generally satisfactory), `2` (2 - Improvement necessary), `1` (1 - Major improvement necessary), `0` (0 - Urgent improvement necessary), `Pass` (Pass (Scotland)), `ImprovementRequired` (Improvement Required (Scotland)), `AwaitingInspection` (Awaiting Inspection), `AwaitingPublication` (Awaiting Publication), `Exempt`.
- Compare rating (`rating_operator`, text): Whether to match the rating exactly or include better or worse ones. Works for 0 to 5 ratings only. One of: `Equal` (Exactly this rating), `GreaterThanOrEqual` (This rating or better), `LessThanOrEqual` (This rating or worse). Default: `Equal`.
- Local authority ID (`local_authority_id`, text): Only businesses rated by this council, by the ID List local authorities returns.
- Country (`country`, text): Only businesses in this country. One of: `England`, `Northern Ireland`, `Scotland`, `Wales`.
- Latitude (`latitude`, number): Search around this point. Give a longitude with it. From -90 to 90.
- Longitude (`longitude`, number): Search around this point. Give a latitude with it. From -180 to 180.
- Within miles (`max_distance_miles`, number): How far from the point to search, in miles. Defaults to 1 when a point is given. From 0.1 to 50.
- Sort by (`sort`, text): How to order the results. Distance needs a latitude and longitude. One of: `relevance` (Best match), `rating` (Rating, highest first), `desc_rating` (Rating, lowest first), `alpha` (Name, A to Z), `desc_alpha` (Name, Z to A), `distance` (Distance, nearest first). Default: `relevance`.
- Page (`page`, number): Which page of results to return, from 1. At least 1. Default: `1`.
- Results per page (`page_size`, number): How many establishments to return, from 1 to 200. From 1 to 200. Default: `20`.

**Outputs**

- `count` (number): How many were returned on this page.
- `establishments` (list): The establishments on this page.
- `page` (number): The page returned, from 1.
- `total` (number): How many matched in all.
- `total_pages` (number): How many pages there are.

**Example output**

```json
{
  "count": 1,
  "establishments": [
    {
      "address": "Unit C302A, Westfield London Shopping Centre, Ariel Way, London, W12 7GA",
      "business_type": "Restaurant/Cafe/Canteen",
      "business_type_id": 1,
      "distance_miles": null,
      "hygiene_score": 0,
      "id": 1006008,
      "latitude": 51.507578,
      "local_authority": "Hammersmith and Fulham",
      "local_authority_code": "513",
      "local_authority_email": "foodandsafety@lbhf.gov.uk",
      "local_authority_website": "http://www.lbhf.gov.uk",
      "longitude": -0.22128,
      "management_score": 0,
      "name": "Petit Pret",
      "new_rating_pending": false,
      "phone": null,
      "postcode": "W12 7GA",
      "rating": "5",
      "rating_date": "2024-09-27",
      "rating_number": 5,
      "right_to_reply": null,
      "scheme": "FHRS",
      "structural_score": 5,
      "summary": "Petit Pret: rated 5 (Very good) on 2024-09-27, Hammersmith and Fulham",
      "url": "https://ratings.food.gov.uk/business/1006008"
    }
  ],
  "page": 1,
  "total": 296,
  "total_pages": 296
}
```
