De Energielabel API

Eén API voor actuele en historische energielabelgegevens van Nederlandse adressen. Op basis van een postcode en huisnummer krijg je het gevalideerde adres en de beschikbare energielabels terug, inclusief uitgebreide energieprestatiegegevens.

De onderliggende Postcode API is inbegrepen: elke response bevat automatisch het gevalideerde adres — straat en woonplaats — zodat je meteen kunt controleren of de opgegeven postcode en het huisnummer bij elkaar horen.

Officiële EP-Online data

We halen de brondata dagelijks op bij RVO en verwerken en combineren dit in onze eigen database. Jouw requests komen dus rechtstreeks uit onze eigen infrastructuur, niet via een externe koppeling.

Account aanmaken
50 ms
gemiddelde responstijd
99,99%
beschikbaarheid
EP-Online
officiële brondata
Eén adres

Energielabel van één adres

Vraag het energielabel van één specifiek adres op. Naast het gevalideerde adres krijg je de volledige energy_labels-array terug: niet alleen het actuele label, maar ook eventuele historische labels van hetzelfde pand.

GET https://api.nederlandpostcode.nl/v2/energy-label?postcode=1118BN&number=800

Stuur je API-token mee in de Authorization: Bearer-header. postcode en number zijn verplicht, addition en attributes[] zijn optioneel.

1
{
2
    "data": {
3
        "postcode": "1118BN",
4
        "number": 800,
5
        "addition": null,
6
        "street": "Schiphol Boulevard",
7
        "city": "Schiphol",
8
        "energy_labels": [
9
            {
10
                "registration_date": "30-08-2022",
11
                "inspection_date": "02-08-2022",
12
                "valid_until_date": "02-08-2032",
13
                "status": "bestaand",
14
                "construction_type": "utiliteitsbouw",
15
                "building_type": null,
16
                "energy_label": "A+++",
17
                "calculation_type": "NTA 8800:2022 (basisopname utiliteitsbouw)",
18
                "inspection_type": "basis",
19
                "construction_year": 2019,
20
                "thermal_zone_area": 5648.39,
21
                "compactness": 1.16,
22
                "energy_demand": 98.4,
23
                "energy_demand_requirement": null,
24
                "primary_fossil_energy": 55.48,
25
                "primary_fossil_energy_requirement": null,
26
                "primary_fossil_energy_emg": null,
27
                "renewable_energy_share": 55.3,
28
                "renewable_energy_share_requirement": null,
29
                "renewable_energy_share_emg": null,
30
                "calculated_energy_consumption": 55.48,
31
                "heat_demand": 55.02,
32
                "calculated_co2_emission": 13.01,
33
                "temperature_excess": 0,
34
                "temperature_excess_requirement": null
35
            },
36
            {
37
                "registration_date": "14-02-2020",
38
                "inspection_date": "10-02-2020",
39
                "valid_until_date": "10-02-2030",
40
                "status": "bestaand",
41
                "construction_type": "utiliteitsbouw",
42
                "building_type": null,
43
                "energy_label": "B",
44
                "calculation_type": "EPBD (energie-index)",
45
                "inspection_type": null,
46
                "construction_year": 2019,
47
                "thermal_zone_area": null,
48
                "compactness": null,
49
                "energy_demand": null,
50
                "energy_demand_requirement": null,
51
                "primary_fossil_energy": null,
52
                "primary_fossil_energy_requirement": null,
53
                "primary_fossil_energy_emg": null,
54
                "renewable_energy_share": null,
55
                "renewable_energy_share_requirement": null,
56
                "renewable_energy_share_emg": null,
57
                "calculated_energy_consumption": null,
58
                "heat_demand": null,
59
                "calculated_co2_emission": null,
60
                "temperature_excess": null,
61
                "temperature_excess_requirement": null
62
            }
63
        ]
64
    }
65
}
Meerdere adressen

Energielabels van meerdere adressen

