Skip to main content
Free UK property data API Start free →
Back to Blog
Developer & API Oct 27, 2025 · 9 min read

UK Flood Risk Data Explained: NAFRA2, Risk Bands, and the EA Flood Risk API

What EA NAFRA2 flood risk data means, how the four risk bands work, and how to query flood risk for any UK property by UPRN.

Homedata Team · Updated

What is EA flood risk data?

The Environment Agency's National Flood Risk Assessment 2 (NAFRA2) is the authoritative dataset for flood risk in England. It covers two distinct flood types — river and coastal flooding, and surface water flooding — and classifies every point in the country into one of four risk bands.

NAFRA2 replaced the older Flood Map for Planning in 2024. It uses hydraulic modelling and climate projections to estimate the probability of flooding at any location, expressed as a likelihood per year. The underlying data is published by DEFRA at environment.data.gov.uk.

As of May 2026, the Building Safety Act's requirements for higher-risk buildings are adding flood risk disclosure to the due-diligence checklist for high-rise residential schemes. Developers and conveyancers working on buildings over 18 metres now cross-reference NAFRA2 data as part of their Building Assessment Certificate process.

The four flood risk bands

Both flood types use the same four-band classification:

Band Annual probability Score Plain English
High Greater than 1 in 30 4 Floods more than once every 30 years on average
Medium 1 in 30 to 1 in 100 3 Between a 1% and 3.3% annual chance of flooding
Low 1 in 100 to 1 in 1,000 2 Between a 0.1% and 1% annual chance of flooding
Very low Less than 1 in 1,000 1 Less than a 0.1% annual chance of flooding

A property flagged as High risk from rivers and sea doesn't mean it floods every year — it means the probability of flooding in any given year is greater than about 3.3%. Over a 25-year mortgage term, that's roughly a 60% chance of at least one flood event.

Rivers and sea vs. surface water — what's the difference?

The API returns two separate risk assessments per property, because the causes — and therefore the risks — are distinct:

  • Flood from rivers and sea (flood_rivers_sea) — water overflowing from rivers, estuaries, or coastal zones. Typically affects low-lying land near watercourses. Properties in flood plains, river valleys, or coastal areas are most exposed. Modelled using river flow data and coastal surge projections.
  • Flood from surface water (flood_surface_water) — rainwater that can't drain away fast enough, accumulating on roads, gardens, and property. Often affects urban areas with heavy paving, overwhelmed drainage systems, or natural low points in the landscape. A property can have high surface water risk even if it's nowhere near a river.

These two risk types don't always match. A property might be on high ground (low river flood risk) but sit in a bowl that collects runoff (high surface water risk). Looking at both together gives a complete picture.

Querying the Flood Risk API

The Homedata Flood Risk API wraps the DEFRA WMS and returns NAFRA2 data by UPRN. You need a UPRN — if you have an address, use the Address Lookup API first to resolve it.

Endpoint:

GET https://api.homedata.co.uk/api/risks/flood/?uprn={uprn}
Authorization: Api-Key YOUR_API_KEY

cURL:

curl "https://api.homedata.co.uk/api/risks/flood/?uprn=100023336956" \
  -H "Authorization: Api-Key YOUR_API_KEY"

Python:

import requests

API_KEY = "your_api_key"
UPRN = 100023336956

resp = requests.get(
    "https://api.homedata.co.uk/api/risks/flood/",
    params={"uprn": UPRN},
    headers={"Authorization": f"Api-Key {API_KEY}"},
)
data = resp.json()

for result in data["results"]:
    print(f"{result['risk_type']}: {result['label']}")
    print(f"  {result['properties']['description']}")

JavaScript:

const uprn = 100023336956;
const response = await fetch(
  `https://api.homedata.co.uk/api/risks/flood/?uprn=${uprn}`,
  { headers: { Authorization: "Api-Key YOUR_API_KEY" } }
);
const data = await response.json();

data.results.forEach((risk) => {
  console.log(`${risk.risk_type}: ${risk.label}`);
  console.log(`  ${risk.properties.description}`);
});

Example response

