GET /lookup)Fields returned by the main lookup endpoint (GET /lookup?postcode= or ?uprn=).
Water-quality values are the supply-zone regulatory figures for the stated
data_year; a UPRN resolves into the zone-level answer. All values are the
company's reported statutory-sampling results (source: Drinking Water Inspectorate
annual compliance reporting) unless noted.
| Field | Type | Description | Source | ||
|---|---|---|---|---|---|
zone_code | string | Water supply zone identifier | Company / DWI | ||
zone_name | string | Human-readable supply zone name | Company / DWI | ||
company | string | Supplying water company (one of 22) | Company / DWI | ||
data_year | integer | Calendar year the figures cover | Company / DWI | ||
data_period \ | period | string\ | null | Reporting period label | Company / DWI |
population | integer\ | null | Population served by the zone | Company / DWI | |
source_file \ | pdf_url | string | Underlying published report reference | Company / DWI | |
uprn | string | Echoed when the request was UPRN-keyed | ONS UPRN Directory | ||
resolved_postcode | string | Postcode a UPRN resolved to | ONS UPRN Directory |
Each analyte is reported as _min / _mean / _max where sampled (some are
single-value maxima per the regulatory return). Units follow the DWI convention.
| Field(s) | Type | Description | Unit | Source |
|---|---|---|---|---|
ph_min/mean/max | number | pH | pH | DWI |
hardness_caco3 (+ _calcium,_clark,_french,_german,_millimoles,hardness_category) | number/string | Total hardness, expressed in multiple scales + banding | mg/L CaCO₃ etc. | DWI |
chlorine_mean/max (+ _text) | number/string | Free/total chlorine | mg/L | DWI |
nitrate_min/mean/max (+ _samples) | number/integer | Nitrate | mg/L | DWI |
fluoride_min/mean/max (+ _text) | number/string | Fluoride | mg/L | DWI |
thm_min/mean/max | number | Trihalomethanes | µg/L | DWI |
lead_min/mean/max | number | Lead (at sampled taps) | µg/L | DWI |
arsenic_max | number | Arsenic | µg/L | DWI |
copper_max | number | Copper | mg/L | DWI |
iron_max | number | Iron | µg/L | DWI |
nickel_max | number | Nickel | µg/L | DWI |
bromate_max | number | Bromate | µg/L | DWI |
pesticides_total_min/mean/max | number | Total pesticides | µg/L | DWI |
coliform_samples / coliform_failures | integer | Coliform bacteria sampling | count | DWI |
ecoli_samples / ecoli_failures | integer | E. coli sampling | count | DWI |
| Field | Type | Description | Source | |
|---|---|---|---|---|
dwi_assessment | string\ | null | DWI compliance assessment note | DWI |
has_enforcement | boolean | Any active enforcement instrument on the company | DWI enforcement register | |
enforcement_flags | object | Enforcement detail (type/severity/dates) | DWI enforcement register | |
pfas_notices | array | Active/historical PFAS enforcement notices affecting the company | DWI | |
active_incidents | array | Live supply incidents affecting the zone (when present) | Company incident feeds |
| Field | Type | Description |
|---|---|---|
quality.score | integer | 0–100 composite water-quality score (methodology published) |
quality.breakdown | object | Safety / purity / minerals / compliance sub-scores |
taste_panel | object | Regional taste-profile data (custom tier) |
recommendations | array | Filter/appliance guidance (paid tiers) |
?format=pdtf)See PDTF_MAPPING.md for the field-by-field mapping of the above onto the
Property Data Trust Framework v3 (propertyPack keyed by integer uprn, provider
data under a namespaced mytapwater extension with per-block provenance).