Wil je de energielabels van meerdere adressen opvragen? Met de energy-label-range-endpoint kun je de beschikbare energielabels van een hele straat of een specifiek deel van een straat in één keer opvragen. Dit is bijvoorbeeld handig voor een appartementencomplex, VvE of een reeks huisnummers binnen dezelfde straat.

Deze endpoint geeft per adres alleen het meest recente energielabel terug — als energy_label (enkelvoud), zonder historie. Wil je de volledige labelhistorie van een adres, gebruik dan /v2/energy-label. Ook belangrijk: je krijgt alleen adressen terug waarvoor minimaal één energielabel beschikbaar is — een huisnummer zonder geregistreerd label komt niet in de response voor.

GET https://api.nederlandpostcode.nl/v1/energy-label-range?postcode=1118BN&number=800&start_number=700&end_number=900

Stuur je API-token mee in de Authorization: Bearer-header. postcode en number zijn verplicht, start_number en end_number begrenzen de huisnummers die worden meegenomen. attributes[] is optioneel.

1
{
2
    "data": [
3
        {
4
            "postcode": "1118BN",
5
            "number": 701,
6
            "addition": null,
7
            "street": "Schiphol Boulevard",
8
            "city": "Schiphol",
9
            "energy_label": {
10
                "registration_date": "30-04-2026",
11
                "inspection_date": "23-03-2026",
12
                "valid_until_date": "23-03-2036",
13
                "status": "bestaand",
14
                "construction_type": "utiliteitsbouw",
15
                "building_type": null,
16
                "energy_label": "A+",
17
                "calculation_type": "NTA 8800:2024 (detailopname utiliteitsbouw)",
18
                "inspection_type": "detail",
19
                "construction_year": 2015,
20
                "thermal_zone_area": 25941.84,
21
                "compactness": 0.51,
22
                "energy_demand": 54.33,
23
                "energy_demand_requirement": null,
24
                "primary_fossil_energy": 162.4,
25
                "primary_fossil_energy_requirement": null,
26
                "primary_fossil_energy_emg": null,
27
                "renewable_energy_share": 23.5,
28
                "renewable_energy_share_requirement": null,
29
                "renewable_energy_share_emg": null,
30
                "calculated_energy_consumption": 162.39,
31
                "heat_demand": 7.31,
32
                "calculated_co2_emission": 34.25,
33
                "temperature_excess": null,
34
                "temperature_excess_requirement": null
35
            }
36
        },
37
        {
38
            "postcode": "1118BN",
39
            "number": 800,
40
            "addition": null,
41
            "street": "Schiphol Boulevard",
42
            "city": "Schiphol",
43
            "energy_label": {
44
                "registration_date": "30-08-2022",
45
                "inspection_date": "02-08-2022",
46
                "valid_until_date": "02-08-2032",
47
                "status": "bestaand",
48
                "construction_type": "utiliteitsbouw",
49
                "building_type": null,
50
                "energy_label": "A+++",
51
                "calculation_type": "NTA 8800:2022 (basisopname utiliteitsbouw)",
52
                "inspection_type": "basis",
53
                "construction_year": 2019,
54
                "thermal_zone_area": 5648.39,
55
                "compactness": 1.16,
56
                "energy_demand": 98.4,
57
                "energy_demand_requirement": null,
58
                "primary_fossil_energy": 55.48,
59
                "primary_fossil_energy_requirement": null,
60
                "primary_fossil_energy_emg": null,
61
                "renewable_energy_share": 55.3,
62
                "renewable_energy_share_requirement": null,
63
                "renewable_energy_share_emg": null,
64
                "calculated_energy_consumption": 55.48,
65
                "heat_demand": 55.02,
66
                "calculated_co2_emission": 13.01,
67
                "temperature_excess": 0,
68
                "temperature_excess_requirement": null
69
            }
70
        }
71
    ],
72
    "meta": {
73
        "current_page": 1,
74
        "last_page": 1,
75
        "per_page": 10,
76
        "total": 2
77
    }
78
}
Optioneel

