Plan rules at the address: zoning purpose and utilisation, hensynssoner, kommuneplan
plan_regulations26 fields22 of these fields open in the demo
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.
- Read live from DiBK's national plan base at the address point, so it carries what the kommune has published to NAP. A kommune outside NAP (Oslo publishes to its own register, not to NAP) is answered from the municipal plan register we ingest instead, and source_system says which answered; where we have neither, no match is not the same as no plan. The plan text (bestemmelser) is not in NAP: utilisation, heights and hensynssoner here are what the plan map carries, and the written provisions can add to or override them.
- Which rules apply, not whether the building meets them: no open register records compliance, and an existing building is judged by the permit it was built under.
Fields
7 of 26 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 |
|---|---|---|---|
| zoning_plan_id | string | null | context | — |
| zoning_plan_name | string | null | value | open |
| zoning_plan_type_name | string | null | context | open |
| zoning_plan_status_name | string | null | context | open |
| zoning_in_force_date | string | null | context | open |
| zoning_purpose_code | string | null | context | open |
| zoning_purpose_name | string | null | value | open |
| zoning_utilisation_type | string | null | context | — |
| zoning_utilisation_type_name | string | null | context | open |
| zoning_plan_field | string | null | context | open |
| zoning_utilisation_value | number | null | value | open |
| zoning_utilisation_text | string | null | context | open |
| zoning_max_height_m | number | null (m) | context | open |
| zoning_hensynssoner | array<object> | value | open |
| zoning_provisions | array<object> | context | open |
| kommuneplan_id | string | null | context | — |
| kommuneplan_name | string | null | value | open |
| kommuneplan_in_force_date | string | null | context | open |
| kommuneplan_purpose_code | string | null | context | open |
| kommuneplan_purpose_name | string | null | value | open |
| kommuneplan_arealbruksstatus | string | null | context | open |
| kommuneplan_hensynssoner | array<object> | value | open |
| kommuneplan_provisions | array<object> | context | open |
| source_system | string | context | open |
| updated_at | string | null | context | open |
| retrieved_at | date-time | context | — |
Fetch this section
curl -H "X-API-Key: $APPROACH_API_KEY" \ "https://api.approach.no/api/v1/addresses/285717643?include=plan_regulations" # paginated, one section at a time curl -H "X-API-Key: $APPROACH_API_KEY" \ "https://api.approach.no/api/v1/addresses/285717643/sections/plan_regulations?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.