{
  "risk_type": "flood",
  "uprn": 100023336956,
  "location": {
    "lat": 51.509865,
    "lon": -0.118092
  },
  "results": [
    {
      "risk_type": "flood_rivers_sea",
      "label": "Low",
      "score": 2,
      "score_unit": "band",
      "intersects": true,
      "distance_m": 0,
      "search_radius_m": 0,
      "count": 1,
      "radius_description": "At property",
      "properties": {
        "description": "Between 1 in 1,000 and 1 in 100 chance of flooding each year",
        "confidence": "H"
      }
    },
    {
      "risk_type": "flood_surface_water",
      "label": "Medium",
      "score": 3,
      "score_unit": "band",
      "intersects": true,
      "distance_m": 0,
      "search_radius_m": 0,
      "count": 1,
      "radius_description": "At property",
      "properties": {
        "description": "Between 1 in 100 and 1 in 30 chance of flooding each year",
        "confidence": "H"
      }
    }
  ]
}

If a property has no detected flood risk from a particular source, that risk type is omitted from results — it doesn't appear with a "None" or "Very low" entry. An empty results array means no flood risk detected from either source.

The full environmental picture

Flood is one of seven risk types available through the API. To get everything in a single call, use /api/risks/all/:

curl "https://api.homedata.co.uk/api/risks/all/?uprn=100023336956" \
  -H "Authorization: Api-Key YOUR_API_KEY"

This returns flood risk alongside:

  • noise — road and rail noise in dB (from DEFRA noise maps)
  • radon — radon gas potential (BGS 1km grid, class 1-6)
  • landfill — nearest historic or active landfill site (distance in metres)
  • coal_mining — Coal Authority development risk areas
  • invasive_plants — Japanese knotweed and six other Schedule 9 species within 5 miles
  • air_quality_today — today's DAQI air quality index (1-10) from the nearest UK-AIR monitoring station

Use cases

Mortgage and conveyancing due diligence

Mortgage lenders and conveyancers routinely commission flood risk searches as part of property transactions. The API lets you automate this: look up flood risk at application time, flag Medium or High risk properties for manual review, and pass the result directly into your LOS or case management system.

def check_flood_for_mortgage(uprn: int, api_key: str) -> dict:
    resp = requests.get(
        "https://api.homedata.co.uk/api/risks/flood/",
        params={"uprn": uprn},
        headers={"Authorization": f"Api-Key {api_key}"},
        timeout=15,
    )
    resp.raise_for_status()
    results = resp.json().get("results", [])

    max_band = 0
    for r in results:
        max_band = max(max_band, r.get("score", 0))

    return {
        "uprn": uprn,
        "flood_score": max_band,  # 1=Very low, 2=Low, 3=Medium, 4=High
        "requires_review": max_band >= 3,
        "raw": results,
    }

Insurance pricing enrichment

General insurers price home insurance partly on flood risk. By pulling NAFRA2 data at quote time — rather than relying on expensive specialist flood data suppliers — you can build a lightweight first-pass risk score that directs high-risk quotes to specialist underwriters.

Property search and listing tools

Add a flood risk badge to property listings. Buyers are increasingly asking about environmental risks. Showing a "Low flood risk" indicator on a listing is a positive signal; flagging "Medium surface water risk" builds trust and sets expectations before viewings.

// Map API score to display badge
function floodBadge(score) {
  const badges = {
    0: { label: "No risk detected", color: "green" },
    1: { label: "Very low flood risk", color: "green" },
    2: { label: "Low flood risk", color: "yellow" },
    3: { label: "Medium flood risk", color: "orange" },
    4: { label: "High flood risk", color: "red" },
  };
  return badges[score] ?? badges[0];
}

// Get the highest band across both flood types
const maxScore = Math.max(
  ...data.results.map((r) => r.score ?? 0),
  0
);
const badge = floodBadge(maxScore);

Things to know

  • England only — NAFRA2 covers England. Scotland (SEPA), Wales (NRW), and Northern Ireland (DAERA) each maintain separate flood risk datasets under different APIs and access arrangements.
  • Point query — flood risk is assessed at the property's lat/lng centroid, not its boundary polygon. A large garden might span a river zone boundary; the API returns the risk at the building itself.
  • NAFRA2 is not a planning constraint — it's a risk indicator. Planning constraint zones (Flood Zones 1, 2, 3) are a different dataset. For planning work, consult the Planning Portal directly.
  • Climate projections included — NAFRA2 incorporates UKCP18 climate scenarios, so it accounts for increased flood risk from climate change over a 50-year horizon. Older NFRA1 data did not.