Coördinaten opvragen

Heb je naast het energielabel ook de locatie van het adres nodig? Stuur dan attributes[]=coordinates mee. Beide endpoints geven dan een extra coordinates-object terug met de breedte- en lengtegraad van het adres. Stuur je de parameter niet mee, dan blijft het veld weg uit de response.

GET https://api.nederlandpostcode.nl/v2/energy-label?postcode=1118BN&number=800&attributes[]=coordinates
1
{
2
    "data": {
3
        "postcode": "1118BN",
4
        "number": 800,
5
        "addition": null,
6
        "street": "Schiphol Boulevard",
7
        "city": "Schiphol",
8
        "coordinates": {
9
            "latitude": 52.30528553688755,
10
            "longitude": 4.750645160863609
11
        },
12
        "energy_labels": [
13
            {
14
                "energy_label": "A+++",
15
                "registration_date": "30-08-2022",
16
                …
17
            }
18
        ]
19
    }
20
}

Uitleg van de velden

Hieronder staat elk veld dat een response kan bevatten, met de betekenis ervan. De velden zijn identiek voor beide endpoints.

Adresgegevens

postcode De Nederlandse postcode van het adres.
number Het huisnummer van het adres.
addition De eventuele huisnummertoevoeging.
street De straatnaam van het adres.
city De woonplaats van het adres.
coordinates De latitude en longitude van het adres. Alleen aanwezig als je attributes[]=coordinates meestuurt — zie Coördinaten opvragen.

Labelgegevens

registration_date Datum waarop het energielabel in EP-Online is geregistreerd.
inspection_date Datum waarop de opname van het gebouw heeft plaatsgevonden.
valid_until_date Datum tot wanneer het energielabel geldig is.
status De status van het gebouw of de registratie, bijvoorbeeld bestaand of oplevering.
construction_type Geeft aan of het om woningbouw of utiliteitsbouw gaat.
building_type Het specifieke type gebouw of woning, indien beschikbaar.
energy_label
De geregistreerde energielabelklasse.
G F E D C B A A+ A++ A+++ A++++ A+++++
calculation_type De rekenmethodiek waarmee het energielabel is bepaald.
inspection_type Het type opname dat is uitgevoerd, bijvoorbeeld een basis- of detailopname.
construction_year Het bouwjaar van het gebouw.

Gebouw- en energieprestatiegegevens

thermal_zone_area De oppervlakte van de thermische zone, uitgedrukt in m².
compactness De compactheid van het gebouw: de verhouding tussen het verliesoppervlak en de gebruiksoppervlakte.
energy_demand De berekende energiebehoefte van het gebouw per m² per jaar (BENG1).
energy_demand_requirement De bijbehorende BENG1-eis, wanneer deze van toepassing is.
primary_fossil_energy Het berekende primaire fossiele energiegebruik per m² per jaar (BENG2).
primary_fossil_energy_requirement De bijbehorende BENG2-eis, wanneer deze van toepassing is.
primary_fossil_energy_emg De EMG-waarde voor primair fossiel energiegebruik, wanneer beschikbaar.
renewable_energy_share Het aandeel hernieuwbare energie, uitgedrukt als percentage (BENG3).
renewable_energy_share_requirement De bijbehorende BENG3-eis voor het aandeel hernieuwbare energie, wanneer van toepassing.
renewable_energy_share_emg Het EMG-berekende aandeel hernieuwbare energie, wanneer beschikbaar.
calculated_energy_consumption Het berekende energiegebruik van het gebouw volgens de betreffende rekenmethodiek.
heat_demand De berekende warmtevraag van het gebouw.
calculated_co2_emission De berekende CO₂-uitstoot.
temperature_excess De berekende temperatuuroverschrijding.
temperature_excess_requirement De bijbehorende eis voor temperatuuroverschrijding, wanneer van toepassing.

