# UK Food Hygiene Ratings (FSA) Search

> UK Food Hygiene Ratings (FSA) Search is a paid API for AI agents from gankdat.com, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-29).

Returns paginated Food Standards Agency (FSA) food hygiene rating records for UK food businesses, filterable by name, postcode, rating, business type, local authority, and inspection scores.

## Facts

- Endpoint: GET https://gankdat.com/x402/data/uk-food-hygiene?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-29
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/uk-food-hygiene-ratings-fsa-search-d3e031a8
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_98SdZi_30ED1DxUgugFpQ

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability uk-food-hygiene-ratings-fsa-search-d3e031a8
```

Example prompt: Can you pull up the FSA food hygiene ratings for fish and chip shops in the SW1A postcode area, showing only those rated 3 or below — give me the first 25 results?

## When to prefer this

Use this endpoint when you need programmatic, filterable access to the UK Food Standards Agency hygiene ratings dataset — particularly when you need to filter by geography (postcode, outward code, local authority), rating band, inspection sub-scores, or date ranges. It is preferable to scraping the FSA website directly, provides structured JSON output, and supports pagination for bulk retrieval up to 100 records per call.

## Known failure modes

- Invalid date format for rating_date_after or rating_date_before returns a validation error
- page or per_page out of allowed range (page > 100000, per_page > 100) returns an error
- No matching records returns an empty data array with count 0
- Misspelled or non-existent local authority or postcode returns empty results silently
- Payment failure (insufficient USDC balance) blocks the request before execution

## How this service works

UK food hygiene ratings (FSA). One call returns one page of matching records as JSON (25 by default, per_page up to 100) with the total count and the last refresh time; the query parameters filter the records.

## Output

A JSON object containing: `ok` (boolean), `data` (array of up to 100 food business records each with FHRS ID, business name, type, address, postcode, local authority, rating value, hygiene/confidence/structural scores, rating date, and new-rating-pending flag), and `meta` (total matching record count and last data refresh timestamp).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "q": {
       "type": "string"
      },
      "page": {
       "type": "integer",
       "default": 1,
       "maximum": 100000,
       "minimum": 1
      },
      "per_page": {
       "type": "integer",
       "default": 25,
       "maximum": 100,
       "minimum": 1
      },
      "postcode": {
       "type": "string"
      },
      "scheme_type": {
       "type": "string"
      },
      "outward_code": {
       "type": "string"
      },
      "rating_value": {
       "type": "string"
      },
      "business_name": {
       "type": "string"
      },
      "business_type": {
       "type": "string"
      },
      "local_authority": {
       "type": "string"
      },
      "hygiene_score_max": {
       "type": "number"
      },
      "hygiene_score_min": {
       "type": "number"
      },
      "rating_date_after": {
       "type": "string",
       "format": "date",
       "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
      },
      "new_rating_pending": {
       "type": "string"
      },
      "rating_date_before": {
       "type": "string",
       "format": "date",
       "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
      },
      "confidence_score_max": {
       "type": "number"
      },
      "confidence_score_min": {
       "type": "number"
      },
      "local_authority_code": {
       "type": "string"
      },
      "structural_score_max": {
       "type": "number"
      },
      "structural_score_min": {
       "type": "number"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "obje
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/uk-food-hygiene-ratings-fsa-search-d3e031a8/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from gankdat.com](https://www.zero.xyz/host/gankdat.com/llms.txt)