Getting started

  1. Create a free Homedata account
  2. Get your API key from the developer dashboard
  3. Resolve any address to a UPRN using the Address Lookup API
  4. Query flood risk: GET /api/risks/flood/?uprn={uprn}

See the full Flood Risk API reference for parameter details, response schemas, and additional risk types.

Start building with the free API →

100 calls/month · EPC, Land Registry, council tax, schools · No credit card

Get free API key

Query flood risk for any UK property

Free API key — 100 calls/month, no credit card required.

Related posts

May 7, 2026

UK Stamp Duty Calculator 2026: How Much SDLT Will You Pay?

May 7, 2026

Selling a Property After Probate: The Complete UK Guide for 2026

May 7, 2026

What Property Can I Afford in the UK? The 2026 Buyer Guide

May 7, 2026

How Do UK Mortgages Work? A Complete 2026 Guide

May 7, 2026

How Long Does It Take to Buy a House in the UK? 2026 Timeline

May 7, 2026

How Much Does Moving House Cost in the UK? 2026 Breakdown

May 7, 2026

What Is Conveyancing? The UK Step-by-Step Guide for 2026

May 7, 2026

How Do Property Auctions Work in the UK? The 2026 Investor Guide

May 4, 2026

Mansion Tax 2028? The High Value Council Tax Surcharge Explained

Apr 29, 2026

Holiday Let Rules 2026: Registration, Planning and Tax Changes for Airbnb Owners

Apr 24, 2026

Ground Rent Cap and Commonhold: What the 2026 Leasehold Reform Bill Really Changes

Apr 17, 2026

Planning Rules 2026: What Developers Need to Know After the Planning and Infrastructure Act

Apr 10, 2026

Scotland Rent Controls 2026: What Has Started, What Comes Later, and Who Is Exempt

Apr 3, 2026

Are Property Packs Coming Back? Material Information and Home Buying Reform Explained

May 1, 2026

Renters Rights Act 2026: What Landlords Must Do Now

May 6, 2026

31 May 2026 Landlord Deadline: The Renters Rights Act Information Sheet Explained

May 3, 2026

Section 21 Is Gone: How Landlords Can Repossess Property After 1 May 2026

Apr 22, 2026

EPC C by 2030: What the 2026 MEES Decision Means for Landlords

Apr 15, 2026

Building Safety Levy October 2026: What Residential Developers Must Budget For

Apr 8, 2026

Making Tax Digital for Landlords: April 2026 Start Date, Thresholds and Software Checklist

May 6, 2026

How to Scrape UK Property Listings (And Why You Probably Shouldn t)

Apr 4, 2026

UK Postcode Geocoding API: Convert Postcodes to Coordinates (Python & JS)

Apr 4, 2026

How to Bulk Export UK Property Data: Python & Node.js Guide

Mar 17, 2026

Tracking UK Property Market Activity via API: Listing Events, Price Reductions, and Deal Flow

Mar 3, 2026

UK House Price Growth by Postcode: Tracking Capital Appreciation via API

Feb 17, 2026

How to Build an Automated Property Valuation (AVM) with the Homedata API

Feb 3, 2026

Building a School Finder: Ofsted Ratings + Distance from Any UK Postcode

Jan 20, 2026

How to Calculate Property Development Feasibility in the UK

Jan 6, 2026

How to Build a Rental Yield Calculator with the Homedata API

Dec 22, 2025

How Much Is My Council Tax? The Exact Formula (and Why Postcode Estimates Are Wrong)

Dec 8, 2025

Address Lookup Tutorial: Typeahead → Resolve → Enriched Property in Under 50 Lines

Nov 24, 2025

What Is a UPRN? The Complete Guide to UK Property Reference Numbers

Nov 10, 2025

EPC Ratings Explained: A Developer s Guide to Energy Performance Certificates

Oct 13, 2025

Council Tax Bands API: VOA Data, Band Lookup, and Use Cases

Sep 29, 2025

Build an EPC Compliance Checker with Python and the Homedata API

Apr 6, 2026

UK Census 2021 Demographics API: Get Area Data by Postcode (Python & JS)