Actueel én historisch

De energy_labels-array bevat alle beschikbare energielabelregistraties van het adres. Je krijgt dus niet alleen het meest recente label terug, maar ook eerdere registraties wanneer deze beschikbaar zijn — bijvoorbeeld om te zien of een woning van label E naar C of B is gegaan. Er is geen apart historie-endpoint nodig.

Consistente velden, soms een lege waarde

Elke registratie bevat dezelfde velden. Ontbrekende of niet-toepasselijke waarden — bijvoorbeeld een BENG-eis die niet gebruikt is — worden als null teruggegeven in plaats van het veld weg te laten.

Statuscodes en foutmeldingen

Beide endpoints geven standaard HTTP-statuscodes terug. Bij een fout bevat de response altijd een message-veld met een omschrijving van wat er misging.

200 De aanvraag is succesvol verwerkt.
401 Niet geautoriseerd: je API-token ontbreekt of is ongeldig.
404 De opgevraagde API-endpoint bestaat niet. Controleer de URL en de versie.
422 De aanvraag kon niet verwerkt worden. Controleer de meegestuurde parameters — zie de voorbeelden hieronder.
429 Te veel aanvragen: je rate limit of je maandelijkse quota is bereikt.

Adres zonder energielabel

Bestaat het adres wel, maar is er geen energielabel voor geregistreerd? Dan is dat geen fout: je krijgt een gewone 200 met de adresvelden zoals gebruikelijk gevuld, en een lege energy_labels-array. Controleer dus op een lege array in plaats van op een foutcode.

1
{
2
    "data": {
3
        …
4
        "energy_labels": []
5
    }
6
}

Let op: het /v1/energy-label-range-endpoint werkt hier anders. Daar worden adressen zonder geregistreerd energielabel helemaal weggelaten uit de response.

Geen of meerdere adressen gevonden

Vraag je een energielabel op voor een adres dat niet bestaat, of levert de combinatie van postcode en huisnummer meerdere adressen op, dan krijg je een 422 Unprocessable Content terug. Bij meerdere treffers los je dit op door ook een addition mee te sturen.

Geen adres gevonden

1
{
2
    "message": "No address found for the given postcode and number."
3
}

Meerdere adressen gevonden

1
{
2
    "message": "Multiple addresses found for the given postcode and number."
3
}

Ontbrekende of ongeldige parameters

Ontbreekt een verplichte parameter of heeft die de verkeerde vorm, dan krijg je eveneens een 422, met per veld de reden in een errors-object.

1
{
2
    "message": "The postcode field is required. (and 1 more error)",
3
    "errors": {
4
        "postcode": [
5
            "The postcode field is required."
6
        ],
7
        "number": [
8
            "The number field is required."
9
        ]
10
    }
11
}

Rate limits en quota

Op je API-token gelden twee onafhankelijke limieten: een rate limit die bepaalt hoeveel aanvragen je kort achter elkaar mag doen, en een maandelijkse quota die het totale aantal credits bepaalt. Beide leveren bij overschrijding een 429 op, met een quota-object dat aangeeft welke limiet je hebt geraakt.

Rate limit

Hoeveel aanvragen per seconde je mag doen, hangt af van je abonnement. De limiet per abonnement staat op de tarievenpagina. Elke aanvraag telt als één credit — ook een aanvraag die geen energielabel oplevert.

Maandelijkse quota

Je verbruik reset elke maand. Via het /quota-endpoint zie je hoeveel credits je al hebt gebruikt. Houd er rekening mee dat verbruik tot vijf minuten kan achterlopen.

Rate limit overschreden

1
{
2
    "message": "Rate limit exceeded.",
3
    "quota": {
4
        "strategy": "per_minute",
5
        "limit": 60
6
    }
7
}

Maandelijkse quota overschreden

