Energy certificates (energimerke) registered at the address
energy_certificate21 fields8 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.
- The latest certificate Enova holds for each unit (bruksenhetsnummer) or building at the address; older certificates for the same unit are superseded. A certificate is valid for ten years from issued_date. No record means none is registered for this address or ours could not be tied to it — never that the building would score badly. Energy labelling has been mandatory at sale and rental since 2010, so owner-occupied homes that never changed hands often have none.
- Grades from the two regimes are NOT comparable: regulation 'pre_2026' is the old scheme (energy_grade on calculated delivered energy, heating_grade as Enova's colour, fossil_share); regulation '2026' is the new scheme (grade on weighted delivered energy in a reference climate, weighted_delivered_energy_kwh_m2, heated_area_m2, certificate_url). Simple registrations are made by the owner with Enova's calculator; Schema/Advanced by an energy adviser or professional system.
- address_match says how Enova's record was tied to this address: street_address (the certificate's own address and postal code), building (its bygningsnummer), or cadastral (its gnr/bnr on a parcel with a single address). Measured 28 Sep 2026 across all 1 859 038 certificates: 96.5 % tie to an address (98.0 % of those still valid, 99 % of those issued since 2023); the rest mostly predate address changes.
Fields
7 of 21 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 |
|---|---|---|---|
| attestnummer | string | null | context | — |
| regulation | string | null | context | open |
| energy_grade | string | null | value | open |
| heating_grade | string | null | value | — |
| building_category | string | null | context | open |
| building_year | integer | null (årstall) | context | open |
| bygningsnummer | integer | null | context | — |
| bruksenhetsnummer | string | null | context | open |
| stated_area_m2 | number | null (m2) | context | — |
| heated_area_m2 | number | null (m2) | context | — |
| delivered_energy_kwh_m2 | number | null (m2) | value | — |
| weighted_delivered_energy_kwh_m2 | number | null (m2) | value | — |
| fossil_share | number | null (andel) | context | — |
| material | string | null | context | — |
| registration_type | string | null | context | — |
| issued_date | string | null | value | open |
| valid_until | string | null | value | open |
| is_valid | boolean | null | value | open |
| certificate_url | string | null | context | — |
| address_match | string | null | context | — |
| fetched_at | string | null | context | — |
Fetch this section
curl -H "X-API-Key: $APPROACH_API_KEY" \ "https://api.approach.no/api/v1/addresses/285717643?include=energy_certificate" # paginated, one section at a time curl -H "X-API-Key: $APPROACH_API_KEY" \ "https://api.approach.no/api/v1/addresses/285717643/sections/energy_certificate?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.