Modelled surface-water indicators
Available with: trial key (open fields) · bought bundle or agreed plan (all fields) · Pricing
What this does not say
Quoted verbatim from the section’s warnings field, exactly as the API returns it. They are not translated: a translation would show something other than what your response actually contains.
- Estimate, not a flood map: a screening of where water goes when the ground alone decides, from the national 10 m terrain model: depression_depth_m is how deep water would stand at the point before it drains (a blue spot), hand_value_m the height above the nearest drainage line, flow_accumulation_cells how many 10 m cells drain through the point, slope_degrees the local slope. The 0-100 scores weight these 30/25/20/15 with 10 for the position in the tile's elevation range. A 10 m grid sees neither kerbs, culverts nor drains: not a flood model, not an engineering assessment or an insurance rating.
- Computed nightly in rotation through the kommuner, one 2 km DTM tile at a time (from 6 Oct 2026; a national pass takes about four nights, after which rows older than a year are recomputed in turn). Until an address has been computed the section is not_found with reason not_yet_computed: unknown, never low risk. Addresses where Kartverket's DTM has no ground under the point (sea, lakes, survey holes) stay not computed. Flood zones and quick clay are in hazard_zones.
Fields
12 of 14 fields are value fields — the ones that decide whether a record actually says anything. The rest are context: identifiers, codes and timestamps. Fields marked “open” return values to anonymous callers; the rest require a key.
| Field | Type | Role | Demo |
|---|---|---|---|
| depression_score | integer | null (score 0-100) | value | open |
| hand_score | integer | null (score 0-100) | value | open |
| flow_accumulation_score | integer | null (score 0-100) | value | open |
| slope_score | integer | null (score 0-100) | value | open |
| overall_water_risk | integer | null (score 0-100) | value | open |
| depression_depth_m | number | null (m) | value | open |
| hand_value_m | number | null (m) | value | open |
| flow_accumulation_cells | integer | null (count) | value | open |
| slope_degrees | number | null (degrees) | value | open |
| elevation_m | number | null (m) | value | open |
| nearest_drainage_distance_m | number | null (m) | value | open |
| dtm_resolution_m | integer | null (m) | value | open |
| analysis_date | string | null | context | open |
| updated_at | string | null | context | open |
Fetch this section
Send the key in the X-API-Key header. The section can be fetched with the rest of the address, or on its own with pagination.
curl --fail-with-body --silent --show-error \ -H "X-API-Key: $APPROACH_API_KEY" \ 'https://api.approach.no/api/v1/addresses/285717643?include=water_risk' # paginated, one section at a time curl --fail-with-body --silent --show-error \ -H "X-API-Key: $APPROACH_API_KEY" \ 'https://api.approach.no/api/v1/addresses/285717643/sections/water_risk?limit=25'
Try it now
This is a real call against the public demo, from here. What appears below is what the API returned — not a sample.