1
{
2
    "message": "Monthly API quota exceeded.",
3
    "quota": {
4
        "strategy": "per_month",
5
        "limit": 2000
6
    }
7
}

De waarden bij limit zijn voorbeelden. Welke limiet voor jouw token geldt, hangt af van je abonnement en zie je in je accountdashboard.

Veelgestelde vragen

Welke gegevens geeft de Energielabel API terug?

Je krijgt het gevalideerde adres (straat en woonplaats) en alle energielabels die voor dat adres in EP-Online geregistreerd staan. Per label krijg je onder meer de labelklasse, de registratie-, opname- en geldigheidsdatum, de rekenmethodiek, het bouwjaar en uitgebreide energieprestatiegegevens zoals de energiebehoefte, het primair fossiel energiegebruik, het aandeel hernieuwbare energie en de CO2-uitstoot.

Krijg ik ook historische energielabels?

Ja. Het /v2/energy-label-endpoint geeft alle geregistreerde labels van een adres terug in de energy_labels-array, dus naast het actuele label ook eerdere registraties. Er is geen apart historie-endpoint nodig. Het /v1/energy-label-range-endpoint geeft per adres alleen het meest recente label.

Kan ik meerdere adressen in één keer opvragen?

Ja, met het /v1/energy-label-range-endpoint vraag je de energielabels van een hele straat of een reeks huisnummers in één aanvraag op. Adressen zonder geregistreerd energielabel worden niet in de response opgenomen.

Waar komen de energielabelgegevens vandaan?

Uit EP-Online, de officiële database met geregistreerde energielabels van de Rijksdienst voor Ondernemend Nederland (RVO). We halen de brondata dagelijks op en verwerken die in onze eigen database, zodat aanvragen rechtstreeks uit onze eigen infrastructuur komen.

Heb ik een apart abonnement nodig voor de Energielabel API?

Nee. De Energielabel API is inbegrepen bij elk Nederland Postcode API-abonnement en staat standaard aan. Je gebruikt dezelfde API-key als voor de andere endpoints; er is geen aparte activatie nodig.

Hoeveel credits kost een aanvraag?

Eén API-request kost één credit. Dat geldt ook voor een aanvraag die geen energielabel oplevert. Hoeveel credits je per maand hebt, hangt af van je abonnement.

Zit adresvalidatie bij de Energielabel API inbegrepen?

Ja. Elke response bevat automatisch het gevalideerde adres uit dezelfde adressendatabase als Nederland Postcode API, zodat je in dezelfde aanvraag kunt controleren of de opgegeven postcode en het huisnummer bij elkaar horen. Daar zijn geen aparte koppeling en geen extra kosten voor nodig.

Kan ik ook de coördinaten van een adres opvragen?

Ja. Stuur attributes[]=coordinates mee met je aanvraag, dan bevat de response een extra coordinates-object met de latitude en longitude van het adres. Stuur je die parameter niet mee, dan blijft het veld weg uit de response.

Wat krijg ik terug als een adres geen energielabel heeft?

Dan krijg je gewoon een 200 terug met het gevalideerde adres en een lege energy_labels-array. Een adres zonder geregistreerd energielabel is geen foutsituatie, dus controleer op een lege array in plaats van op een foutcode. Bij het /v1/energy-label-range-endpoint werkt dit anders: daar worden adressen zonder energielabel helemaal weggelaten uit de response.

Wat gebeurt er als een adres niet bestaat?

Dan krijg je een 422 Unprocessable Content terug met de melding dat er geen adres is gevonden. Levert de combinatie van postcode en huisnummer meerdere adressen op, dan krijg je eveneens een 422; stuur in dat geval ook een addition mee om het juiste adres te kiezen.

API-documentatie →

Bekijk alle parameters, responsevelden en technische details van de API.

Historische energielabels →

Lees meer over de labelhistorie van een adres en hoe je deze kunt gebruiken.

Bekijk tarieven