England
SupportedRiver, sea, surface water, defended probability, reservoirs, recorded outlines, defences and NCERM coastal mapping.
Location intelligence
Screen a property location against flood probability, recorded flood history, nearby EA defences, river, sea, surface-water, reservoir and English coastal mapping.
/api/v1/property/flood-riskProvide postcode, or both latitude and longitude.
Geographic availability
The colour is a geographic coverage indicator, not a risk score. Always inspect source status and completeness in the API response.
River, sea, surface water, defended probability, reservoirs, recorded outlines, defences and NCERM coastal mapping.
River, sea and surface-water mapping is configured. English reservoir, defence, recorded-history and NCERM layers do not apply.
SEPA flood sources are not configured.
DfI Rivers flood sources are not configured.
Cost per successful request
A successful request costs 10 credits and checks the flood categories available for the property location.
Deducted after a successful response.
Handler errors are not charged. A successful partial screen is charged.
Checks whether the location point falls within published river or sea mapping and normalises the returned classification into a severity.
For England, returns the RoFRS high, medium, low or very-low likelihood band and available minimum-depth layers. This dataset takes account of flood defences.
Returns published risk bands and confidence values where the relevant source layer matches.
For England, checks dry-day and wet-day credible worst-case reservoir failure extents and returns available reservoir and lead-authority context.
For England, checks 2055 and 2105 NCERM projections plus coastal ground-instability zones, including shoreline plan references where published.
For England, checks whether the location intersects an Environment Agency Recorded Flood Outline and returns available event dates, source, cause and data quality.
For England, returns up to 25 EA-managed, owned or inspected defence assets inside the requested radius, with rounded distance and selected condition data.
complete=false means at least one expected provider failed. Provider plumbing is deliberately excluded from the response.
Returns the highest normalised severity and matching category details.
| Field | Meaning |
|---|---|
| data.complete | True only when every source expected for the resolved country answered successfully. |
| data.coverage | Resolved country, both England and Wales providers for coordinate-only input, or not-covered. |
| data.location | Resolved property location and the radius used for nearby flood-defence checks. |
| data.riskLevel | Highest normalised level: none, low, medium or high. |
| data.risks | Eight fixed risk keys. Each contains riskLevel, count and a short details array. |
Use canonical coordinates
curl -X GET "https://propertyinsights.co.uk/api/v1/property/flood-risk?latitude=52.123&longitude=-1.234" \
-H "x-api-key: YOUR_API_KEY"Use a wider defence search radius
curl -X GET "https://propertyinsights.co.uk/api/v1/property/flood-risk?postcode=ZZ1%201ZZ&radiusMetres=1000" \
-H "x-api-key: YOUR_API_KEY" Successful chargeable JSON responses include a top-level billing object. The endpoint examples on this page focus on the endpoint-specific data, so this repeated block may not be shown in every example.
"billing": {
"mode": "prepaid",
"creditsCharged": 1,
"creditsRemaining": 1999,
"creditsRefreshAt": "2026-08-14T09:30:00.000Z"
}| Field or header | Meaning |
|---|---|
| billing.creditsCharged X-Credits-Charged | Credits charged by this call. Failed and non-chargeable calls return 0 in the header. |
| billing.creditsRemaining X-Credits-Remaining | The credit balance after the call. |
| billing.creditsRefreshAt X-Credits-Refresh-At | The next monthly credit refresh as an ISO 8601 timestamp. Trial and non-renewing balances return null and omit the header. |
All authenticated API-key calls expose the billing headers, including validation errors and zero-credit status or management requests. Only successful chargeable JSON responses add the billing object to the response body.
| Name | Required | Type | Description |
|---|---|---|---|
| postcode | No | string | Full England or Wales postcode. Alternatively provide coordinates. |
| latitude | No | number | Latitude when postcode is omitted. |
| longitude | No | number | Longitude when postcode is omitted. |
| radiusMetres | No | integer | Nearby flood-defence search radius from 25 to 2,000 metres. Defaults to 250. |
This is mapped screening data, not a property-specific flood assessment. An empty result does not establish that a property has never flooded or is insurable.
curl -X GET "https://propertyinsights.co.uk/api/v1/property/flood-risk?postcode=ZZ1%201ZZ" \
-H "x-api-key: YOUR_API_KEY"{
"success": true,
"data": {
"location": {
"postcode": "ZZ1 1ZZ",
"country": "england",
"latitude": 52.123,
"longitude": -1.234,
"radiusMetres": 250
},
"coverage": "england",
"complete": true,
"riskLevel": "medium",
"risks": {
"riverAndSea": {
"riskLevel": "medium",
"count": 1,
"details": [
{
"type": "river",
"classification": "2"
}
]
},
"riverAndSeaLikelihood": {
"riskLevel": "medium",
"count": 1,
"details": [
{
"classification": "Medium",
"minimumDepthMetres": 0
}
]
},
"surfaceWater": {
"riskLevel": "none",
"count": 0,
"details": []
},
"reservoir": {
"riskLevel": "none",
"count": 0,
"details": []
},
"coastalErosion": {
"riskLevel": "none",
"count": 0,
"details": []
},
"coastalGroundInstability": {
"riskLevel": "none",
"count": 0,
"details": []
},
"historicFlooding": {
"riskLevel": "none",
"count": 0,
"details": []
},
"floodDefences": {
"riskLevel": "low",
"count": 1,
"details": [
{
"name": "Fictional Flood Wall",
"distanceMetres": 85
}
]
}
}
}
}Authentication, parameters, billing headers and response schemas are also published in the machine-readable OpenAPI documents in JSON and YAML.