# Altum AI API documentatie

Documentatie voor integratie en uitleg van de API's van Altum AI.

## Start vandaag met ontwikkelen

Begin met het bouwen van uw eigen aangepaste tooling, website en klantreis met de API's van Altum AI met toegang tot de eigen geautomatiseerde modelwaardering, duurzaamheidsadvies, Kadaster-transacties en nog veel meer gegevens.&#x20;

Het integreren van de API's is een eenvoudig proces met onze duidelijke documentatie en voorbeeldcode in JSON.

{% hint style="success" %}
Creëer een **gratis account** via Altum AI's [Platform](https://platform.altum.ai/) voor een API key
{% endhint %}

<details>

<summary><strong>Nieuw</strong>! Probeer het Woningwaarde + model</summary>

Een innovatie in woningen waarderen.\
Het Woningwaarde + model is sneller, accurater en completer. [Lees meer](/taxeren-en-waarderen/woningwaarde+-api)

</details>

{% hint style="info" %}
Plan een video demo via [cal.com/altumai](https://cal.com/altumai)
{% endhint %}

### Snel naar de data producten

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-type="content-ref"></th><th data-type="files"></th></tr></thead><tbody><tr><td><strong>Verduurzaming API</strong></td><td>Duurzaamheidsadviezen genereren</td><td>Inschatten huidig en potentieel NTA 8800 energielabel</td><td><a href="/pages/-Lw4sX1s4eyK0HCmL9r0">/pages/-Lw4sX1s4eyK0HCmL9r0</a></td><td></td></tr><tr><td><strong>Woningwaarde API</strong></td><td>Marktwaarderingen van woningen </td><td>Accuratesse indicator voor marktwaarde toepassing</td><td><a href="/pages/-Lw4hEyfrZi_P4btoqCq">/pages/-Lw4hEyfrZi_P4btoqCq</a></td><td></td></tr><tr><td><strong>WOZ API</strong></td><td>Haal de laatste WOZ-waarde op uit het WOZ-waardeloket</td><td>De WOZ API kan zoeken op adres of het BAG-ID</td><td><a href="/pages/-MLNtRHsuACIhIKxG1qg">/pages/-MLNtRHsuACIhIKxG1qg</a></td><td></td></tr><tr><td><strong>Interactieve referentie API</strong></td><td>Vind relevante recente transacties om de waardering te ondersteunen</td><td>Gebruik als taxateur uitgebreide configureerbare functies om tot 30 vergelijkbare verkopen te vinden</td><td><a href="/pages/pMCABUk9yu2h78PISwjM">/pages/pMCABUk9yu2h78PISwjM</a></td><td></td></tr><tr><td><strong>Kadaster transactie API</strong></td><td>Haal de transactiegegevens zoals prijs op bij het Kadaster</td><td>PING vrij voor beschikbaarheid van de transactie</td><td><a href="/pages/-MhMyhJrqm7Rd5GLJsPV">/pages/-MhMyhJrqm7Rd5GLJsPV</a></td><td></td></tr><tr><td><strong>Conditie score API</strong></td><td>Schatting van de conditiescore van badkamers en keukens</td><td>Krijg een onbevooroordeelde score van 1 tot 5</td><td><a href="/pages/nQWGDP5Gy0APxeuc65R5">/pages/nQWGDP5Gy0APxeuc65R5</a></td><td></td></tr></tbody></table>

{% hint style="info" %}
Vind alle beschikbare API's in de zijbalk aan de linkerkant
{% endhint %}


# Platform

Toelichting over gebruik van het Altum AI Platform

<figure><img src="/files/gxU6ZhLsvOjo8wx1BzGU" alt=""><figcaption></figcaption></figure>

### Hoe kan ik gebruik maken van de API's van Altum AI?

Dit kan door het aanmaken van een Account via de [inschrijfpagina](https://mopsus.altum.ai/#/signup). Het gebruik van het Platform kan worden getest met het gebruik van 15 gratis API calls in de eerste maand, waarbij elke API call één credit vertegenwoordigd. Elke keer dat de API's van Altum AI worden gebruikt via de grafische interface of via een eigen applicatie wordt er een credit verbruikt van de limiet.

### How werkt Pay per use?

Met pay per use is het mogelijk onbeperkt gebruik te maken van de API’s van Altum AI. Elke API call kost één credit, en een credit kost € 0,47 excl. BTW. Het Pay per use verbruik wordt bijgehouden in het Dashboard en maandelijks achteraf verrekend. Het minimum aantal credits is 100, daarmee is het goedkoopste abonenment € 47,- excl. BTW per maand.

### Hoe werkt een abonnement en wat is de opzegtermijn?

Naast Pay per use, wat een maand na de start van het abonnement wordt afgerekend, is het mogelijk om Prepaid credits af te nemen tegen een lager tarief. Abonnementen worden afgesloten voor één maand en zijn ten allen tijde opzegbaar. Bij tussentijdse opzegging worden openstaande Pay per use kosten direct afgerekend. Als het abonnement niet wordt opgezegd wordt deze stilzwijgend verlengd met één maand

### Hoe kan ik het aantal credits uitbreiden?

Dit kun je eenvoudig doen door een abonnement af te sluiten of te wijzigen. Hiervoor dien je ingelogd te zijn in de applicatie en een passend abonnement te kiezen op de [Abonnementen pagina](https://mopsus.altum.ai/#/dashboard/abonnement).

### Wat gebeurt er als ik het abonnement upgrade of downgrade?

Bij het upgraden van het abonnement worden de kosten van het prepaid abonnement direct in rekening gebracht. De prepaid credits worden direct beschikbaar gemaakt. Eventuele openstaande prepaid credits uit een eerder abonnement komen te vervallen. Zorg daarom eerst dat deze op zijn voordat er een upgrade wordt toegepast. Eventuele openstaande pay per use kosten worden direct afgerekend.

Bij downgraden vervallen eventuele openstaande prepaid credits uit het abonnement. Zorg daarom eerst dat deze op zijn voordat er een downgrade wordt toegepast. Eventuele openstaande pay per use kosten worden direct afgerekend.

### Wat is de houdbaarheid van prepaid credits?

De houdbaarheid van prepaid credits is één maand vanaf aanschaf. Ongebruikte credits worden niet meegenomen naar de volgende maand.

### Hoe maak ik gebruik van de Transactie API?

Voor de Transactie API gelden aparte tarieven en prepaid abonnementen. Lees hier meer over de voorwaarden.

{% content-ref url="/pages/Hlw4mVorh8wIxQHjS8WH" %}
[Kadaster Transactie API abonnement](/platform/kadaster-transactie-api-abonnement)
{% endcontent-ref %}

### Hoe actueel is het aantal overgebleven credits in het dashboard?

Er kan een vertraging zitten van 1 minuut tussen de uitvoering van de API call en de laatste status van het aantal credits in het dashboard.

### Wat kost het om het platform te gebruiken?

Ga naar de [Abonnementen pagina](https://mopsus.altum.ai/#/dashboard/abonnement) in het Platform voor de prijzen en voorwaarden.

### Hoe integreer ik een API in een applicatie?

Om een API te integreren kun je gebruik maken van de API key die terug te vinden in het [Account](https://mopsus.altum.ai/#/dashboard/account) in het Platform. Maak verder gebruik van de documentatie beschikbaar op de [Documentatie omgeving](https://docs.altum.ai/).

### Hoe weet ik of een API operationeel is?

Op de [Status pagina](https://status.altum.ai/) is de actuele beschikbaarheid van alle services te vinden.

### Hoe kan ik in contact komen met Altum AI voor support?

Om in contact te komen kun je een e-mail sturen via de [Supportpagina](https://mopsus.altum.ai/#/dashboard/support) of direct naar <support@altum.ai>. Ook is er een chatfunctie te vinden op de pagina's in de linker benedenhoek.

### Is het mogelijk de API's te integreren zonder dat dit credits kost?

Er is een Sandbox API met dummy output data waarbij elke API call geen invloed heeft op het aantal credits. Lees hiervoor de [Sandbox documentatie](https://docs.altum.ai/sandbox).

### Hoe kan ik een abonnement annuleren?

Het annuleren van een abonnement is mogelijk via het Abonnementsoverzicht op het Dashboard. Klik op het abonnement voor de pop-up en druk op annuleer.

<figure><img src="/files/l6BGM7Z6Pnva58Ekn7Ug" alt=""><figcaption></figcaption></figure>


# Maandabonnementen

De kosten voor het gebruik van het Platform. Veel voordeel voor vaste gebruikers prijzen

De kosten voor het Platform worden bepaald aan de hand van het gebruik van de data producten c.q. de API's.

#### Een overzicht

* Er is een gratis test abonnement tot en met 15 API calls
* Er zijn pay per use abonnementen voor onbeperkt gebruik beginnend bij 100 credits en € 0,47 per API call excl. BTW.&#x20;
* Er is een apart abonnement voor de Kadaster transactie API, met 100 credits en een pay per use prijs van  € 0,75 per API call excl. BTW.
* Er is een een mogelijkheid om prepaid credits af te sluiten voor een lagere prijs per API call.

#### **Duurzaam gebruik belonen**&#x20;

Het is eerlijk om klanten duurzaam te belonen bij het afsluiten van een Prepaid abonnement waarbij het Pay per use tarief ook na verbruik van de Prepaid credits verlaagd blijft. Hiermee is het aantrekkelijk om te schalen in gebruik van de diensten.

#### Een overzicht van de abonnementen in één tabel

Het prepaid abonnement wordt vooruitbetaald aan het begin van de maand en het eventuele verbruik boven het aantal inbegrepen API calls wordt verrekend op de eerstvolgende factuur. De abonnementen zijn maandelijks opzegbaar en kunnen tussendoor in de lopende maand worden gewijzigd.

**Prijstabel Altum AI API-abonnementen:**

De abonnementen voor onder andere de Woningwaarde API, Verduurzaming API en WOZ API.

| Prepaid kosten p/m | API calls inbegrepen | Per API call |
| ------------------ | -------------------- | ------------ |
| € 47               | 100                  | € 0,47       |
| € 85               | 250                  | € 0,34       |
| € 200              | 750                  | € 0,267      |
| € 390              | 2.000                | € 0,195      |

**Prijstabel Kadaster transactie API abonnementen**

De abonnementen voor de Kadaster transactie API.

| Prepaid kosten p/m | API calls inbegrepen | Per API call |
| ------------------ | -------------------- | ------------ |
| € 75               | 100                  | € 0,75       |

Let op: Alle genoemde bedragen zijn exclusief BTW.


# Kadaster Transactie API abonnement

Het Platform biedt toegang tot de Kadaster Transactie API met een apart pay per use abonnement.

### Wat is de Kadaster Transactie API?

De Transactie API is een betaalde dienst waarbij voor een woning transactiedata van het Kadaster kan worden opgevraagd. Bekijk onderstaande documentatie.

{% content-ref url="/pages/-MhMyhJrqm7Rd5GLJsPV" %}
[Kadaster Transactie API](/taxeren-en-waarderen/kadaster-transactie-api)
{% endcontent-ref %}

### Waarom geldt voor deze API een apart abonnement?

De kosten voor het opvragen van de transactiedata en koopsominformatie ligt hoger dan voor de andere API's die Altum AI aanbiedt.

### Hoe werkt pay per use voor de Transactie API?&#x20;

Met pay per use is het mogelijk onbeperkt gebruik te maken van de Transactie API van Altum AI. Elke API call kost één credit, en een credit kost € 0,79. exclusief BTW. Het Pay per use verbruik wordt bijgehouden in het Dashboard en maandelijks achteraf verrekend.

### Hoe voorkom ik onnodige kosten bij gebruik van de API?&#x20;

*Bv. als er (nog) geen transactie bekend is.*

Het is mogelijk de Transactie API te ‘pingen’ op aanwezigheid van de gevraagde data. Stuur daarvoor een API-call zoals gewoonlijk enkel niet op api.altum.ai/transactie maar api.altum.ai/transactie/ping. Met een positieve terugkoppeling op dit verzoek kun je de API-call uitvoeren op de gebruikelijke URL.

Het gebruik van de ping-functie is onbeperkt en wordt niet gerekend als betaald verbruik.


# Changelog

Een overzicht van alle releases en wijzigingen van het Altum AI Platform.

### 2.9 - 19-06-2025

* Twee-factor-authenticatie (2FA) is nu beschikbaar voor gebruikers met social login
* Beveiliging van eenmalige codes (OTP) is verbeterd
* Bevestiging van wachtwoord vereist bij het uitschakelen van 2FA voor extra beveiliging

### 2.8 - 28-03-2025

* #### Servicedifferentiatie: AVM en AVM+
* #### Woningwaarde API (AVM)
* #### Woningwaarde+ API (AVM+)
* #### Nieuwe Vraagprijs API

### 2.7 - 03-02-2025

* Implementeer API-filtering op basis van gebruiksplannen

### 2.6 - 28-01-2025

Authenticatie

* Rate limiting toegevoegd voor inlog- en wachtwoordherstelpogingen
* Inlogroute: maximaal 5 pogingen per 15 minuten
* Routes voor wachtwoordherstel: maximaal 3 pogingen per uur
* Gestandaardiseerde foutmeldingen om gebruikersenumeratie te voorkomen
* Herstel-token verwijderd uit API-responsen
* Correcte controles op token-verval toegevoegd
* Tokens worden ongeldig gemaakt na gebruik

#### Applicatiebeveiliging

* Versterkte Content Security Policy (CSP)-headers geïmplementeerd
* Strikte CORS-configuratie ingesteld
* Veilige sessie- en cookie-instellingen toegevoegd
* HSTS (HTTP Strict Transport Security) ingeschakeld
* XSS-bescherming en aanvullende beveiligingsheaders toegevoegd
* Cookies geconfigureerd met SameSite- en HttpOnly-vlaggen voor extra veiligheid

### 2.5 - 01-11-2024

* WWS-punten API-gebruikspagina is nu op het platform
* Mobiele ervaring verbeterd voor andere gebruikspagina's
* Beoordelingsbadge toegevoegd aan de aanmeldpagina
* Verbeterd ontwerp van het duurzaamheidspdf
* Verbeterde duurzaamheid gebruikerservaring

### 2.4 - 14-09-2024

* Meer veelgestelde vragen toegevoegd
* Toegevoegd: lege statusplaceholder voor chats op de analyspagina
* Geschiedenispagina toegevoegd aan de generator voor vastgoedomschrijvingen
* Beoordelings- en feedbackformulier toegevoegd aan de generator voor vastgoedomschrijvingen
* Standaardtaal gewijzigd naar Nederlands voor de generator voor vastgoedomschrijvingen
* De Vastgoed AI toegevoegd aan het platform

### 2.3 - 27-08-2024&#x20;

* Nieuwe en verbeterde abonnementspagina
* Toegevoegd: Energie- en Klimaat-API aan het platform
* Toegevoegd: 'Ga door naar dashboard' op de mobiele startpagina
* Toegevoegd: oogtoggle-icoon voor wachtwoordzichtbaarheid op de inlog- en aanmeldpagina's
* Energie- en binnenoppervlakte-invoer toegevoegd aan de AVM plus-gebruikspagina
* Uitvoer van de Energie Label Resultatenpagina bijgewerkt

### 2.2 - 24-07-2024

* Nieuwe en verbeterde duurzaamheid adviesgebruikspagina en resultatenpagina
* Terugknop op de e-mailverificatiepagina gerepareerd

### 2.1 - 2024-06-27

* Nieuwe en verbeterde analyspagina
* Toegevoegde Autosuggest API: Gebruikers kunnen nu de Autosuggest API vanaf de platformgebruikspagina openen&#x20;
* Toegevoegde Solarscan API: Gebruikers kunnen de Solarscan API vanaf de platformgebruikspagina openen&#x20;
* Toegevoegde Rebuild API: Gebruikers kunnen ook de Rebuild API vanaf het platform openen
* Toegevoegde RentalReference API: Gebruikers kunnen nu de RentalReference API vanaf het platform openen

### 2.0 **- 2024-05-29**

#### **Aanmeldpagina**

* **Nieuw Ontwerp**: Ervaar een compleet opnieuw ontworpen aanmeldpagina.
* **Optionele Velden**: Voornaam en achternaam zijn niet langer verplicht.
* **Verbeterde Foutmeldingen**: Ontvang duidelijke en nuttige foutmeldingen.

**Inlogpagina**

* **Nieuw Ontwerp**: Geniet van een fris, nieuw ontwerp voor de inlogpagina.
* **Verbeterde Foutmeldingen**: Krijg nauwkeurige en informatieve foutmeldingen.

**Verificatiepagina**

* **Nieuw Ontwerp**: Navigeer door een nieuw ontworpen verificatiepagina.
* **OTP Invoer**: Plak je OTP direct in de invoervelden voor gemak.

**Onboardingpagina**

* **Nieuw Ontwerp**: Ontdek een bijgewerkt ontwerp voor de onboardingpagina.
* **Vragenlijst**: Beantwoord nieuwe vragen om je ervaring te personaliseren.

**Aan de Slag Pagina**

* **Nieuw Ontwerp**: Toegang tot een opnieuw ontworpen "Aan de slag" pagina.
* **Navigatiegids**: Volg nieuwe stappen om te leren hoe je door het platform navigeert.
* **Voortgangsbalk**: Volg je voortgang met een nieuwe percentage voortgangsbalk.

**Dashboardpagina**

* **Nieuw Ontwerp**: Bekijk je informatie op een nieuw ontworpen dashboard.
* **API Gebruik Statistieken**: Bekijk API-aanroep logboeken en gebruik op basis van verschillende perioden (binnen 7 dagen).

**Productpagina**

* **Nieuw Ontwerp**: Blader door alle beschikbare API's op een nieuw ontworpen productpagina.
* **Zoeken en Sorteren**: Zoek naar API's en sorteer ze op categorieën.

**URL**

* **Schonere URL's**: URL's bevatten geen `#` meer voor een meer gestroomlijnd uiterlijk.

### **1.46 - 2024-04-19**

* De resultaatpagina’s van de API voor AVM, duurzaamheid en Woz bevatten nu de details van de ‘huisuitbreiding’.
* Over verschillende API’s zijn invoervelden bijgewerkt om ‘toevoeging’ te vervangen door ‘huisuitbreiding’ voor verbeterde duidelijkheid.

### **1.45 - 2024-02-18**

* Quotaplannen (jaarlijks en dagelijks) zijn verwijderd.
* Het onbeperkte plan is nu gekoppeld aan overleg met Tijmen.
* Gebruikers met het start-up plan kunnen nu hun abonnementsgegevens op het platform bekijken.

### **1.44 - 2024-01-19**

* Gebruikers hebben nu toegang tot de Energy Insight API op het Platform.
* Gebruikers hebben nu toegang tot de Locatiegegevens API op het Platform.
* Verbeterde foutafhandeling voor 400, 422 en 429 foutmeldingen.
* Gebruikers kunnen zich nu afmelden voor onze e-mails.

### 1.43 - 2023-12-11

* Authenticatie vereist nu een eenmalig wachtwoord voor nieuwe aanmeldingen
* Nieuwe gebruikers wordt gevraagd onboardingvragen te beantwoorden
* Verduurzaming API geoptimaliseerd met voor en na resultaten voor maatregelen. Er is een probleem opgelost met een 422-validatiefout. Zoekcriteria 4 toegevoegd als invoer en geoptimaliseerde zichtbaarheid van het energielabel op de resultatenpagina.
* NTA 8800 Energielabel API toont nu CO2 op de resultatenpagina
* Woningwaarde+ model geïntegreerd op de Woningwaarde pagina
* De API voor Gebouw geometrie toont nu de wall\_area en shared\_wall\_area op de resultatenpagina

### 1.42 - 2023-11-17

* Nieuwe onboarding flow voor gebruikers
* Onboarding vragenlijst toegevoegd
* API overzicht pagina vernieuwd

### 1.41 - 2023-11-3

* Toevoeging van onbeperkte abonnementen voor de Verduurzaming API en Energielabel API aan het [Platform](https://mopsus.altum.ai/#/)

### 1.40 - 2023-10-24

* De onbeperkte abonnementsprijs voor WOZ- en Objectdata-abonnementen gewijzigd
* Nieuwe AVM- en Interactive Reference Unlimited-abonnementen toegevoegd
* De Dashboard-gebruikersinterface gewijzigd

### 1.39 - 2023-9-4

* Nieuwe tariefplannen toegevoegd: Altum AI - 100, Kadaster transactrie - 100 en Altum AI - 1200.
* Nieuwe productpagina's voor alle Altum AI-apis
* AVM PDF-rapport toegevoegd op de resultatenpagina
* Klanten kunnen nu hun vorige betaalmethode gebruiken bij het maken of bijwerken van hun abonnement

### 1.38 -2023-10-26

* Toevoeging extra onbeperkt gebruik abonnementen
* Herontwerp van het Dashoard

### 1.37 - 2023-8-8

* Wekelijks analytics email optioneel toegevoegd
* E-mail management toegevoegd in Account
* Verduurzaming API PDF rapport geoptimaliseerd

### 1.37 - 2023-7-13

* Prioriteit op de login pagina's voor social login (Google/LinkedIn)
* Analytics omgeving uitgebreid
* Wijziging in Kadaster pricing naar €0,75 per API call

### 1.36 - 2023-6-27

* Toevoeging van onbeperkte abonnementen voor WOZ en Object data
* Herontwerp van het Dashboard en de Accountpagina

### 1.35 - 2023-6-6

* 'Mopsus' gewijzigd in Altum AI platform in content en pagina titels
* Logo gewijzigd naar het logo van Altum AI
* Login error message toegevoegd voor ongeactiveerd accounts

### 1.34 - 2023-5-23

* Dagelijkse limiet abonnementen toegevoegd
* Voorbereidingen getroffen voor de naamswijziging naar Platform, verwijdering van Mopsus als naam
* Performance verbeteringen

### 1.33 - 2023-4-19

* Toevoeging [Object data woningen API](https://mopsus.altum.ai/#/objectdata)
* Alle API's accepteren nu postcode toevoegingen met zowel kapitalen als kleine letters (bv. 1234ab)
* Dakhellingen data toegevoegd aan de output van de [Objectgeometrie API](https://mopsus.altum.ai/#/object-geometry)

### 1.32 - 2023-4-3

* Nieuwe testimonial toegevoegd op de landingspagina
* Consistente pagina titels doorgevoerd
* Laadanimatie bij de Conditie score pagina toegevoegd
* Fix en herontwerp van wachtwoord vergeten pagina
* Header/footer toegevoegd aan account verificatie, privacy en voorwaarden pagina's
* Afzender e-mails verduidelijkt

### 1.31 - 2023-3-27

* Gebruikers worden nu toegevoegd aan de juiste e-mail onboarding lijst voor betaalde abonnementen
* Functie toegevoegd voor gebruikers om e-mail te ontvangen als een API een error 500 of 422 retourneert
* Overzicht gebruik voor jaarabonnementen gewijzigd op het dashboard
* Filter toegevoegd op het dashboard om sneller tot de juiste API te komen

### 1.30 - 2023-2-21

* Toevoegen [Object geometrie API](https://mopsus.altum.ai/#/object-geometry) voor het opvragen van alle geometrische gegevens van woningen in Nederland pér object
* E-mail toegevoegd voor jaarabonnementen gebruikers bij het opraken van de credits
* Fix probleem met ophalen status abonnement op het Dashboard

### 1.29 - 2023-2-7

* Toevoeging van [jaarabonnementen](broken://pages/KXw2R1BSF0RYDxhYOZ9b) met credits die een jaar geldig zijn
* Vernieuw datum abonnement(en) wordt getoond op het dashboard

### 1.28 - 2023-1-13

* Een vernieuwd Abonnement overzicht en Checkout-ontwerp voor ingelogde gebruikers
* Voettekst toevoegen aan het dashboard&#x20;
* Er wordt een verlengings-e-mail voor betalende gebruikers aan het begin van de nieuwe factureringsperiode verstuurd
* Er wordt een e-mail naar gebruikers verstuurd nadat het prepaid-tegoed is verbruikt
* Nieuwe abonnees van het Kadaster Transactie API abonnement worden toegevoegd aan een nieuwe onboarding-e-maillijst na een succesvolle inschrijving
* Opgelost: nieuwe gebruikers via Google of LinkedIn-authenticatie worden toegevoegde aan de e-mail reeks voor onboarding nieuwe gebruikers

### 1.27 - 2022-12-12

* Ontvang ná een succesvolle betaling de factuurlink per e-mail. Naast de beschikbaarheid onder Betalingen in het dashboard
* Bij een 403 error (geen toegang) en 429 error (credits verbruikt) bij een API call wordt er nu een e-mail verstuurd
* De Verduurzaming advies resultaat pagina toont nu zowel het huidige ingeschatte verbruik als het verbruik voor de nieuwe situatie

### 1.26 - 2022-12-02

* De Account pagina is gewijzigde voor het mogelijk maken van wijzigen van de Account gegevens
* Een melding is toegevoegd bij de landingspagina dat creditcard of andere betaalgegevens niet vereist zijn voor het aanmaken van het account

### 1.25 - 2022-11-14

* [Conditie score API](https://mopsus.altum.ai/#/conditie-score) voor het waarderen van badkamers en keukens is toegevoegd
* Aantal vertalingen doorgevoerd van Engels naar Nederlands
* Verschillende optimalisaties op het dashboard

### 1.24 - 2022-11-7

* Specifiek zoeken op woningtype toegevoegd aan de Referentie API
* Energietarieven toegevoegd aan de output van de Verduurzaming API
* Nieuw ontwerp voor de berichten omgeving
* Kortingen verduidelijkt op de Abonnementen pagina
* Introductievideo toegevoegd aan de landingpagina

### 1.23 - 2022-10-1

* Pay per use toegevoegd en [bestaande abonnementen](https://mopsus.altum.ai/#/dashboard/abonnement) gewijzigd
* [Referentie API](https://mopsus.altum.ai/#/referentie) toegevoegd

### 1.22 - 2021-10-18

* E-mails naar support gaan nu naar <mopsus@altum.ai>

### 1.21 - 2021-9-29

* Titel op landingspagina gewijzigd
* Verduurzaming API maakt nu gebruik van de nieuwe [Sustainability API](broken://pages/-Miee2k41AnjjhOJN_H4) en is daarmee gebaseerd op de NTA 8800 norm
* Demo's zijn nu eenmalig te gebruiken
* Indicator toegevoegd in Dashboard om het aantal ongelezen berichten weer te geven

### 1.20 - 2021-9-20

* Logo Mopsus is gewijzigd
* Toelichting over waarom het dataplatform Mopsus heet toegevoegd
* Verwijzing naar inschrijfpagina op de demo pagina's toegevoegd

### 1.19 - 2021-9-13

* Wachtwoord bevestiging toegevoegd op inschrijfpagina
* WOZ-data is toegevoegd aan de Kaarten pagina
* De API-overzicht pagina is bijgewerkt

### 1.18 - 2021-8-25

* Toevoeging BAG API
* Informatie op landingspagina verrijkt met werking credits en platform
* [Analytics ](https://mopsus.altum.ai/#/dashboard/analytics)omgeving toegevoegd
* Postcode data toegevoegd aan de [Kaarten](https://mopsus.altum.ai/#/kaarten) pagina
* Bugfix voor de [Verduurzamings API](https://mopsus.altum.ai/#/eco)
* Aanmeldingsproces geoptimaliseerd
* Landcode toegevoegd aan telefoonnummer

### 1.17 - 2021-7-12

#### Wijzigingen

* Geoptimaliseerde API-pagina's qua design en interactie
* Laadanimatie toegevoegd voor API's die een langere laadtijd hebben
* Decimalen gewijzigd in getalnotities
* Aparte demo overzicht pagina's toegevoegd: <https://mopsus.altum.ai/#/api/demos>
* Links in navigaties gewijzigd
* Bestaande klanten overzicht toegevoegd op de inschrijfpagina
* Gebruikers ontvangen e-mails als de API"s nog niet gebruikt zijn na 24 uur en 7 dagen
* Prijsoverzicht toegevoegd op de landingspagina

### 1.16 - 2021-6-20

#### Wijzigingen

* Aantal kaartoverzichten toegevoegden aan de [Kaarten pagina](https://mopsus.altum.ai/#/kaarten)
* Pricing overzicht op de Mopsus homepagina
*

```
Gewijzigde content in e-mail voor abonnements verlengingen
```

### 1.15 - 2021-6-4

#### Wijzigingen

* Opgelost: Billflow/Stripe issue met annuleren of wijzigen van het abonnement
* Geoptimaliseerde gebruikerservaring voor inschrijven en inloggen
* Mobiele menu gewijzigd
* Gewijzigde teksten op de landingspagina en inschrijfpagina
* Geoptimaliseerde error handling
* Aantal calls header toont nu verbruik van alle API's

### 1.14 - 2021-5-25

#### Wijzigingen

* [Voorzieningen API](https://mopsus.altum.ai/#/voorzieningen) toegevoegd
* Mogelijkheid tot kopen extensies verwijderd
* [Oplossingen pagina](https://mopsus.altum.ai/#/dashboard/oplossingen) toegevoegd

### 1.13 - 2021-5-16

#### Wijzigingen

* [Verhuisdata API](https://mopsus.altum.ai/#/verhuisdata) en demo toegevoegd
* [Omgevingsdata API](https://mopsus.altum.ai/#/omgevingsdata) en demo toegevoegd
* Wijzigingen aan de [landingspagina voor verduurzamingdata ](https://mopsus.altum.ai//#/landing-sustainability)
* Kaarten data geoptimaliseerd voor sneller gebruik
* UX-wijzigingen aan gebruik API's
* [Berichten](https://mopsus.altum.ai/#/dashboard/berichten) toegevoegd

### 1.12 - 2021-4-30

#### Wijzigingen

* Autosuggest demo toegevoegd
* Compressie van gegevens Kaarten pagina
* UX-wijzigingen op landingspagina

### 1.11 - 2021-4-24

#### Toegevoegd

* Kaarten pagina toegevoegd voor alle gebruikers
* Nieuwe abonnementen Platinum en Core ontsloten
* Demo van de Auto suggest API
* Belastinginformatie is nu beter zichtbaar op de Abonnementen pagina

### 1.10 - 2021-4-10

#### Toegevoegd en gewijzigd

* Landingspagina homepage gewijzigd
* Serie UI/UX-wijzigingen
* Vertalingen abonnementen pagina naar het Nederlands
* Abonnementen pagina design geoptimaliseerd
* Betalingen in Dashboard verwijderd, deze zijn nu te vinden onder Abonnement

### 1.09 - 2021-3-25

#### Toegevoegd en gewijzigd

* Abonnementen pagina toegevoegd met een overzicht van de abonnementen en zodra geactiveerd status van het huidige abonnement en de facturen
* Onboarding e-mails toegevoegd voor nieuwe gebruikers en bij de start van een nieuwe maand
* Aantal kleine UI-bugfixes opgelost

### 1.08 - 2021-1-22

#### Toegevoegd

* Pagina toegevoegd bij het aanmaken van het account voor een notificatie over het bevestigen van de e-mail

#### Gewijzigd

* Afbeeldingen voor de API's in het dashboard
* Vertalingen voor buttons op o.a. de homepage
* Dynamische teksten voor bv. de actuele maand

### 1.07 - 2021-1-15

#### Toegevoegd

* WOZ API toegevoegd - het opvragen van de WOZ-waardes van een woning
* Support formulier toegevoegd in het Dashboard

#### Bugfix

* Input volume bij de Woningwaarde API werkt weer

### 1.07 - 2020-12-03

#### Toegevoegd

* Tonen van het aantal dagelijkse API calls in de navigatie (elke 30 minuten een update)
* Emails worden nu verzonden bij account creatie voor de verificatie

#### Bugfix

* Minor aanpassingen v.w\.b. teksten en UI

### 1.06 - 2020-11-20

**Bugfix**

* Fix voor verificatie e-mail bij accountcreatie

### 1.05 - 2020-11-6

**Toegevoegd**

* Demo van de API's is nu mogelijk, eenmalig, zonder een account via <https://mopsus.altum.ai/#/avm-demo> en <https://mopsus.altum.ai/#/eco-demo> &#x20;

**Bugfix**

* Fix input huisnummertovoeging bij /eco

### 1.04 - 2020-10-30

#### Toegevoegd

* Accountverificatie e-mailadres voor nieuwe gebruikers
* Aparte resultaatpagina's voor de API's
* Minor UX wijzigingen voor het dashboard en de zijnavigatie

### 1.0.3 - 2020-10-22

#### Bugfix

* Logo gewijzigd naar juiste font

#### Toegevoegd

* Het Dashboard is gewijzigd om een betere startomgeving te creëren voor nieuwe gebruikers


# Updates

Een overzicht van alle API updates, nieuwe product toevoegingen en -wijzigingen.

### Juni - 2026

* [NTA 8800 Energielabel API v2](/verduurzamen/nta-8800-energielabel-v2-api)
  * Nieuwe invoer `electricity_contract_type` en `dynamic_price_reference_year` toegevoegd ter ondersteuning van dynamische energiecontracten.
* [Verduurzaming API v2](/verduurzamen/verduurzaming-api-v2) en [Verduurzaming API v2 Delta](/verduurzamen/verduurzaming-api-v2-delta)
  * Nieuwe invoer `electricity_contract_type` en `dynamic_price_reference_year` toegevoegd.
  * Nieuwe invoer voor kostenindicatoren toegevoegd: `dynamic_purchase_markup` en `dynamic_feed_in_markup`.
  * Nieuwe outputs `electricity_cost_yearly.current` en `electricity_cost_yearly.potential` toegevoegd voor de jaarlijkse elektriciteitskosten in de huidige en potentiële situatie.
* [Adresfilter](https://adresfilter.altum.ai/)
  * Nieuwe count-tool gepubliceerd op `adresfilter.altum.ai`.
  * Filteren op woningkenmerken en geografische gebieden mogelijk gemaakt zonder overmatige paginatie.
  * Extra filters toegevoegd: `province` en `municipality_excluded`.
* [Markttrend API](/taxeren-en-waarderen/markttrend-api)
  * Real-time indexering voor transacties op basis van `valuation_date` uitgerold.
* [AVM API](/taxeren-en-waarderen/woningwaarde-api)
  * Nieuw model uitgerold met verbeterde nauwkeurigheid, vooral voor objecten met `accuracy_indicator` 2.
  * Woningtype `halfvrijstaande woning` toegevoegd als geaccepteerde invoer voor `housetype`.
* [Satelliet Dakscan API](/verduurzamen/satelliet-dakscan-api)
  * Stabiliteitsverbeteringen en algemene update doorgevoerd.
* [WOZ API](/woningdata/woz-api)
  * Bugfix doorgevoerd voor incidentele time-outs.
* Platform & security:
  * TLS 1.3-upgrade met strikte security checks doorgevoerd op alle API’s.
  * Nieuwe API-firewallconfiguratie live: `403` is de standaardrespons bij geweigerde requests.
  * API-statuspagina uitgebreid met extra monitors.

### Mei - 2026

* [NTA 8800 Energielabel API v2](/verduurzamen/nta-8800-energielabel-api)
  * Thuisbatterij-ondersteuning toegevoegd met nieuwe inputs: `battery_type`, `battery_control_mode`, `battery_system`, `ev_charger`, `electricity_connection_type` en `netting_enabled`.
  * Nieuwe outputs toegevoegd: `grid_import`, `grid_feed`, `electricity_need` en `battery`.
  * Nieuwe output `accuracy_indicator` toegevoegd. Deze geeft op een schaal van 1–7 aan hoe betrouwbaar het geschatte huidige energielabel is, binnen ±1 label.
* [Verduurzaming API v2](/verduurzamen/verduurzaming-api-v2)
  * Thuisbatterij-ondersteuning toegevoegd met nieuwe inputs: `battery_type`, `battery_control_mode`, `battery_system`, `ev_charger`, `electricity_connection_type` en `netting_enabled`.
  * Nieuwe outputs toegevoegd: `grid_import`, `grid_feed`, `electricity_need`, `battery` en `definitive_beng2`.
  * Nieuwe output `accuracy_indicator` toegevoegd. Deze geeft op een schaal van 1–7 aan hoe betrouwbaar het geschatte huidige energielabel is, binnen ±1 label.
  * Ecowaarde-model voor eengezinswoningen geüpdatet voor een verbeterde berekening van het waarde-effect van energielabelverbeteringen.
* [Verduurzaming API v2 Appartementen](/verduurzamen/verduurzaming-api-v2-appartementen)
  * Nieuwe output `accuracy_indicator` toegevoegd. Deze geeft op een schaal van 1–7 aan hoe betrouwbaar het geschatte huidige energielabel is, binnen ±1 label.
* [Verduurzaming API v2 Delta](/verduurzamen/verduurzaming-api-v2-delta)
  * Thuisbatterij-ondersteuning volledig doorgevoerd met nieuwe inputs: `battery_type`, `battery_control_mode`, `battery_system`, `target_battery_type`, `target_battery_control_mode`, `target_battery_system`, `ev_charger`, `electricity_connection_type`, `target_electricity_connection_type` en `netting_enabled`.
  * Nieuwe inputs `number_of_solar_panels` en `target_number_of_solar_panels` toegevoegd.
  * Nieuwe outputs toegevoegd: `grid_import`, `grid_feed`, `electricity_need`, `battery` en `definitive_beng2`.
* [Woningwaarde+ API](/taxeren-en-waarderen/woningwaarde+-api)
  * Nieuwe Woningwaarde+ versie live met een rule-based model voor nauwkeurigere voorspellingen.
* [Duurzaamheid Subsidies API](/verduurzamen/duurzaamheid-subsidies-api)
  * Halfjaarlijkse update-cyclus voor gemeentelijke regelingen geïmplementeerd.
  * Kwartaalupdates voor landelijke subsidies toegevoegd.
* Platform:
  * Kadaster-abonnement beschikbaar op het Altum AI-platform.<br>

### April - 2026

* [NTA 8800 Energielabel API v2](/verduurzamen/nta-8800-energielabel-api)
  * Nieuwe output `solar_panel_yield` toegevoegd.
  * Nieuwe input `number_of_solar_panels` toegevoegd (voor woningen en appartementen) en vertaald naar default-waarden.
* [Verduurzaming API v2](/verduurzamen/verduurzaming-api-v2)
  * Input `custom_measure_costs` volledig vrijgegeven voor gebruikers.
  * Nieuwe input `number_of_solar_panels` toegevoegd. Deze wordt vertaald naar default-waarden voor onder andere `pv_area` en paneelconfiguratie.
* [Verduurzaming API v2 Appartementen](/verduurzamen/verduurzaming-api-v2-appartementen)
  * Nieuwe input `number_of_solar_panels` toegevoegd en vertaald naar default-waarden.
* [Satelliet Dakscan API](/verduurzamen/satelliet-dakscan-api)
  * Snelheids- en kwaliteitsverbeteringen doorgevoerd.
* [Kadaster Transactie API](/taxeren-en-waarderen/kadaster-transactie-api)
  * Transactie API v2 is live met hoger transactievolume.
  * Dekking uitgebreid: meer woningen worden meegenomen, zonder beperkingen op eigenaar en grond.
* Data:
  * 3D BAG-database bijgewerkt met 2025-data → recentere woninginformatie in alle afhankelijke API's.

### Maart - 2026

* [Interactieve Woningreferentie API](/taxeren-en-waarderen/interactieve-woningreferentie-api)
  * Responstijd verlaagd naar 1–2 seconden (voorheen 7–8 seconden).
  * Tot 5× snellere verwerking.
* [Hypotheekberekening API](/financieren/hypotheekberekening-api) (nieuw)
  * Hypotheekberekening API is live.
  * Berekent de maximale hypotheek volgens NHG-normen 2026.
  * Gebruikt VALUES-data voor de woningwaarde.
  * Valt terug op de aankoopprijs bij een ongeldige postcode.
  * Ondersteunt alleenstaanden en koppels.
  * Neemt bestaande schulden, partnerinkomen en regelingen mee.
* [Satelliet Dakscan API](/verduurzamen/satelliet-dakscan-api)
  * Nieuwe databron (ESRI) en hertraind model voor zonnepaneel­detectie.
  * Dekking uitgebreid van 130K naar 8,6M woningen.
  * Detectie draait alleen op geselecteerde woningen.
  * Input gewijzigd van BAG ID naar postcode + huisnummer (huisletter optioneel).
* [Verduurzaming API](/verduurzamen/verduurzaming-api)
  * Energielabellogica geactualiseerd.
  * Maatwerkkosten per klant toegevoegd.
  * Nauwkeurigheid verhoogd met XML-installatie waarden.
  * Gebruikt Energielabel-output nu intern als input, aparte API-call van de Energielabel API is niet meer nodig.

### Februari - 2026

* [NTA 8800 Energielabel API](/verduurzamen/nta-8800-energielabel-api)
  * Verbeterd model Energielabel API v2 is live voor woningen. (documentatie volgt)
  * Energielabel-voorspelling toegevoegd voor objecten die niet in de database staan.
  * Nieuwe *api\_debug-parameter* beschikbaar voor ontwikkelaars.
* [Kadaster transactie API](/taxeren-en-waarderen/kadaster-transactie-api)
  * Transactie API v2 is live.
  * Dekking uitgebreid: transacties waarbij een bedrijf of andere rechtspersoon koper of verkoper is, worden nu meegenomen.
  * Respons bevat voortaan de rechtspersoon die de woning heeft gekocht of verkocht.
* Woningprijs index
  * Nieuwe dagelijkse woningprijs index beschikbaar.
  * Prijzen worden geïndexeerd naar de huidige dag in plaats van de laatste dag van de maand.
  * Gebruikt in Transacties API v2 voor nauwkeurigere prijsindexering.
* [WWS Punten API](/financieren/wws-punten-api)
  * Bijgewerkt met nieuwe berekeningen conform de WWS 2026-regelgeving voor zelfstandige woningen.

### Januari - 2026

* [Markttrend API](/taxeren-en-waarderen/markttrend-api)
  * De berekening van gemiddelde prijzen aangepast: nu geïndexeerde transactieprijzen (transactionprice\_indexed) in plaats van ruwe transactieprijzen.
* [Inboedelwaarde API](/verzekeren/inboedelwaarde-api)
  * Rekenregels voor 2026 doorgevoerd, inclusief nieuwe eisen voor het inpandig oppervlak.
* Woningprijs index
  * De voorspelmodellen geactualiseerd om woningprijsontwikkelingen nauwkeuriger te voorspellen.
* [WWS Punten API](/financieren/wws-punten-api)
  * De gebruikerspagina vernieuwd met een dynamisch stappenformulier en een vaste functie om invoer te hergebruiken.
  * PDF-generatie uitgebreid met pagina’s 2–5 (introductie, details, ruimtes/voorzieningen en begrippenlijst), inclusief preview- en downloadmogelijkheden.
  * De API-integratie aangepast ter ondersteuning van nieuwe versiegebonden endpoints.
* [Zonnepanelen dakenscan API](/verduurzamen/zonnepanelen-dakscan-api)
  * De resultateninterface volledig vernieuwd met Nederlandse vertalingen, toelichtingen, paginering en een overzichtelijke layout.
* Data:
  * Master Dataset: Uitgebreid met statistische data over de periode 2004–2025.
  * Administratieve Dataset: Ondersteuning voor BagID toegevoegd.
* Platform & algemene updates:
  * Validatie: Realtime controle van postcode en huisnummer in alle belangrijke formulieren, inclusief [Woningwaarde](/taxeren-en-waarderen/woningwaarde-api), [Energielabel inzichten](/verduurzamen/energielabel-inzichten-api) en [Verduurzaming](/verduurzamen/verduurzaming-api).
  * Prestatie: Alle platformafbeeldingen gemigreerd naar AWS CloudFront voor automatische optimalisatie en snellere laadtijden.
  * Gebruikspagina’s: Nieuwe [WOZ-waarde](/woningdata/woz-api) en [Move data](/woningdata/verhuisdata-api) pagina’s uitgerold met verbeterde structuur, grafieken en Nederlandse vertalingen.
  * Gebruikersbeheer: Meerstaps e-mailherinneringen voor niet-geverifieerde gebruikers en verbeterde login flows.
  * Abonnementen: Stripe betalingen geactiveerd voor Startup abonnementen en abonnementsinterface vertaald naar het Nederlands.
  * Fouten opgelost: Validatieproblemen bij sanitaire velden in WWS-formulieren verholpen en het laden van abonnement statussen opgelost.
* [Ontwikkelaars](/ontwikkelaars) tool
  * Een complete [Postman collectie](/ontwikkelaars/postman-api-collection) voor alle Altum API’s gepubliceerd op[ docs.altum.ai](https://docs.altum.ai).

### December - 2025

* [Verduurzaming API](/verduurzamen/verduurzaming-api)
  * De nieuwe Verduurzaming V2 [Appartementen API](/verduurzamen/verduurzaming-api-v2-appartementen) en [Delta API ](/verduurzamen/verduurzaming-api-v2-delta)toegevoegd. Dit maakt het mogelijk om gegevens op te vragen per appartement en de bijbehorende duurzaamheidsmaatregelen.
  * Functies ''lock\_measures'' en ''exclude\_measures'' toegevoegd.
* [Herbouwwaarde API](/verzekeren/herbouwwaarde-api)
  * Een ''accuracy\_indicator'' (schaal 1–7) toegevoegd om aan te geven hoe betrouwbaar de voorspelde herbouwwaarde is.
  * Logica toegevoegd die op basis van het bouwjaar het constructiemateriaal van muren, vloeren en dak bepaalt.
  * De nieuwe output "accuracy\_indicator" is toegevoegd, zoals hier wordt uitgelegd: [Betrouwbaarheids indicator](/verzekeren/herbouwwaarde-api/betrouwbaarheids-indicator).
* [Woningwaarde API](/taxeren-en-waarderen/woningwaarde-api)
  * Nieuwe modelversie 202511 uitgerold.
  * Dataverwerking aangepast zodat door klanten ingevoerde kenmerken worden meegenomen in het betrouwbaarheidsmodel.
* [Inboedelwaarde API](/verzekeren/inboedelwaarde-api)
  * De API uitgebreid met meer dan 10 datapunten, waaronder gedetailleerde woninginformatie.
* [Satelliet Dakscan API](/verduurzamen/satelliet-dakscan-api)
  * De primaire bron voor beeldmateriaal is gewijzigd van PDOK naar Google Maps voor betere dekking en hogere beeldkwaliteit.
  * PDOK fungeert als terugvaloptie wanneer er geen Google Maps-beelden beschikbaar zijn.
* [Markttrend API](/taxeren-en-waarderen/markttrend-api)
  * Gemiddelde prijzen worden nu berekend met geïndexeerde transactieprijzen (*transactionprice\_indexed*)
* Data:
  * Master Dataset: statistische data toegevoegd (±100 kenmerken) over de periode 2015–2025, gericht op bevolking, energie en voorzieningen.
* Platform:
  * Cloudflare Turnstile-verificatie geïntegreerd om nepaccounts en misbruik te voorkomen.

### November - 2025

* [Herbouwwaarde API](/verzekeren/herbouwwaarde-api)
  * Zes nieuwe outputs toegevoegd met informatie over constructiematerialen zoals de muur, vloer en het dak: "wall\_material", "wall\_material\_probability" , "floor\_material", "floor\_material\_probability", "roof\_material", "roof\_material\_probability"
* [Woningwaarde API](/taxeren-en-waarderen/woningwaarde-api)
  * Nieuw model ontwikkeld dat de nauwkeurigheid en betrouwbaarheid van de API verbetert.

### Oktober - 2025

* [Woningwaarde API](/taxeren-en-waarderen/woningwaarde-api)
  * Dataverwerking geoptimaliseerd.
* [Duurzaamheid Subsidies API](/verduurzamen/duurzaamheid-subsidies-api)
  * Aangepaste scrapers vervangen door agentische scrapers op basis van Selenium en BeautifulSoup.
* [WWS Punten API](/financieren/wws-punten-api)
  * Het WWS-endpoint bijgewerkt naar `/wws/01012024` (terugwaarts compatibel).
* [Energielabel inzichten API](/verduurzamen/energielabel-inzichten-api)
  * UI-verbeteringen geïmplementeerd, waaronder verbeterde styling en Nederlandse vertalingen.
* Platform en algemene updates:
  * Authenticatie: Ondersteuning toegevoegd voor Google- en LinkedIn-authenticatie via OAuth.
  * Interactieve Referentie-pagina: Een nieuw stap-voor-stap formulier gelanceerd met objectidentificatie, zoekcriteria en een verbeterde weergave van resultaten.
  * Functionaliteit: "Hergebruik input"-functionaliteit ingeschakeld voor alle API's, zodat formuliergegevens correct worden hersteld.
  * Fouten opgelost: Verwerking van adresgegevens en coördinaten verbeterd, en de validatie van postcode- en huisnummervelden gecorrigeerd.

### September - 2025

* [Verduurzaming API](/verduurzamen/verduurzaming-api)
  * Nieuw delta endpoint gelanceerd (<https://api.altum.ai/v2/sustainability/delta>) om de impact van specifieke verduurzamingsmaatregelen op een woning te berekenen.
  * Ondersteuning voor inputfilters voor RVO-maatregelen toegevoegd.
  * Latency met ongeveer 100–200 ms verlaagd op alle endpoints.
* [Zonnepanelen Dakenscan API](/verduurzamen/zonnepanelen-dakscan-api)
  * API-response bijgewerkt om de creatiedatum van de gebruikte satellietbeelden voor detectie mee te geven.
* [Ontwikkelaars](/ontwikkelaars) tool
  * Uitgebreide Postman collectie uitgebracht voor alle API’s, inclusief productie en sandbox omgevingen, OpenAPI specificaties en directe documentatielinks.

### Augustus - 2025

* WWS-versie 1-1-2025 toegevoegd

### Juli - 2025

* EPOnline versie-update van V4 naar V5 voor [Verduurzaming API](/verduurzamen/verduurzaming-api), [NTA 8800 Energielabel API](/verduurzamen/nta-8800-energielabel-api), [Herbouwwaarde API](/verzekeren/herbouwwaarde-api) en [Energie & klimaat API](/verzekeren/energie-en-klimaat-api).
* Platform updates:
  * Autosearch API toegevoegd
  * PDF toegevoegd aan de Herbouwwaarde API-resultatenpagina
  * Platform geoptimaliseerd voor grotere schermen

### Juni - 2025

* Platform updates:
  * Interactieve onboarding vernieuwd
  * EPC API toegevoegd
  * Beveiligings upgrades
  * Update NTA 8800 PDF
* Verbeterde nauwkeurigheid van de [Woningwaarde API](/taxeren-en-waarderen/woningwaarde-api)
* [Foto Labelen API](/taxeren-en-waarderen/foto-labelen-api) accepteert nu grotere afbeeldingsformaten
* [Inboedelwaarde API](/verzekeren/inboedelwaarde-api) is verbeterd en er zijn nieuwe invoergegevens toegevoegd

### Mei - 2025

* De nauwkeurigheid van voorspellingen in de [AVM+ API](/taxeren-en-waarderen/woningwaarde+-api) is verbeterd
* Verbeteringen aangebracht in de dataset ten behoeve van nauwkeurigere waardeschattingen voor [Verduurzaming API](/verduurzamen/verduurzaming-api) en [NTA 8800 Energielabel API](/verduurzamen/nta-8800-energielabel-api)

### April - 2025

* Introductie van de [EPC API](/verduurzamen/epc-api)
* Introductie van de [Inboedelwaarde API](/verzekeren/inboedelwaarde-api)
* [Interactieve Woningreferentie API](/taxeren-en-waarderen/interactieve-woningreferentie-api):
  * Een nieuwe binaire invoerparameter toegevoegd: `include_listings`
  * Het veld *Source* toegevoegd als uitvoerparameter
* [Verhuisdata API:](/woningdata/verhuisdata-api)
  * Beschrijvingsveld toegevoegd aan de API
  * Verbeterde sortering van waarden, waarbij de verkooptstatus duidelijker wordt weergegeven indien beschikbaar

### Maart - 2025

* [Woningwaarde](/taxeren-en-waarderen/woningwaarde-api)
  * Duidelijk te onderscheiden van [Woningwaarde+](/taxeren-en-waarderen/woningwaarde+-api)
  * Gegevensset bijgewerkt en heeft nu meer dekking.
  * Datumkiezer toegevoegd aan Woningwaarde en Woningwaarde+ API.
* [Vraagprijs API](broken://pages/83E2eb4UurVs3xMGaICs)
  * Toegevoegd aan het platform.
  * Datumkiezer toegevoegd.
* Platform:
  * 2FA-functie toegevoegd aan het platform en beveiligingsmaatregelen verbeterd.

### Februari - 2025

* Introduceer nieuwe API-sortering op basis van een abonnement.
* Probleem opgelost waarbij afbeelding niet wordt geretourneerd in ObjectData-pagina.
* Onze database uitgebreid voor nauwkeurigere voorspellingen.

### Januari - 2025

* Verbeterde beveiligingsmaatregelen op het platform voor gebruikersveiligheid.
* [Woningwaarde API](/taxeren-en-waarderen/woningwaarde-api)
  * Probleem opgelost waarbij 0 niet als invoer voor het buitensoppervlak werd geaccepteerd.

### December - 2024

* Twee nieuwe 400 error reacties toegevoegd in de [Verduurzaming API](/verduurzamen/verduurzaming-api) wanneer de gebruiker niet de vereiste parameters van een custom kost of een verbeteringskost opgeeft.
  * "detail": "For a given custom cost make sure the parameter 'value' is provided."
  * "detail": "For a given improvement cost make sure all four parameters: 'material', 'work', 'saving\_material' and 'saving \_work' are provided."
* Toegevoegd BENG1 current en potential outputs in de [Verduurzaming API](/verduurzamen/verduurzaming-api).
* Nieuwe output toegevoegd "current\_estimated\_BENG1\_score", de huidige geschatte BENG1 score in de [NTA 8800 Energielabel API](/verduurzamen/nta-8800-energielabel-api).
* Correctie toegevoegd voor het berekende jaarlijkse gasverbruik, gebaseerd op statistische gemiddelden van huizen in Nederland. Voor de functies "gas\_usage" in de [Verduurzaming API](/verduurzamen/verduurzaming-api) en "estimated\_gas\_usage" in de [NTA 8800 Energielabel API](/verduurzamen/nta-8800-energielabel-api).
* Bijgewerkte [Woningwaarde API](/taxeren-en-waarderen/woningwaarde-api) naar het nieuwste model met verbeterde nauwkeurigheid.
* Nieuwe versie van de [WWS punten API](/financieren/wws-punten-api) gepubliceerd.
* Optimalisatie en verbetering zoekalgoritme van de [Autosuggestie API](/woningdata/auto-suggestie-api).
* Afbeelding URL's van te koop staande woningen toegevoegd aan de [Autosearch API](/woningdata/autosearch-api).
* Twee nieuwe geaccepteerde woningtypes in de [Interactive Reference API](/taxeren-en-waarderen/interactieve-woningreferentie-api). De invoer voor houseaddition accepteert ook zowel hoofdletters als kleine letters.
* Bijgewerkte [Woningwaarde+ API](/taxeren-en-waarderen/woningwaarde+-api) naar het nieuwste model met aanzienlijk verbeterde nauwkeurigheid.

### **November - 2024**

* Input "target\_label" is verwijderd uit de criteria voor het toepassen van aanvullende maatregel informatie voor [Verduurzaming API](/verduurzamen/verduurzaming-api).
* De invoer "renovation\_year" is toegevoegd aan de[ WWS Punten API](/financieren/wws-punten-api)-documentatie.
* De invoer 'source' is verwijderd uit de [Energie & klimaat API](/verzekeren/energie-en-klimaat-api).

### **Oktober - 2024**

* Een nieuw kenmerk market\_status is toegevoegd aan de output van de [Autosearch API](/woningdata/autosearch-api).
* Sandbox-oplossingen voor [Autosuggestie API ](/woningdata/auto-suggestie-api)V1 en V2.
* Toevoeging "points" output per maatregel in [Verduurzaming API](/verduurzamen/verduurzaming-api). Deze punten worden gebruikt om de "comfortscore" te berekenen. Zie [Comfortscore](/verduurzamen/verduurzaming-api/comfort-score).
* Bijgewerkte [Woningwaarde+ API](/taxeren-en-waarderen/woningwaarde+-api) naar het nieuwste model met stabielere voorspellingen.
* Buitenoppervlak toegevoegd als invoer voor [Woningwaarde+ API](/taxeren-en-waarderen/woningwaarde+-api).

### **September - 2024**

* EPOnline versie-update van V3 naar V4 voor [Verduurzaming API](/verduurzamen/verduurzaming-api), [NTA 8800 Energielabel API](/verduurzamen/nta-8800-energielabel-api) en [Herbouwwaarde API](/verzekeren/herbouwwaarde-api).
* Bijgewerkte [Woningwaarde API](/taxeren-en-waarderen/woningwaarde-api) naar het nieuwste model met verbeterde nauwkeurigheid.
* Gratis [woningbeschrijving generator](https://mopsus.altum.ai/property-description) toegevoegd aan het Platform.
* Verbeteringen doorgevoerd in de [Analytics omgeving](https://mopsus.altum.ai/dashboard/analytics) in het Platform.

### **Augustus - 2024**

* Bijgewerkte [Woningwaarde API](/taxeren-en-waarderen/woningwaarde-api) naar het nieuwste model met verbeterde nauwkeurigheid.
* Bijgewerkte [Woningwaarde+ API](/taxeren-en-waarderen/woningwaarde+-api) naar het nieuwste model met verbeterde nauwkeurigheid.
* Wijzigingen in de input "exclude\_measure" van de [Verduurzaming API](/verduurzamen/verduurzaming-api). Waarden \[1001, 1002, 2001, 2002] zijn nu beschikbaar, waarde \[8009] is verwijderd.
* In de [Verduurzaming API](/verduurzamen/verduurzaming-api) is de berekening van de huidige maatregelen bijgewerkt om aanvullende maatregelen informatie op te nemen voor een betere nauwkeurigheid.

### **Juli - 2024**

* v2 is ongeveer 3x sneller dan v1 en biedt aanzienlijk verbeterde reactietijden.
* v2 heeft een iets andere datastructuur vergeleken met v1.

  **Gegevensopvraging**

  * v2-gegevens worden opgehaald uit BAG in Mongo.
  * v1-gegevens worden opgehaald uit Elastic Search.
* Verwijderde de time\_for\_sale als invoer en uitvoer van de [Interactieve woningreferentie API](/taxeren-en-waarderen/interactieve-woningreferentie-api). Ook, als u een of meer van de strikte invoeren gebruikt, kan de API minder dan 3 referentie huizen teruggeven.
* Vernieuwde Verduurzaming flow in het Platform toegevoegd.
* Lancering van de[ WWS Punten API](/financieren/wws-punten-api), die verband houdt met de huurprijs van een woning.
* Wijzigingen doorgevoerd in de [Verduurzaming API](/verduurzamen/verduurzaming-api):
  * Gebruikerswaarde voor invoer zonnepanelen wordt nu correct meegenomen in de berekening van de resultaten per maatregelen.
  * De berekening van de opgewekte elektriciteit van pv-panelen in de esultaten per maatregelen is aangepast.
  * Een bug in de berekening van de gaskosten is opgelost .
  * HRe/WKK-ketel is verwijderd als optie voor installatiemaatregel.

### **Juni - 2024**

* Lancering van Platform 2.0, o.a. redesign van het dashboard:
  * Nieuwe en verbeterde [analytics pagina](https://mopsus.altum.ai/dashboard/analytics)
  * Autosuggestie API toegevoegd
  * Zonnepanelen dakenscan API toegevoegd
  * Herbouwwaarde API toegevoegd
  * Huurreferentie API toegevoegd
* De aangepaste waarde voor gasverbruik geldt nu ook voor de output "ResultaatPerMaatregel" in het geval van een hybride warmtepomp.
* Bug opgelost bij het verwerken van aangepaste invoer WP -zonnepanelen die onjuiste resultaten veroorzaken.
* Berekeningsfactor aangepast van de energieoutput van zonnepanelen op BENG2. Verlaagd van 4.756 naar 4.21 om de lokale zonnepanalen input per m2 beter te laten aansluiten.
* De [Locatie-API](/woningdata/locatie-gegevens-api/changelog) is bijgewerkt met een grotere dekking in de kenmerken GemiddeldePrijsPerVierkanteMeter en GemiddeldeTransactiePrijs.
* Bug opgelost in de berekening van de "parcel\_value" en de dekking ervan is vergroot [Herbouwwaarde API](/verzekeren/herbouwwaarde-api).
* Drie nieuwe inputs toegevoegd voor verbeterd zoeken naar referenties in de [Huurreferentie API](/financieren/huurreferentie-api).
* Bug opgelost in de [Verduurzaming API](/verduurzamen/verduurzaming-api) waarbij correctie voor gasverbruik op basis van geleverde waarde niet werd toegepast in het geval van een hybride warmtepomp.
* Lancering van [Platform](/platform) 2.0, o.a. redesign van het dashboard.
* Alpha versie 4 gelanceerd van de [Woningwaarde+ API](/taxeren-en-waarderen/woningwaarde+-api) met een 20,3% verbetering in accuratesse voor waarderingen met een <10% foutmarge.
* Bijgewerkte [Woningwaarde+ API](/taxeren-en-waarderen/woningwaarde+-api) naar het nieuwste model met verbeterde nauwkeurigheid.
* Nieuwe output toegevoegd "measures\_method" in de [NTA 8800 Energielabel API](/verduurzamen/nta-8800-energielabel-api). Deze output geeft aan op welke methode de maatregelen zijn vastgesteld. Bug opgelost met betrekking tot "build\_year" en "living\_room\_windows".
* Bugs opgelost met de berekening van invoer gas en de impact op de berekening van de hybride warmtepomp en de berekening van de piekinput van zonnepanelen in de [Verduurzaming API](/verduurzamen/verduurzaming-api)
* Er is een probleem opgelost dat optrad wanneer de functie outsidesurfacearea ontbrak in de [Woningwaarde+ API](/taxeren-en-waarderen/woningwaarde+-api).

**Mei - 2024**

* Context toegevoegd over de operationele aannames van warmtepompen aan de [Verduurzaming API](/verduurzamen/verduurzaming-api/measures).
* Verschillende [Sandbox](/ontwikkelaars/sandbox)-inconsistenties opgelost.
* De functies: 'natural\_system\_sub\_class\_copy', 'agricultural\_area\_copy' verwijderd uit de [Energie & klimaat API](/verzekeren/energie-en-klimaat-api)-uitvoer.
* Twee nieuwe outputs toegevoegd in de [Herbouwwaarde API](/verzekeren/herbouwwaarde-api), "parcel\_value" en "building\_value". "parcel\_value" is de grondprijs gebaseerd op de "outer\_surface\_area" en "building\_value" is de "woz\_value" minus de "parcel\_value".
* De namen van de uitvoerfuncties op de pagina "Resultaat interpretatie" van de [Woningwaarde+ API](/taxeren-en-waarderen/woningwaarde+-api) gewijzigd.
* Twee nieuwe inputs toegevoegd in de [Huurreferentie API](/financieren/huurreferentie-api) voor een hogere klantinteractie met het product.

**April - 2024**

* Een bug opgelost in de voorverwerking van de 'Volume'-functie van het doelhuis, op de [Woningwaarde+ API](/taxeren-en-waarderen/woningwaarde+-api).
* Nieuwe optionele parameter "replace\_windowframes" - gebruikt om extra verbeteringskosten per glasgerelateerde codes 50002, 50003, 50103, 50203 toe te voegen bij het vervangen van glas en raamkozijnen. De kosten kunt u zien in de PDF bij [kostentabel](https://docs.altum.ai/apis/sustainability-api/cost-table-input) in de [Verduurzaming API](/verduurzamen/verduurzaming-api). Activeer met "replace\_windowframes" : 1.

**Maart - 2024**

* Lancering beta Zonnepanelen API - ontdek maximale capaciteit en opbrengst zonnepanelen per oppervlak óf de ideale ligging voor een gekozen aantal panelen.
* Probleem opgelost met incidenteel inconsistente resultaten veroorzaakt door inconsistente verwerking van de nieuwe kostentabel in de [Verduurzaming API](/verduurzamen/verduurzaming-api).
* Toevoeging correctie herbouwwaarde op aantal zonnepanelen en type energielabel in de [Herbouwwaarde API](/verzekeren/herbouwwaarde-api).

**Februari - 2024**

* Toevoeging "definitive\_BENG2 score" output, de definitieve BENG2 score [NTA 8800 Energielabel API](/verduurzamen/nta-8800-energielabel-api).
* Een geoptimaliseerde benadering voor het schatten van de huidige maatregelen is geïmplementeerd in de [NTA 8800 Energielabel API](/verduurzamen/nta-8800-energielabel-api).
* Woningtype functie uitvoer in de [Woningwaarde+ API](/taxeren-en-waarderen/woningwaarde+-api) is geoptimaliseerd.
* De functie "waarderingsdatum" is gerepareerd zodat deze altijd als standaardwaarde wordt weergegeven: vandaag, in de [Woningwaarde API](/taxeren-en-waarderen/woningwaarde-api) en de [Interactieve woningreferentie API](/taxeren-en-waarderen/interactieve-woningreferentie-api).
* Er zijn twee extra datavelden toegevoegd aan de [Huurreferentie API](/financieren/huurreferentie-api), de price\_per\_m2 en de collection\_date per referentieobject.
* Upgrade de [Huurreferentie API](/financieren/huurreferentie-api). Maak het interactiever en voeg een gewichtssysteem toe.

**Januari - 2024**

* Datavelden "protected\_cityviews" en "protected\_cityview\_names" toegevoegd aan de uitvoer van de [Woningkenmerken API](/woningdata/woningkenmerken-api).
* Er is een 400 Bad Request response toegevoegd als antwoord op de uitvoer van het [Woningkenmerken API](/woningdata/woningkenmerken-api).
* De kosten van de maatregelen zijn sinds januari 2024 veranderd aan de [Verduurzaming API](/verduurzamen/verduurzaming-api).
* Lancering van de [Huurreferentie API](/financieren/huurreferentie-api) en [Herbouwwaarde API](/verzekeren/herbouwwaarde-api).

**December - 2023**

* Klimaatgegevens toegevoegd aan de uitvoer van de [Energie & klimaat API](/verzekeren/energie-en-klimaat-api).
* Toevoeging "floor\_surface", "flat\_roof\_surface", "pitched\_roof\_surface", "wall\_surface", "glass\_living\_room\_surface", "glass\_bedrooms\_surface" outputs aan de [Verduurzaming API](/verduurzamen/verduurzaming-api).
* Nieuwe kostentabel voor de verbetering van maatregelen wordt actief per 1 januari 2024, maar kan ook nu al worden meegegeven bij elk verzoek in de [Verduurzaming API](/verduurzamen/verduurzaming-api/cost-table-input).
* Voor betaalde gebruikers is de [Credit API](/ontwikkelaars/credit-api) gelanceerd om gratis de laatste stand van verbruikte API credits op te vragen.
* Aantal inwoners is toegevoegd als invoer voor de [NTA 8800 Energielabel API](/verduurzamen/nta-8800-energielabel-api).
* Platform bijgewerkt met een nieuwe aanmelding stappen en updates op de pagina's [Verduurzaming, Woningwaarde, Energielabel en Gebouwgeometrie](/platform/changelog).
* Toevoeging invoer en potentiële wijzigingen van "city\_heat" toegevoegd. Deze outputs geven het jaarlijkse warmteverbruik weer in GJ voor de [Verduurzaming API](/verduurzamen/verduurzaming-api).
* Uitvoer "estimated\_city\_heating\_usage" toegevoegd. Deze output geeft het jaarlijkse warmteverbruik weer in GJ volgens de [NTA 8800 Energielabel API](/verduurzamen/nta-8800-energielabel-api).

**November - 2023**

* Toevoeging van onbeperkte abonnementen voor de Verduurzaming API en Energielabel API aan het [Platform](https://mopsus.altum.ai/#/).
* Resultaten voor de [Verduurzaming API](/verduurzamen/verduurzaming-api) tonen nu elektriciteitsbesparingen per maatregel naast gasbesparingen als "electricity\_savings".
* Platform update met een nieuwe onboarding flow voor gebruikers, onboarding vragenlijst toegevoegd en het API overzicht pagina vernieuwd.
* Er is een nieuwe API met het [Woningwaarde + model](/taxeren-en-waarderen/woningwaarde+-api) beschikbaar: een snellere, nauwkeurigere en beter dekkende marktwaardeberekening voor woningen.
* Er is een nieuwe API voor een combinatie van locatiegegevens, voorzieningen en BAG beschikbaar in de [Locatie data-API](/woningdata/locatie-gegevens-api), de huidige Locatie-, Voorzieningen- en BAG-API wordt per 1 februari 2024 beëindigd.
* Er is een probleem opgelost waarbij "custom\_costs" niet correct werden verwerkt in de [Verduurzaming API](/verduurzamen/verduurzaming-api).

**Oktober - 2023**

* Belastingen toegevoegd aan de output van de [Object data API](/woningdata/woningkenmerken-api).
* Toevoeging mogelijkheid invoeren huidig wattpiek output zonnepanelen in W in plaats van het aantal zonnepanelen in m2 voor de [Verduurzaming API](/verduurzamen/verduurzaming-api) en de [NTA 8800 Energielabel API](/verduurzamen/nta-8800-energielabel-api).
* Huidig CO2 output toegevoegd aan het resultaat van de [NTA 8800 Energielabel API](/verduurzamen/nta-8800-energielabel-api).
* Oppervlakte gedeelde muren toegevoegd in output [Objectgeometrie API](/verduurzamen/gebouw-geometrie-api).
* Meerwaarde verduurzaming in marktwaarde is toegevoegd aan de output van de [Energielabel inzichten API](/verduurzamen/energielabel-inzichten-api).
* [Platform](https://mopsus.altum.ai/#/dashboard/startpagina) dashboard is geoptimaliseerd met een verbeterd overzicht van het abonnement en ontsluiting van de onbeperkt abonnementen.
* Onbeperkt gebruik abonnementen toegevoegd voor de Woningwaarde API en Interactieve Referentie API aan het [Platform](https://mopsus.altum.ai/#/dashboard/startpagina).

**September - 2023**

* Toevoeging nieuwe abonnementsvormen in het [Platform](https://mopsus.altum.ai/#).
* Alle [Platform](https://mopsus.altum.ai/#) gebruikspagina's voor de woning data diensten zijn opnieuw ontworpen.
* [Woningwaarde rapport in PDF](https://mopsus.altum.ai/#/avm) toegevoegd aan de Woningwaarde resultaat pagina in het Platform.
* [Platform](https://mopsus.altum.ai/#/dashboard/abonnement) klanten kunnen nu een bestaand betaalmiddel selecteren bij het wijzigen of toevoegen van een abonnement.
* Lancering van de nieuwe [Energielabel inzichten API](/verduurzamen/energielabel-inzichten-api) (beta) voor het opvragen van de impact van een energielabelwijziging op verkoopbaarheid in termen van verkoopduur en prijsverschil tussen vraag- en transactieprijs.
* Opvragen huidig energielabel inschatting met BAG ID in de [NTA 8800 Energielabel API](/verduurzamen/nta-8800-energielabel-api).
* Toevoegen Ventilatie als maatregel qua input en output in de [NTA 8800 Energielabel API](/verduurzamen/nta-8800-energielabel-api).
* Documentatie bijgewerkt voor standaard waardes isolatie in de [Verduurzaming API](/verduurzamen/verduurzaming-api/measures).
* Dekking woningtypes is uitgebreid voor de [Verduurzaming API](/verduurzamen/verduurzaming-api) waardoor er meer woningen kunnen worden voorzien van advies.

**Augustus - 2023**

* Opvragen verduurzamingadvies met BAG ID in de [Verduurzaming API](/verduurzamen/verduurzaming-api).
* Opvragen energielabel & klimaatdata met BAG ID in de [Energie & Klimaat API](/verzekeren/energie-en-klimaat-api).
* Fix huisnummertoevoegingen in de [Verduurzaming API](/verduurzamen/verduurzaming-api).
* Toevoeging betere logica voor inschatten huidige maatregelen aan de [Energielabel API](/verduurzamen/nta-8800-energielabel-api).
* Toevoeging GeoJSON polygonen aan de output van de [Object geometrie API](/verduurzamen/gebouw-geometrie-api).
* [Platform](https://mopsus.altum.ai/#/) toevoeging van wekelijkse gebruikerstatisieken e-mail en beheer van e-mails in de Account instellingen.
* Update van de PDF generatie in de Verduurzaming API in het [Platform](https://mopsus.altum.ai/#/).

###


# Ontwikkelaars

**Voer de eerste API-call uit**: Introduceert de basis van Altum AI's API, inclusief de opzet en authenticatieprocessen. Ideaal voor nieuwe gebruikers.

{% content-ref url="/pages/-MdM2UBI-wIDN6jNoNIY" %}
[Voer de eerste API-call uit](/ontwikkelaars/setting-up-an-api-call)
{% endcontent-ref %}

**Credit API**: Richt zich op details van de Credit API, met informatie over toegang en gebruik voor kredietgerelateerde functies.

{% content-ref url="/pages/QIEMNa3q4RvBx69cVoUy" %}
[Credit API](/ontwikkelaars/credit-api)
{% endcontent-ref %}

**Sandbox-omgeving**: Legt de Sandbox-omgeving uit, waar ontwikkelaars de API's in een gecontroleerde setting kunnen testen.

{% content-ref url="/pages/-MbvZNbpWZ\_yAQm25Jdf" %}
[Sandbox](/ontwikkelaars/sandbox)
{% endcontent-ref %}

**OpenAPI-specificatie**: Biedt informatie over de OpenAPI-specificaties van Altum AI's diensten.

{% content-ref url="/pages/5q91cJtEzqWUCXsqdf94" %}
[OpenAPI specificaties](/ontwikkelaars/openapi-specificaties)
{% endcontent-ref %}

**Postman API Collection**: Maakt het mogelijk om alle API’s direct te testen in Postman, inclusief validatie van requests en het genereren van voorbeeldcode voor Nederlandse vastgoeddata.

{% content-ref url="/pages/J8QQ92dxLBZoyYbqyW02" %}
[Postman API Collection](/ontwikkelaars/postman-api-collection)
{% endcontent-ref %}

**API-status**: Geeft inzicht in de realtime status en gezondheid van de API's.

{% content-ref url="/pages/GzVAlutVH9ShKSDQhN4A" %}
[API status](/ontwikkelaars/api-status)
{% endcontent-ref %}


# Voer de eerste API-call uit

Het doel van deze pagina is om voorbeelden te geven van het uitvoeren van een API-aanroep in uw toepassing.

### Tip! Gebruik de volgende toepassingen

* [Reqbin.com](https://docs.altum.ai/setting-up-an-api-call#performing-a-request-in-reqbin-com)
* [Insomnia](https://docs.altum.ai/setting-up-an-api-call#performing-a-request-in-insomnia)
* [Postman](https://docs.altum.ai/setting-up-an-api-call#performing-a-request-in-postman)

### OpenAPI specificatie

Voer een GET-verzoek uit naar het gewenste API-eindpunt met '/openapi' gewijzigd om de OpenAPI-specificatie voor de gegeven API op te halen.

\
**Voorbeeld**:

## OpenAPI specification for AVM API

<mark style="color:blue;">`GET`</mark> `https://api.altum.ai/avm/openapi`

{% tabs %}
{% tab title="200: OK OpenAPI specification" %}

```
{
	"openapi": "3.0.2",
	"info": {
		"title": "AVM API",
		"description": "Predicts the transaction value for a given house address.",
		"version": "2.0"
	},
	"paths": {
		"/predict": {
			"post": {
				"tags": [
					"AVM API"
				],
				"summary": "Displays the AVM data as well as the prediction.",
				"operationId": "output_predict_post",
				"requestBody": {
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/AVM"
							}
						}
					},
					"required": true
				},
				"responses": {
					"200": {
						"description": "Prediction for the given house address.",
						"content": {
							"application/json": {
								"schema": {},
								"example": {
									"Output": {
										"BagID": "str",
										"PostCode": "str",
										"HouseNumber": "int",
										"HouseAddition": "str",
										"City": "str",
										"Street": "str",
										"HouseType": "str",
										"BuildYear": "int",
										"InnerSurfaceArea": "int",
										"OuterSurfaceArea": "int",
										"Volume": "int",
										"EnergyLabel": "str",
										"Longitude": "float",
										"Latitude": "float",
										"Rooms": "int",
										"Image": "str",
										"ValuationDate": "int",
										"PriceEstimation": "int",
										"Confidence": "str",
										"AccuracyIndicator": "int or str"
									}
								}
							}
						}
					},
					"400": {
						"description": "The given house address was not found in database.",
						"content": {
							"application/json": {
								"example": [
									"Output: The given house address was not found in database."
								]
							}
						}
					},
					"422": {
						"description": "Validation Error.",
						"content": {
							"application/json": {
								"example": {
									"detail": [
										{
											"loc": [
												"query",
												"housenumber"
											],
											"msg": "ensure this value is greater than 0",
											"type": "value_error.number.not_gt",
											"ctx": {
												"limit_value": 0
											}
										}
									]
								}
							}
						}
					}
				}
			}
		}
	},
	"components": {
		"schemas": {
			"AVM": {
				"title": "AVM",
				"required": [
					"postcode",
					"housenumber"
				],
				"type": "object",
				"properties": {
					"postcode": {
						"title": "Postcode of the given house.",
						"pattern": "^(?!1000|1001|1002|1003|1004|1005|1006|1007|1008|1009|1010)[1-9][0-9]{3}[A-Z]{2}$",
						"type": "string",
						"example": "1234AB"
					},
					"housenumber": {
						"title": "House number of the given house.",
						"exclusiveMinimum": 0.0,
						"type": "integer",
						"example": 1
					},
					"houseaddition": {
						"title": "House addition of the given house.",
						"type": "string",
						"default": ""
					},
					"valuationdate": {
						"title": "Date of evaluation.",
						"type": "string",
						"format": "date",
						"default": "20230410"
					},
					"buildyear": {
						"title": "Buildyear",
						"maximum": 2023.0,
						"minimum": 1800.0,
						"type": "integer"
					},
					"innersurfacearea": {
						"title": "Innersurfacearea",
						"exclusiveMinimum": 0.0,
						"type": "number"
					},
					"outersurfacearea": {
						"title": "Outersurfacearea",
						"exclusiveMinimum": 0.0,
						"type": "number"
					},
					"housetype": {
						"title": "Housetype",
						"enum": [
							"Vrijstaande woning",
							"2 onder 1 kap woning",
							"Geschakelde 2 onder 1 kapwoning",
							"Geschakelde woning",
							"Tussen/rijwoning",
							"Hoekwoning",
							"Eindwoning",
							"Galerijflat",
							"Portiekflat",
							"Corridorflat",
							"Maisonnette",
							"Benedenwoning",
							"Bovenwoning",
							"Portiekwoning"
						],
						"type": "string"
					},
					"energylabel": {
						"title": "Energylabel",
						"enum": [
							"G",
							"F",
							"E",
							"D",
							"C",
							"B",
							"A",
							"A+",
							"A++",
							"A+++",
							"A++++",
							"A+++++"
						],
						"type": "string"
					},
					"image": {
						"title": "Image",
						"enum": [
							0,
							1
						],
						"type": "integer",
						"default": 0
					}
				}
			}
		}
	}
}
```

{% endtab %}
{% endtabs %}

### Een verzoek uitvoeren in Reqbin.com

Ga naar [Reqbin.com](https://reqbin.com/) en voeg de eindpunt-URL toe in het URL-vak. Selecteer, afhankelijk van de API, een POST- of GET-verzoek. Zorg ervoor dat u "DE" of "EXT" als server selecteert voor sneller verwerkte verzoeken.

Voeg het bericht / verzoek toe op het tabblad Inhoud. Voeg de x-api-key-header voor authenticatie toe aan het tabblad Headers. Druk op "verzenden" om het verzoek uit te voeren.

{% code title="Curl/Bash" %}

```bash
#!/bin/bash

curl -X POST https://api.altum.ai/sandbox/avm -H "x-api-key: m2ipzWVV3e9yPU9TduqpY4oZTbcEHCGj31GLVLYB" -H "Content-Type: application/json" --data-binary @- <<DATA
{
   "postcode" : "1234AB",
   "housenumber" : "1"
}
DATA
```

{% endcode %}

![](/files/-MdM4I3wCEr6Wxau7hNL)

### Een API call uitvoeren in Insomnia

Download en installeer het gratis programma [Insomnia](https://insomnia.rest/download). Maak een nieuwe 'Verzoek collectie' aan. Voeg een 'Nieuw verzoek' toe (CTRL + N) en geef dit verzoek een naam. Selecteer POST of GET afhankelijk van de API en gebruik JSON voor de hoofdtekst bij het plaatsen.&#x20;

Voeg de eindpunt-URL van de API toe achter de POST/GET-functie in het eindpunt-URL-vak. Voeg vervolgens het JSON-bericht toe aan het JSON-invoerveld. Configureer ten slotte de headers om het Content-Type en de x-api-key voor authenticatie op te nemen en druk op "Verzenden".

{% tabs %}
{% tab title="Message" %}

![](/files/F9EiDxkBYuuFS0sway0D)
{% endtab %}
{% endtabs %}

```bash
curl --request POST \
  --url https://api.altum.ai/sustainability \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: m2ipzWVV3e9yPU9TduqpY4oZTbcEHCGj31GLVLYB' \
  --data '{
  "data": {
    "lock_measures": {
      "lock": [
        "wall_insulation"
      ]
    },
    "max_investment": 20000,
    "gas_usage": 3000,
    "post_code": "2771DS",
    "house_number": "87",
    "target_label": "A",
    "inner_surface_area": 130,
    "inhabitants": 3,
    "replace_boiler": true,
    "heat_pump_allowed": true,
    "search_criteria": 1,
    "search_options": 2,
    "house-type": 1,
    "natural_gas": 0,
    "solar_panels_surface": 1,
    "watt_panels": true,
    "wall_insulation": 1,
    "roof_insulation": 1,
    "floor_insulation": 1,
    "living_room_windows": 1,
    "bedroom_windows": 1,
    "installation": 4,
    "shower": 0,
    "ventilation": 0,
    "solar_panels": 10
  }
}'
```

### Een API call uitvoeren in Postman

Download de [Postman](https://www.postman.com/downloads/) applicatie. Maak een nieuw HTTP-verzoek aan. Selecteer de methode GET of POST afhankelijk van de API en voeg de eindpunt-URL toe.&#x20;

Stel autorisatie in op Geen authenticatie. Voeg de x-api-key-header en API-sleutel toe voor authenticatie. Stel de Body in op raw en JSON bij het uitvoeren van een POST-verzoek. Druk op "Verzenden"

{% tabs %}
{% tab title="Request" %}
![](/files/-MdQsJsj6xjtDIVaIIJd)
{% endtab %}

{% tab title="Headers" %}
![](/files/-MdQsMN2RWUKYsChae0w)
{% endtab %}

{% tab title="Body" %}
![](/files/-MdQsOzeeIq5JTjfreZU)
{% endtab %}
{% endtabs %}


# Sandbox

Altum AI heeft een Sandbox om API-integraties te testen.

Om de API's in Sandbox-modus te gebruiken, voegt u gewoon /sandbox/ toe aan het eindpunt-URL-pad en voert u een POST- of GET-verzoek uit, afhankelijk van de documentatie van de specifieke API.

Gebruik API-sleutel **m2ipzWVV3e9yPU9TduqpY4oZTbcEHCGj31GLVLYB** om verzoeken aan de Sandbox-API uit te voeren.&#x20;

### Voorbeeld sandbox API-aanroep naar de AVM API

## Perform a post request to the AVM API sandbox

<mark style="color:green;">`POST`</mark> `https://api.altum.ai/sandbox/avm`

#### Query Parameters

| Name        | Type   | Description |
| ----------- | ------ | ----------- |
| housenumber | string | 1           |
| postcode    | string | 1234AB      |

#### Headers

| Name         | Type   | Description                              |
| ------------ | ------ | ---------------------------------------- |
| Content-Type | string | application/json                         |
| x-api-key    | string | m2ipzWVV3e9yPU9TduqpY4oZTbcEHCGj31GLVLYB |

{% tabs %}
{% tab title="200 " %}

```
{
    "Output": {
        "BagID": "0575000000000000",
        "PostCode": "1234AB",
        "HouseNumber": "1",
        "HouseAddition": null,
        "City": "Amsterdam",
        "Street": "Bootstraat",
        "HouseType": "Vrijstaande woning",
        "BuildYear": "2021",
        "InnerSurfaceArea": "265",
        "OuterSurfaceArea": "1363",
        "Volume": "1250",
        "EnergyLabel": "A",
        "Longitude": "4.4000000000000000",
        "Latitude": "52.00000000000000",
        "Rooms": "7",
        "Image": "\"null\"",
        "ValuationDate": "",
        "PriceEstimation": "1277424",
        "Confidence": "90% Confidence Interval is 1006355-1529716."
    }
}
```

{% endtab %}
{% endtabs %}

### API's supported with the Sandbox API

* [x] AVM API
* [x] Sustainability API
* [x] WOZ API
* [x] Kadaster Transaction API
* [x] Move Data API
* [x] Location Data API
* [x] Amenities API
* [x] BAG API
* [x] Photo Labelling API
* [x] Interactive Reference API
* [x] Object Data API
* [x] NTA 8800 Energylabel API
* [x] Object geometry API
* [x] Condition Score API


# OpenAPI specificaties

GET verzoek voor het opvragen van de OpenAPI specificaties voor **elke** API door het toevoegen van **"/openai"** aan elke endpoint. Geen authenticatie vereist.

### Voorbeeld GET verzoek voor de Verduurzaming API

## GET verzoek voor OpenAPI specifications

<mark style="color:blue;">`GET`</mark> `https://api.altum.ai/sustainability/openapi`

{% tabs %}
{% tab title="200: OK " %}

```
{
	"openapi": "3.0.2",
	"info": {
		"title": "Sustainability API",
		"description": "Check savings for object",
		"version": "0.1.0"
	},
	"paths": {
		"/sustainability": {
			"post": {
				"summary": "Savings From Address",
				"description": "endpoint to collect data from ES/AVM, RVO/SUSTEEN API and eco delta API, apply business logic and serialize it",
				"operationId": "savings_from_address_sustainability_post",
				"requestBody": {
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/Body_savings_from_address_sustainability_post"
							}
						}
					},
					"required": true
				},
				"responses": {
					"200": {
						"description": "Successful Response",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/OutputSavings"
								}
							}
						}
					},
					"422": {
						"description": "Validation Error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/HTTPValidationError"
								}
							}
						}
					}
				}
			}
		},
		"/sustainability_bagid": {
			"get": {
				"summary": "Savings From Bagid",
				"operationId": "savings_from_bagid_sustainability_bagid_get",
				"parameters": [
					{
						"required": true,
						"schema": {
							"title": "Bag Id",
							"maxLength": 16,
							"minLength": 14,
							"type": "string"
						},
						"name": "bag_id",
						"in": "query"
					}
				],
				"responses": {
					"200": {
						"description": "Successful Response",
						"content": {
							"application/json": {
								"schema": {}
							}
						}
					},
					"422": {
						"description": "Validation Error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/HTTPValidationError"
								}
							}
						}
					}
				}
			}
		}
	},
	"components": {
		"schemas": {
			"AardgasKeuzeEn": {
				"title": "AardgasKeuzeEn",
				"enum": [
					0,
					1,
					2
				],
				"type": "integer",
				"description": "An enumeration."
			},
			"Address": {
				"title": "Address",
				"required": [
					"house_number",
					"post_code"
				],
				"type": "object",
				"properties": {
					"house_number": {
						"title": "House Number",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"post_code": {
						"title": "Post Code",
						"pattern": "^(?!1000|1001|1002|1003|1004|1005|1006|1007|1008|1009|1010)[1-9][0-9]{3}[A-Z]{2}$",
						"type": "string",
						"example": "1234AB"
					},
					"addition": {
						"title": "Addition",
						"type": "string",
						"default": ""
					},
					"street": {
						"title": "Street",
						"type": "string"
					},
					"city": {
						"title": "City",
						"type": "string"
					},
					"location": {
						"$ref": "#/components/schemas/LatLon"
					}
				}
			},
			"BENG2": {
				"title": "BENG2",
				"type": "object",
				"properties": {
					"current": {
						"title": "Current",
						"type": "integer"
					},
					"potential": {
						"title": "Potential",
						"type": "integer"
					}
				}
			},
			"Body_savings_from_address_sustainability_post": {
				"title": "Body_savings_from_address_sustainability_post",
				"required": [
					"data"
				],
				"type": "object",
				"properties": {
					"data": {
						"$ref": "#/components/schemas/InputSavings"
					}
				}
			},
			"Building": {
				"title": "Building",
				"type": "object",
				"properties": {
					"build_year": {
						"title": "Build Year",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"inner_surface": {
						"title": "Inner Surface",
						"exclusiveMinimum": 0.0,
						"type": "number"
					},
					"type": {
						"$ref": "#/components/schemas/ESBuildingType"
					}
				}
			},
			"CO2": {
				"title": "CO2",
				"type": "object",
				"properties": {
					"current": {
						"title": "Current",
						"type": "integer"
					},
					"potential": {
						"title": "Potential",
						"type": "integer"
					}
				}
			},
			"ComfortScore": {
				"title": "ComfortScore",
				"type": "object",
				"properties": {
					"current": {
						"title": "Current",
						"type": "integer"
					},
					"potential": {
						"title": "Potential",
						"type": "integer"
					}
				}
			},
			"CriteriumEn": {
				"title": "CriteriumEn",
				"enum": [
					0,
					1,
					2,
					3,
					4
				],
				"type": "integer",
				"description": "An enumeration."
			},
			"CustomCost": {
				"title": "CustomCost",
				"required": [
					"code"
				],
				"type": "object",
				"properties": {
					"code": {
						"$ref": "#/components/schemas/KengetalEn"
					},
					"value": {
						"title": "Value",
						"exclusiveMinimum": 0.0,
						"type": "number"
					}
				}
			},
			"DakIsolatieEn": {
				"title": "DakIsolatieEn",
				"enum": [
					0,
					1,
					2,
					3,
					4
				],
				"type": "integer",
				"description": "An enumeration."
			},
			"DoucheWtwEn": {
				"title": "DoucheWtwEn",
				"enum": [
					0,
					1
				],
				"type": "integer",
				"description": "An enumeration."
			},
			"ELG": {
				"title": "ELG",
				"type": "object",
				"properties": {
					"current": {
						"title": "Current",
						"type": "number"
					},
					"potential": {
						"title": "Potential",
						"type": "number"
					}
				}
			},
			"ESBuildingType": {
				"title": "ESBuildingType",
				"enum": [
					"2 onder 1 kap",
					"hoekwoning",
					"tussenwoning",
					"appartement",
					"vrijstaand"
				],
				"description": "ES holds strings which are translated/unified within this class.\n\n> Hoekwoning\nHoekwoning is a the corner house of a rijwoning, Hoek meaning corner.\nSo where rijwoning tussen are the middle houses in a houseblock, hoekwoningen are the corners of these\n\n> Do we distinguish `vrijstaand groot` from `vrijstaand klein`.\nNo."
			},
			"EnergyCalculations": {
				"title": "EnergyCalculations",
				"type": "object",
				"properties": {
					"variable_gas_price": {
						"title": "Variable Gas Price",
						"type": "number"
					},
					"variable_electricity_price": {
						"title": "Variable Electricity Price",
						"type": "number"
					},
					"solarpanel_watt_peak_per_m2": {
						"title": "Solarpanel Watt Peak Per M2",
						"type": "integer"
					}
				}
			},
			"EnergyIndex": {
				"title": "EnergyIndex",
				"type": "object",
				"properties": {
					"current": {
						"title": "Current",
						"type": "number"
					},
					"potential": {
						"title": "Potential",
						"type": "number"
					}
				}
			},
			"Financial": {
				"title": "Financial",
				"type": "object",
				"properties": {
					"total_investment": {
						"title": "Total Investment",
						"minimum": 0.0,
						"type": "number"
					},
					"total_saving": {
						"title": "Total Saving",
						"type": "number"
					},
					"months_to_pay_off": {
						"title": "Months To Pay Off",
						"type": "integer"
					},
					"eco_value": {
						"title": "Eco Value",
						"minimum": 0.0,
						"type": "number"
					},
					"savings_monthly": {
						"title": "Savings Monthly",
						"type": "integer"
					},
					"energy_cost_monthly": {
						"title": "Energy Cost Monthly",
						"type": "integer"
					},
					"loan": {
						"$ref": "#/components/schemas/Loan"
					}
				}
			},
			"GevelIsolatieEn": {
				"title": "GevelIsolatieEn",
				"enum": [
					0,
					1,
					2,
					3
				],
				"type": "integer",
				"description": "An enumeration."
			},
			"GlasLeefEn": {
				"title": "GlasLeefEn",
				"enum": [
					0,
					1,
					2,
					3
				],
				"type": "integer",
				"description": "An enumeration."
			},
			"GlasSlaapEn": {
				"title": "GlasSlaapEn",
				"enum": [
					0,
					1,
					2,
					3
				],
				"type": "integer",
				"description": "An enumeration."
			},
			"HTTPValidationError": {
				"title": "HTTPValidationError",
				"type": "object",
				"properties": {
					"detail": {
						"title": "Detail",
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/ValidationError"
						}
					}
				}
			},
			"ImprovementCost": {
				"title": "ImprovementCost",
				"required": [
					"code"
				],
				"type": "object",
				"properties": {
					"code": {
						"$ref": "#/components/schemas/VerbeterKosten"
					},
					"material": {
						"title": "Material",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"work": {
						"title": "Work",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"saving_material": {
						"title": "Saving Material",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"saving_work": {
						"title": "Saving Work",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					}
				},
				"description": "Optional inputs to set personal costs for material and work"
			},
			"InputSavings": {
				"title": "InputSavings",
				"required": [
					"post_code",
					"house_number"
				],
				"type": "object",
				"properties": {
					"post_code": {
						"title": "Post Code",
						"pattern": "^(?!1000|1001|1002|1003|1004|1005|1006|1007|1008|1009|1010)[1-9][0-9]{3}[A-Z]{2}$",
						"type": "string",
						"example": "1234AB"
					},
					"house_number": {
						"title": "House Number",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"house_addition": {
						"title": "House Addition",
						"type": "string"
					},
					"lock_measures": {
						"$ref": "#/components/schemas/LockMeasures"
					},
					"eco_delta": {
						"title": "Eco Delta",
						"type": "boolean",
						"default": 1
					},
					"max_investment": {
						"title": "Max Investment",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"target_label": {
						"title": "Target Label",
						"maxLength": 5,
						"minLength": 1,
						"pattern": "^A\\+\\+\\+\\+$|^A\\+\\+\\+$|^A\\+\\+$|^A\\+$|^A$|^B$|^C$|^D$|^E$|^F$|^G$",
						"type": "string"
					},
					"gas_usage": {
						"title": "Gas Usage",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"heat_usage": {
						"title": "Heat Usage",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"electricity_usage": {
						"title": "Electricity Usage",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"inner_surface_area": {
						"title": "Inner Surface Area",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"inhabitants": {
						"title": "Inhabitants",
						"maximum": 15.0,
						"minimum": 1.0,
						"type": "integer"
					},
					"build_year": {
						"title": "Build Year",
						"maximum": 2030.0,
						"minimum": 1000.0,
						"type": "integer"
					},
					"search_criteria": {
						"$ref": "#/components/schemas/CriteriumEn"
					},
					"heat_pump_allowed": {
						"title": "Heat Pump Allowed",
						"type": "boolean"
					},
					"replace_boiler": {
						"title": "Replace Boiler",
						"type": "boolean"
					},
					"natural_gas": {
						"$ref": "#/components/schemas/AardgasKeuzeEn"
					},
					"solar_panels_surface": {
						"$ref": "#/components/schemas/PVOptieEn"
					},
					"solar_panels": {
						"title": "Solar Panels",
						"minimum": 1.0,
						"type": "integer"
					},
					"wall_insulation": {
						"$ref": "#/components/schemas/GevelIsolatieEn"
					},
					"roof_insulation": {
						"$ref": "#/components/schemas/DakIsolatieEn"
					},
					"floor_insulation": {
						"$ref": "#/components/schemas/VloerIsolatieEn"
					},
					"living_room_windows": {
						"$ref": "#/components/schemas/GlasLeefEn"
					},
					"bedroom_windows": {
						"$ref": "#/components/schemas/GlasSlaapEn"
					},
					"installation": {
						"$ref": "#/components/schemas/InstallatieEn"
					},
					"shower": {
						"$ref": "#/components/schemas/DoucheWtwEn"
					},
					"ventilation": {
						"$ref": "#/components/schemas/VentilatieEn"
					},
					"house_type": {
						"title": "House Type",
						"exclusiveMaximum": 6.0,
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"api_debug": {
						"title": "Api Debug",
						"type": "integer"
					},
					"custom_costs": {
						"title": "Custom Costs",
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/CustomCost"
						},
						"default": []
					},
					"improvement_costs": {
						"title": "Improvement Costs",
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/ImprovementCost"
						},
						"default": []
					},
					"energylabel_strict": {
						"title": "Energylabel Strict",
						"maximum": 1.0,
						"minimum": 0.0,
						"type": "integer"
					},
					"fetch_definitive_label": {
						"title": "Fetch Definitive Label",
						"maximum": 1.0,
						"minimum": 0.0,
						"type": "integer",
						"default": 0
					},
					"heatpump_insulation_req": {
						"title": "Heatpump Insulation Req",
						"maximum": 3.0,
						"minimum": 0.0,
						"type": "integer"
					},
					"exclude_measure": {
						"title": "Exclude Measure",
						"type": "array",
						"items": {},
						"default": []
					},
					"minimum_solar_panels": {
						"title": "Minimum Solar Panels",
						"type": "integer"
					},
					"solarpanel_watt_peak": {
						"title": "Solarpanel Watt Peak",
						"minimum": 1.0,
						"type": "integer"
					}
				},
				"description": "All possible input parameters\n:param post_code: format 1234AB\n:param house_number:\n:param addition: House number addition ex. A, B, A02\n:param lock_measures: disable some measures\n:param max_investment: max amount of money we want to invest\n:param target_label: DoelLabel"
			},
			"InstallatieEn": {
				"title": "InstallatieEn",
				"enum": [
					0,
					1,
					2,
					3,
					4,
					5,
					6,
					7,
					8,
					9,
					10,
					29,
					30,
					31,
					32,
					33
				],
				"type": "integer",
				"description": "An enumeration."
			},
			"KengetalEn": {
				"title": "KengetalEn",
				"enum": [
					0,
					1,
					2,
					3,
					4,
					5,
					6,
					7,
					8,
					9,
					10,
					11,
					12,
					13,
					14,
					15,
					21,
					22,
					23
				],
				"type": "integer",
				"description": "An enumeration."
			},
			"Label": {
				"title": "Label",
				"type": "object",
				"properties": {
					"current": {
						"title": "Current",
						"type": "string"
					},
					"potential": {
						"title": "Potential",
						"type": "string"
					}
				}
			},
			"LatLon": {
				"title": "LatLon",
				"type": "object",
				"properties": {
					"lat": {
						"title": "Lat",
						"type": "number"
					},
					"lon": {
						"title": "Lon",
						"type": "number"
					}
				}
			},
			"Loan": {
				"title": "Loan",
				"type": "object",
				"properties": {
					"monthly_payment": {
						"title": "Monthly Payment",
						"minimum": 0.0,
						"type": "number"
					}
				}
			},
			"LockMeasures": {
				"title": "LockMeasures",
				"required": [
					"lock"
				],
				"type": "object",
				"properties": {
					"lock": {
						"title": "Lock",
						"type": "array",
						"items": {
							"type": "string"
						}
					}
				}
			},
			"Measure": {
				"title": "Measure",
				"required": [
					"investment",
					"saving",
					"gas_savings"
				],
				"type": "object",
				"properties": {
					"before": {
						"$ref": "#/components/schemas/MeasureItem"
					},
					"after": {
						"$ref": "#/components/schemas/MeasureItem"
					},
					"investment": {
						"title": "Investment",
						"minimum": 0.0,
						"type": "number"
					},
					"saving": {
						"title": "Saving",
						"type": "integer"
					},
					"co2_reduce": {
						"title": "Co2 Reduce",
						"type": "integer"
					},
					"BENG2": {
						"title": "Beng2",
						"type": "string"
					},
					"gas_savings": {
						"title": "Gas Savings",
						"type": "integer"
					}
				}
			},
			"MeasureItem": {
				"title": "MeasureItem",
				"type": "object",
				"properties": {
					"desc": {
						"title": "Desc",
						"type": "string"
					},
					"value": {
						"title": "Value",
						"type": "integer"
					}
				}
			},
			"Meta": {
				"title": "Meta",
				"required": [
					"notes",
					"created",
					"internal"
				],
				"type": "object",
				"properties": {
					"notes": {
						"title": "Notes",
						"type": "array",
						"items": {
							"type": "object"
						}
					},
					"created": {
						"title": "Created",
						"type": "string",
						"format": "date"
					},
					"internal": {
						"title": "Internal",
						"type": "object"
					}
				},
				"description": "Meta information about the response.\nNot sensitive but useful to API authors mainly.\nSome available only if INTERNAL_LOGS is set."
			},
			"OutputSavings": {
				"title": "OutputSavings",
				"required": [
					"address"
				],
				"type": "object",
				"properties": {
					"address": {
						"$ref": "#/components/schemas/Address"
					},
					"building": {
						"$ref": "#/components/schemas/Building"
					},
					"label": {
						"$ref": "#/components/schemas/Label"
					},
					"provided_label": {
						"$ref": "#/components/schemas/ProvidedLabel"
					},
					"BENG2": {
						"$ref": "#/components/schemas/BENG2"
					},
					"meta": {
						"$ref": "#/components/schemas/Meta"
					},
					"energyindex": {
						"$ref": "#/components/schemas/EnergyIndex"
					},
					"ELG": {
						"$ref": "#/components/schemas/ELG"
					},
					"comfortscore": {
						"$ref": "#/components/schemas/ComfortScore"
					},
					"CO2": {
						"$ref": "#/components/schemas/CO2"
					},
					"financial": {
						"$ref": "#/components/schemas/Financial"
					},
					"usage": {
						"$ref": "#/components/schemas/Usage"
					},
					"usage_potential": {
						"$ref": "#/components/schemas/UsagePotential"
					},
					"energy_prices": {
						"$ref": "#/components/schemas/EnergyCalculations"
					},
					"measures": {
						"title": "Measures",
						"type": "object",
						"additionalProperties": {
							"$ref": "#/components/schemas/Measure"
						}
					},
					"response_meta": {
						"title": "Response Meta",
						"type": "object"
					}
				}
			},
			"PVOptieEn": {
				"title": "PVOptieEn",
				"enum": [
					0,
					1,
					2
				],
				"type": "integer",
				"description": "An enumeration."
			},
			"ProvidedLabel": {
				"title": "ProvidedLabel",
				"type": "object",
				"properties": {
					"temporary": {
						"title": "Temporary",
						"type": "string"
					},
					"definitive": {
						"title": "Definitive",
						"type": "string"
					},
					"definitive_type": {
						"title": "Definitive Type",
						"type": "string"
					},
					"definitive_validity": {
						"title": "Definitive Validity",
						"type": "string"
					}
				}
			},
			"Usage": {
				"title": "Usage",
				"type": "object",
				"properties": {
					"gas": {
						"title": "Gas",
						"type": "integer"
					},
					"energy": {
						"title": "Energy",
						"type": "integer"
					}
				}
			},
			"UsagePotential": {
				"title": "UsagePotential",
				"type": "object",
				"properties": {
					"gas": {
						"title": "Gas",
						"type": "integer"
					},
					"energy": {
						"title": "Energy",
						"type": "integer"
					}
				}
			},
			"ValidationError": {
				"title": "ValidationError",
				"required": [
					"loc",
					"msg",
					"type"
				],
				"type": "object",
				"properties": {
					"loc": {
						"title": "Location",
						"type": "array",
						"items": {
							"anyOf": [
								{
									"type": "string"
								},
								{
									"type": "integer"
								}
							]
						}
					},
					"msg": {
						"title": "Message",
						"type": "string"
					},
					"type": {
						"title": "Error Type",
						"type": "string"
					}
				}
			},
			"VentilatieEn": {
				"title": "VentilatieEn",
				"enum": [
					0,
					1,
					2,
					3,
					4
				],
				"type": "integer",
				"description": "An enumeration."
			},
			"VerbeterKosten": {
				"title": "VerbeterKosten",
				"enum": [
					10001,
					10002,
					10003,
					20002,
					20003,
					30002,
					30003,
					40002,
					40003,
					50001,
					50002,
					50003,
					50102,
					50103,
					50203,
					60001,
					60002,
					60003,
					60004,
					80004,
					80104,
					80204,
					80305,
					80406,
					80506,
					80006,
					80106,
					80306,
					80007,
					80107,
					80407,
					80008,
					80108,
					80408,
					80009,
					80109,
					80209,
					80029,
					80129,
					80529,
					80030,
					80130,
					80430,
					80031,
					80131,
					80431,
					80010,
					70000,
					94001
				],
				"type": "integer",
				"description": "Codes of improvement types. Obtained from RVO with the method OphalenKengetallen (Professionel = 1)\n    "
			},
			"VloerIsolatieEn": {
				"title": "VloerIsolatieEn",
				"enum": [
					0,
					1,
					2,
					3,
					4
				],
				"type": "integer",
				"description": "An enumeration."
			}
		}
	}
}
```

{% endtab %}
{% endtabs %}


# Postman API Collection

Met deze Postman collection test je de Altum AI API direct en zie je per endpoint welke invoer wordt verwacht en welke output je terugkrijgt.

### Download de Postman Collection

Gebruik deze collectie om alle **Altum AI API’s** direct te testen, requests te valideren en voorbeeldcode te genereren voor Nederlandse vastgoeddata.

{% file src="/files/OsjimTDX6PtbpK8KPb2H" %}

***

### Altum AI Postman API – Integratiehandleiding

De **Altum AI Postman Collection** biedt vooraf geconfigureerde requests voor een breed scala aan API’s:

* **Woningwaardering & AVM:** directe waarde- en marktprijsinschattingen
* **Verduurzaming & Energielabels:** energieprestaties volgens NTA 8800
* **Objectdata & Geometrie:** bouwjaar, oppervlak, inhoud, coördinaten
* **Marktdata & Transacties:** verkoopprijzen, huurreferenties en WWS-punten

Met deze collectie kun je endpoints testen, input/output begrijpen en integraties bouwen in productie- of sandboxomgevingen.

***

### Aan de slag & authenticatie

Altum AI gebruikt **API Key-authenticatie via headers**.

* **Base URL:** `https://api.altum.ai`
* **Header Key:** `x-api-key`

**Import instructies:**

1. Sleep het [`Altum APIs.postman_collection.json`](#download-de-postman-collection) bestand in je Postman workspace
2. Ga naar het tabblad *Variabels* van de collectie
3. Vervang `API_KEY` door je productie- of sandboxkey
4. Alle requests gebruiken standaard de collectie-authenticatie

***

### Kern API-categorieën

#### **1. Woningwaardering & AVM**

* **Endpoints:** `/avm`, `/avmplus`, `/listingprice`
* **Belangrijkste inputs:** postcode, huisnummer, valuationdate
* **Gebruik:** Bereken woningwaardes en marktprijzen op basis van Nederlandse trends
* **Voor:** Hypotheekverstrekkers, makelaars, fintech-platforms

#### **2. Verduurzaming & Energielabels**

* **Endpoints:** `/sustainability` (v1 & v2), `/energy-insights`, `/energylabel`
* **Data:** huidig label, potentieel label, CO₂-reductie, ROI van maatregelen
* **Voor:** Groene financiering, ESG-rapportages, woningverbeteringsadvies

#### **3. Objectdata & Geometrie**

* **Endpoints:** `/objectdata`, `/location-data`, `/geometry`
* **Data:** bouwjaar, oppervlak (m²), inhoud (m³), 3D-coördinaten

#### **4. Marktdata & Transacties**

* **Endpoints:** `/movedata`, `/transaction`, `/rental-reference`, `/wws`
* **Gebruik:** Vergelijk vraagprijzen met verkoopprijzen of bereken WWS-punten

***

### LLM & integratiecontext

Gebruik deze **semantische mappings** voor AI-agents en automatisering:

| Entiteit         | API-mapping                | Type           |
| ---------------- | -------------------------- | -------------- |
| Property ID      | `bagid`                    | String/Integer |
| Postcode NL      | `postcode` (1234AB)        | String         |
| Energienorm      | NTA 8800                   | Contextual     |
| Waarderingsdatum | `valuationdate` (YYYYMMDD) | String         |

**POST-request structuur:**

```json
{
  "postcode": "2728KH",
  "housenumber": 7,
  "valuationdate": "20260126"
}
```

***

### Foutafhandeling & statuscodes

* `401/403` – Ongeldige API Key of onvoldoende rechten
* `422` – Validatiefout (bijv. foutieve postcode)
* `429` – Rate limit overschreden

***

### Extra resources

* **Documentatie:** [docs.altum.ai](https://docs.altum.ai)
* **Support:** Contacteer het Altum AI team voor implementatiehulp


# API status

Voer een gratis GET-verzoek uit om de status van alle Altum AI-services op te vragen.

{% hint style="info" %}
Maak gebruik van de generieke en gratis API-key die in het GET-verzoek wordt verstrekt
{% endhint %}

## Toegang tot de status van alle Altum Services met api.altum.ai/status

<mark style="color:blue;">`GET`</mark> `https://api.altum.ai/status`

#### Headers

| Name                                        | Type   | Description                              |
| ------------------------------------------- | ------ | ---------------------------------------- |
| x-api-key<mark style="color:red;">\*</mark> | String | m2ipzWVV3e9yPU9TduqpY4oZTbcEHCGj31GLVLYB |

{% tabs %}
{% tab title="200: OK OK" %}

```
{
	"altum_services": [
		{
			"service": "Altum.AI website",
			"url": "https://altum.ai",
			"timeout": 30,
			"status": "UP"
		},
		{
			"service": "Amenities API",
			"url": "https://api.altum.ai/amenities",
			"timeout": 30,
			"status": "UP"
		},
		{
			"service": "Autosuggest API",
			"url": "https://api.altum.ai/autosuggest",
			"timeout": 30,
			"status": "UP"
		},
		{
			"service": "AVM API",
			"url": "https://api.altum.ai/avm",
			"timeout": 30,
			"status": "UP"
		},
		{
			"service": "BAG API",
			"url": "https://api.altum.ai/bag",
			"timeout": 30,
			"status": "UP"
		},
		{
			"service": "Condition score API",
			"url": "https://api.altum.ai/condition-score/url",
			"timeout": 30,
			"status": "UP"
		},
		{
			"service": "Energy & climate API",
			"url": "https://api.altum.ai/energy-climate",
			"timeout": 30,
			"status": "UP"
		},
		{
			"service": "Energylabel API",
			"url": "https://api.altum.ai/energylabel",
			"timeout": 30,
			"status": "UP"
		},
		{
			"service": "Interactive Reference API",
			"url": "https://api.altum.ai/interactive-reference",
			"timeout": 30,
			"status": "UP"
		},
		{
			"service": "Labelling API",
			"url": "https://api.altum.ai/labelling/url",
			"timeout": 30,
			"status": "UP"
		},
		{
			"service": "Location Data API",
			"url": "https://api.altum.ai/location",
			"timeout": 30,
			"status": "UP"
		},
		{
			"service": "Data Platform",
			"url": "https://platform.altum.ai",
			"timeout": 30,
			"status": "UP"
		},
		{
			"service": "Move Data API",
			"url": "https://api.altum.ai/movedata/sale",
			"timeout": 30,
			"status": "UP"
		},
		{
			"service": "Object geometry API",
			"url": "https://api.altum.ai/geometry",
			"timeout": 30,
			"status": "UP"
		},
		{
			"service": "Objectdata API",
			"url": "https://api.altum.ai/objectdata",
			"timeout": 30,
			"status": "UP"
		},
		{
			"service": "Sustainability API",
			"url": "https://api.altum.ai/sustainability",
			"timeout": 30,
			"status": "UP"
		},
		{
			"service": "Transaction API",
			"url": "https://api.altum.ai/transaction",
			"timeout": 30,
			"status": "UP"
		},
		{
			"service": "WOZ API",
			"url": "https://api.altum.ai/woz",
			"timeout": 30,
			"status": "UP"
		}
	]
}
```

{% endtab %}
{% endtabs %}


# Credit API

Credit API is een hulpprogramma-API waarmee u uw gebruikte Altum-credits kunt bijhouden.

{% hint style="info" %}
Credit API is alleen beschikbaar voor Prepaid-gebruikers. Enterprise-klanten kunnen hier op verzoek gebruik van maken.
{% endhint %}

Een GET-verzoek aan de Credit API retourneert een JSON-antwoord met jouw API gebruik per API voor het opgegeven aantal uren. Door een tijdparameter toe te voegen, kunt u het tijdsbereik van het verzoek in uren opgeven.

{% hint style="info" %}
Er zit een latentieperiode van 60 seconden tussen wijzigingen in uw tegoed en de aanwezigheid ervan in de Credit API.
{% endhint %}

## Dien een GET-verzoek in bij de API om uw gebruikte API verbruik te ontvangen. Geef uw tijdsbereik op met de tijdqueryparameter

<mark style="color:blue;">`GET`</mark> `https://api.altum.ai/credit`

#### Query Parameters

| Name | Type    | Description                  |
| ---- | ------- | ---------------------------- |
| time | integer | Tijdbereik in uren. Bijv. 24 |

#### Headers

| Name                                        | Type   | Description         |
| ------------------------------------------- | ------ | ------------------- |
| x-api-key<mark style="color:red;">\*</mark> | string | Geldige API-sleutel |
| Content-Type                                | string | application/json    |

{% tabs %}
{% tab title="200: OK succesvol" %}
{\
"interactivereference-api": "6", \
"rebuildapi": "1", \
"objectdataapi": "1" \
}
{% endtab %}

{% tab title="403: Forbidden" %}
{ "message": "Forbidden" }
{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Sample Request" %}

```url
https://api.altum.ai/credit
?time=40
```

{% endtab %}

{% tab title="Sample Response" %}

```json
{
	"interactivereference-api": 1307,
	"avmapi": 671,
	"wozapi": 209,
	"sustainabilityapi": 85,
	"energylabelapi": 390
}
```

{% endtab %}
{% endtabs %}


# Enterprise


# Fair Use Policy

### Fair Use Policy – Onbeperkt abonnement Altum AI API’s

Doel

Deze Fair Use Policy geldt voor alle klanten met een “Onbeperkt” abonnement op de Altum AI API’s (waaronder Woningwaarde API, Woningkenmerken API, Verduurzaming API, WOZ-API en overige datasets). Het onbeperkte abonnement geeft recht op zeer ruime toegang zonder harde limiet, maar voorkomt oneigenlijk gebruik dat het platform of andere klanten schaadt.

### Wat is toegestaan (ruimhartig gebruik)

* Normaal en intensief zakelijk gebruik door één organisatie (bijv. bank, hypotheekverstrekker, makelaarsketen, proptech-scale-up).
* Meerdere interne gebruikers en afdelingen binnen dezelfde rechtspersoon.
* Integratie in eigen software, dashboards, CRM-systemen en klantportalen.
* Batchverwerking en caching voor eigen klanten (met bronvermelding Altum AI).
* Dagelijks tot tienduizenden calls per dag is normaal en volledig gedekt.
* Tot en met 6 concurrent requests per seconde.

### Wat valt onder oneigenlijk gebruik (niet toegestaan)

* Doorverkopen of beschikbaar stellen van de ruwe API-data aan derden buiten de eigen organisatie (sub-licensing).
* Gebruik als proxy of mirror voor concurrerende datadiensten.
* Automatisch doorsturen van calls naar niet-klanten (bijv. openbaar portal zonder whitelabel-overeenkomst).
* Continu crawlen of scrapen van het volledige woningbestand van Nederland binnen enkele dagen.
* Gebruik voor cryptomining, DDoS, spam of andere niet-zakelijke doeleinden.

### Hoe we fair use handhaven

* We monitoren gebruikspatronen op extreme pieken (> 20.000 calls/dag sustained).
* Bij vermoeden van misbruik nemen we eerst contact op en zoeken we samen naar een oplossing (bijv. enterprise-tier of whitelabel-licentie).
* Alleen bij opzettelijk en herhaald misbruik na waarschuwing kunnen we toegang tijdelijk beperken of opzeggen.

### Samenvatting in één zin

Je mag onze API’s onbeperkt gebruiken voor al je eigen zakelijke processen en eigen eindklanten, zolang je de data niet doorverkoopt of het platform technisch overbelast.

Deze policy kan eenzijdig worden aangepast met 30 dagen schriftelijke kennisgeving. Huidige versie: 11 december 2025.

<br>


# Vastgoed AI

Vastgoed AI kan jouw vastgoedvermeldingen transformeren met moeiteloos gegenereerde beschrijvingen en slimme beeldbijschriften.

## **Introductie**

De Property AI API is ontworpen om het profiel van eigendommen naadloos en aantrekkelijk te maken. Met deze API kunnen gebruikers automatisch gedetailleerde eigendomsbeschrijvingen genereren, slimme beeldbijschriften maken en statische beelden omzetten in dynamische, geanimeerde visuals. Door gebruik te maken van gegevensinvoer en beeldanalyse helpt het om vermeldingen en vastgoedpresentaties moeiteloos te verbeteren.

## **Hoe te gebruiken**

1. **Toegang tot de tool**: Log in op je Altum AI-account en ga naar het Vastgoed AI-gedeelte.
2. **Voer je gegevens in**: Voer de gegevens van het eigendom in of upload afbeeldingen indien nodig. De tool gebruikt deze input om op maat gemaakte content te creëren.
3. **Genereer resultaten**: Klik op de knop "Genereren". De Vastgoed AI-tool verwerkt je input en levert een aangepaste beschrijving of een slim bijschrift voor de geüploade afbeeldingen.
4. **Bekijk en kopieer**: Zodra de output klaar is, bekijk je deze. Je kunt vervolgens eenvoudig de gegenereerde content kopiëren en plakken waar je het nodig hebt.
5. **Controleer geschiedenis**: Gebruik de geschiedenisfunctie om eerder gegenereerde beschrijvingen en bijschriften te raadplegen voor toekomstig gebruik of hergebruik.


# Authenticatie, invoer en resultaat

Details over Invoer- en Uitvoervereisten

### R**equest Body**

| Naam              | Type   | Beschrijving                                              |
| ----------------- | ------ | --------------------------------------------------------- |
| image             | file   | Afbeeldingsbestand van het eigendom (JPEG, PNG, etc.)     |
| property\_details | object | Bevat gedetailleerde eigenschapkenmerken                  |
| year              | number | Bouwjaar van het eigendom                                 |
| surface\_area     | number | Totale oppervlakte van het eigendom in vierkante meters   |
| facilities        | array  | Lijst van beschikbare faciliteiten (bijv. parkeren, tuin) |
| location          | string | Adres of GPS-coördinaten van het eigendom                 |
| property\_type    | string | Type eigendom (bijv. residentieel, commercieel)           |

### Output **Fields**

| Naam                   | Type   | Beschrijving                                                  |
| ---------------------- | ------ | ------------------------------------------------------------- |
| choose\_tone           | string | De toon van de beschrijving (bijv. formeel, vriendelijk)      |
| choose\_language       | string | Taal van de uitvoerbeschrijving                               |
| target\_audience       | string | Specifiek publiek waarvoor de beschrijving is afgestemd       |
| description\_length    | string | Voorkeurslengte van de gegenereerde beschrijving (kort/lang)  |
| additional\_notes      | string | Eventuele aangepaste notities om de beschrijving te verfijnen |
| generated\_description | string | De door AI gegenereerde eigendomsbeschrijving                 |


# Veelgestelde vragen (FAQ)

**Wat is de Vastgoedbeschrijving Generator?**\
De Vastgoedbeschrijving Generator is een tool die is ontworpen om gebruikers te helpen snel en eenvoudig aantrekkelijke en op maat gemaakte vastgoedbeschrijvingen te maken. Het maakt gebruik van AI om beschrijvingen te genereren op basis van gebruikersinvoer, zoals afbeeldingen, eigendomsdetails en aanvullende notities.\
\
**Hoe gebruik ik de Property Description Generator?**\
Je kunt de tool gebruiken door een afbeelding van het pand te uploaden, de invoervelden in te vullen (zoals locatie, oppervlakte en type pand) of extra opmerkingen toe te voegen. De tool kan een beschrijving genereren op basis van elk van deze invoeren, individueel of gecombineerd.\
\
**Kan ik een vastgoedomschrijving genereren met alleen een afbeelding?**\
Ja, je kunt een vastgoedomschrijving genereren door simpelweg een afbeelding te uploaden. De tool is ontworpen om een gedetailleerde beschrijving te geven op basis van uitsluitend de visuele elementen van de vastgoedafbeelding.\
\
**Wat als ik alleen de invoervelden wil invullen zonder een afbeelding te uploaden?**\
Dat is helemaal prima! Je kunt zoveel of zo weinig invoervelden invullen als je wilt, en de Property Description Generator zal een beschrijving maken op basis van de informatie die je verstrekt.\
\
**Is het mogelijk om aangepaste details toe te voegen aan de vastgoedomschrijving?**\
Ja, je kunt het veld “Aanvullende opmerkingen” gebruiken om specifieke informatie of voorkeuren toe te voegen. De AI zal deze opmerkingen verwerken in de uiteindelijke beschrijving, zodat je meer controle hebt over het resultaat.\
\
**Moet ik alle velden invullen om een beschrijving te krijgen?**\
Nee, je kunt zoveel of zo weinig velden invullen als je wilt. De tool is ontworpen om te werken met elke combinatie van invoeren, of het nu alleen een afbeelding, alleen de velden of beide is.\
\
**Welke soorten vastgoed kan de tool beschrijven?**\
De Property Description Generator kan een breed scala aan vastgoed beschrijven, waaronder woningen, commerciële, industriële en gemengde panden. Je kunt het type vastgoed specificeren in de invoervelden.\
\
**Kan ik de toon van de beschrijving kiezen?**\
Ja, je kunt de toon van de beschrijving selecteren. De beschikbare tonen zijn professioneel, vriendelijk en enthousiast, waardoor je de stijl kunt afstemmen op je doelgroep.\
\
**In welke talen kan de Property Description Generator beschrijvingen genereren?**\
De tool ondersteunt momenteel zowel Engels als Nederlands voor het genereren van vastgoedomschrijvingen.\
\
**Is er een woordlimiet voor de gegenereerde beschrijvingen?**\
Je kunt de lengte van de beschrijving specificeren (kort, gemiddeld of lang) in het veld “Lengte van de beschrijving”. Dit stelt je in staat te bepalen hoe gedetailleerd de beschrijving zal zijn.\
\
**Kan ik deze tool gratis gebruiken?**\
Ja, de tool is volledig gratis te gebruiken. Je kunt vastgoedomschrijvingen genereren zonder kosten.\
\
**Hoe nauwkeurig zijn de gegenereerde vastgoedomschrijvingen?**\
De beschrijvingen worden gegenereerd met behulp van geavanceerde AI-algoritmes die de verstrekte invoer analyseren. Hoewel ze zeer nauwkeurig zijn, kunnen gebruikers de output verder verfijnen door gedetailleerde informatie in te voeren in de invoervelden of aanvullende opmerkingen.\
\
**Wat is het voordeel van het toevoegen van afbeeldingen naast vastgoedgegevens?**\
Het toevoegen van afbeeldingen helpt de AI om levendigere en nauwkeurigere beschrijvingen te creëren door visuele details te analyseren die mogelijk niet worden vastgelegd door alleen tekst. Dit kan de aantrekkingskracht en nauwkeurigheid van de gegenereerde beschrijvingen verbeteren.\
\
**Wat gebeurt er met de informatie die ik in de tool invoer?**\
Alle gegevens die je invoert, worden uitsluitend gebruikt voor het genereren van de vastgoedomschrijving. Raadpleeg het privacybeleid van het platform voor meer informatie over het gebruik en de opslag van gegevens.


# Conditie score API

Haal een onbevooroordeelde score op van de badkamer en keuken.

Het Condition Score Model is ontwikkeld en getraind om de conditiescore van badkamers en keukens te evalueren. De conditiescore is afgeleid van de waarderingsmethoden voor kwaliteit en staat van woningen van [Fannie Mae en Freddie Mac](https://selling-guide.fanniemae.com/Selling-Guide/Origination-thru-Closing/Subpart-B4-Underwriting-Property/Chapter-B4-1-Appraisal-Requirements/Section-B4-1-3-Appraisal-Report-Assessment/1032992471/B4-1-3-06-Property-Condition-and-Quality-of-Construction-of-the-Improvements-04-15-2014.htm), hypotheekinstellingen in de Verenigde Staten. Het is aangepast aan de Nederlandse woningbouw, volgens een vijfpuntensysteem dat ook wordt gebruikt in de Waardering Onroerende Zaken (WOZ) van gemeenten in Nederland. De basis voor de conditiescores zijn 5 categorieën die in de volgende paragrafen gedetailleerder worden uitgelegd.

<figure><img src="/files/WLILoZYoNztNBFeJPZIh" alt="" width="563"><figcaption><p>Een geclassificeerde keukenafbeelding met een betrouwbaarheidsscore van 97,97% en een staatsscore van 3,96 op 5. Bijna "Good".</p></figcaption></figure>

{% hint style="info" %}

## Proces

1. Geef een afbeelding op via bestandsupload of URL naar de API
2. API labelt de afbeelding om te controleren of een badkamer of keuken zichtbaar is
3. Verwerk afbeelding via model om de score te bepalen
   {% endhint %}

{% hint style="success" %}

## Resultaat

1. De klasse van de invoerafbeelding ("bathroom", "kitchen" or "other" indien niet herkend)
2. Het betrouwbaarheidspercentage voor de voorspelde klasse, b.v. 97,97%
3. Een score van 1 tot 5 die de conditiescore van het invoerbeeld weergeeft, b.v. 3,2 = iets boven "Average", 3,96 = bijna "Good".
   {% endhint %}

{% hint style="warning" %}

## Waarschuwing

De API kan geen conditiescore geven als de afbeelding niet wordt herkend als "kitchen" of "bathroom"!
{% endhint %}

##

## Badkamervoorbeelden voor de 5 categorieën

<table data-view="cards"><thead><tr><th align="center"></th><th align="center"></th><th></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td align="center">⭐</td><td align="center"><strong>Disrepair</strong></td><td></td><td><a href="/files/Hs0Us3PA8MYtlRfNcAU8">/files/Hs0Us3PA8MYtlRfNcAU8</a></td></tr><tr><td align="center">⭐⭐</td><td align="center"><strong>Poor</strong></td><td></td><td><a href="/files/AqAwhfIsCoTBUj5gYpGE">/files/AqAwhfIsCoTBUj5gYpGE</a></td></tr><tr><td align="center">⭐⭐⭐</td><td align="center"><strong>Average</strong></td><td></td><td><a href="/files/9IYjbFyASg6DDeVMOeCr">/files/9IYjbFyASg6DDeVMOeCr</a></td></tr><tr><td align="center">⭐⭐⭐⭐</td><td align="center"><strong>Good</strong></td><td></td><td><a href="/files/NbhK8LVAnKERmJI0GxyG">/files/NbhK8LVAnKERmJI0GxyG</a></td></tr><tr><td align="center">⭐⭐⭐⭐⭐</td><td align="center"><strong>Excellent</strong></td><td></td><td><a href="/files/zAQumnvAGWOQZQc27H7f">/files/zAQumnvAGWOQZQc27H7f</a></td></tr></tbody></table>

##

## Keukenvoorbeelden voor de 5 categorieën

<table data-view="cards"><thead><tr><th align="center"></th><th align="center"></th><th></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td align="center">⭐</td><td align="center"><strong>Disrepair</strong></td><td></td><td><a href="/files/F3qTPD9b0EdiztPm1guD">/files/F3qTPD9b0EdiztPm1guD</a></td></tr><tr><td align="center">⭐⭐</td><td align="center"><strong>Poor</strong></td><td></td><td><a href="/files/AOl2h5rIGyLBQvBk7p1d">/files/AOl2h5rIGyLBQvBk7p1d</a></td></tr><tr><td align="center">⭐⭐⭐</td><td align="center"><strong>Average</strong></td><td></td><td><a href="/files/c70YnkMOx87qT7wOzRgt">/files/c70YnkMOx87qT7wOzRgt</a></td></tr><tr><td align="center">⭐⭐⭐⭐</td><td align="center"><strong>Good</strong></td><td></td><td><a href="/files/9e2Km9nGWDaE0Vde3XjL">/files/9e2Km9nGWDaE0Vde3XjL</a></td></tr><tr><td align="center">⭐⭐⭐⭐⭐</td><td align="center"><strong>Excellent</strong></td><td></td><td><a href="/files/VMZTBX55yA14b76l7m47">/files/VMZTBX55yA14b76l7m47</a></td></tr></tbody></table>

##

## Basisscores uitgelegd

### **Excellent** ⭐⭐⭐⭐⭐

* Nieuwstaat, geen uitgesteld onderhoud, geen fysieke afschrijving en geen reparaties nodig.
* Vrijwel alle componenten zijn nieuw of zijn onlangs gerepareerd, opnieuw afgewerkt of gerehabiliteerd.
* Hoogwaardige interieurverfijningen en details.
* Hoogwaardige afwerking, materialen en afwerkingen.

### **Good** ⭐⭐⭐⭐

* Zo goed als nieuw of goed onderhouden.
* Componenten kunnen zijn bijgewerkt of recentelijk zijn gerehabiliteerd.
* Veel materialen en afwerkingen zijn geüpgraded ten opzichte van de standaardnormen.

### **Average** ⭐⭐⭐

* Uitgesteld onderhoud en achteruitgang als gevolg van normale slijtage.
* Componenten moeten worden gerepareerd, gerehabiliteerd of bijgewerkt.
* Materialen, afwerking, afwerking en uitrusting zijn van standaard- of bouwkwaliteit.

### **Poor** ⭐⭐

* Duidelijk achterstallig onderhoud en er zijn enkele belangrijke reparaties nodig.
* Sommige reparaties, rehabilitatie of updates zijn vereist.
* Het functionele nut en de algehele leefbaarheid zijn door de staat enigszins verminderd, maar het blijft bruikbaar en functioneel.

### **Disrepair** ⭐

* Aanzienlijke schade of achterstallig onderhoud met gebreken of defecten die de veiligheid, deugdelijkheid of structurele integriteit kunnen aantasten.
* Er zijn aanzienlijke reparaties en revalidatie nodig.
* Laagste kwaliteit en bouwmaterialen.
* Elektrische, sanitaire en andere mechanische systemen en apparatuur zijn mogelijk minimaal of ontbreken.

## POST Methode

<figure><img src="/files/j8kgZ2aatjOO7Pz4Lzpt" alt=""><figcaption><p>Illustratie van de postmethode met afbeeldings-URL van de Conditie score API.</p></figcaption></figure>

<figure><img src="/files/X775RkXSmwlPLgGMlg0X" alt=""><figcaption><p>Illustratie van de postmethode met het uploaden van afbeeldingsbestanden van de Conditie score API.</p></figcaption></figure>


# Authenticatie, invoer en resultaat

### Condition score opvragen

## Plaats een URL om de conditiescore van badkamers en keukens op te halen.

<mark style="color:green;">`POST`</mark> `https://api.altum.ai/condition-score/url`

#### Headers

| Name                                        | Type   | Description                                                                                              |
| ------------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------- |
| x-api-key<mark style="color:red;">\*</mark> | string | Unieke API-sleutel van Altum. Maak er een op [https://platform.altum.ai](https://platform.altum.ai/auth) |
| Content-Type                                | string | application/json                                                                                         |

#### Request Body

| Name                                  | Type   | Description                                                           |
| ------------------------------------- | ------ | --------------------------------------------------------------------- |
| url<mark style="color:red;">\*</mark> | string | De openbare URL van de afbeelding die u in het verzoek wilt verzenden |

{% tabs %}
{% tab title="200: OK Succesvolle reactie" %}

```
{
	"Output": {
		"label": "bathroom",
		"confidence": "98.17",
		"condition_score": "4.09"
	}
}
```

{% endtab %}

{% tab title="400: Bad Request Mislukte reactie" %}

```
{
  "detail": "The URL is not valid"
}
```

{% endtab %}

{% tab title="422: Unprocessable Entity Verkeerd invoerformaat" %}

```
{
	"detail": [
		{
			"loc": [
				"body",
				"image"
			],
			"msg": "field required",
			"type": "value_error.missing"
		}
	]
}
```

{% endtab %}

{% tab title="401: Unauthorized Geen toegang" %}

```
{
    'Output': 'Please use https://api.altum.ai or visit https://mopsus.altum.ai to make your request.'
}
```

{% endtab %}

{% tab title="500: Internal Server Error Service is not available and/or down" %}

```
{
	"message": "Internal server error"
}
```

{% endtab %}

{% tab title="403: Forbidden Verboden" %}

```
{
	"message": "Missing Authentication Token"
}
```

{% endtab %}
{% endtabs %}

## Upload een afbeeldingsbestand om de conditiescore van badkamers en keukens op te halen.

<mark style="color:green;">`POST`</mark> `https://api.altum.ai/condition-score/img`

#### Headers

| Name                                        | Type   | Description                                                              |
| ------------------------------------------- | ------ | ------------------------------------------------------------------------ |
| x-api-key<mark style="color:red;">\*</mark> | string | API-sleutel van Altum. Maak er een via Mopsus(<https://mopsus.altum.ai>) |
| Content-Type                                | string | multipath/form-data                                                      |

#### Request Body

| Name                                    | Type   | Description                                                                                                |
| --------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------- |
| image<mark style="color:red;">\*</mark> | object | De afbeelding die in de aanvraag moet worden verzonden, moet als multipath/form-data-type worden geüpload. |

{% tabs %}
{% tab title="200: OK Succesvolle reactie" %}

```
{
	"Output": {
		"label": "bathroom",
		"confidence": "98.17",
		"condition_score": "4.09"
	}
}
```

{% endtab %}

{% tab title="400: Bad Request Mislukte reactie" %}

```
{
  "detail": "Please upload an image with one of the following formats: .jpg, .jpeg or .png"
}
```

{% endtab %}

{% tab title="422: Unprocessable Entity Verkeerd invoerformaat" %}

```
{
	"detail": [
		{
			"loc": [
				"body",
				"image"
			],
			"msg": "field required",
			"type": "value_error.missing"
		}
	]
}
```

{% endtab %}

{% tab title="401: Unauthorized Geen toegang" %}

```
{
    'Output': 'Please use https://api.altum.ai or visit https://mopsus.altum.ai to make your request.'
}
```

{% endtab %}

{% tab title="500: Internal Server Error Service is niet beschikbaar en/of niet beschikbaar" %}

```
{
	"message": "Internal server error"
}
```

{% endtab %}

{% tab title="403: Forbidden Verboden" %}

```
{
	"message": "Missing Authentication Token"
}
```

{% endtab %}
{% endtabs %}

## GRATIS Ping voor beschikbaarheid

## Plaats de URL om te bevestigen of de afbeelding een keuken of een badkamer bevat.

<mark style="color:green;">`POST`</mark> `https://api.altum.ai/condition-score/url/ping`

Met dit eindpunt kunt u verifiëren of een afbeelding een badkamer of keuken laat zien voordat u de conditiescores opvraagt. Deze voorafgaande controle is nodig omdat de Condition Score API geen scores kan genereren als de afbeelding geen keuken of badkamer weergeeft.

#### Headers

| Name                                        | Type   | Description                                                              |
| ------------------------------------------- | ------ | ------------------------------------------------------------------------ |
| x-api-key<mark style="color:red;">\*</mark> | string | API-sleutel van Altum. Maak er een via Mopsus(<https://mopsus.altum.ai>) |
| Content-Type                                | string | application/json                                                         |

#### Request Body

| Name                                  | Type   | Description                                                           |
| ------------------------------------- | ------ | --------------------------------------------------------------------- |
| url<mark style="color:red;">\*</mark> | string | De openbare URL van de afbeelding die u in het verzoek wilt verzenden |

{% tabs %}
{% tab title="200: OK Succesvolle reactie" %}

```
{
    "Output": {
    "label": "Bathroom or Kitchen image detected",
    "confidence": "98.17"
    }        
}
```

{% endtab %}

{% tab title="400: Bad Request Mislukte reactie" %}

```
{
  "detail": "The URL is not valid"
}
```

{% endtab %}

{% tab title="422: Unprocessable Entity Verkeerd invoerformaat" %}

```
{
	"detail": [
		{
			"loc": [
				"body",
				"image"
			],
			"msg": "field required",
			"type": "value_error.missing"
		}
	]
}
```

{% endtab %}

{% tab title="401: Unauthorized Geen toegang" %}

```
{
    'Output': 'Please use https://api.altum.ai or visit https://mopsus.altum.ai to make your request.'
}
```

{% endtab %}

{% tab title="500: Internal Server Error Service is niet beschikbaar en/of niet beschikbaar" %}

```
{
	"message": "Internal server error"
}
```

{% endtab %}

{% tab title="403: Forbidden Verboden" %}

```
{
	"message": "Missing Authentication Token"
}
```

{% endtab %}
{% endtabs %}

## Upload image file to confirm if the image contains a kitchen or a bathroom.

<mark style="color:green;">`POST`</mark> `https://api.altum.ai/condition-score/img/ping`

Met dit eindpunt kunt u verifiëren of een afbeelding een badkamer of keuken laat zien voordat u de conditiescores opvraagt. Deze voorafgaande controle is nodig omdat de Condition Score API geen scores kan genereren als de afbeelding geen keuken of badkamer weergeeft.

#### Headers

| Name                                        | Type   | Description                                                              |
| ------------------------------------------- | ------ | ------------------------------------------------------------------------ |
| x-api-key<mark style="color:red;">\*</mark> | string | API-sleutel van Altum. Maak er een via Mopsus(<https://mopsus.altum.ai>) |
| Content-Type                                | string | multipath/form-data                                                      |

#### Request Body

| Name                                    | Type   | Description                                                                                                |
| --------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------- |
| image<mark style="color:red;">\*</mark> | object | De afbeelding die in de aanvraag moet worden verzonden, moet als multipath/form-data-type worden geüpload. |

{% tabs %}
{% tab title="200: OK Succesvolle reactie" %}

```
{
    "Output": {
    "label": "Bathroom or Kitchen image detected",
    "confidence": "98.17"
    }        
}
```

{% endtab %}

{% tab title="400: Bad Request Mislukte reactie" %}

```
{
  "detail": "Please upload an image with one of the following formats: .jpg, .jpeg or .png"
}
```

{% endtab %}

{% tab title="422: Unprocessable Entity Verkeerd invoerformaat" %}

```
{
	"detail": [
		{
			"loc": [
				"body",
				"image"
			],
			"msg": "field required",
			"type": "value_error.missing"
		}
	]
}
```

{% endtab %}

{% tab title="401: Unauthorized Geen toegang" %}

```
{
    'Output': 'Please use https://api.altum.ai or visit https://mopsus.altum.ai to make your request.'
}
```

{% endtab %}

{% tab title="500: Internal Server Error Service is niet beschikbaar en/of niet beschikbaar" %}

```
{
	"message": "Internal server error"
}
```

{% endtab %}

{% tab title="403: Forbidden Verboden" %}

```
{
	"message": "Missing Authentication Token"
}
```

{% endtab %}
{% endtabs %}

## Request body

#### Voorbeeld verzoek

```
{"url":"https://www.rawsonhomes.com.au/-/media/rawson-homes/blogs-external-banner-images/blog-articles/2020-blogs/september-2020/facades/narraweena-nara-facade.ashx"}
```


# API-sleutel Informatie

Begrijpen en Verkrijgen van jouw API-sleutel

Een API-sleutel is een unieke identificatiecode die je veilige toegang biedt tot de API's van Altum AI. Het is verplicht om deze sleutel in de `x-api-key` header van alle API-verzoeken op te nemen om een juiste authenticatie te garanderen.

**Hoe verkrijg je jouw API-sleutel?**\
Je kunt je API-sleutel op twee manieren verkrijgen:

1. **Via het Platform:** Genereer jouw API-sleutel direct op het Altum AI-platform.
2. **Door een Abonnement:** Een API-sleutel wordt verstrekt wanneer je je abonneert op het Startup- of Unlimited-plan.

**Waar gebruik je jouw API-sleutel?**\
Voeg de API-sleutel toe aan de `x-api-key` header van elk API-verzoek. Zonder een geldige sleutel wordt je verzoek niet geauthenticeerd.

**Voorbeeld Header:**

```plaintext
x-api-key: JOUW_UNIEKE_API_SLEUTEL
```

**Beveiligingsnotitie**\
Houd jouw API-sleutel vertrouwelijk om ongeautoriseerde toegang tot je account te voorkomen.


# Resultaat interpretatie

Een uitleg en interpretatie van elke functie die in het API-antwoord wordt weergegeven.

| Feature          | Voorbeeld | Uitleg                                                                                                                              |
| ---------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| label            | "kitchen" | Het label van de afbeelding. Het kan zijn “kitchen”, “bathroom”, of “other” als het niet wordt herkend.                             |
| confidence       | "98.44"   | De mate van zekerheid in % die het model bezit met betrekking tot de labelvoorspelling voor de afbeelding.                          |
| condition\_score | "3.04"    | De score van 1 tot 5 voor de staat van de afbeelding. Het kan alleen worden verstrekt als de afbeelding dat is kitchen of bathroom. |


# Foto Labelen API

De Foto Labelen API is verouderd.

{% hint style="info" %} <mark style="color:$danger;">**Verouderd**</mark>\ <mark style="color:$danger;">Deze API is verouderd en wordt niet langer aanbevolen voor nieuwe implementaties. Bestaande integraties blijven mogelijk werken. Neem contact op met Altum AI voor advies over de aanbevolen configuratie.</mark>
{% endhint %}

## Proces

Ons geavanceerde model maakt van meet af aan duidelijk of een afbeelding een binnen- of buitenomgeving vertegenwoordigt. Indien het model dit niet onomstotelijk kan vaststellen, wordt de afbeelding ingedeeld in de categorie 'other'.

Na deze voorlopige vaststelling optimaliseert ons systeem de daaropvolgende analyse op basis van deze initiële classificatie. Als het beeld wordt aangeduid als 'indoor', komt onze vaardigheid in kamerherkenning in beeld, waarbij gebruik wordt gemaakt van een gespecialiseerd kamermodel. Als het beeld daarentegen als 'outdoor' wordt bepaald, wordt het geavanceerde scènemodel geïmplementeerd.

Onze aanpak zorgt voor nauwkeurige categorisatie en verfijnde analyses, waardoor een geoptimaliseerde gebruikerservaring wordt geboden en de diepgang en precisie van ons werk wordt bevorderd.

## Scèneclassificatie

Wanneer een invoerbeeld in eerste instantie wordt geclassificeerd als 'outdoor', is de daaropvolgende taak van ons systeem het lokaliseren van de specifieke buitenscène die in de afbeelding wordt weergegeven. Om dit te bereiken wordt ons speciale scènemodel gebruikt, dat een scèneklasse en een bijbehorend betrouwbaarheidspercentage levert.

Interessant genoeg is er een uniek scenario om te overwegen! Als het betrouwbaarheidspercentage voor het voorspelde beeld gelijk is aan of lager dan 70%, biedt ons systeem verder de op één na meest waarschijnlijke klasse voor het beeld, samen met het bijbehorende betrouwbaarheidspercentage. Deze functie is geschikt voor situaties waarin meerdere klassen binnen één afbeelding kunnen worden geïdentificeerd.

Om een uitgebreid inzicht te geven, hebben we hieronder mogelijke scèneklassen naast de bijbehorende voorbeeldafbeeldingen vermeld. Dit benadrukt het geavanceerde vermogen van ons systeem om verschillende buitenscènes met opmerkelijke precisie te onderscheiden en te categoriseren.

{% hint style="warning" %}
Houd er rekening mee dat de op één na meest waarschijnlijke scèneklasse alleen wordt bekendgemaakt als het betrouwbaarheidspercentage van de primaire scèneklasse 70% of minder bedraagt. Deze functie benadrukt de gedetailleerde nauwkeurigheid van ons classificatiesysteem.
{% endhint %}

<table data-view="cards"><thead><tr><th></th><th align="center"></th><th></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td></td><td align="center">balcony-garden</td><td></td><td><a href="/files/MXWkXp0YWzllzx6culXm">/files/MXWkXp0YWzllzx6culXm</a></td></tr><tr><td></td><td align="center">street</td><td></td><td><a href="/files/VdEYz435dUwAhi92ySRn">/files/VdEYz435dUwAhi92ySRn</a></td></tr><tr><td></td><td align="center">view</td><td></td><td><a href="/files/0Qx9sfXQihAq2cd3puMY">/files/0Qx9sfXQihAq2cd3puMY</a></td></tr><tr><td></td><td align="center">no_building</td><td></td><td><a href="/files/tuFhFQlkyjgn7jlB8Vsr">/files/tuFhFQlkyjgn7jlB8Vsr</a></td></tr><tr><td></td><td align="center">facade</td><td></td><td><a href="/files/SpXpnthDE0v1GneqouZp">/files/SpXpnthDE0v1GneqouZp</a></td></tr><tr><td></td><td align="center">building_part</td><td></td><td><a href="/files/y9N8vaNTDvSrzcMLyoFL">/files/y9N8vaNTDvSrzcMLyoFL</a></td></tr></tbody></table>

###

### Voorbeeld van scèneclassificatie met voorspelling

<figure><img src="/files/cBLsgwnO1Rsp0KDGk4aQ" alt=""><figcaption><p>De voorspelde beeldklasse is 'outdoor' met een betrouwbaarheid van 100%, de eerste scèneklasse is 'balcony-garden' met een betrouwbaarheid van 36,92% en de tweede scèneklasse is 'facade' met een betrouwbaarheid van 59,15%.</p></figcaption></figure>

##

## Kamers Classificatie

Zodra de invoerafbeelding is gecategoriseerd als 'indoor', gaat ons geavanceerde systeem verder met het identificeren van het specifieke type kamer dat in de afbeelding wordt weergegeven. Dit wordt bereikt door ons geavanceerde kamerclassificatiesysteem. Het resultaat is niet alleen de geïdentificeerde kamerklasse, maar ook een percentage dat het betrouwbaarheidsniveau van deze voorspelling aangeeft.

Er is echter een intrigerende wending! Als de voorspelde kamerklasse 'other room' is, gaat ons systeem dieper in met een extra classificatielaag. De uitkomst van deze secundaire analyse is de identificatie van een subklasse, vergezeld van een betrouwbaarheidspercentage.

Om een duidelijker inzicht te geven, hebben we hieronder potentiële kamerklassen of subklassen met bijbehorende voorbeeldafbeeldingen opgenomen. Dit toont het ingewikkelde vermogen van ons systeem aan om verschillende kamertypes met opmerkelijke precisie te herkennen en te classificeren.

{% hint style="warning" %}
Let op: de kamersubklasse wordt uitsluitend onthuld als de geïdentificeerde kamerklasse 'other\_room' is. Deze specificiteit is een integraal onderdeel van het geavanceerde classificatieproces van ons systeem.
{% endhint %}

<table data-view="cards"><thead><tr><th align="center"></th><th align="center"></th><th align="center"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td align="center"></td><td align="center">living_room</td><td align="center"></td><td><a href="/files/meyRuXAIrEyZruEVB6Xi">/files/meyRuXAIrEyZruEVB6Xi</a></td></tr><tr><td align="center"></td><td align="center">kitchen</td><td align="center"></td><td><a href="/files/sKAlcU0aZp0Ml3drGiJN">/files/sKAlcU0aZp0Ml3drGiJN</a></td></tr><tr><td align="center"></td><td align="center">bathroom</td><td align="center"></td><td><a href="/files/NSAwiznRkYfwtGnlBMyr">/files/NSAwiznRkYfwtGnlBMyr</a></td></tr><tr><td align="center"></td><td align="center">bedroom</td><td align="center"></td><td><a href="/files/rC2cEtnqIWfE4IObPEzk">/files/rC2cEtnqIWfE4IObPEzk</a></td></tr><tr><td align="center"></td><td align="center">other_room</td><td align="center">hall_corridor</td><td><a href="/files/rdMSScM8XCDG3cRjBnCN">/files/rdMSScM8XCDG3cRjBnCN</a></td></tr><tr><td align="center"></td><td align="center">other_room</td><td align="center">room (empty room)</td><td><a href="/files/qdYJO77UAQ3mmANpR6g7">/files/qdYJO77UAQ3mmANpR6g7</a></td></tr><tr><td align="center"></td><td align="center">other_room</td><td align="center">scullery</td><td><a href="/files/n1Q515VvEQGFvooLeD7n">/files/n1Q515VvEQGFvooLeD7n</a></td></tr></tbody></table>

### Voorbeeld van voorspellingsruimteclassificatie

<figure><img src="/files/363QVvKeOvMXCBVuzyWB" alt="" width="375"><figcaption><p>De voorspelde beeldklasse is 'indoor' met een betrouwbaarheid van 99,9%, de kamerklasse is 'other_room' met een betrouwbaarheid van 96,18% en de subklasse van de kamer is 'hall_corridor' met een betrouwbaarheid van 87,85%.</p></figcaption></figure>


# Authenticatie, invoer en resultaat

{% hint style="info" %} <mark style="color:$danger;">**Verouderd**</mark>\ <mark style="color:$danger;">Deze API is verouderd en wordt niet langer aanbevolen voor nieuwe implementaties. Bestaande integraties blijven mogelijk werken. Neem contact op met Altum AI voor advies over de aanbevolen configuratie.</mark>
{% endhint %}

## IMG

<mark style="color:green;">`POST`</mark> `https://api.altum.ai/labelling/img`

Met dit eindpunt kunt u een afbeelding uploaden om te labelen.

#### Headers

| Name                                        | Type   | Description                                                                                              |
| ------------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------- |
| x-api-key<mark style="color:red;">\*</mark> | string | Unieke API-sleutel van Altum. Maak er een op [https://platform.altum.ai](https://platform.altum.ai/auth) |
| Content-Type                                | string | multipath/form-data                                                                                      |

#### Request Body

| Name                                    | Type   | Description                                                                                                |
| --------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------- |
| image<mark style="color:red;">\*</mark> | object | De afbeelding die in de aanvraag moet worden verzonden, moet als multipath/form-data-type worden geüpload. |

{% tabs %}
{% tab title="422: Unprocessable Entity Verkeerd invoerformaat" %}

```
{
	"detail": [
		{
			"loc": [
				"body",
				"image"
			],
			"msg": "field required",
			"type": "value_error.missing"
		}
	]
}
```

{% endtab %}

{% tab title="401: Unauthorized Geen toegang" %}

```
{
    'Output': 'Please use https://api.altum.ai or visit https://mopsus.altum.ai to make your request.'
}
```

{% endtab %}

{% tab title="500: Internal Server Error Service is niet beschikbaar en/of niet beschikbaar" %}

```
{
	"message": "Internal server error"
}
```

{% endtab %}

{% tab title="403: Forbidden Verboden" %}

```
{
	"message": "Missing Authentication Token"
}
```

{% endtab %}

{% tab title="200: OK Succesvolle reactie" %}

<pre><code>{
	"Output": {
		"Image_Class": "outdoor",
		"ConfidencePercent_Image_Class": "99.99",
		"Scene_Class1": "facade",
<strong>		"ConfidencePercent_Scene_Class1": "93.89"
</strong>	}
}

OR

{
	"Output": {
		"Image_Class": "outdoor",
		"ConfidencePercent_Image_Class": "100.0",
		"Scene_Class1": "balcony-garden",
		"ConfidencePercent_Scene_Class1": "36.92",
		"Scene_Class2": "facade",
		"ConfidencePercent_Scene_Class2": "59.15"
	}
}

OR

{
	"Output": {
		"Image_Class": "indoor",
		"ConfidencePercent_Image_Class": "100.0",
		"Room_Class": "bedroom",
		"ConfidencePercent_Room_Class": "99.22"
	}
}

OR

{
	"Output": {
		"Image_Class": "indoor",
		"ConfidencePercent_Image_Class": "99.9",
		"Room_Class": "other_room",
		"ConfidencePercent_Room_Class": "96.18",
		"Room_Subclass": "hall_corridor",
		"ConfidencePercent_Room_Subclass": "87.85"
	}
}
</code></pre>

{% endtab %}

{% tab title="400: Bad Request Mislukte reactie" %}

```
{
  "detail": "Please upload an image with one of the following formats: .jpg, .jpeg or .png"
}
```

{% endtab %}
{% endtabs %}

## URL

<mark style="color:green;">`POST`</mark> `https://api.altum.ai/labelling/url`

In plaats van het afbeeldingsbestand te uploaden, kunt u met dit eindpunt in plaats daarvan de openbare URL verzenden van de afbeelding die u wilt labelen.

#### Headers

| Name                                        | Type   | Description                                                              |
| ------------------------------------------- | ------ | ------------------------------------------------------------------------ |
| Content-Type                                | string | application/json                                                         |
| x-api-key<mark style="color:red;">\*</mark> | string | API-sleutel van Altum. Maak er een via Mopsus(<https://mopsus.altum.ai>) |

#### Request Body

| Name                                  | Type   | Description                                                           |
| ------------------------------------- | ------ | --------------------------------------------------------------------- |
| url<mark style="color:red;">\*</mark> | string | De openbare URL van de afbeelding die u in het verzoek wilt verzenden |

{% tabs %}
{% tab title="422: Unprocessable Entity Verkeerd invoerformaat" %}

```
{
	"detail": [
		{
			"loc": [
				"body",
				"image"
			],
			"msg": "field required",
			"type": "value_error.missing"
		}
	]
}
```

{% endtab %}

{% tab title="500: Internal Server Error Service is niet beschikbaar en/of niet beschikbaar" %}

```
{
	"message": "Internal server error"
}
```

{% endtab %}

{% tab title="403: Forbidden Verboden" %}

```
{
	"message": "Missing Authentication Token"
}
```

{% endtab %}

{% tab title="401: Unauthorized Geen toegang" %}

```
{
    'Output': 'Please use https://api.altum.ai or visit https://mopsus.altum.ai to make your request.'
}
```

{% endtab %}

{% tab title="200: OK Succesvolle reactie" %}

```
{
	"Output": {
		"Image_Class": "outdoor",
		"ConfidencePercent_Image_Class": "99.99",
		"Scene_Class1": "facade",
		"ConfidencePercent_Scene_Class1": "93.89"
	}
}

OR

{
	"Output": {
		"Image_Class": "outdoor",
		"ConfidencePercent_Image_Class": "100.0",
		"Scene_Class1": "balcony-garden",
		"ConfidencePercent_Scene_Class1": "36.92",
		"Scene_Class2": "facade",
		"ConfidencePercent_Scene_Class2": "59.15"
	}
}

OR

{
	"Output": {
		"Image_Class": "indoor",
		"ConfidencePercent_Image_Class": "100.0",
		"Room_Class": "bedroom",
		"ConfidencePercent_Room_Class": "99.22"
	}
}

OR

{
	"Output": {
		"Image_Class": "indoor",
		"ConfidencePercent_Image_Class": "99.9",
		"Room_Class": "other_room",
		"ConfidencePercent_Room_Class": "96.18",
		"Room_Subclass": "hall_corridor",
		"ConfidencePercent_Room_Subclass": "87.85"
	}
}
```

{% endtab %}

{% tab title="400: Bad Request Mislukte reactie" %}

```
{
  "detail": "The URL is not valid"
}
```

{% endtab %}
{% endtabs %}

## Request body

#### Voorbeeld verzoek

```
{"url":"https://cloud.funda.nl/valentina_media/149/998/977_1440x960.jpg"}
```


# API-sleutel Informatie

Begrijpen en Verkrijgen van jouw API-sleutel

Een API-sleutel is een unieke identificatiecode die je veilige toegang biedt tot de API's van Altum AI. Het is verplicht om deze sleutel in de `x-api-key` header van alle API-verzoeken op te nemen om een juiste authenticatie te garanderen.

**Hoe verkrijg je jouw API-sleutel?**\
Je kunt je API-sleutel op twee manieren verkrijgen:

1. **Via het Platform:** Genereer jouw API-sleutel direct op het Altum AI-platform.
2. **Door een Abonnement:** Een API-sleutel wordt verstrekt wanneer je je abonneert op het Startup- of Unlimited-plan.

**Waar gebruik je jouw API-sleutel?**\
Voeg de API-sleutel toe aan de `x-api-key` header van elk API-verzoek. Zonder een geldige sleutel wordt je verzoek niet geauthenticeerd.

**Voorbeeld Header:**

```plaintext
x-api-key: JOUW_UNIEKE_API_SLEUTEL
```

**Beveiligingsnotitie**\
Houd jouw API-sleutel vertrouwelijk om ongeautoriseerde toegang tot je account te voorkomen.


# Resultaat interpretatie

Een uitleg en interpretatie van elke functie die in het API-antwoord wordt weergegeven.

{% hint style="info" %} <mark style="color:$danger;">**Verouderd**</mark>\ <mark style="color:$danger;">Deze API is verouderd en wordt niet langer aanbevolen voor nieuwe implementaties. Bestaande integraties blijven mogelijk werken. Neem contact op met Altum AI voor advies over de aanbevolen configuratie.</mark>
{% endhint %}

<table><thead><tr><th width="297">Feature</th><th>Voorbeeld</th><th>Uitleg</th></tr></thead><tbody><tr><td>Image_Class</td><td>indoor</td><td>De basisklasse van de afbeelding, die de verdere categorisering bepaalt.</td></tr><tr><td>ConfidencePercent_Image_Class</td><td>99.2</td><td>Hoeveel vertrouwen (in%) het model heeft dat de afbeelding tot de voorspelde afbeeldingsklasse behoort</td></tr><tr><td>Room_Class</td><td>other_room</td><td>De kamer die in de afbeelding wordt geïdentificeerd, als de afbeelding 'indoor' is. Als de klasse 'other_room' is, vindt er een verdere categorisering plaats.</td></tr><tr><td>ConfidencePercent_Room_Class</td><td>96.1</td><td>Hoeveel zekerheid (in%) het model heeft dat de afbeelding tot de voorspelde kamerklasse behoort</td></tr><tr><td>Room_Subclass</td><td>hall_corridor</td><td>De verdere categorisering is op de afbeelding toegepast om de subklasse van de kamer te vinden, als de hoofdklasse van de kamer 'other_room' is.</td></tr><tr><td>ConfidencePercent_Room_Subclass</td><td>82.16</td><td>Hoeveel zekerheid (in%) het model heeft dat de afbeelding tot de voorspelde kamersubklasse behoort</td></tr><tr><td>Scene_Class1</td><td>facade</td><td>De eerste grote scèneklasse die in de afbeelding werd geïdentificeerd, beschrijft de buitenscène van het huis.</td></tr><tr><td>ConfidencePercent_Scene_Class1</td><td>70.5</td><td>Hoeveel vertrouwen (in%) het model heeft dat de afbeelding tot de voorspelde scèneklasse behoort</td></tr><tr><td>Scene_Class2</td><td>balcony-garden</td><td>De tweede grote scèneklasse werd in de afbeelding geïdentificeerd en beschrijft de buitenscène van het huis. Het wordt geïdentificeerd als het vertrouwen voor de 1e scèneklasse onder de 70% valt</td></tr><tr><td>ConfidencePercent_Scene_Class2</td><td>75.2</td><td>Hoeveel vertrouwen (in %) het model heeft dat de afbeelding ook tot een tweede scèneklasse behoort</td></tr></tbody></table>


# Interactieve woningreferentie API

De interactieve referentie-API geeft de taxateur volledige flexibiliteit bij het vinden van de juiste referentieobjecten op basis van meerdere variabelen, vergelijkingen en strikte functies.

## Introductie

De Interactive Reference API is ontworpen met de precisiebehoeften van taxateurs in gedachten en biedt een dynamische en flexibele aanpak voor het identificeren van de meest relevante referentieobjecten voor de taxatie van onroerend goed. Deze krachtige tool maakt het ophalen van relevante transactiegegevens mogelijk, waardoor taxateurs vergelijkbare gegevens kunnen identificeren die nauw aansluiten bij meerdere variabelen en strenge criteria van het doelobject.

**De belangrijkste kenmerken van de Interactieve Referentie API zijn onder meer:**

* Toegang tot een samengestelde lijst van 30 relevante transacties die kenmerken delen met het doelobject, wat een solide basis biedt voor vergelijkende analyse.
* Geavanceerde filtermogelijkheden waarmee taxateurs hun zoekopdracht kunnen verfijnen op basis van een breed scala aan variabelen, waardoor de referentieobjecten echt vergelijkbaar zijn.
* Gebruik van strikte functies om een hoog niveau van relevantie en nauwkeurigheid te handhaven bij de selectie van vergelijkbare transacties.

Deze API is van onschatbare waarde voor taxateurs die de nauwkeurigheid en betrouwbaarheid van hun vastgoedtaxaties willen verbeteren met datagestuurde ondersteuning.

{% hint style="info" %}

### Datumlimiet

In order to give preference to more recently transacted properties it is possible to add the optional input "date\_limit" to search from 6 up to 60 months in the database for finding reference objects.
{% endhint %}


# Changelog

A description of the changes per deployed version.

#### 1.07 - 30-04-2025

* Nieuwe binaire invoer toegevoegd: include\_listings.
* Bron toegevoegd als uitvoer in de referentie-uitvoer om te laten zien uit welke bron de referentie is opgehaald.

#### 1.06 - 23-12-2024

* Twee nieuwe geaccepteerde woningtypes toegevoegd: Eengezinswoning & Meergezinswoning.&#x20;
* De invoer voor houseaddition accepteert zowel hoofdletters als kleine letters.

#### 1.05 - 17-10-2024

* Er is een probleem opgelost met betrekking tot het buitenoppervlak en de volumewaarden die 0, 1 of zeer hoog waren.

#### 1.04 - 26-7-2022

* Verwijderd de time\_for\_sale van invoer en uitvoer.&#x20;
* Wanneer één of meer van de strict\_street, strict\_buurt, strict\_wijk, of strict\_energylabel invoeren zijn ingeschakeld, dan negeren we de garantie van de 3 referentieobjecten, en we geven terug wat gevonden is.

#### 1.03 - 6-6-2022

* When the “strict\_street” input is 1, then we search for the same street and the same city.
* Fixed some Elasticsearch queries.

#### 1.02 - 18-10-2022

* Add "housetype\_to\_search" as a list input, which defines for which house types the algorithm will search for ref. objects. The possible inputs are: \['Vrijstaande woning', 'Vrijstaande doelgroepwoning', 'Vrijstaande recreatiewoning', '2 onder 1 kap woning', 'Geschakelde 2 onder 1 kapwoning', 'Geschakelde woning', 'Tussen/rijwoning', 'Tussen/rij doelgroepwoning', 'Hoekwoning', 'Eindwoning', 'Galerijflat', 'Portiekflat', 'Corridorflat', 'Maisonnette', 'Benedenwoning', 'Bovenwoning', 'Portiekwoning']. If this input is provided, then in the ComparableHouseType output we display the given inputs by the user (as a list) and not 0, 1 or 2. If the algorithm is not able to find at least 3 ref. objects, then this input is ignored and the "comparable\_housetype" goes to 0.
* Added new possible "housetype" inputs. The acceptable inputs are the same as above.
* Change the default search weights. Inner: 0.2, Buildyear: 0.9, Transactiondate: 0.2, Distance: 0.5.
* If the user does not give an acceptable "valuationdate" as input, we provide a 422 error instead of 400.
* If the user does not give an acceptable "housetype\_to\_search" as input, we provide a 422 error.
* Enhanced the house-type matching for the comparable searches
* Add a new possible input (3) to "comparable\_innersurfacearea" and to "comparable\_buildyear", where the algorithm searches in 30% deviation and in 30 years window respectively.

#### 1.01 - 2-6-2022

* Added date\_limit as input, which defines how many months back the user is able to search for reference houses (min:6, max:60). Default = 60
* Guarantee a minimum of three reference objects as output by overriding user's input with defaults based on the following order of priority until a minimum of three reference objects are found:
  * Boolean (strict) inputs&#x20;
    * energylabel = 0&#x20;
    * wijk = 0&#x20;
    * buurt = 0&#x20;
    * street = 0
  * Restriction of date\_limit = 60
  * Comparables inputs
    * Comparable distance = 0
    * Inner surface area = 0
    * Build year = 0&#x20;
    * House type = 0
* Added adjusted inputs (9) as output to the API to match the used inputs versus the one provided to see which of these have been used to guarantee the minimum of three reference objects as output


# Authenticatie, invoer en resultaat

## Interactive Reference API

<mark style="color:green;">`POST`</mark> `https://api.altum.ai/interactive-reference`

Post het adres en optionele parameters

#### Headers

| Name                                        | Type   | Description                                                                                              |
| ------------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------- |
| x-api-key<mark style="color:red;">\*</mark> | String | Unieke API-sleutel van Altum. Maak er een op [https://platform.altum.ai](https://platform.altum.ai/auth) |
| Content-Type                                | String | application/json                                                                                         |

#### Request Body

| Name                                          | Type    | Description                                                                                                                             |
| --------------------------------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| postcode<mark style="color:red;">\*</mark>    | String  | 1234AB                                                                                                                                  |
| housenumber<mark style="color:red;">\*</mark> | Number  | 1                                                                                                                                       |
| houseaddition                                 | String  | A                                                                                                                                       |
| valuationdate                                 | String  | Voer in als JJJJMMDD, de standaardwaarde is VANDAAG. Bijv.: 20211230                                                                    |
| innersurfacearea                              | Number  | 160                                                                                                                                     |
| buildyear                                     | Number  | 2001                                                                                                                                    |
| housetype                                     | String  | Zie [pagina](/taxeren-en-waarderen/interactieve-woningreferentie-api/woningtypes).                                                      |
| energylabel                                   | String  | A                                                                                                                                       |
| url                                           | String  | De gevel-URL-afbeelding van het doelhuis                                                                                                |
| reference\_number                             | Number  | Minimaal 3 tot 30                                                                                                                       |
| strict\_street                                | Boolean | Strenge zoektocht op straatniveau                                                                                                       |
| strict\_buurt                                 | Boolean | Streng zoeken op buurtniveau                                                                                                            |
| strict\_wijk                                  | Boolean | Strikt zoeken op wijkniveau                                                                                                             |
| strict\_energylabel                           | Boolean | Streng zoeken naar vergelijkbare woningen met dit energielabel                                                                          |
| comparable\_housetype                         | Number  | 0,1,2. Standaard: 0                                                                                                                     |
| comparable\_innersurfacearea                  | Number  | 0,1,2,3. Standaard: 0                                                                                                                   |
| comparable\_buildyear                         | Number  | 0,1,2,3. Standaard: 0                                                                                                                   |
| comparable\_distance                          | Number  | 0,1,2. Standaard: 0                                                                                                                     |
| weight\_innersurfacearea                      | Number  | Tussen 0 en 1. Standaard: 0.2                                                                                                           |
| weight\_buildyear                             | Number  | Tussen 0 en 1. Standaard: 0.9                                                                                                           |
| weight\_transactiondate                       | Number  | Tussen 0 en 1. Standaard: 0.2                                                                                                           |
| weight\_distance                              | Number  | Tussen 0 en 1. Standaard: 0.5                                                                                                           |
| weight\_visualsimilarity                      | Number  | Tussen 0 en 1. Standaard: 0.5                                                                                                           |
| visual\_similarity                            | Boolean | <p>0: indien geïnteresseerd in visuele gelijkenis </p><p>1: als je niet geïnteresseerd bent in visuele gelijkenis</p>                   |
| date\_limit                                   | Number  | Tussen 6 en 60 maanden zoekgeschiedenis van transacties. Standaard: 60                                                                  |
| housetype\_to\_search                         | List    | Functie om alleen te zoeken op bepaalde woningtypes, zie [pagina](/taxeren-en-waarderen/interactieve-woningreferentie-api/woningtypes). |
| include\_listings                             | Boolean | <p>0: indien alleen Kadasterreferenties de voorkeur hebben<br>1: indien zowel vermelding als Kadasterreferenties de voorkeur hebben</p> |

{% tabs %}
{% tab title="200: OK Succesvolle reactie" %}

```
{
	"GivenHouse": {
		"PostCode": "6942HE",
		"HouseNumber": 56,
		"HouseAddition": null,
		"ValuationDate": 20231125,
		"InnerSurfaceArea": 140,
		"OuterSurfaceArea": 360,
		"HouseType": "Vrijstaande woning",
		"BuildYear": 1960,
		"EnergyLabel": {
			"DefinitiveEnergyLabel": "E",
			"DefinitiveType": "NEN7120",
			"DefinitiveValidity": "2030-10"
		},
		"Image": "https://cloud.funda.nl/valentina_media/165/982/890_720x480.jpg"
	},
	"Inputs": {
		"StrictStreet": 0,
		"StrictBuurt": 0,
		"StrictWijk": 0,
		"StrictEnergyLabel": 0,
		"ComparableHouseType": 0,
		"ComparableInnerSurfaceArea": 0,
		"ComparableBuildYear": 0,
		"ComparableDistance": 0,
		"DateLimit": 60
	},
	"ReferenceData": {
		"ReferencePriceMean": "350000-375000",
		"ReferenceHouses": [
			{
				"PostCode": "6566XN",
				"HouseNumber": 2,
				"HouseAddition": null,
				"Street": "Burgemeester Reijmersstraat",
				"BuurtCode": "BU19450900",
				"WijkCode": "WK194509",
				"City": "Millingen aan de Rijn",
				"HouseType": "Geschakelde woning",
				"BuildYear": 1955,
				"InnerSurfaceArea": 171,
				"OuterSurfaceArea": 305,
				"Volume": 598.0,
				"DefinitiveEnergyLabel": "A",
				"DefinitiveType": "NEN7120",
				"DefinitiveValidity": "2027-09",
				"Longitude": 6.051181765879782,
				"Latitude": 51.861647149194276,
				"Transactiondate": 201909,
				"Image": "https://cloud.funda.nl/valentina_media/085/383/417_1440.jpg",
				"TransactionPrice": "275000-300000",
				"IndexedTransactionPrice": "400000-450000",
				"PriceIndex": 128.5,
				"Distance": 10616,
				"VisualSimilarityScore": 84.178,
				"Weight": 1.0,
				"Source": "Kadaster"
			},
			{
				"PostCode": "6566AA",
				"HouseNumber": 9,
				"HouseAddition": null,
				"Street": "Burgemeester Hermsenstraat",
				"BuurtCode": "BU19450900",
				"WijkCode": "WK194509",
				"City": "Millingen aan de Rijn",
				"HouseType": "Hoekwoning",
				"BuildYear": 1971,
				"InnerSurfaceArea": 110,
				"OuterSurfaceArea": 269,
				"Volume": 385.0,
				"DefinitiveEnergyLabel": null,
				"DefinitiveType": null,
				"DefinitiveValidity": null,
				"Longitude": 6.05011576095955,
				"Latitude": 51.86221046589032,
				"Transactiondate": 202007,
				"Image": "https://cloud.funda.nl/valentina_media/127/400/732_1440x960.jpg",
				"TransactionPrice": "225000-250000",
				"IndexedTransactionPrice": "275000-300000",
				"PriceIndex": 139.2,
				"Distance": 10616,
				"VisualSimilarityScore": 82.376,
				"Weight": 0.978,
				"Source": "Kadaster"
			},
			{
				"PostCode": "6566ZT",
				"HouseNumber": 7,
				"HouseAddition": null,
				"Street": "Dennenstraat",
				"BuurtCode": "BU19450900",
				"WijkCode": "WK194509",
				"City": "Millingen aan de Rijn",
				"HouseType": "Hoekwoning",
				"BuildYear": 1979,
				"InnerSurfaceArea": 84,
				"OuterSurfaceArea": 203,
				"Volume": 294.0,
				"DefinitiveEnergyLabel": "C",
				"DefinitiveType": "NEN7120",
				"DefinitiveValidity": "2028-11",
				"Longitude": 6.0548413275038975,
				"Latitude": 51.859765755682105,
				"Transactiondate": 201903,
				"Image": "https://cloud.funda.nl/valentina_media/086/290/288_1440x960.jpg",
				"TransactionPrice": "150000-175000",
				"IndexedTransactionPrice": "250000-275000",
				"PriceIndex": 124.9,
				"Distance": 10615,
				"VisualSimilarityScore": 75.15,
				"Weight": 0.891,
				"Source": "Kadaster"
			},
			{
				"PostCode": "6942HS",
				"HouseNumber": 16,
				"HouseAddition": null,
				"Street": "Liemersweg",
				"BuurtCode": "BU19550203",
				"WijkCode": "WK195502",
				"City": "Didam",
				"HouseType": "2 onder 1 kap woning",
				"BuildYear": 1957,
				"InnerSurfaceArea": 119,
				"OuterSurfaceArea": 540,
				"Volume": 409.0,
				"DefinitiveEnergyLabel": "D",
				"DefinitiveType": "NEN7120",
				"DefinitiveValidity": "2030-11",
				"Longitude": 6.152381715356643,
				"Latitude": 51.933182786208704,
				"Transactiondate": 202104,
				"Image": null,
				"TransactionPrice": "250000-275000",
				"IndexedTransactionPrice": "300000-325000",
				"PriceIndex": 155.4,
				"Distance": 84,
				"VisualSimilarityScore": null,
				"Weight": 0.0,
				"Source": "Kadaster"
			},
			{
				"PostCode": "6566AA",
				"HouseNumber": 5,
				"HouseAddition": null,
				"Street": "Burgemeester Hermsenstraat",
				"BuurtCode": "BU19450900",
				"WijkCode": "WK194509",
				"City": "Millingen aan de Rijn",
				"HouseType": "Tussenwoning",
				"BuildYear": 1971,
				"InnerSurfaceArea": 103,
				"OuterSurfaceArea": 149,
				"Volume": 363.0,
				"DefinitiveEnergyLabel": null,
				"DefinitiveType": null,
				"DefinitiveValidity": null,
				"Longitude": 6.050000952095453,
				"Latitude": 51.862300999960034,
				"Transactiondate": 201910,
				"Image": null,
				"TransactionPrice": "125000-150000",
				"IndexedTransactionPrice": "200000-225000",
				"PriceIndex": 130.3,
				"Distance": 10614,
				"VisualSimilarityScore": null,
				"Weight": 0.0,
				"Source": "Kadaster"
			},
			{
				"PostCode": "6566XD",
				"HouseNumber": 17,
				"HouseAddition": null,
				"Street": "Wethouder Koenenstraat",
				"BuurtCode": "BU19450900",
				"WijkCode": "WK194509",
				"City": "Millingen aan de Rijn",
				"HouseType": "2 onder 1 kap woning",
				"BuildYear": 1948,
				"InnerSurfaceArea": 182,
				"OuterSurfaceArea": 427,
				"Volume": null,
				"DefinitiveEnergyLabel": null,
				"DefinitiveType": null,
				"DefinitiveValidity": null,
				"Longitude": 6.050890939815937,
				"Latitude": 51.86180598611541,
				"Transactiondate": 201906,
				"Image": null,
				"TransactionPrice": "175000-200000",
				"IndexedTransactionPrice": "250000-275000",
				"PriceIndex": 126.4,
				"Distance": 10615,
				"VisualSimilarityScore": null,
				"Weight": 0.0,
				"Source": "Kadaster"
			},
			{
				"PostCode": "7009CR",
				"HouseNumber": 30,
				"HouseAddition": null,
				"Street": "Bloemersstraat",
				"BuurtCode": "BU02220904",
				"WijkCode": "WK022209",
				"City": "Doetinchem",
				"HouseType": "Hoekwoning",
				"BuildYear": 1950,
				"InnerSurfaceArea": 128,
				"OuterSurfaceArea": 395,
				"Volume": 448.0,
				"DefinitiveEnergyLabel": "C",
				"DefinitiveType": "NEN7120",
				"DefinitiveValidity": "2030-02",
				"Longitude": 6.2905459609860666,
				"Latitude": 51.97695144905982,
				"Transactiondate": 202008,
				"Image": null,
				"TransactionPrice": "300000-325000",
				"IndexedTransactionPrice": "400000-450000",
				"PriceIndex": 139.2,
				"Distance": 10616,
				"VisualSimilarityScore": null,
				"Weight": 0.0,
				"Source": "Kadaster"
			},
			{
				"PostCode": "6566EV",
				"HouseNumber": 140,
				"HouseAddition": null,
				"Street": "Heerbaan",
				"BuurtCode": "BU19450900",
				"WijkCode": "WK194509",
				"City": "Millingen aan de Rijn",
				"HouseType": "Vrijstaande woning",
				"BuildYear": 1976,
				"InnerSurfaceArea": 250,
				"OuterSurfaceArea": 843,
				"Volume": null,
				"DefinitiveEnergyLabel": "B",
				"DefinitiveType": "NEN7120",
				"DefinitiveValidity": "2032-07",
				"Longitude": 6.04799884793402,
				"Latitude": 51.86338192770656,
				"Transactiondate": 202306,
				"Image": null,
				"TransactionPrice": "600000-650000",
				"IndexedTransactionPrice": "600000-650000",
				"PriceIndex": 182.3,
				"Distance": 10616,
				"VisualSimilarityScore": null,
				"Weight": 0.0,
				"Source": "Kadaster"
			},
			{
				"PostCode": "6566XA",
				"HouseNumber": 3,
				"HouseAddition": null,
				"Street": "Acaciahof",
				"BuurtCode": "BU19450900",
				"WijkCode": "WK194509",
				"City": "Millingen aan de Rijn",
				"HouseType": "Tussenwoning",
				"BuildYear": 1979,
				"InnerSurfaceArea": 106,
				"OuterSurfaceArea": 165,
				"Volume": 362.0,
				"DefinitiveEnergyLabel": "D",
				"DefinitiveType": "NEN7120",
				"DefinitiveValidity": "2028-11",
				"Longitude": 6.055114592952519,
				"Latitude": 51.85959341801129,
				"Transactiondate": 201811,
				"Image": null,
				"TransactionPrice": "150000-175000",
				"IndexedTransactionPrice": "225000-250000",
				"PriceIndex": 123.1,
				"Distance": 10618,
				"VisualSimilarityScore": null,
				"Weight": 0.0,
				"Source": "Kadaster"
			},
			{
				"PostCode": "7009CC",
				"HouseNumber": 52,
				"HouseAddition": null,
				"Street": "Zandstraat",
				"BuurtCode": "BU02220903",
				"WijkCode": "WK022209",
				"City": "Doetinchem",
				"HouseType": "Tussenwoning",
				"BuildYear": 1960,
				"InnerSurfaceArea": 112,
				"OuterSurfaceArea": 182,
				"Volume": 352.0,
				"DefinitiveEnergyLabel": "E",
				"DefinitiveType": "NEN7120",
				"DefinitiveValidity": "2030-10",
				"Longitude": 6.285970438505862,
				"Latitude": 51.98227174501624,
				"Transactiondate": 202012,
				"Image": null,
				"TransactionPrice": "175000-200000",
				"IndexedTransactionPrice": "225000-250000",
				"PriceIndex": 142.7,
				"Distance": 10623,
				"VisualSimilarityScore": null,
				"Weight": 0.0,
				"Source": "Kadaster"
			}
		]
	}
}
```

{% endtab %}

{% tab title="422: Unprocessable Entity Verkeerd invoerformaat" %}

```
{
	"detail": [
		{
			"loc": [
				"body",
				43
			],
			"msg": "Expecting value: line 3 column 18 (char 43)",
			"type": "value_error.jsondecode",
			"ctx": {
				"msg": "Expecting value",
				"doc": "{\n  \"postcode\": \"2201PZ\",\n  \"housenumber\": a,\n  \"valuationdate\": \"20121001\"\n}",
				"pos": 43,
				"lineno": 3,
				"colno": 18
			}
		}
	]
}
```

{% endtab %}

{% tab title="400: Bad Request Mislukte reactie" %}

```json
{
    'Output': 'The given house type is unsupported.'
}

{
    'Output': 'The energy label of the given house is unknown. Please fill the energylabel input.'
}

{
    'Output': 'We do not have an image for the given house. Please fill the url input.'
}

{
    'Output': 'The given house address not found in database, the combination of Post Code, House Number and House Addition does not exist.'
}
```

{% endtab %}

{% tab title="401: Unauthorized Geen toegang" %}

```
{
    'Output': 'Please use https://api.altum.ai or visit https://mopsus.altum.ai to make your request.'
}
```

{% endtab %}

{% tab title="403: Forbidden Verboden" %}

```
{
	"message": "Missing Authentication Token"
}
```

{% endtab %}

{% tab title="500: Internal Server Error Service is niet beschikbaar en/of niet beschikbaar" %}

```
{
	"message": "Internal server error"
}
```

{% endtab %}
{% endtabs %}

## Request body

#### Voorbeeld verzoek

```
{
  "postcode": "6631KJ",
  "housenumber": 11,
  "houseaddition": "",
  "buildyear": null,
  "innersurfacearea": null,
  "housetype": null,
  "reference_number": 30,
  "strict_street": 1,
  "strict_buurt": 0,
  "strict_wijk": 0,
  "strict_energylabel": 0,
  "date_limit": 24,
  "comparable_housetype": 1,
  "comparable_innersurfacearea": 1,
  "comparable_buildyear": 2,
  "comparable_distance": 0,
  "weight_innersurfacearea": 0.3,
  "weight_buildyear": 0.3,
  "weight_transactiondate": 0.3,
  "weight_distance": 0.3,
  "weight_visualsimilarity": 0.6,
  "housetype_to_search": []
}
```


# API-sleutel Informatie

Begrijpen en Verkrijgen van jouw API-sleutel

Een API-sleutel is een unieke identificatiecode die je veilige toegang biedt tot de API's van Altum AI. Het is verplicht om deze sleutel in de `x-api-key` header van alle API-verzoeken op te nemen om een juiste authenticatie te garanderen.

**Hoe verkrijg je jouw API-sleutel?**\
Je kunt je API-sleutel op twee manieren verkrijgen:

1. **Via het Platform:** Genereer jouw API-sleutel direct op het Altum AI-platform.
2. **Door een Abonnement:** Een API-sleutel wordt verstrekt wanneer je je abonneert op het Startup- of Unlimited-plan.

**Waar gebruik je jouw API-sleutel?**\
Voeg de API-sleutel toe aan de `x-api-key` header van elk API-verzoek. Zonder een geldige sleutel wordt je verzoek niet geauthenticeerd.

**Voorbeeld Header:**

```plaintext
x-api-key: JOUW_UNIEKE_API_SLEUTEL
```

**Beveiligingsnotitie**\
Houd jouw API-sleutel vertrouwelijk om ongeautoriseerde toegang tot je account te voorkomen.


# Visueel vergelijkbare woningen zoeken

Niet alle kenmerken van een eigenschap zijn gevangen in tabelgegevens. Voor het vinden van referentieobjecten ondersteunen we nu visueel zoeken dat als gewicht kan worden toegevoegd

<figure><img src="/files/seqIo2WnK9rEVVveQTP4" alt=""><figcaption><p>Visual similar properties</p></figcaption></figure>

### Hoe te gebruiken

* Verstuur "visual\_similarity": 1 om de functie te activeren.
* Voeg een aangepast gewicht toe van 0,1 tot 1 om de impact te bepalen van het sorteren van de resultaten met standaard 0,5: "weight\_visualsimilarity": 0,5.
* Voer een afbeelding in voor het doelobject via bijvoorbeeld "url": "<https://house.image/facade-house.jpg>".
* Pas optioneel de andere gewichten aan om de sortering van visueel vergelijkbare eigenschappen te verbeteren. Als u alleen geïnteresseerd bent in de visuele gelijkenis van de referentieobjecten, stelt u de rest van de gewichten in op nul: "weight\_innersurfacearea": 0, "weight\_buildyear": 0, "weight\_transactiondate": 0, "weight\_distance": 0.

{% hint style="info" %}

* Visuele gelijkenis kan alleen worden berekend voor objecten waarvan een gevelbeeld bekend is in de database.
* De prestaties van de API bij het activeren van "visual\_similarity" zijn trager vanwege de activering van het model om de afbeeldingen te ontleden en visueel vergelijkbare eigenschappen te vinden.
  {% endhint %}

### Resultaten

* De referentieobjecten worden gesorteerd op basis van het berekende gewicht.
* Per referentieobject wordt aanvullende informatie geretourneerd: Afbeelding:
  * Het gevelbeeld van de referentieobjecten wordt toegevoegd per referentieobject indien bekend: "Afbeelding": "<https://house.image/house.jpg>".
  * Visuele gelijkenisscore: "VisualSimilarityScore": 82.425.


# Woningtypes

### Woningtype

Mogelijke invoer voor zowel het kenmerk **housetype** voor het doelobject als **housetype\_to\_search** voor de in de zoekopdracht op te nemen huistypen:\
\
*'Vrijstaande woning', 'Vrijstaande doelgroepwoning', 'Vrijstaande recreatiewoning', '2 onder 1 kap woning', 'Geschakelde 2 onder 1 kapwoning', 'Geschakelde woning', 'Tussen/rijwoning', 'Tussen/rij doelgroepwoning', 'Hoekwoning', 'Eindwoning', 'Galerijflat', 'Portiekflat', 'Corridorflat', 'Maisonnette', 'Benedenwoning', 'Bovenwoning', 'Portiekwoning', 'Meergezinswoning', 'Eengezinswoning'*

<details>

<summary>Uitbreiden voor alle mogelijk woningtypes in het resultaat</summary>

\['Tussen/rijwoning', 'Meergezinswoning', '2 onder 1 kap woning', 'Vrijstaande woning', 'Hoekwoning', 'Bovenwoning', 'Portiekwoning', 'Geschakelde woning', 'Benedenwoning', 'Bedrijf', 'Eengezinswoning', 'Garage(box)', 'Meergezins doelgroepwoning', 'Eindwoning', 'Detail/groothandel', 'Maisonnette', 'Galerijflat', 'Object in aanbouw', 'Kantoor', 'Vrijstaande recreatiewoning', 'Agrarisch met woongedeelte', 'Corridorflat', 'Tussen/rij doelgroepwoning', 'Horeca', 'Sport en recreatie', 'Bijzondere woonfunctie', 'Hoek doelgroepwoning', 'Energie en water', 'Bijzondere woonfunctie met woongedeelte', 'Agrarisch', 'Onderwijs', 'Detail/groothandel met woongedeelte', 'Transport', 'Bedrijf met woongedeelte', 'Laboratoria en praktijk', 'Bovenwoning doelgroep', 'Geschakelde 2 onder 1 kapwoning', 'Doelgroepwoning', 'Horeca met woongedeelte', 'Gemeenschapsgebouw overig', 'Woning', 'Medisch met woongedeelte', 'Niet-woning', '2 onder 1 kap doelgroepwoning', 'Medisch', 'Sport en recreatie met woongedeelte', 'Religie', 'Portiekflat', 'Recreatiewoningen', 'Benedenwoning doelgroep', '2 onder 1 kap recreatiewoning', 'Tussen/rij recreatiewoning', 'Cultuur', 'Specifiek woonobject', 'Nog te bepalen', 'Kantoor met woongedeelte', 'Geschakelde recreatiewoning', 'Vrijstaande doelgroepwoning', 'Communicatie', 'Portiekwoning doelgroep', 'Eind doelgroepwoning', 'Woonwagen/-boot recreatief', 'Woonwagen/-boot', 'Hoek recreatiewoning', 'Nutsvoorziening', 'Laboratoria en praktijk met woongedeelte', 'Geschakelde doelgroepwoning', 'Galerijflat doelgroep', 'Gemeenschappelijke voorziening', 'Woonwagen/stacaravan', 'Overig woonobject', 'Maisonnette doelgroep', 'Detailhandel/Horeca/Kantoor', 'Eind recreatiewoning', '3310', 'Defensie', 'Energie en water met woongedeelte', 'Onderwijs met woongedeelte', 'Cultuur met woongedeelte', 'Niet-woning met woongedeelte', 'Portiekflat doelgroep', 'Woonwagen/stacaravan recreatief', 'Woonboot', 'Transport met woongedeelte', 'Geschakelde 2 onder 1 kap doelgroepwoning', 'Detailhandel/Horeca/Kantoren met woongedeelte', 'Gemeenschapsgebouw overig met woongedeelte', 'Religie met woongedeelte', 'Standplaats', '1000', 'Cultuur en religie', 'Corridorflat doelgroep', 'Ligplaats', 'Communicatie met woongedeelte', 'Defensie met woongedeelte']

</details>

Wanneer de functie **housetype\_to\_search** is voorzien, zal in de ComparableHouseType-uitvoer de gegeven invoer door de gebruiker worden weergegeven (als een lijst) en niet 0, 1 of 2. Als het algoritme niet in staat is om ten minste drie referentieobjecten te vinden, dan wordt deze invoer wordt genegeerd en het "comparable\_housetype" gaat naar 0 in de zoekopdracht.


# Vergelijkend zoeken functies

* 0 = alle mogelijke vergelijkingen
* 1 = vergelijkbaar
* 2 = vergelijkbaar + iets beter en iets minder vergelijkbaar
* 3 = maximaal filter

#### Vergelijkbaarheid woningtypes eengezinswoningen

<table><thead><tr><th>Matrix house-type single-family home</th><th>Vrijstaande woning</th><th>Vrijstaande doelgroepwoning</th><th>2-onder-1-kapwoning</th><th>Geschakelde 2-onder-1-kapwoning</th><th>Geschakelde woning</th><th width="200">Tussenwoning</th><th width="200">Hoekwoning</th><th>Eindwoning</th><th>Eengezinswoning</th></tr></thead><tbody><tr><td>Vrijstaande woning</td><td>Comparable</td><td>Comparable</td><td>Better</td><td>Better</td><td>Much better</td><td>Much better</td><td>Much </td><td>Much better</td><td>Much better</td></tr><tr><td>2-onder-1-kapwoning</td><td>Lesser</td><td>Lesser</td><td>Comparable</td><td>Comparable</td><td>Better</td><td>Better</td><td>Better</td><td>Better</td><td>Much better</td></tr><tr><td>Geschakelde 2-onder-1-kapwoning</td><td>Lesser</td><td>Lesser</td><td>Comparable</td><td>Comparable</td><td>Better</td><td>Better</td><td>Better</td><td>Better</td><td>Better</td></tr><tr><td>Geschakelde woning</td><td>Much less</td><td>Much less</td><td>Lesser</td><td>Lesser</td><td>Comparable</td><td>Comparable</td><td>Comparable</td><td>Comparable</td><td>Better</td></tr><tr><td>Halfvrijstaande woning</td><td>Lesser</td><td>Lesser</td><td>Comparable</td><td>Comparable</td><td>Comparable</td><td>Better</td><td>Better</td><td>Better</td><td>Better</td></tr><tr><td>Tussenwoning</td><td>Much less</td><td>Much less</td><td>Much less</td><td>Lesser</td><td>Lesser</td><td>Comparable</td><td>Lesser</td><td>Comparable</td><td>Comparable</td></tr><tr><td>Hoekwoning</td><td>Much less</td><td>Much less</td><td>Lesser</td><td>Lesser</td><td>Lesser</td><td>Better</td><td>Comparable</td><td>Comparable</td><td>Better</td></tr><tr><td>Eindwoning</td><td>Much less</td><td>Much less</td><td>Lesser</td><td>Lesser</td><td>Lesser</td><td>Comparable</td><td>Comparable</td><td>Comparable</td><td>Comparable</td></tr><tr><td>Eengezinswoning</td><td>Much less</td><td>Much less</td><td>Lesser</td><td>Lesser</td><td>Lesser</td><td>Comparable</td><td>Lesser</td><td>Comparable</td><td>Comparable</td></tr></tbody></table>

#### Vergelijkbaarheid woningtypes appartementen

| Matrix house-type apartments | Galerijflat | Portiekflat | Corridorflat | Maisonnette | Benedenwoning | Bovenwoning | Portiekwoning | Meergezinswoning |
| ---------------------------- | ----------- | ----------- | ------------ | ----------- | ------------- | ----------- | ------------- | ---------------- |
| Galerijflat                  | Comparable  | Comparable  | Comparable   | Lesser      | Lesser        | Comparable  | Lesser        | Comparable       |
| Portiekflat                  | Comparable  | Comparable  | Comparable   | Lesser      | Lesser        | Comparable  | Lesser        | Comparable       |
| Corridorflat                 | Comparable  | Comparable  | Comparable   | Lesser      | Lesser        | Comparable  | Lesser        | Comparable       |
| Maisonnette                  | Better      | Better      | Better       | Comparable  | Comparable    | Lesser      | Comparable    | Better           |
| Benedenwoning                | Better      | Better      | Better       | Comparable  | Comparable    | Comparable  | Comparable    | Comparable       |
| Bovenwoning                  | Comparable  | Comparable  | Comparable   | Better      | Comparable    | Comparable  | Comparable    | Comparable       |
| Portiekwoning                | Better      | Better      | Better       | Comparable  | Comparable    | Comparable  | Comparable    | Comparable       |
| Meergezinswoning             | Comparable  | Comparable  | Comparable   | Lesser      | Comparable    | Comparable  | Comparable    | Comparable       |

#### Vergelijkbare oppervlakte en bouwjaar&#x20;

Voor binnenoppervlak werkt de vergelijkbare functie als volgt:

* 0 = alle mogelijke overeenkomsten
* 1 = vergelijkbaar tussen <10% en >10% verschil in oppervlakte
* 2 = vergelijkbaar tussen <20% en >20% verschil in oppervlakte
* 3 = vergelijkbaar tussen <30% en >30% oppervlakte verschil

#### Voor bouwjaar:

* 0 = alle bouwjaren
* 1 = vergelijkbaar tussen <10 en >10 bouwjaar verschil
* 2 = vergelijkbaar tussen <20 en >20 bouwjaar verschil
* 3 = vergelijkbaar tussen <30 en >30 bouwjaar verschil

#### Vergelijkbare afstand

Voor afstand tot doelobject:

* 0 = zoek binnen heel Nederland
* 1 = zoek binnen een straal van maximaal 1 kilometer
* 2 = zoek binnen een straal van maximaal 5 kilometer

#### Datum limiet

Om de voorkeur te geven aan meer recentelijk verhandelde eigendommen is het mogelijk om de optionele invoer "date\_limit" toe te voegen om van 6 tot 60 maanden in de database te zoeken naar referentieobjecten.


# Resultaat interpretatie

Een uitleg en interpretatie van elke functie die in het API-antwoord wordt weergegeven.

{% hint style="info" %}
De referentiehuizen van de output zijn weergegeven van meest relevant naar minst relevant
{% endhint %}

### “GivenHouse”

De belangrijkste gegevens van het opgegeven huis door de gebruiker.

| Feature               | Voorbeeld | Uitleg                                                                                             |
| --------------------- | --------- | -------------------------------------------------------------------------------------------------- |
| PostCode              | 2771DS    | Postcode                                                                                           |
| HouseNumber           | 87        | Huisnummer                                                                                         |
| HouseAddition         | A         | Toevoeging aan huisnummer inclusief huisletter                                                     |
| ValuationDate         | 20230410  | Waarderingsgegevens voor prijsschatting. Standaard = vandaag                                       |
| InnerSurfaceArea      | 151       | Binnenste vierkante meter object                                                                   |
| OuterSurfaceArea      | 136       | Vierkante meter object (binnen + buiten)                                                           |
| BuildYear             | 1961      | Bouwjaar                                                                                           |
| EnergyLabel           | -         | Bestaande uit de drie kenmerken die in de drie volgende kolommen worden waargenomen                |
| DefinitiveEnergyLabel | A         | Het huidige Definitieve Energielabel                                                               |
| DefinitiveType        | NEN7120   | Het huidige Definitieve Type van het energielabel                                                  |
| DefinitiveValidity    | 2030-12   | De datum tot wanneer het energielabel geldig is                                                    |
| Image                 | url       | De gevelafbeelding voor het gegeven huis, verstrekt door de gebruiker of aanwezig in onze database |

### “Inputs”

De invoer die de gebruiker heeft gegeven. Er wordt weergegeven dat ze worden weergegeven, omdat sommige ervan mogelijk zijn gewijzigd. We offeren er enkele op (voorrang) om minstens 3 referentiewoningen te voorzien.

<table><thead><tr><th width="281.3333333333333">Feature</th><th>Voorbeeld</th><th>Uitleg</th></tr></thead><tbody><tr><td>StrictStreet</td><td>0</td><td></td></tr><tr><td>StrictBuurt</td><td>1</td><td><p>1: als de gevonden referentiewoningen zich in dezelfde straat bevinden als het doel</p><p></p><p>0: anders</p></td></tr><tr><td>StrictWijk</td><td>0</td><td>1: als de gevonden referentiewoningen zich in dezelfde wijk bevinden als het doel<br><br>0: anders</td></tr><tr><td>StrictEnergyLabel</td><td>0</td><td>1: als de gevonden referentiewoningen hetzelfde energielabel hebben als de doelstelling<br><br>0: anders</td></tr><tr><td>ComparableHouseType</td><td>1</td><td><p>0: als de gevonden referentiehuizen alle mogelijke matches accepteren</p><p></p><p>1: als de gevonden referentiewoningen alleen de vergelijkbare woningtypen accepteren</p><p></p><p>2: als de gevonden referentiehuizen het vergelijkbare + beter en minder accepteren</p><p></p><p>Kijk <a href="https://app.gitbook.com/o/pLuAKZrbll04y6968KwP/s/IwWsiEEEkUfFQ6Z7raKt/~/changes/175/apis/interactieve-woningreferentie-api/vergelijkend-zoeken-functies">hier</a></p></td></tr><tr><td>ComparableInnerSurfaceArea</td><td>0</td><td><p>0: als de gevonden referentiewoningen geen limiet hebben bij het zoeken naar binnenoppervlakte</p><p></p><p>1: als de gevonden referentiewoningen zich in een venster van 10% van het doel bevinden</p><p></p><p>2: als de gevonden referentiewoningen zich in het 20% venster van het doel bevinden</p><p></p><p>3: als de gevonden referentiewoningen zich in een venster van 30% van het doel bevinden</p></td></tr><tr><td>ComparableBuildYear</td><td>1</td><td><p>0: als de gevonden referentiewoningen geen limiet hebben bij het zoeken naar bouwjaar</p><p></p><p>1: als de gevonden referentiewoningen zich binnen ± 10 jaar van de doelstelling bevinden</p><p></p><p>2: als de gevonden referentiewoningen ± 20 jaar van de doelstelling liggen</p><p></p><p>3: als de gevonden referentiewoningen ± 30 jaar van de doelstelling liggen</p></td></tr><tr><td>ComparableDistance</td><td>1</td><td><p>0: als de gevonden referentiewoningen in Nederland staan</p><p></p><p>1: als de gevonden referentiewoningen zich in een straal van 1 km bevinden</p><p></p><p>2: als de gevonden referentiewoningen zich in een straal van 5 km bevinden</p></td></tr><tr><td>DateLimit</td><td>18</td><td>Hoeveel maanden geleden hebben we gezocht naar verhandelde huizen.</td></tr></tbody></table>

### “ReferenceData”

Alle gegevens over de referentiehuizen zijn te vinden.

| Feature                 | Voorbeeld          | Uitleg                                                                                                          |
| ----------------------- | ------------------ | --------------------------------------------------------------------------------------------------------------- |
| ReferencePriceMean      | 550000-600000      | De gewogen gemiddelde prijs van de gevonden referentiewoningen in een bereik.                                   |
| ReferenceHouses         | -                  | Een lijst met alle referentiehuizen. De kenmerken van ELK referentiehuis zijn de volgende.                      |
| PostCode                | 2771DS             | Postcode                                                                                                        |
| HouseNumber             | 87                 | Huisnummer                                                                                                      |
| HouseAddition           | A                  | Toevoeging aan huisnummer inclusief huisletter                                                                  |
| Street                  | Zuidkade           | Straatnaam                                                                                                      |
| BuurtCode               | BU06370401         | Buurtcode                                                                                                       |
| WijkCode                | WK063704           | Districtscode                                                                                                   |
| City                    | Boskoop            | Stads naam                                                                                                      |
| HouseType               | Vrijstaande woning | Ga naar de pagina [Woningtypen](/taxeren-en-waarderen/woningwaarde-api/woningtypes)                             |
| BuildYear               | 1961               | Bouwjaar                                                                                                        |
| InnerSurfaceArea        | 151                | Binnenste vierkante meter object                                                                                |
| OuterSurfaceArea        | 136                | Vierkante meter object (binnen + buiten)                                                                        |
| Volume                  | 548                | Volume in kubieke meter                                                                                         |
| DefinitiveEnergyLabel   | A                  | Het huidige Definitieve Energielabel                                                                            |
| DefinitiveType          | NEN7120            | Het huidige Definitieve Type van het energielabel                                                               |
| DefinitiveValidity      | 2030-12            | De datum tot wanneer het energielabel geldig is                                                                 |
| Longitude               | 4.65808526945334   | GPS-coördinaat                                                                                                  |
| Latitude                | 52.068393816655316 | GPS-coördinaat                                                                                                  |
| Transactiondate         | 202202             | De datum waarop het huis is verkocht                                                                            |
| Image                   | url                | De URL van de gevelafbeelding van het referentiehuis, bestaande in onze database                                |
| TransactionPrice        | 400000-450000      | De transactieprijs van de woning ligt binnen bereik                                                             |
| IndexedTransactionPrice | 400000-450000      | De geïndexeerde transactieprijs van het huis binnen bereik                                                      |
| PriceIndex              | 177.8              | De prijsindex op de datum waarop de woning werd verhandeld                                                      |
| Distance                | 338                | De afstand in meters van het referentiehuis tot het doel                                                        |
| VisualSimilarityScore   | 85.32              | De visuele gelijkenisscore tussen het referentiehuis en het gegeven huis                                        |
| Weight                  | 0.972              | Het gewicht (hoe vergelijkbaar is de referentiewoning) van de referentiewoning ten opzichte van de doelstelling |
| Source                  | Kadaster           | De bron waar de referentie vandaan komt. (Kadaster of Funda)                                                    |


# Kadaster Transactie API

Het doel van de Transactie API is om alle transactiegegevens per woning op te halen zoals geregistreerd door het Kadaster in Nederland.

{% hint style="info" %}
**Kadaster Transactie API v2** is nu beschikbaar! Naast *individuele* transacties beschikbaar in **v1**, ondersteunt **v2** nu ook *transacties door rechtspersonen* zoals B.V. en VOF, inclusief *koper- en verkopersinformatie*.
{% endhint %}

## Introductie

De Transactie-API biedt uitgebreide toegang tot vastgoedtransactiegegevens zoals geregistreerd door het Kadaster in Nederland. Deze robuuste tool is essentieel voor professionals die historische en actuele transactiegegevens nodig hebben voor diepgaande vastgoedanalyse en taxatie.

De belangrijkste functionaliteiten van de Transactie-API zijn onder meer:

* Ophalen van transactiegegevens voor individuele eigendommen, waardoor een grondig inzicht ontstaat in hun transactiegeschiedenis.
* Uitgebreide gegevensdekking, met transactiegegevens beschikbaar vanaf het lopende jaar tot en met 1993, die een langetermijnperspectief bieden op de waarde van onroerend goed.
* Directe toegang tot de Kadaster Transactiedatabase, waardoor gebruikers altijd de meest actuele en juiste informatie binnen handbereik hebben.

Deze API is een essentieel hulpmiddel voor degenen die gedetailleerde transactiegeschiedenis nodig hebben om vastgoedbeoordelingen, markttrendanalyses of andere toepassingen te ondersteunen waarbij nauwkeurige vastgoedtransactiegegevens van cruciaal belang zijn.

{% hint style="success" %}
Kadaster transactie API voor het opvragen van woning koopsommen uit de actuele Kadaster database t/m 1993 terug
{% endhint %}

{% hint style="info" %}
Deze API is nu ook beschikbaar voor Platform-klanten. Gebruik de [Transactie-API](https://mopsus.altum.ai/#/transactie-api) op het Platform nadat u zich op het specifieke [plan ](https://mopsus.altum.ai/#/dashboard/abonnement)heeft geabonneerd.
{% endhint %}


# Authenticatie, invoer en resultaat

## Transaction API

{% tabs %}
{% tab title="V1" %} <mark style="color:green;">`POST`</mark> `https://api.altum.ai/transaction`

Met dit eindpunt kun je Kadaster-transactiegegevens voor een object ophalen.

#### Headers

| Naam                                        | Type   | Omschrijving                                                                                             |
| ------------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------- |
| x-api-key<mark style="color:red;">\*</mark> | string | Unieke API-sleutel van Altum. Maak er een op [https://platform.altum.ai](https://platform.altum.ai/auth) |
| Content-Type                                | string | application/json                                                                                         |

#### Request Body

| Naam                                          | Type   | Omschrijving                                                                                         |
| --------------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------- |
| postcode<mark style="color:red;">\*</mark>    | string | Postcode van het object                                                                              |
| housenumber<mark style="color:red;">\*</mark> | number | Huisnummer van het object                                                                            |
| houseaddition                                 | string | Huisbrief en toevoeging van het object                                                               |
| valuationdate                                 | number | Voer in als JJJJMMDD, geeft de nieuwste transactie tot die datum weer. De standaardwaarde is VANDAAG |

{% tabs %}
{% tab title="400: Mislukte reactie" %}

```
{
  "Output": "The given house address not found in database, the combination of Post Code, House Number and House Addition does not exist."
}
```

{% endtab %}

{% tab title="422: Verkeerd invoerformaat" %}

```
{
	"detail": [
		{
			"loc": [
				"body",
				43
			],
			"msg": "Expecting value: line 3 column 18 (char 43)",
			"type": "value_error.jsondecode",
			"ctx": {
				"msg": "Expecting value",
				"doc": "{\n  \"postcode\": \"2201PZ\",\n  \"housenumber\": a,\n  \"valuationdate\": \"20121001\"\n}",
				"pos": 43,
				"lineno": 3,
				"colno": 18
			}
		}
	]
}
```

{% endtab %}

{% tab title="401: Geen toegang" %}

```
{
    'Output': 'Please use https://api.altum.ai or visit https://mopsus.altum.ai to make your request.'
}
```

{% endtab %}

{% tab title="403: Verboden" %}

```
{
	"message": "Missing Authentication Token"
}
```

{% endtab %}

{% tab title="500: Service is niet beschikbaar en/of niet beschikbaar" %}

```
{
	"message": "Internal server error"
}
```

{% endtab %}

{% tab title="200: Succesvolle reactie" %}

```
{
  "Output": [
    {
      "Transaction": "Transaction-20100315",
      "BagID": null,
      "PostCode": "2771HM",
      "HouseNumber": 173,
      "HouseAddition": null,
      "City": "BOSKOOP",
      "Street": "PARKLAAN",
      "HouseType": "T",
      "BuildingCode": 11,
      "OuterSurfaceArea": 315,
      "MoreRealEstate": "J",
      "RentedOut": "J",
      "BusinessRight": "VE",
      "MutationVariety": 606,
      "FamilyTransaction": "N",
      "TransactionDate": 20191001,
      "TransactionPrice": 500000,
      "TransactionPriceIndexed": 600000
    }
  ]
}
```

{% endtab %}
{% endtabs %}
{% endtab %}

{% tab title="V2" %} <mark style="color:green;">`POST`</mark> `https://api.altum.ai/v2/transaction`

Met dit eindpunt kun je Kadaster-transactiegegevens voor een object ophalen. De prijs is gekoppeld aan de huidige datum.

#### Headers

| Naam                                        | Type   | Omschrijving                                                                    |
| ------------------------------------------- | ------ | ------------------------------------------------------------------------------- |
| x-api-key<mark style="color:red;">\*</mark> | string | Unieke API-sleutel van Altum. Maak er een via Mopsus(<https://mopsus.altum.ai>) |
| Content-Type                                | string | application/json                                                                |

#### Request Body

| Naam                                          | Type   | Omschrijving                                                                                         |
| --------------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------- |
| postcode<mark style="color:red;">\*</mark>    | string | Postcode van het object                                                                              |
| housenumber<mark style="color:red;">\*</mark> | number | Huisnummer van het object                                                                            |
| houseaddition                                 | string | Huisbrief en toevoeging van het object                                                               |
| valuation\_date                               | number | Voer in als JJJJMMDD, geeft de nieuwste transactie tot die datum weer. De standaardwaarde is VANDAAG |

{% tabs %}
{% tab title="400: Mislukte reactie" %}

```
{
  "output": "The given house address not found in database, the combination of Post Code, House Number and House Addition does not exist."
}
```

{% endtab %}

{% tab title="422: Verkeerd invoerformaat" %}

```
{
	"detail": [
		{
			"loc": [
				"body",
				43
			],
			"msg": "Expecting value: line 3 column 18 (char 43)",
			"type": "value_error.jsondecode",
			"ctx": {
				"msg": "Expecting value",
				"doc": "{\n  \"postcode\": \"2201PZ\",\n  \"housenumber\": a,\n  \"valuationdate\": \"20121001\"\n}",
				"pos": 43,
				"lineno": 3,
				"colno": 18
			}
		}
	]
}
```

{% endtab %}

{% tab title="401: Geen toegang" %}

```
{
    'output': 'Please use https://api.altum.ai or visit https://mopsus.altum.ai to make your request.'
}
```

{% endtab %}

{% tab title="403: Verboden" %}

```
{
	"message": "Missing Authentication Token"
}
```

{% endtab %}

{% tab title="500: Service is niet beschikbaar en/of niet beschikbaar" %}

```
{
	"message": "Internal server error"
}
```

{% endtab %}

{% tab title="200: Succesvolle reactie" %}

```
{
	"transaction": "Transaction-20100315",
	"bag_id": null,
	"postcode": "2771HM",
	"housenumber": 173,
	"houseaddition": null,
	"city": "BOSKOOP",
	"street": "PARKLAAN",
	"house_type": "T",
	"building_code": 11,
	"outer_surface_area": 315,
	"more_real_estate": "J",
	"rented_out": "J",
	"business_right": "VE",
	"mutation_variety": 606,
	"family_transaction": "N",
	"buyer": "BV",
	"seller": null,
	"transaction_date": 20191001,
	"transaction_price": 500000,
	"transaction_price_indexed": 600000
}
```

{% endtab %}
{% endtabs %}
{% endtab %}
{% endtabs %}

## GRATIS Ping voor beschikbaarheid

## Post objectgegevens om de beschikbaarheid van transactiegegevens te ontvangen

{% tabs %}
{% tab title="V1" %}

<mark style="color:green;">`POST`</mark> `https://api.altum.ai/transaction/ping`

Met dit eindpunt kun je de beschikbaarheid van de transactiegegevens uit onze database opvragen. Voor een POST-verzoek is een bodyparameter (adres) vereist.

#### Headers

| Naam                                        | Type   | Omschrijving                                                             |
| ------------------------------------------- | ------ | ------------------------------------------------------------------------ |
| x-api-key<mark style="color:red;">\*</mark> | string | API-sleutel van Altum. Maak er een via Mopsus(<https://mopsus.altum.ai>) |
| Content-Type                                | string | application/json                                                         |

#### Request Body

| Naam                                          | Type   | Omschrijving                                                                                         |
| --------------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------- |
| postcode<mark style="color:red;">\*</mark>    | string | Postcode van het object                                                                              |
| valuationdate                                 | number | Voer in als JJJJMMDD, geeft de nieuwste transactie tot die datum weer. De standaardwaarde is VANDAAG |
| houseaddition                                 | string | Huis en toevoeging van het object                                                                    |
| housenumber<mark style="color:red;">\*</mark> | number | Huisnummer van het object                                                                            |

{% tabs %}
{% tab title="422: Verkeerd invoerformaat" %}

```
{
	"detail": [
		{
			"loc": [
				"body",
				43
			],
			"msg": "Expecting value: line 3 column 18 (char 43)",
			"type": "value_error.jsondecode",
			"ctx": {
				"msg": "Expecting value",
				"doc": "{\n  \"postcode\": \"2201PZ\",\n  \"housenumber\": a,\n  \"valuationdate\": \"20121001\"\n}",
				"pos": 43,
				"lineno": 3,
				"colno": 18
			}
		}
	]
}
```

{% endtab %}

{% tab title="401: Geen toegang" %}

```
{
    'Output': 'Please use https://api.altum.ai or visit https://mopsus.altum.ai to make your request.'
}
```

{% endtab %}

{% tab title="403: Verboden" %}

```
{
	"message": "Missing Authentication Token"
}
```

{% endtab %}

{% tab title="500: Service is niet beschikbaar en/of niet beschikbaar" %}

```
{
	"message": "Internal server error"
}
```

{% endtab %}

{% tab title="200: Succesvolle reactie" %}

```
{
	"Output": "Transaction Data for 2728KH-8- is available.",
	"Date": "20210602"
}
```

{% endtab %}
{% endtabs %}

## Request body

#### Voorbeeld verzoek

```
{
	"postcode": "2728KH",
	"housenumber": 5
}
```

{% endtab %}

{% tab title="V2" %}

<mark style="color:green;">`POST`</mark> `https://api.altum.ai/v2/transaction/ping`

Met dit eindpunt kun je de beschikbaarheid van de transactiegegevens uit onze database opvragen. Voor een POST-verzoek is een bodyparameter (adres) vereist.

{% hint style="info" %}
Ping V2 raadpleegt de Transaction API V2 database. Gebruik Transaction API V2 in combinatie met Ping V2.
{% endhint %}

#### Headers

| Naam                                        | Type   | Omschrijving                                                             |
| ------------------------------------------- | ------ | ------------------------------------------------------------------------ |
| x-api-key<mark style="color:red;">\*</mark> | string | API-sleutel van Altum. Maak er een via Mopsus(<https://mopsus.altum.ai>) |
| Content-Type                                | string | application/json                                                         |

#### Request Body

| Naam                                          | Type   | Omschrijving                                                                                         |
| --------------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------- |
| postcode<mark style="color:red;">\*</mark>    | string | Postcode van het object                                                                              |
| housenumber<mark style="color:red;">\*</mark> | number | Huisnummer van het object                                                                            |
| houseaddition                                 | string | Huisnummertoevoeging van het object                                                                  |
| valuation\_date                               | number | Voer in als JJJJMMDD, geeft de nieuwste transactie tot die datum weer. De standaardwaarde is VANDAAG |

{% tabs %}
{% tab title="422: Verkeerd invoerformaat" %}

```
{
	"detail": [
		{
			"loc": [
				"body",
				43
			],
			"msg": "Expecting value: line 3 column 18 (char 43)",
			"type": "value_error.jsondecode",
			"ctx": {
				"msg": "Expecting value",
				"doc": "{\n  \"postcode\": \"2201PZ\",\n  \"housenumber\": a,\n  \"valuationdate\": \"20121001\"\n}",
				"pos": 43,
				"lineno": 3,
				"colno": 18
			}
		}
	]
}
```

{% endtab %}

{% tab title="401: Geen toegang" %}

```
{
    'Output': 'Please use https://api.altum.ai or visit https://mopsus.altum.ai to make your request.'
}
```

{% endtab %}

{% tab title="403: Verboden" %}

```
{
	"message": "Missing Authentication Token"
}
```

{% endtab %}

{% tab title="500: Service is niet beschikbaar en/of niet beschikbaar" %}

```
{
	"message": "Internal server error"
}
```

{% endtab %}

{% tab title="200: Succesvolle reactie" %}

```
{
	"output": "Transaction Data for 2728KH-8- is available.",
	"date": "20210602"
}
```

{% endtab %}
{% endtabs %}

## Request body

#### Voorbeeld verzoek

```
{
	"postcode": "2728KH",
	"housenumber": 5
}
```

{% endtab %}
{% endtabs %}


# API-sleutel Informatie

Begrijpen en Verkrijgen van jouw API-sleutel

Een API-sleutel is een unieke identificatiecode die je veilige toegang biedt tot de API's van Altum AI. Het is verplicht om deze sleutel in de `x-api-key` header van alle API-verzoeken op te nemen om een juiste authenticatie te garanderen.

**Hoe verkrijg je jouw API-sleutel?**\
Je kunt je API-sleutel op twee manieren verkrijgen:

1. **Via het Platform:** Genereer jouw API-sleutel direct op het Altum AI-platform.
2. **Door een Abonnement:** Een API-sleutel wordt verstrekt wanneer je je abonneert op het Startup- of Unlimited-plan.

**Waar gebruik je jouw API-sleutel?**\
Voeg de API-sleutel toe aan de `x-api-key` header van elk API-verzoek. Zonder een geldige sleutel wordt je verzoek niet geauthenticeerd.

**Voorbeeld Header:**

```plaintext
x-api-key: JOUW_UNIEKE_API_SLEUTEL
```

**Beveiligingsnotitie**\
Houd jouw API-sleutel vertrouwelijk om ongeautoriseerde toegang tot je account te voorkomen.


# Resultaat interpretatie

Een uitleg en interpretatie van elke functie die in het API-antwoord wordt weergegeven.

{% tabs %}
{% tab title="V1" %}

<table><thead><tr><th width="267.07776999128293">Feature</th><th>Voorbeeld</th><th>Uitleg</th></tr></thead><tbody><tr><td>Transactie</td><td>Transactie-20210830</td><td>Uniek transactie-ID in database</td></tr><tr><td>BagID</td><td>637010000220587</td><td>Uniek gebouw-ID</td></tr><tr><td>PostCode</td><td>2728KM</td><td>Postcode</td></tr><tr><td>HouseNumber</td><td>33</td><td>Huisnummer</td></tr><tr><td>HouseAddition</td><td>A</td><td>Huisnummertoevoeging </td></tr><tr><td>City</td><td>ZOETERMEER</td><td>Plaatsnaam</td></tr><tr><td>Street</td><td>JONAGOLDHOF</td><td>Straatnaam</td></tr><tr><td>HouseType</td><td>T</td><td><p>Indicatie woningtype</p><p>A = Appartement<br>H = Hoekwoning<br>K = Twee onder 1 kap<br>O = Onbekend<br>T = Tussenwoning<br>V = Vrijstaand</p></td></tr><tr><td>BuildingCode</td><td>11</td><td>11 = Wonen<br>12 = Appartement<br>14 = Agrarisch<br>37 = Bedrijfswoning<br>53 = Recreatiewoning</td></tr><tr><td>OutersurfaceArea</td><td>154</td><td>Perceeloppervlakte van het pand</td></tr><tr><td>MoreRealEstate</td><td>J</td><td>Ja/Nee: Indicatie of transactie meerdere eigendommen bevat</td></tr><tr><td>RentedOut</td><td>N</td><td>Indicatie of woning verhuurd is</td></tr><tr><td>BusinessRight</td><td>VE</td><td>Zie hieronder</td></tr><tr><td>MutationVariety</td><td>606</td><td>583 = executieverkoop 606 = gemeenschappelijke overdracht 659 = openbare verkoop</td></tr><tr><td>FamilyTransaction</td><td>N</td><td>Ja/Nee: Indicatie of de transactie een familietransactie is</td></tr><tr><td>TransactionDate</td><td>20210830</td><td>Formaat: YYYYMMDD</td></tr><tr><td>TransactionPrice</td><td>505000</td><td>Transactieprijs</td></tr><tr><td>TransactionPrixeIndexed</td><td>542075</td><td>Geïndexeerd naar afgelopen maand op basis van kadasterindex</td></tr></tbody></table>
{% endtab %}

{% tab title="V2" %}

<table><thead><tr><th width="267.07776999128293">Feature</th><th>Voorbeeld</th><th>Uitleg</th></tr></thead><tbody><tr><td>transaction</td><td>Transaction-20210830</td><td>Uniek transactie-ID in database</td></tr><tr><td>bag_id</td><td>637010000220587</td><td>Uniek gebouw-ID</td></tr><tr><td>postcode</td><td>2728KM</td><td>Postcode</td></tr><tr><td>housenumber</td><td>33</td><td>Huisnummer</td></tr><tr><td>houseaddition</td><td>A</td><td>Huisnummertoevoeging</td></tr><tr><td>city</td><td>ZOETERMEER</td><td>Plaatsnaam</td></tr><tr><td>street</td><td>JONAGOLDHOF</td><td>Straatnaam</td></tr><tr><td>house_type</td><td>T</td><td><p>Indicatie woningtype</p><p>A = Appartement<br>H = Hoekwoning<br>K = Twee onder 1 kap<br>O = Onbekend<br>T = Tussenwoning<br>V = Vrijstaand</p></td></tr><tr><td>building_code</td><td>11</td><td>11 = Wonen<br>12 = Appartement<br>14 = Agrarisch<br>37 = Bedrijfswoning<br>53 = Recreatiewoning</td></tr><tr><td>outer_surface_area</td><td>154</td><td>Perceeloppervlakte van het pand</td></tr><tr><td>more_real_estate</td><td>J</td><td>Ja/Nee: Indicatie of transactie meerdere eigendommen bevat</td></tr><tr><td>rented_out</td><td>N</td><td>Indicatie of woning verhuurd is</td></tr><tr><td>business_right</td><td>VE</td><td>Zie hieronder</td></tr><tr><td>mutation_variety</td><td>606</td><td>583 = executieverkoop 606 = gemeenschappelijke overdracht 659 = openbare verkoop</td></tr><tr><td>family_transaction</td><td>N</td><td>Ja/Nee: Indicatie of de transactie een familietransactie is</td></tr><tr><td>buyer</td><td>"BV"</td><td>Identificatie van de juridische entiteit van de koper. null = particulier</td></tr><tr><td>seller</td><td>null </td><td>Identificatie van de juridische entiteit van de verkoper. null = particulier</td></tr><tr><td>transaction_date</td><td>20210830</td><td>Formaat: YYYYMMDD</td></tr><tr><td>transaction_price</td><td>505000</td><td>Transactieprijs</td></tr><tr><td>transaction_price_indexed</td><td>542075</td><td>Geïndexeerd naar afgelopen maand op basis van kadasterindex</td></tr></tbody></table>
{% endtab %}
{% endtabs %}

#### "BusinessRight" Feature

<table><thead><tr><th width="170.63576158940404">Mogelijke waarde</th><th>Uitleg</th></tr></thead><tbody><tr><td>VE</td><td>Eigendom</td></tr><tr><td>EVBD</td><td>Eigendom (recht van), Zakelijk recht als bedoeld in artikel 5, lid 3, onder b, van de Belemmeringenwet Privaatrecht op gedeelte van perceel</td></tr><tr><td>EVGB</td><td>Eigendom bel. met recht van (mede)gebr. en/of (mede)bew.</td></tr><tr><td>EVOD</td><td>Eigendom (recht van), Opstalrecht Nutsvoorzieningen op gedeelte van perceel</td></tr><tr><td>EVOL</td><td>Eigendom (recht van), Opstalrecht Nutsvoorzieningen</td></tr><tr><td>EVOS</td><td>Eigendom bel. met recht van opstal</td></tr><tr><td>EVVG</td><td>Eigendom bel. met recht van vruchtgebruik</td></tr><tr><td>EP</td><td>Recht van erfpacht</td></tr><tr><td>EO</td><td>Recht van erfpacht en opstal</td></tr><tr><td>EPEP</td><td>Recht van erfpacht op recht van erfpacht</td></tr><tr><td>EVEP</td><td>Eigendom bel. met recht van erfpacht</td></tr><tr><td>BK</td><td>Beklemrecht</td></tr><tr><td>BKBK</td><td>Beklemrecht, beklemrecht</td></tr><tr><td>EVBP</td><td>Eigendom bel. met B.P.-recht</td></tr><tr><td>OS</td><td>Recht van opstal</td></tr></tbody></table>


# Markttrend API

De Market Trend API analyseert vastgoedtransacties om te kwantificeren hoe de vastgoedmarkt in een specifieke buurt momenteel presteert en hoe deze zich door de jaren heen heeft ontwikkeld.

### Introductie

In de vastgoedsector wordt het verschil tussen een goede en een kostbare beslissing gemaakt door helder marktinzicht. Deze API biedt die helderheid door ruwe transactiedata om te zetten in nauwkeurige marktinformatie op buurtniveau.

In plaats van af te gaan op vraagprijzen of aannames, laat de Market Trend API zien waarvoor panden daadwerkelijk worden verkocht en hoe die prijzen zich ontwikkelen op basis van historische transactiegegevens voor een specifieke postcode. De API biedt heldere inzichten in gemiddelde prijzen, de prijs per vierkante meter, verkoopactiviteit en prijstrends op korte en lange termijn, allemaal uitgesplitst per woningtype. Daarnaast toont het hoe de prijzen zijn verdeeld en of de buurt duurder of juist goedkoper wordt.

Deze API helpt kopers te controleren of ze een marktconforme prijs betalen, stelt verkopers in staat om realistische en competitieve vraagprijzen vast te stellen, en laat investeerders veelbelovende of ondergewaardeerde wijken identificeren. Makelaarskantoren kunnen de API gebruiken om lokale markttrends met vertrouwen te analyseren, terwijl bedrijven en analisten meerdere postcodes consistent kunnen vergelijken op basis van dezelfde betrouwbare, op transacties gebaseerde statistieken.


# Authenticatie, invoer en resultaat

### Headers

<table><thead><tr><th width="152">Name</th><th width="145">Type</th><th>Description</th></tr></thead><tbody><tr><td>Content-Type</td><td>string</td><td>application/json</td></tr><tr><td>x-api-key<mark style="color:red;">*</mark></td><td>string</td><td>Unieke API-sleutel van Altum. Verkrijg er een via het platform <a href="https://platform.altum.ai/auth">https://platform.altum.ai</a></td></tr></tbody></table>

Dit is de hoofdendpoint van de API. Deze haalt een lijst met subsidies op op basis van de postcode van een gebruiker en, indien opgegeven, hun persoonlijke en financiële gegevens voor leen-geschiktheid.

<mark style="color:green;">**`GET:`**</mark>  `https://api.altum.ai/market-trend?postcode=??&valuation_date=????-??-??`

### Request body

**Markettrend Request Model**

| **Veld**                                   | **Type** | **Beschrijving**                                         |
| ------------------------------------------ | -------- | -------------------------------------------------------- |
| postcode<mark style="color:red;">\*</mark> | string   | **Verplicht.** De Nederlandse postcode (bijv. "3511 AA") |
| valuation\_date                            | date     | Referentiedatum voor prijsindexering (JJJJ-MM-DD)        |

**Example Complete Input**

```
https://api.altum.ai/market-trend?postcode=5258BB&valuation_date=2024-01-15
```

Bij een succesvolle  `GET` -aanvraag retourneert de API de status <mark style="color:green;">200 OK</mark> met een JSON-object dat de resultaten bevat.

### Market Trend API Response Model

| Veld                                | Type    | Beschrijving                                                                                                                                         |
| ----------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| **postcode**                        | String  | De genormaliseerde Nederlandse postcode (bijv. "1011AB") die voor de query is gebruikt.                                                              |
| **city**                            | String  | De plaatsnaam afgeleid van de adresstamgegevens.                                                                                                     |
| **neighbourhood**                   | String  | De specifieke buurtnaam (indien beschikbaar in Dataland-bron).                                                                                       |
| **municipality**                    | String  | De administratieve gemeente waaronder het gebied valt.                                                                                               |
| **averagePriceSingleFamilyHomes**   | Float   | De gemiddelde transactieprijs voor eengezinswoningen (vrijstaand, twee-onder-een-kap, tussenwoningen).                                               |
| **averagePriceMultiFamilyHomes**    | Float   | De gemiddelde transactieprijs voor meergezinswoningen (appartementen/flats).                                                                         |
| **pricePerSquareMeterSingleFamily** | Float   | De gemiddelde prijs per vierkante meter (€/m²) voor eengezinswoningen.                                                                               |
| **pricePerSquareMeterMultiFamily**  | Float   | De gemiddelde prijs per vierkante meter (€/m²) voor appartementen.                                                                                   |
| **annualPriceChange**               | Float   | De jaarlijkse procentuele groei (CAGR) van vastgoedwaarden vergeleken met het voorgaande geregistreerde jaar.                                        |
| **fiveYearPriceChange**             | Float   | De geprojecteerde procentuele waardeverandering over een periode van 5 jaar op basis van historische groeitrends.                                    |
| **totalSalesLast12Months**          | Integer | Het totaal aantal vastgoedtransacties dat de afgelopen 365 dagen in deze postcode is geregistreerd.                                                  |
| **priceDistribution**               | Object  | Een dictionary die dient als histogram, waarbij prijsklassen (bijv. "250-500k") worden gekoppeld aan het aantal verkochte panden in die categorie.   |
| **pricePerSquareMeterDistribution** | Object  | Een dictionary die dient als histogram, waarbij prijs-per-m²-klassen (bijv. "3000-3500") worden gekoppeld aan de verkoopfrekwentie in die categorie. |

### Output <a href="#id-5.-output" id="id-5.-output"></a>

**Voorbeeld volledige output**

```
{
  "valuationDate": "2024-01-15",
  "region": {
    "postcode": "5258BB",
    "city": "BERLICUM NB",
    "neighbourhood": "Berlicum",
    "municipality": "Sint-Michielsgestel"
  },
  "averagePriceSingleFamilyHomes": 585213.2,
  "averagePriceMultiFamilyHomes": null,
  "pricePerSquareMeterSingleFamily": 3862.19,
  "pricePerSquareMeterMultiFamily": null,
  "annualPriceChange": 2.34,
  "fiveYearPriceChange": 12.25,
  "transactionData": {
    "totalSalesLast12Months": 0
  },
  "priceDistribution": {
    "250-500k": 3,
    "500-750k": 1,
    "750k-1M": 1
  },
  "pricePerSquareMeterDistribution": {
    "0-2500": 1,
    "2500-3000": 1,
    "4000+": 3
  }
}
```

**Explanation**

🏘️ **Waarderingsdatum**

```
"valuationDate": "2024-01-15"
```

{% hint style="info" %}
Alle gegevens en KPI’s worden berekend op basis van de prijzen die gelden op de peildatum en weerspiegelen het prijsniveau dat op die datum van toepassing was.
{% endhint %}

🏘️ **Regio**

```
"region": {
  "postcode": "5258BB",
  "city": "BERLICUM NB",
  "neighbourhood": "Berlicum",
  "municipality": "Sint-Michielsgestel"
}
```

{% hint style="info" %}
Alle gegevens en KPI’s zijn berekend voor postcode 5258BB, met context op stad **BERLICUM NB**, wijk **Berlicum** en gemeente **Sint-Michielsgestel**.
{% endhint %}

💰 **Gemiddelde woningprijzen**

```
"averagePriceSingleFamilyHomes": 585213.2,
"averagePriceMultiFamilyHomes": null
```

{% hint style="info" %}

* Eengezinswoningen: gemiddeld €585213.2
* Meergezinswoningen / appartementen: geen gegevens beschikbaar voor dit gebied

Dit laat zien dat huizen in deze postcode relatief duur zijn, en dat de markt voor appartementen klein of niet geregistreerd is.
{% endhint %}

📏 **Prijs per vierkante meter**

```
"pricePerSquareMeterSingleFamily": 3862.19,
"pricePerSquareMeterMultiFamily": null
```

{% hint style="info" %}

* Eengezinswoningen: €3862.19 per m²
* Meergezinswoningen: geen gegevens beschikbaar

Dit geeft een manier om huizenprijzen eerlijk te vergelijken, zelfs als de woningen verschillen in grootte.
{% endhint %}

📈 **Prijsontwikkelingen**

```
"annualPriceChange": 2.34,
"fiveYearPriceChange": 12.25
```

{% hint style="info" %}

* Jaarlijkse prijsverandering: +2.34% → prijzen zijn het afgelopen jaar gestegen
* Vijfjarige prijsverandering: +12.25% → prijzen zijn de afgelopen 5 jaar aanzienlijk gestegen

Dit laat zien dat de huizenprijzen zowel op korte als lange termijn stijgen.
{% endhint %}

🏷️ **Transactie-activiteit**

```
"transactionData": {
  "totalSalesLast12Months": 0
}
```

{% hint style="info" %}

* Aantal verkopen in de laatste 12 maanden: 0

Er zijn het afgelopen jaar geen huizen verkocht in dit gebied, dus de markt is momenteel inactief.
{% endhint %}

💵 **Prijsverdeling**

```
 "priceDistribution": {
		"250-500k": 3,
		"500-750k": 1,
		"750k-1M": 1
	}
```

{% hint style="info" %}
Aantal huizen verkocht per prijsklasse (historisch, niet alleen de laatste 12 maanden):

* €250k–€500k → 3 huizen
* €500k–€750k → 1 huizen
* €1M+ → 1 huizen

De meeste verkochte huizen in deze postcode liggen in de €250k–€500k range, met enkele dure verkopen boven €1M.
{% endhint %}

🏠 **Verdeling prijs per vierkante meter**

```
"pricePerSquareMeterDistribution": {
		"0-2500": 1,
		"2500-3000": 1,
		"4000+": 3
	}
```

{% hint style="info" %}
Dit laat zien dat zelfs dure huizen relatief bescheiden geprijsd zijn per m² vergeleken met zeer luxe markten.

* €0–€2500 → 3 houses
* €2500–€3000 → 1 houses
* €4000+ → 3 houses
  {% endhint %}

{% tabs %}
{% tab title="200: OK Standard response" %}

```
Verzoek verwerkt en gegevens teruggestuurd.
```

{% endtab %}

{% tab title="400: Bad Request Unsuccessful response" %}

```
De postcode bestaat, maar er is onvoldoende gegevens (bijv. ontbrekende data of prijzen) om KPI's te berekenen.
```

{% endtab %}

{% tab title="404 Not Found" %}

```
Er bestaan geen transacties of stamgegevens voor de opgegeven postcode
```

{% endtab %}

{% tab title="422: Validation Error" %}
Het postcodeformaat was onjuist (bijv. "12345")
{% endtab %}

{% tab title="500: Internal Server Error Service is not available and/or down" %}

```
Error in database connection or unhandled exception in the calculation logic
```

{% endtab %}
{% endtabs %}


# API-sleutel Informatie

Begrijpen en Verkrijgen van jouw API-sleutel

**API-sleutel informatie**\
**Begrijpen en verkrijgen van uw API-sleutel**\
Een API-sleutel is een unieke identificatiecode waarmee u veilig toegang krijgt tot de API’s van Altum AI. Deze sleutel is vereist in de **x-api-key** header voor alle API-aanvragen om correcte authenticatie te waarborgen.

**Hoe u uw API-sleutel kunt verkrijgen**\
U kunt uw API-sleutel op twee manieren verkrijgen:

1. **Via het platform:** Genereer uw API-sleutel direct op het Altum AI-platform.
2. **Door abonnement:** Een API-sleutel wordt verstrekt wanneer u zich abonneert op het **Startup**-plan of **Unlimited**-plan.

**Waar u uw API-sleutel moet gebruiken**\
Neem de API-sleutel op in de **x-api-key** header van elk API-verzoek. Zonder een geldige sleutel wordt uw verzoek niet geverifieerd.

**Voorbeeld van header:**

```
x-api-key: YOUR_UNIQUE_API_KEY
```

**Beveiligingsnotitie**\
Houd uw API-sleutel vertrouwelijk om ongeautoriseerde toegang tot uw account te voorkomen.


# Woningwaarde API

De Woningwaarde API genereert de marktwaarde van woningen in Nederland en is getraind op Kadaster transacties en een rijke, actuele woningkenmerken database.

## Introductie

Met de Woningwaarde API creëert Altum AI unieke inzichten in vastgoedwaarden voor woningen in Nederland. De bron voor het berekenen van de marktwaarde van een woning is het zogenaamde Automated Valuation Model (AVM) van Altum AI. Dit model werkt met meer dan 150 variabelen per woning die realtime worden bijgewerkt. Het model houdt rekening met bekende variabelen zoals woonoppervlak, inhoud, woningtype, locatie en perceeloppervlak.

## Hoe te gebruiken

Om de marktwaarde en objectgegevens te kunnen aanleveren, moeten wij het object identificeren aan de hand van de postcode- en huisnummergegevens.

Afhankelijk van het object, woningtype en input genereren wij een reactie. In deze reactie worden de gegevens van de woning opgenomen, zoals adres, type gebouw, bouwjaar, binnenoppervlakte en indien beschikbaar huidig energielabel.

## POST Methode

![Graphic: Illustration of in- and output of the AVM API](/files/-LwNOneYQQ4WC2rj0UpT)

## Up next:

{% content-ref url="/pages/-LwNPUXNpilTNEKXXc79" %}
[Authenticatie, invoer en resultaat](/taxeren-en-waarderen/woningwaarde-api/authentication-input-and-response)
{% endcontent-ref %}


# Changelog

#### 2.2 - 2022-09-28

* Probleem opgelost waarbij zowel hoofdletters als kleine letters niet werden geaccepteerd voor toevoegingsletters voor huisnummers.

#### 2.1  - 2022-08-02

* Bijgewerkte lijst met mogelijke woningtype invoer [Woningtypes](/taxeren-en-waarderen/woningwaarde-api/woningtypes)

#### 2.0 - 2022-03-21

* Toegevoegd: [AccuracyIndicator](/taxeren-en-waarderen/woningwaarde-api/accuratesse-indicator) aan het resultaat = "AccuracyIndicator": 1

#### 1.03 - 2021-07-27

#### Gewijzigd

* De gebruiker kan het huistype invoeren en overschrijven&#x20;
* Fout 400-reactie toegevoegd wanneer het huis niet in de database bestaat. De foutmelding is "Uitvoer: het opgegeven huisadres niet gevonden in database, de combinatie van postcode, huisnummer en huistoevoeging bestaat niet.".
* Fout 400-reactie toegevoegd wanneer de voorspelling te laag is. Het bericht is "Uitvoer: de voorspelling is te laag.".&#x20;
* Fout 400-reactie toegevoegd wanneer het huistype niet wordt ondersteund. Het bericht is "Uitvoer: het opgegeven huistype wordt niet ondersteund of is onbekend."

#### 1.0.2 - 2021-01-25

#### Toegevoegd

* Huistype toegevoegd als invoer "huistype" om standaard te overschrijven&#x20;
* Toegevoegd gebruik van interne referentie-API voor geoptimaliseerde referentieobjecten
* Nieuwste AVM-model met verhoogd [betrouwbaarheid](https://altum.ai/accuratesse-altum-ai/)

#### Vast

* BAG ID is nu 16 karakters

#### Verwijderd

* WOZ functionaliteit - dit is nu onderdeel van de [WOZ API](https://docs.altum.ai/apis/woz-api)


# Authenticatie, invoer en resultaat

## Plaats objectgegevens om een nauwkeurige geautomatiseerde modelwaardering te ontvangen.

<mark style="color:green;">`POST`</mark> `https://api.altum.ai/avm`

Met dit eindpunt kunt u antwoord ontvangen van het Altum AI AVM-model.

#### Headers

| Name                                           | Type   | Description                                                                                                               |
| ---------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------- |
| Content-Type<mark style="color:red;">\*</mark> | string | application/json                                                                                                          |
| x-api-key<mark style="color:red;">\*</mark>    | string | Unieke API-sleutel van Altum. Maak er een via het platform op [https://platform.altum.ai](https://platform.altum.ai/auth) |

#### Request Body

| Name                                          | Type    | Description                                       |
| --------------------------------------------- | ------- | ------------------------------------------------- |
| postcode<mark style="color:red;">\*</mark>    | string  | Postcode van het object                           |
| image                                         | boolean | Afbeelding van object ophalen, 0 of 1             |
| buildyear                                     | integer | Jaar van constructie                              |
| innersurfacearea                              | integer | Vierkante meter (m2) binnenoppervlakte            |
| outersurfacecarea                             | integer | Vierkante meter (m2) buitenoppervlakte            |
| energylabel                                   | string  | Energielabel A t/m G                              |
| housetype                                     | string  | Woningtype van het object                         |
| valuationdate                                 | string  | Waarderingsdatum (standaard is datum van boeking) |
| houseaddition                                 | string  | Huisbrieven en/of toevoegingen                    |
| housenumber<mark style="color:red;">\*</mark> | number  | Huisnummer                                        |

{% tabs %}
{% tab title="200: OK Succesvolle reactie" %}

```
{
    "Output": {
        "BagID": "0637010021364937",
        "PostCode": "1234AB",
        "HouseNumber": "1",
        "HouseAddition": null,
        "City": "Woonplaats",
        "Street": "Straatnaam",
        "HouseType": "Tussenwoning",
        "BuildYear": "2001",
        "InnerSurfaceArea": "121",
        "OuterSurfaceArea": "136",
        "Volume": "429",
        "EnergyLabel": null,
        "Longitude": "4.524624609",
        "Latitude": "52.070925901563704",
        "Rooms": null,
        "Image": null,
        "ValuationDate": "20200326",
        "PriceEstimation": "355012",
        "Confidence": "90% Confidence Interval is 327363-429880."
    }
}
```

{% endtab %}

{% tab title="400: Bad Request Mislukte reactie" %}

```
{
  "Output": "The given house address not found in database, the combination of Post Code, House Number and House Addition does not exist."
}

{
  'Unsupported evaluation date format, it should be YYYYMMDD.'
}

{
  'The evaluation date range should be from {} and until {}.'
}

{
  'Output': 'The given house type is unsupported or unknown.'
}

{
  'Output': 'The prediction is too low.'
}
```

{% endtab %}

{% tab title="401: Unauthorized Geen toegang" %}

```
{
    'Output': 'Please use https://api.altum.ai or visit https://mopsus.altum.ai to make your request.'
}
```

{% endtab %}

{% tab title="403: Forbidden Verboden" %}

```
{
	"message": "Missing Authentication Token"
}
```

{% endtab %}

{% tab title="500: Internal Server Error Service is niet beschikbaar en/of niet beschikbaar" %}

```
{
	"message": "Internal server error"
}
```

{% endtab %}

{% tab title="422: Unprocessable Entity Verkeerd invoerformaat" %}

```
{
  "detail": [
    {
      "loc": [
        "body",
        "postcode"
      ],
      "msg": "string does not match regex \"^(?!1000|1001|1002|1003|1004|1005|1006|1007|1008|1009|1010)[1-9][0-9]{3}[A-Z]{2}$\"",
      "type": "value_error.str.regex",
      "ctx": {
        "pattern": "^(?!1000|1001|1002|1003|1004|1005|1006|1007|1008|1009|1010)[1-9][0-9]{3}[A-Z]{2}$"
      }
    }
  ]
}
```

{% endtab %}

{% tab title="429: Too Many Requests API-sleutellimiet overschreden" %}

{% endtab %}
{% endtabs %}

## Request body

#### Voorbeeld verzoek

```
{
   "postcode" : "1234AB",
   "housenumber" : "5",
   "houseaddition" : "",
   "valuationdate" : "20200326",
   "image": 1,
   "buildyear": 2000,
   "innersurfacearea": 150,
   "outersurfacearea": 100,
   "energylabel": "B",
   "housetype": "Vrijstaande woning"
}
```

## &#x20;Up next:

{% content-ref url="/pages/-LwNf4yZXvEbM\_g-RwmB" %}
[Parameters](/taxeren-en-waarderen/woningwaarde-api/variables)
{% endcontent-ref %}


# API-sleutel Informatie

Begrijpen en Verkrijgen van jouw API-sleutel

Een API-sleutel is een unieke identificatiecode die je veilige toegang biedt tot de API's van Altum AI. Het is verplicht om deze sleutel in de `x-api-key` header van alle API-verzoeken op te nemen om een juiste authenticatie te garanderen.

**Hoe verkrijg je jouw API-sleutel?**\
Je kunt je API-sleutel op twee manieren verkrijgen:

1. **Via het Platform:** Genereer jouw API-sleutel direct op het Altum AI-platform.
2. **Door een Abonnement:** Een API-sleutel wordt verstrekt wanneer je je abonneert op het Startup- of Unlimited-plan.

**Waar gebruik je jouw API-sleutel?**\
Voeg de API-sleutel toe aan de `x-api-key` header van elk API-verzoek. Zonder een geldige sleutel wordt je verzoek niet geauthenticeerd.

**Voorbeeld Header:**

```plaintext
x-api-key: JOUW_UNIEKE_API_SLEUTEL
```

**Beveiligingsnotitie**\
Houd jouw API-sleutel vertrouwelijk om ongeautoriseerde toegang tot je account te voorkomen.


# Accuratesse Indicator

### Uitleg

Bij het afgeven van een modeltaxatie dient de modelleverancier iedere modeltaxatie taxatiewaarde te specificeren met een indicatie van de juistheid van de betreffende belastingheffing. Voor de nauwkeurigheid wordt een zevenpuntsschaal gebruikt, die is gebaseerd op de kansverdeling rond de waarde. De volgende classificatie is van toepassing:

### Klasses

<table><thead><tr><th width="196">Accuratesse Indicator</th><th>Definitie</th></tr></thead><tbody><tr><td>0</td><td>&#x3C; 50% accuratesse in 20% afwijking</td></tr><tr><td>1</td><td>&#x3C; 85% accuratesse in 20% afwijking</td></tr><tr><td>2</td><td>>= 85% accuratesse in 20% afwijking</td></tr><tr><td>3</td><td>>= 85% accuratesse in 20% afwijking en >= 70% accuratesse in 10% afwijking</td></tr><tr><td>4</td><td>>= 85% accuratesse in 20% afwijking en >= 80% accuratesse in 10% afwijking</td></tr><tr><td>5</td><td>>= 85% accuratesse in 20% afwijking en >= 85% accuratesse in 10% afwijking en >= 60% accuratesse in 5% afwijking</td></tr><tr><td>6</td><td>>= 90% accuratesse in 20% afwijking en >= 90% accuratesse in 10% afwijking en >= 70% accuratesse in 5% afwijking</td></tr><tr><td>7</td><td>>= 95% accuratesse in 20% afwijking en >= 90% accuratesse in 10% afwijking en >= 80% accuratesse in 5% afwijking</td></tr></tbody></table>

Afhankelijk van het doel van de modelmatige waardering wordt bepaald welk niveau van nauwkeurigheid minimaal vereist is.


# Huisnummers & toevoegingen

### Hoe input te geven over huisnummers & toevoegingen?

Als algemene vuistregel:

* Een huisletter is altijd een letter en altijd maar 1 teken&#x20;
* Huisnummertoevoeging (toevoeging) kan alles in letters of cijfers zijn, en kan meer dan 1 karakter zijn

Voorbeelden:

1. huisletter: A, toevoeging: 02, `houseaddition` invoer als string "A02"
2. huisletter: '', toevoeging: 02, `houseaddition`invoer als string "02"
3. huisletter: A, toevoeging: '', `houseaddition` invoer als string "A"
4. huisletter: '', toevoeging: '', `houseaddition` invoer als string ""
5. huisletter: '', toevoeging: 2B, `houseaddition` invoer als string "2B"


# Woningtypes

**Mogelijke woningtype invoer**

*Update August 2022*

\['Vrijstaande woning', '2 onder 1 kap woning', 'Geschakelde 2 onder 1 kapwoning', 'Geschakelde woning', 'Tussen/rijwoning', 'Hoekwoning', 'Eindwoning', 'Galerijflat', 'Portiekflat', 'Corridorflat', 'Maisonnette', 'Benedenwoning', 'Bovenwoning', 'Portiekwoning']

#### Voorbeeldverzoek voor het bijwerken van het huistype in de API-aanroep

```
{
"postcode": "1234AB",
"housenumber": 1,
"housetype": "Vrijstaande woning"
}
```

### Huistypes in kaart brengen voor de Sustainability API house\_type invoer

De [Sustainability API](/verduurzamen/verduurzaming-api) omvat vijf typen woningtypes. Het gebruik van de AVM API-uitvoer van het huistype vereist de volgende mapping:

*Woningwaarde API resultaat = Verduurzaming API input*

* '2 onder 1 kap woning', 'Geschakelde 2 onder 1 kapwoning = 1
* 'Hoekwoning', 'Eindwoning = 2
* 'Geschakelde woning', 'Tussen/rijwoning' = 3&#x20;
* 'Vrijstaande woning' = 4&#x20;
* 'Galerijflat', 'Portiekflat', 'Corridorflat', 'Maisonnette', 'Benedenwoning', 'Bovenwoning', 'Portiekwoning' = 5


# Parameters

Uitleg van de verschillende variabelen van het resultaat.

## **BAG ID**

De unieke identificatiecode uit de Basisregistratie Adressen en Gebouwen (BAG) van het Kadaster met betrekking tot het object.

## **Adres data**

Postcode, huisnummer, huisletter, huistoevoeging worden geretourneerd zoals opgegeven en verrijkt met de straat- en plaatsnaam. Een huisletter bevat altijd maar één teken uit het alfabet. Huistoevoeging kan tekens, cijfers en meer bevatten.

## **Object data**

Binnenoppervlakte (m2), buitenoppervlakte (m2) en inhoud (m3) worden gegeven naast de locatie (lat/lon). Het energielabel is definitief, voorlopig of berekend afhankelijk van wat er beschikbaar is.

## Voorspelde schatting

De voorspelde waarde in euro's op basis van onze AVM afgerond op het dichtstbijzijnde duizendtal.

## **Waarderingsdatum**

De gegevens waarop de waardering wordt berekend in formaat JJJJMMDD. De waarderingsdatum is optioneel en. Als het leeg is, wordt de invoerdatum gebruikt voor de berekening en geretourneerd in het antwoord. Als de opgegeven datum in de toekomst ligt, wordt voor de schatting van de prijs gebruikgemaakt van de invoerdatum die wordt geretourneerd als waarderingsdatum. Als een waarderingsdatum in het verleden ligt, wordt de historische datum gebruikt om de waardering van de opgegeven datum te retourneren.

## Betrouwbaarheidspercentage

Een betrouwbaarheidsindicator die het vertrouwen over de voorspelde waarde aangeeft (uitgedrukt in een percentage).

## **Betrouwbaarheidsklasse**

De betrouwbaarheidsklasse is een nauwkeurigheidsindicator die wordt gegenereerd door het betrouwbaarheidspercentage en drukt de betrouwbaarheid uit van de geschatte objectwaarde. De betrouwbaarheidsklassen variëren van I tot IV. De lagere klassen (I en II) vertegenwoordigen een nauwkeurigere waardering.

## Up next:

{% content-ref url="/pages/-LwNnGUVSppafG4KEEns" %}
[Broken mention](broken://pages/-LwNnGUVSppafG4KEEns)
{% endcontent-ref %}


# Resultaat interpretatie

Een uitleg en interpretatie van elke functie die wordt uitgevoerd in het API-antwoord.

| Feature           | Voorbeeld                                                                | Uitleg                                                                                                  |
| ----------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------- |
| BagID             | 0499010002023718                                                         | VBO ID vanuit de BAG registratie                                                                        |
| PostCode          | 2771DS                                                                   | Postcode                                                                                                |
| HouseNumber       | 87                                                                       | Huisnummer                                                                                              |
| HouseAddition     | A                                                                        | Huisnummer toevoeging                                                                                   |
| City              | Boskoop                                                                  | Woonplaats                                                                                              |
| Street            | Zuidkade                                                                 | Straatnaam                                                                                              |
| HouseType         | Vrijstaande woning                                                       | Ga naar de [Woningtype](/taxeren-en-waarderen/woningwaarde-api/woningtypes) pagina                      |
| BuildYear         | 1961                                                                     | Bouwjaar                                                                                                |
| InnerSurfaceArea  | 131                                                                      | Woonopperlak                                                                                            |
| OuterSurfaceArea  | 1605                                                                     | Perceeloppervlak                                                                                        |
| Volume            | 548                                                                      | Inhoud (m3)                                                                                             |
| EnergyLabel       | C                                                                        | Definitieve energielabel                                                                                |
| Longitude         | 4.65808526945334                                                         | GPS coördinaten                                                                                         |
| Latitude          | 52.068393816655316                                                       | GPS coördinaten                                                                                         |
| Rooms             | 3                                                                        | Aantal kamers                                                                                           |
| Image             | <https://avm-api-images.s3.eu-west-3.amazonaws.com/0499010002023718.jpg> | Google Streetview image                                                                                 |
| ValuationDate     | 20230410                                                                 | Waarderingsgegevens voor prijsschatting. Standaard = vandaag                                            |
| PriceEstimation   | 758358                                                                   | Marktwaarde  in €                                                                                       |
| Confidence        | 90% Confidence Interval is 682522-834193.                                | Waarderingsrange o.b.v. een 90% interval                                                                |
| AccuracyIndicator | 1                                                                        | Ga naar de [Accuratesse indicator](/taxeren-en-waarderen/woningwaarde-api/accuratesse-indicator) pagina |


# Veelgestelde vragen (FAQ)

**Welke prijs wordt voorspeld door de AVM API?**&#x20;

Altum AI voorspelt de transactiewaarde of vrije verkoopwaarde voor de opgegeven waarderingsdatum.&#x20;

**Hoe wordt vertrouwen gemeten en hoe zou het moeten zijn geïnterpreteerd?**&#x20;

De AVM leert woningwaarderingen te voorspellen uit de actuele marktwaardes. Zodra de voorspelling is gegenereerd, begint het proces van het schatten van het voorspellingsinterval. Het voorspellingsinterval onthult waar een waarde in de toekomst zal vallen en is een geweldige manier om de onzekerheid in te schatten. Deze procedure is gebaseerd op een statistische benadering die een prijsbereik definieert voor waar het 90%-betrouwbaarheidsinterval ligt.&#x20;

**Is het mogelijk om andere data dan vandaag in te voeren?**&#x20;

De AVM API gebruikt standaard de datum van vandaag van binnenkomst. Het is mogelijk om een ​​waarderingsdatum in het verleden in te voeren en dan zal de AVM API de waarde van die gegeven datum retourneren. Het is niet mogelijk om taxaties voor toekomstige datums op te geven, als een toekomstige datum als invoer wordt opgegeven, wordt de taxatie voor 'vandaag' geretourneerd.&#x20;

**Hoe moet ik huisnummertoevoegingen invoeren?**&#x20;

Huisnummertoevoegingen worden als volgt gecombineerd met huisletters: B4&#x20;

**Wat is de nauwkeurigheid van het model?**&#x20;

Het model heeft een Mediaan Absolute Performance Error rate van 3,57%. Ga naar de nauwkeurigheidspagina op de Altum AI-website voor een uitgebreidere uitleg.


# Woningwaarde+ API

De Woningwaarde+ API levert de transactiewaarde van de ingevoerde Nederlandse woning op de opgegeven taxatiedatum.

## Waarom de Woningwaarde+ API?

Het doel van het Woningwaarde+ model is om op een efficiënte wijze nauwkeurige voorspellingen van transactieprijzen te genereren door gebruik te maken van een zo uitgebreid scala aan beschikbare gegevens en marktindicatoren. Door alle relevante informatie te integreren, zorgt dit model voor zowel snelheid als een hoge dekking in het kunnen waarderen van woningen.

## Verschil met de basis Woningwaarde API

Het basis Woningwaarde model voldoet, in tegenstelling tot de Woningwaarde+, volledig aan de NRVT richtlijnen en levert getaxeerde waarden op in overeenstemming met de normen die in de richtlijn zijn uiteengezet.

## Voordelen ten opzichte van Woningwaarde API

1. **Uitgebreide dekking:** het Woningwaarde + model kan nu waarde inschattingen genereren voor álle soorten woningen, waardoor een uitgebreide dekking over de hele woningmarkt wordt gegarandeerd.
2. **Verbeterde nauwkeurigheid:** met geavanceerde algoritmen en data-analysetechnieken is ons model qua nauwkeurigheid bij het voorspellen van transactieprijzen aanzienlijk vergroot.
3. **Verbeterde snelheid:** de prestaties van het Woningwaarde + model zijn geoptimaliseerd om snellere resultaten te leveren. U kunt nu efficiënter woningwaarde indicaties verkrijgen, waardoor u tijd bespaart en de productiviteit verbetert.

## Hoe te gebruiken

Om de marktwaarde en objectgegevens te kunnen aanleveren, moeten wij het object identificeren aan de hand van de eigen gegevens en de taxatiedatum. De waarderingsdatum vertegenwoordigt de datum waarvoor de gebruiker de transactiewaarden wenst te hebben. In de reactie worden enkele kenmerken van de woning vermeld, bijvoorbeeld bouwjaar, woonoppervlak etc.

## POST Method

<figure><img src="/files/6cN4pPXiVngutTAhCHW1" alt=""><figcaption><p>Illustratie van invoer en uitvoer van de Woningwaarde+ API</p></figcaption></figure>


# Changelog

#### 1.6 - 2025-05-29

* De nauwkeurigheid van het model is met 10% toegenomen

**1.5 - 2024-10-17**&#x20;

* Het model bijgewerkt om stabielere voorspellingen te bieden.&#x20;
* Buitenoppervlak toegevoegd als invoer.

#### 1.4 - 2024-6-25

* Er is een probleem opgelost dat optrad wanneer 'outersurfacearea' ontbrak in de [Woningwaarde+ API](/taxeren-en-waarderen/woningwaarde+-api).&#x20;

#### 1.3 - 2024-6-12

* Accuratesse verbetering van 20,3% met het Alpha 4 model binnen 10% foutmarge

#### 1.2 - 2024-4-11

* Bug opgelost bij de uitvoer van de waarde van het oppervlak (float -> integer)

#### 1.1 - 2024-4-10

* Accuratesse verbetering van 2,1% met het Alpha 3 model binnen 10% foutmarge
* Energielabel toegevoegd als invoer "energielabel" om de standaardwaarde te overschrijven
* Woonoppervlak toegevoegd als invoer "innersurfacearea" om de standaardwaarde te overschrijven

#### 1.0 - 2024-4-8

* Bug opgelost bij de voorverwerking van de 'Volume'-functie van het doelhuis.


# Authenticatie, invoer en resultaat

## Plaats objectgegevens om een nauwkeurige geautomatiseerde modelwaardering te ontvangen

<mark style="color:green;">`POST`</mark> `https://api.altum.ai/avmplus`

Met dit eindpunt kunt u antwoord ontvangen van het Altum AI Woningwaarde+ model.

#### Headers

| Name                                        | Type   | Description                                                                                              |
| ------------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------- |
| Content-Type                                | string | application/json                                                                                         |
| x-api-key<mark style="color:red;">\*</mark> | string | Unieke API-sleutel van Altum. Maak er een op [https://platform.altum.ai](https://platform.altum.ai/auth) |

#### Request Body

| Name                                          | Type   | Description                                                  |
| --------------------------------------------- | ------ | ------------------------------------------------------------ |
| postcode<mark style="color:red;">\*</mark>    | string | Postcode van het object                                      |
| valuation\_date                               | string | Waarderingsgegevens voor prijsschatting. Standaard = vandaag |
| houseaddition                                 | string | Huisnummerletters en/of toevoeging                           |
| housenumber<mark style="color:red;">\*</mark> | number | Huisnummer                                                   |
| energylabel                                   | string | Energielabel A++++ t/m G                                     |
| innersurfacearea                              | number | Vierkante meter (m2) binnenoppervlakte                       |
| outersurfacearea                              | number | Vierkante meter (m2) buitenoppervlakte                       |

{% tabs %}
{% tab title="401: Unauthorized Geen toegang" %}

```
{
    'Output': 'Please use https://api.altum.ai or visit https://mopsus.altum.ai to make your request.'
}
```

{% endtab %}

{% tab title="403: Forbidden Verboden" %}

```
{
	"message": "Missing Authentication Token"
}
```

{% endtab %}

{% tab title="429: Too Many Requests API key limiet overschreden" %}

{% endtab %}

{% tab title="500: Internal Server Error Service is niet beschikbaar en/of offline" %}

```
{
	"message": "Internal server error"
}
```

{% endtab %}

{% tab title="422: Unprocessable Entity Verkeerde invoer" %}

```
{
  "detail": [
    {
      "loc": [
        "body",
        "postcode"
      ],
      "msg": "string does not match regex \"^(?!1000|1001|1002|1003|1004|1005|1006|1007|1008|1009|1010)[1-9][0-9]{3}[A-Z]{2}$\"",
      "type": "value_error.str.regex",
      "ctx": {
        "pattern": "^(?!1000|1001|1002|1003|1004|1005|1006|1007|1008|1009|1010)[1-9][0-9]{3}[A-Z]{2}$"
      }
    }
  ]
}
```

{% endtab %}

{% tab title="200: OK Succesvolle reactie" %}

```
{
	"bagid": "0363010000735772",
	"postcode": "1024CT",
	"housenumber": "25",
	"houseaddition": "",
	"city": "Amsterdam",
	"street": "Markengouw",
	"housetype": "Portiekwoning",
	"buildyear": "1967",
	"innersurfacearea": "76",
	"outersurfacearea": "3299",
	"volume": "2211",
	"energylabel": "D",
	"longitude": "4.96144831561363",
	"latitude": "52.39109040866619",
	"valuationdate": "20231120",
	"priceestimation": "278082",
	"confidence": "90% Confidence Interval is 250273-305890."
}
```

{% endtab %}

{% tab title="400: Bad Request Mislukte reactie" %}

```
{
  "Output": "The given house address not found in database, the combination of Post Code, House Number and House Addition does not exist."
}

{
  'Unsupported evaluation date format, it should be YYYYMMDD.'
}

{
  'The evaluation date range should be from {} and until {}.'
}

{
  'Output': 'We are not able to provide prediction at the moment.'
}

{
  'Output': 'The prediction is too low.'
}
```

{% endtab %}
{% endtabs %}

## Request body

#### Voorbeeld verzoek

```
{
  "postcode": "1024CT",
  "housenumber": 25,
  "houseaddition": "",
  "valuation_date": "20230112"
}
```


# API-sleutel Informatie

Begrijpen en Verkrijgen van jouw API-sleutel

Een API-sleutel is een unieke identificatiecode die je veilige toegang biedt tot de API's van Altum AI. Het is verplicht om deze sleutel in de `x-api-key` header van alle API-verzoeken op te nemen om een juiste authenticatie te garanderen.

**Hoe verkrijg je jouw API-sleutel?**\
Je kunt je API-sleutel op twee manieren verkrijgen:

1. **Via het Platform:** Genereer jouw API-sleutel direct op het Altum AI-platform.
2. **Door een Abonnement:** Een API-sleutel wordt verstrekt wanneer je je abonneert op het Startup- of Unlimited-plan.

**Waar gebruik je jouw API-sleutel?**\
Voeg de API-sleutel toe aan de `x-api-key` header van elk API-verzoek. Zonder een geldige sleutel wordt je verzoek niet geauthenticeerd.

**Voorbeeld Header:**

```plaintext
x-api-key: JOUW_UNIEKE_API_SLEUTEL
```

**Beveiligingsnotitie**\
Houd jouw API-sleutel vertrouwelijk om ongeautoriseerde toegang tot je account te voorkomen.


# Huisnummers, letters & toevoegingen

Het juiste formaat voor het invoeren van het huisnummer en de huistoevoeging

## Hoe input geven over huisnummers & toevoegingen?

Als algemene vuistregel:

* Een huisbrief is altijd een letter en altijd slechts 1 karakter.
* Huisnummertoevoeging kan alles in letters of cijfers zijn, en kan uit meer dan één teken bestaan. Speciale tekens worden niet geaccepteerd!
* Het huisnummer mag alleen een nummer zijn.

Juiste voorbeelden van invoer van huistoevoegingen in de API:

1. huisletter: A, huisbijtelling: 02, `houseaddition`invoer als string "A02"&#x20;
2. huisletter: "'', huisbijtelling: 02, `houseaddition`invoer als string "02"&#x20;
3. huisletter: A, huisbijtelling: "'', `houseaddition`invoer als string "A"
4. huisletter: "'', huisbijtelling: "'', `houseaddition`invoer als string ""&#x20;
5. huisletter: "'', huisbijtelling: 2B, `houseaddition`invoer als string "2B"


# Energielabel en binnen- en buitenoppervlakte

Het juiste formaat voor het energielabel en de binnenoppervlakte-invoer

**Mogelijke energielabelinvoer**

\['G', 'F', 'E', 'D', 'C', 'B', 'A', 'A+', 'A++', 'A+++', 'A++++']

**Voorbeeldverzoek voor het bijwerken van het energielabel in de API-call**

```
{
"postcode": "1234AB",
"housenumber": 1,
"energylabel": "C"
}
```

**Mogelijke invoer van het binnenoppervlak**

Het binnenoppervlak neemt elk niet-negatief getal als invoer

**Voorbeeldverzoek voor het bijwerken van het binnenoppervlak in de API-call**

<pre><code><strong>{
</strong>"postcode": "1234AB",
"housenumber": 1,
"innersurfacearea": 123
}
</code></pre>

**Mogelijke ingangen voor het buitenoppervlak**&#x20;

Het buitenoppervlak neemt elk niet-negatief getal als invoer&#x20;

**Voorbeeldverzoek voor het bijwerken van het buitenoppervlak in de API-call**

<pre><code><strong>{
</strong>"postcode": "1234AB",
"housenumber": 1,
"outersurfacearea": 250
}
</code></pre>


# Resultaat interpretatie

Een uitleg en interpretatie van elke functie die in het API antwoord wordt weergegeven.

| Feature              | Voorbeeld                                 | Uitleg                                                                             |
| -------------------- | ----------------------------------------- | ---------------------------------------------------------------------------------- |
| bag\_iD              | 0499010002023718                          | VBO ID vanuit de BAG registratie                                                   |
| postcode             | 2771DS                                    | Postcode                                                                           |
| housenumber          | 87                                        | Huisnummer                                                                         |
| houseaddition        | A                                         | Huisnummerletters en/of toevoeging                                                 |
| city                 | Boskoop                                   | Woonplaats                                                                         |
| street               | Zuidkade                                  | Straatnaam                                                                         |
| house\_type          | Vrijstaande woning                        | Ga naar de [Woningtype](/taxeren-en-waarderen/woningwaarde-api/woningtypes) pagina |
| build\_year          | 1961                                      | Bouwjaar                                                                           |
| inner\_surface\_area | 131                                       | Woonopperlak                                                                       |
| outer\_surface\_area | 1605                                      | Perceeloppervlak                                                                   |
| volume               | 548                                       | Inhoud (m3)                                                                        |
| energy\_label        | C                                         | Definitieve energielabel indien beschikbaar, anders tijdelijk                      |
| longitude            | 4.65808526945334                          | GPS coördinaten                                                                    |
| latitude             | 52.068393816655316                        | GPS coördinaten                                                                    |
| valuation\_date      | 20230410                                  | Waarderingsgegevens voor prijsschatting. Standaard = vandaag                       |
| priceestimation      | 758358                                    | Marktwaarde  in €                                                                  |
| confidence           | 90% Confidence Interval is 682522-834193. | Waarderingsrange o.b.v. een 90% interval                                           |


# Duurzaamheid Subsidies API

Met de Subsidies API kunnen gebruikers duurzaamheidssubsidies in Nederland vinden op basis van hun postcode en toegang krijgen tot Nederlandse leningprogramma's zoals Warmtefonds en SVN

<figure><img src="/files/OvhcK7T9e6Ibd9eoVKMp" alt=""><figcaption></figcaption></figure>

### Introductie

De Subsidies API is een krachtig hulpmiddel ontworpen om gebruikers te helpen bij het navigeren door financieringsmogelijkheden voor duurzaamheid in heel Nederland. Het aggregeert informatie van nationale, provinciale en gemeentelijke programma's en biedt een uniform platform voor het ontdekken van subsidies en leningen die milieuvriendelijke woningverbeteringen en energietransitieprojecten ondersteunen.

Naast het ontdekken van beschikbare programma's biedt de API geavanceerde mogelijkheden voor leningberekeningen. Het stelt gebruikers in staat om rentetarieven, totale bedragen en maandelijkse betalingen te schatten op basis van parameters zoals leningduur, inkomen en terugbetalingsperiode.

De belangrijkste doelstellingen van de Subsidies API zijn:

* Real-time subsidie- en leninggegevens ophalen uit officiële overheidsbronnen.
* Geschiktheid evalueren op basis van belangrijke invoerparameters (bijv. inkomen, woningbezit en gewenste leningperiode).
* Optimale leningopties aanbevelen, inclusief gedetailleerde berekeningen van totale rente, totale kosten en geschatte maandelijkse termijnen.

Door complexe financiële gegevens samen te brengen in één gebruiksvriendelijke dienst, stelt de Subsidies API individuen en organisaties in staat om weloverwogen beslissingen te nemen over duurzame investeringen.


# Authenticatie, invoer en resultaat

### Endpoint <a href="#endpoint" id="endpoint"></a>

<mark style="color:$success;">**`POST`**</mark> `https://api.altum.ai/subsidy`

**Request headers**

| Header         | Verplicht | Waarde                  |
| -------------- | --------- | ----------------------- |
| `x-api-key`    | Ja        | Je Altum AI API-sleutel |
| `Content-Type` | Ja        | `application/json`      |

De snelste manier om de API werkend te zien, is door één veld te sturen, `postcode`, en het antwoord te bekijken.

```bash
curl -X POST https://api.altum.ai/subsidy \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "postcode": "3511 AA"
  }'
```

Dit geeft alle beschikbare subsidies voor de postcode terug (gemeentelijk, provinciaal en landelijk), met `Loans.eligible_programs` leeg en zonder `isde_2026`-blok.

Vanaf hier zijn er drie gebruiksflows die het verzoek uitbreiden:

| Flow                             | Toevoegen aan verzoek    | Geeft terug                                  |
| -------------------------------- | ------------------------ | -------------------------------------------- |
| Subsidies ontdekken              | `level`, `limit`, `tags` | Alleen gefilterde subsidies                  |
| Leningseligibiliteit controleren | `applicant`-object       | Geschikte leningprogramma's met berekeningen |
| ISDE-subsidie schatten           | `isde`-object            | `isde_2026`-berekeningsblok                  |

Je kunt alle drie combineren in één verzoek.

Geeft subsidies, leningseligibiliteit en ISDE 2026-schattingen terug voor een opgegeven postcode. De objecten `applicant` en `isde` zijn optioneel. Het antwoord heeft altijd dezelfde structuur op het hoogste niveau. Secties die je niet hebt opgevraagd zijn leeg of ontbreken.

#### Request body - hoogste niveau

| Veld                     | Type              | Verplicht | Beschrijving                                                                                              |
| ------------------------ | ----------------- | --------- | --------------------------------------------------------------------------------------------------------- |
| `postcode`               | string            | Ja        | Nederlandse postcode in het formaat `1234 AB` (met spatie).                                               |
| `level`                  | array van strings | Nee       | Filtert subsidies op niveau. Eén of meer van `municipality`, `province`, `national`. Standaard alle drie. |
| `limit`                  | integer           | Nee       | Maximumaantal subsidies per niveau.                                                                       |
| `tags`                   | array van strings | Nee       | Filtert subsidies op onderwerp. Zie [Tags-referentie](#tags-referentie).                                  |
| `loan_applicant_profile` | object            | Nee       | Persoonlijke en financiële gegevens voor leningseligibiliteit. Zie het aanvragerobject.                   |
| `isde`                   | object            | Nee       | Projectgegevens voor de ISDE 2026-berekening. Zie het ISDE-object.                                        |

**Volledig verzoekvoorbeeld**

```json
{
  "postcode": "3511 AA",
  "level": ["municipality", "national"],
  "limit": 5,
  "tags": ["Isolatie", "Warmtepompen"],
  "loan_applicant_profile": {
    "age": 45,
    "is_homeowner": true,
    "is_occupant": true,
    "residence_country": "Netherlands",
    "property_use_residential_percent": 100,
    "credit_approved": true,
    "previously_rejected_nwf1": false,
    "rejection_reason": null,
    "requested_amount": 15000,
    "existing_nwf_loan_balance": 0,
    "specific_target_group": false,
    "collective_neighborhood": false,
    "has_mortgage_security": false,
    "business_part_connected": null,
    "gross_household_income": 55000,
    "desired_loan_period_years": 10
  },
  "isde_rvo": {
    "measures": [
      { "code": "WB002a", "area_m2": 80 },
      { "code": "WB212a", "area_m2": 40 },
      { "code": "WB019b", "area_m2": 50 },
      { "code": "WB149c" },
      { "code": "WB157" },
      { "code": "WB405" },
      { "code": "WB142a" }
    ]
  }
}
```

### Gebruiksflows

#### <mark style="color:$primary;">Flow 1 - Alleen subsidies ophalen</mark>

Stuur `postcode` met optioneel `level`, `limit` en `tags`. Het antwoord geeft subsidies terug, gegroepeerd per niveau. `Loans.eligible_programs` is leeg en het `isde_2026`-blok ontbreekt.

**Request**

```json
{
  "postcode": "3511 AA",
  "level": ["municipality", "province", "national"],
  "limit": 5,
  "tags": ["Isolatie", "Warmtepompen"]
}
```

**Response (ingekort)**

```json
{
  "postal_code": "3511 AA",
  "municipality": "Utrecht",
  "province": "Utrecht",
  "disclaimer": "These subsidies were available at the moment of scraping and may have closed since. Please verify on official websites.",
  "Loans": { "eligible_programs": [] },
  "subsidies": {
    "municipality_subsidies": [
      {
        "location_name": "Utrecht",
        "name": "Vraag subsidie isoleren kleine vve",
        "description": "Deze subsidie van de gemeente Utrecht is bedoeld voor kleine Verenigingen van Eigenaren (VvE's)...",
        "eligibility": "Eigenaar zijn van een woning in een kleine VvE...",
        "application_deadlines": "until:31 december 2026",
        "subsidy_amounts": "min:€8.000 max:€8.000",
        "budget_ceilings": null,
        "application_process": "Maak eventueel een afspraak voor hulp bij de aanvraag...",
        "url": "https://loket.digitaal.utrecht.nl/nl/producten/kleine-vve-isoleren-extra-subsidie-aanvragen",
        "contact_info": "subsidie@utrecht.nl, 030 – 286 33 36",
        "level": "municipality"
      }
    ],
    "province_subsidies": [
      {
        "location_name": "Utrecht",
        "name": "Subsidieregeling Bereikbaarheid",
        "description": "De Subsidieregeling Bereikbaarheid van de provincie Utrecht...",
        "eligibility": "Fiets: Wegbeheerders binnen de provincie Utrecht...",
        "application_deadlines": "from:7 januari 2026 to:30 september 2026",
        "subsidy_amounts": null,
        "budget_ceilings": null,
        "application_process": "Dien een projectplanning in met duidelijke mijlpalen...",
        "url": "https://www.provincie-utrecht.nl/loket/subsidies/subsidieregeling-bereikbaarheid",
        "contact_info": "Voor algemene vragen: subsidies@provincie-utrecht.nl...",
        "level": "province"
      }
    ],
    "national_subsidies": [
      {
        "location_name": "Netherlands",
        "name": "ISDE: Warmtepomp woningeigenaren",
        "description": "Met de Investeringssubsidie duurzame energie en energiebesparing (ISDE)...",
        "eligibility": "U laat de warmtepomp eerst installeren, daarna vraagt u de subsidie aan...",
        "application_deadlines": "Aanvragen tot en met 31 december 2030.",
        "subsidy_amounts": null,
        "budget_ceilings": null,
        "application_process": "Voor uw aanvraag heeft u de DigiD-app nodig...",
        "url": "https://www.rvo.nl/subsidies-financiering/isde/woningeigenaren/warmtepomp",
        "contact_info": "Ministerie van Economische Zaken en Klimaat",
        "level": "national"
      }
    ]
  }
}
```

**Velden van een subsidie-item**

| Veld                    | Type   | Beschrijving                                                                                                               |
| ----------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------- |
| `location_name`         | string | Naam van gemeente, provincie of land.                                                                                      |
| `name`                  | string | Naam van het programma (Nederlands).                                                                                       |
| `description`           | string | Beschrijving van het programma (Nederlands).                                                                               |
| `eligibility`           | string | Voorwaarden gescheiden door puntkomma's (Nederlands).                                                                      |
| `application_deadlines` | string | Deadlinestring. Formaten: `until:<datum>` of `from:<datum> to:<datum>`. Datums in het Nederlands (bv. `31 december 2026`). |
| `subsidy_amounts`       | string | Bedragenrange als string. Formaat: `min:€<bedrag> max:€<bedrag>`.                                                          |
| `budget_ceilings`       | string | Totaal budgetplafond voor het programma, indien opgegeven.                                                                 |
| `application_process`   | string | Hoe aan te vragen (Nederlands).                                                                                            |
| `url`                   | string | Officiële programmapagina.                                                                                                 |
| `contact_info`          | string | Contactgegevens van de uitgevende instantie.                                                                               |
| `level`                 | string | Eén van `municipality`, `province`, `national`.                                                                            |

#### <mark style="color:$primary;">Flow 2 - Leningseligibiliteit</mark>

Voeg het `applicant`-object toe aan het verzoek. Het antwoord geeft passende leningsprogramma's terug met berekeningen toegespitst op de aanvrager, zoals rentepercentage, maandlast en totale kosten.

Alle velden zijn verplicht wanneer `applicant` is opgegeven, tenzij anders vermeld.

| Veld                               | Type            | Beschrijving                                                                                       |
| ---------------------------------- | --------------- | -------------------------------------------------------------------------------------------------- |
| `age`                              | integer         | Leeftijd van de aanvrager in jaren. Sommige programma's, zoals NWF 1, hanteren een leeftijdsgrens. |
| `is_homeowner`                     | boolean         | Of de aanvrager eigenaar is van de woning.                                                         |
| `is_occupant`                      | boolean         | Of de aanvrager in de woning woont.                                                                |
| `residence_country`                | string          | Land van verblijf. De meeste programma's vereisen `Netherlands`.                                   |
| `property_use_residential_percent` | integer         | Percentage van de woning dat residentieel wordt gebruikt (`0`–`100`).                              |
| `credit_approved`                  | boolean         | Of de aanvrager een kredietcheck heeft doorstaan.                                                  |
| `previously_rejected_nwf1`         | boolean         | Of de aanvrager eerder is afgewezen voor een NWF 1-lening.                                         |
| `rejection_reason`                 | string \| null  | Reden van een eerdere afwijzing, indien van toepassing.                                            |
| `requested_amount`                 | number          | Gevraagd leningbedrag in euro.                                                                     |
| `existing_nwf_loan_balance`        | number          | Huidig openstaand saldo op bestaande NWF-leningen, in euro.                                        |
| `specific_target_group`            | boolean         | Of de aanvrager tot een specifieke doelgroep behoort met bijzondere voorwaarden.                   |
| `collective_neighborhood`          | boolean         | Of de aanvraag onderdeel is van een collectief buurtproject.                                       |
| `has_mortgage_security`            | boolean         | Of er een hypothecaire zekerheid is.                                                               |
| `business_part_connected`          | boolean \| null | Geeft een verbinding aan met een zakelijk deel van het pand.                                       |
| `gross_household_income`           | number          | Bruto jaarinkomen van het huishouden in euro. Dit bepaalt inkomensafhankelijke renteklassen.       |
| `desired_loan_period_years`        | integer         | Gewenste aflossingsperiode in jaren.                                                               |

**Request**

```json
{
  "postcode": "3511 AA",
  "loan_applicant_profile": {
    "age": 45,
    "is_homeowner": true,
    "is_occupant": true,
    "residence_country": "Netherlands",
    "property_use_residential_percent": 100,
    "credit_approved": true,
    "previously_rejected_nwf1": false,
    "rejection_reason": null,
    "requested_amount": 15000,
    "existing_nwf_loan_balance": 0,
    "specific_target_group": false,
    "collective_neighborhood": false,
    "has_mortgage_security": false,
    "business_part_connected": null,
    "gross_household_income": 55000,
    "desired_loan_period_years": 10
  }
}
```

**Response**

```json
{
  "postal_code": "3511 AA",
  "municipality": "Utrecht",
  "province": "Utrecht",
  "disclaimer": "These subsidies were available at the moment of scraping and may have closed since. Please verify on official websites.",
  "Loans": {
    "eligible_programs": [
      {
        "program_name": "Energy Savings Loan (NWF 1)",
        "description": "Standard loan for homeowners (≤75 years old) to finance energy-saving home improvements.",
        "min_max_loan_amount": [1000, 28000],
        "max_loan_period_years": 20,
        "interest_type": "Income-based: 0% if household income ≤€60,000, otherwise 3.61% fixed",
        "repayment": "Monthly annuity (up to 20 years; 15 years for heat pumps/batteries if >33% of loan)",
        "key_features": [
          "Requires professional contractor installation",
          "Applies to 18 defined energy-saving measures",
          "Early repayment allowed without penalty (min €250)",
          "No mortgage required; construction deposit used"
        ],
        "loan_amount": 15000,
        "loan_period_years": 10,
        "applied_interest_rate_percent": 0,
        "total_interest": 0,
        "total_cost": 15000,
        "monthly_payment": 125
      },
      {
        "program_name": "Sustainability Loan (Duurzaamheidslening)",
        "description": "A low-interest loan offered through municipalities in collaboration with SVn...",
        "min_max_loan_amount": [2500, 25000],
        "max_loan_period_years": 15,
        "interest_type": "Fixed rate: typically 1.7% for 10 years (loans ≤€7,500) or 15 years (loans >€7,500)",
        "repayment": "Monthly annuity payments; early repayment allowed without penalty.",
        "key_features": [
          "Available only in participating municipalities",
          "Loan amount depends on local program limits",
          "Funds are managed through an SVn building depot for direct payment to contractors",
          "Fixed interest rate for the entire loan term",
          "Requires prior approval (Toewijzingsbrief) from the municipality before applying at SVn",
          "Intended for sustainability measures improving energy efficiency"
        ],
        "applied_interest_rate_percent": 1.7,
        "loan_amount": 15000,
        "loan_period_years": 10,
        "total_interest": 1321.7,
        "total_cost": 16321.7,
        "monthly_payment": 136.01
      }
    ]
  },
  "subsidies": {
    "municipality_subsidies": [],
    "province_subsidies": [],
    "national_subsidies": []
  }
}
```

**Velden van een passend programma**

| Veld                            | Type               | Beschrijving                                                                                  |
| ------------------------------- | ------------------ | --------------------------------------------------------------------------------------------- |
| `program_name`                  | string             | Naam van het leningsproduct.                                                                  |
| `description`                   | string             | Korte samenvatting van het leningsproduct.                                                    |
| `min_max_loan_amount`           | array `[min, max]` | Toegestane leningrange in euro.                                                               |
| `max_loan_period_years`         | integer            | Maximale looptijd in jaren.                                                                   |
| `interest_type`                 | string             | Tekstuele beschrijving van hoe de rente wordt bepaald.                                        |
| `repayment`                     | string             | Tekstuele beschrijving van de aflossingsvoorwaarden.                                          |
| `key_features`                  | array van strings  | Bullets met kenmerken van het programma.                                                      |
| `loan_amount`                   | number             | Bedrag dat is gebruikt in deze berekening (echo van `applicant.requested_amount`).            |
| `loan_period_years`             | integer            | Looptijd die is gebruikt in deze berekening (echo van `applicant.desired_loan_period_years`). |
| `applied_interest_rate_percent` | number             | Rentepercentage dat voor deze specifieke aanvrager is toegepast.                              |
| `total_interest`                | number             | Totale rente over de looptijd (€).                                                            |
| `total_cost`                    | number             | Hoofdsom + totale rente (€).                                                                  |
| `monthly_payment`               | number             | Maandelijkse annuïteit (€), afgerond op twee decimalen.                                       |

#### <mark style="color:$primary;">Flow 3 - ISDE 2026-berekening</mark>

Voeg het `isde`-object toe aan het verzoek. Het antwoord geeft een `isde_2026`-blok terug met de totale subsidieschatting en een uitsplitsing per categorie.

| Maatregel                | Codes                                                                                                                                                                                                           |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Isolatie                 | `WB002a`, `WB002b`, `WB002c`, `WB002d`, `WB002f`, `WB143`, `WB001e`, `WB009a`, `WB009b`, `WB009c`, `WB392`, `WB207`, `WB242`, `WB268`, `WB361`, `WB362`, `WB363`, `WB004`, `WB005`, `WB145`, `WB212a`, `WB214b` |
| Beglazing                | `WB019a`, `WB019b`, `WB161a`, `WB147b`, `WB147c`                                                                                                                                                                |
| Warmtepomp               | `WB112`, `WB149a`, `WB149b`, `WB149c`, `WB159`, `WB198`, `WB199`                                                                                                                                                |
| Zonneboiler              | `WB136`, `WB138`, `WB157`                                                                                                                                                                                       |
| Ventilatie               | `WB405`, `WB418`                                                                                                                                                                                                |
| Aansluiting op warmtenet | `WB131`                                                                                                                                                                                                         |
| Elektrisch koken         | `ES001`                                                                                                                                                                                                         |

Voor isolatie en beglazing hoef je standaard alleen `area_m2` op te geven.

**Request**

```json
{
  "postcode": "3511 AA",
  "isde_rvo": {
    "measures": [
      { "code": "WB002a", "area_m2": 80 },
      { "code": "WB212a", "area_m2": 40 },
      { "code": "WB019b", "area_m2": 50 },
      { "code": "WB149c" },
      { "code": "WB157" },
      { "code": "WB405" },
      { "code": "WB142a" }
    ]
  }
}
```

**Response**

```json
{
  "postal_code": "3511 AA",
  "municipality": "Utrecht",
  "province": "Utrecht",
  "disclaimer": "These subsidies were available at the moment of scraping and may have closed since. Please verify on official websites.",
  "Loans": { "eligible_programs": [] },
  "subsidies": {
    "municipality_subsidies": [],
    "province_subsidies": [],
    "national_subsidies": []
  },
  "isde_2026": {
    "total_subsidy_euro": 8525,
    "category_count": 5,
    "eligibility": {
      "insulation": [
        "apply <24 months after installation",
        "only receive one subsidy for cavity wall, facade, floor, roof, attic or attic floor insulation"
      ],
      "glazing": [
        "apply <24 months after installation",
        "you can apply for glass insulation 2 times"
      ],
      "heat_pump": [
        "apply <24 months after installation",
        "entire installation is done by a building installation company",
        "not second-hand products"
      ],
      "solar_boiler": [
        "apply <24 months after installation",
        "entire installation is done by a (construction) installation company",
        "not second-hand products"
      ],
      "ventilation": [
        "installed on or after 1 January 2026",
        "apply <24 months after installation"
      ]
    },
    "breakdown": {
      "insulation": {
        "amount_WB002a": 0,
        "amount_WB212a": 1300
      },
      "glazing": {
        "amount_WB019b": 2250
      },
      "ventilation": {
        "amount_WB405": 400
      },
      "heat_pump_primary": {
        "amount_WB149c": 2825
      },
      "solar_boiler": {
        "amount_WB157": 1750
      }
    },
    "unrecognized_codes": [
      "No ISDE subsidy available for code: WB142a"
    ]
  }
}
```

**Velden op het hoogste niveau van `isde_2026`**

| Veld                 | Type    | Beschrijving                                    |
| -------------------- | ------- | ----------------------------------------------- |
| `total_subsidy_euro` | number  | Som van alle categoriebedragen (€).             |
| `category_count`     | integer | Aantal categorieën dat een bedrag > 0 oplevert. |
| `eligibility`        | object  | Geschiktheid en voorwaarden per categoriegroep. |
| `breakdown`          | object  | Uitsplitsing per categorie. Zie hieronder.      |

**`breakdown`**

Elke categorie (`insulation`, `glazing`, `ventilation`, `heat_pump_primary`, `heat_pump_extra`, `solar_boiler`, `district_heating`, `electric_cooking`) gebruikt dezelfde vorm:

```json
"breakdown": {
  "category1": { "amount_RVO-code1": 400 },
  "category2": { "amount_RVO-code2": 1750 }
}
```

| Veld              | Type   | Beschrijving                                          |
| ----------------- | ------ | ----------------------------------------------------- |
| `amount_RVO-code` | number | Berekend subsidiebedrag voor deze categorie, in euro. |

Sommige RVO-codes komen niet in aanmerking voor ISDE-subsidie. Dan kan deze waarschuwing verschijnen:

```json
"unrecognized_codes": [
  "No ISDE subsidy available for code: WB142a"
]
```

#### <mark style="color:$primary;">Flow 4 - Gecombineerd</mark>

Stuur `postcode`, `applicant` en `isde` in één verzoek om subsidies, leningen en de ISDE-berekening tegelijk te ontvangen. De antwoordstructuur op het hoogste niveau is dezelfde als in het volledige verzoekvoorbeeld.

### Tags-referentie

Het `tags`-veld filtert subsidies op onderwerp. Geef één of meer waarden op, exacte hoofdlettergevoelige overeenkomst, alleen in het Nederlands.

**Duurzaamheid (algemeen)** Duurzaamheid, Duurzaamheid en samenleving, Duurzaam ondernemen, Duurzaam bouwen en verbouwen, Duurzaam en slim rijden, Duurzaam financieren, Duurzaam produceren, Duurzaam voedsel, Verduurzamen

**Klimaat en emissies** Klimaatadaptatie, Klimaatakkoord, Klimaatbeleid, Klimaatneutraal, Klimaatverandering, CO2, CO2-neutraal, CO2-opslag, CO2-reductie, Emissiereductie, Emissie, Emissiehandel, Niet-CO2-broeikasgassen

**Luchtkwaliteit** Fijn stof, Luchtkwaliteit, NOx-beperkende technieken, Stikstof

**Hernieuwbare energie** Hernieuwbare energie, Duurzame energie, Duurzame energievoorziening, Duurzame elektriciteit, Zonnepanelen, Zon-PV-installaties, Zonneboilers, Wind, Wind op land, Wind op zee, Windmolens, Windturbines, Waterstof, Waterstofcellen, Biomassaketels, Groen gas, Aardgasvrij, Energie uit water, Bodemenergie

**Energiebesparing en gebouwen** Energiebesparing, Energieopslag, Opslag van elektriciteit, Netcongestie, Isolatie, Isoleren, Warmtepompen, Warmte Koude Opslag, Duurzame warmte en koude, Ledverlichting, Ventilatie en binnenmilieu, Gebouwde omgeving

**Circulaire economie en materialen** Circulair ondernemen, Biobased economy, Biobased materialen, Afval, Grondstoffen, Valorisatie

**Natuur en milieu** Natuur, Natuurbeheer, Natuurterreinen, Bodem, Oppervlaktewater, Grondwater, Verontreiniging, Lucht, Milieu, Milieuzorg, Eco-activiteiten

**Mobiliteit en innovatie** Duurzame mobiliteit, Duurzame ontwikkeling, Duurzame technologie, Duurzame innovatie, Elektrisch rijden, Mobiliteit en ruimte

**SDG's van de VN** SDG7 Betaalbare en duurzame energie, SDG11 Duurzame steden en gemeenschappen, SDG12 Verantwoorde consumptie en productie, SDG13 Klimaatactie, SDG14 Leven in het water, SDG15 Leven op het land


# API-sleutel Informatie

Begrijpen en Verkrijgen van jouw API-sleutel

**API-sleutel informatie**\
**Begrijpen en verkrijgen van uw API-sleutel**\
Een API-sleutel is een unieke identificatiecode waarmee u veilig toegang krijgt tot de API’s van Altum AI. Deze sleutel is vereist in de **x-api-key** header voor alle API-aanvragen om correcte authenticatie te waarborgen.

**Hoe u uw API-sleutel kunt verkrijgen**\
U kunt uw API-sleutel op twee manieren verkrijgen:

1. **Via het platform:** Genereer uw API-sleutel direct op het Altum AI-platform.
2. **Door abonnement:** Een API-sleutel wordt verstrekt wanneer u zich abonneert op het **Startup**-plan of **Unlimited**-plan.

**Waar u uw API-sleutel moet gebruiken**\
Neem de API-sleutel op in de **x-api-key** header van elk API-verzoek. Zonder een geldige sleutel wordt uw verzoek niet geverifieerd.

**Voorbeeld van header:**

```
x-api-key: YOUR_UNIQUE_API_KEY
```

**Beveiligingsnotitie**\
Houd uw API-sleutel vertrouwelijk om ongeautoriseerde toegang tot uw account te voorkomen.


# Energielabel inzichten API

De Energielabel inzichten API retourneert de impact van een energielabelwijziging op de verkoopduur en het verschil tussen de verwachte transactieprijs en de vraagprijs

## Introductie

De Energielabel inzichten API levert kritische data over de invloed van energielabelwijzigingen binnen de vastgoedmarkt. Deze tool is bedoeld om te helpen bij het analyseren van de volgende belangrijke gebieden:

* **Verandering in marktwaarde**: Deze functie maakt een beoordeling mogelijk van de potentiële waarderingsschommelingen die kunnen optreden bij wijzigingen in het energielabel van een onroerend goed, waardoor een fundamenteel element wordt geboden voor een nauwkeurige waardering van onroerend goed.
* **Invloed op de verwachte verkoopduur**: Met inzicht in hoe een energielabel van invloed kan zijn op de tijd dat een woning op de markt blijft, kunnen gebruikers de aanbiedingsperioden beter voorspellen en dienovereenkomstig een strategie bepalen.
* **Verwacht overbod vergeleken met vraagprijs**: Door inzicht te krijgen in het verwachte verschil tussen vraagprijzen en uiteindelijke transactieprijzen in relatie tot energielabelbeoordelingen, kunnen gebruikers effectievere prijsstrategieën en onderhandelingsbenaderingen formuleren.

De Energylabel Insights API dient als een waardevol analytisch hulpmiddel en biedt datagestuurde inzichten die essentieel zijn voor het begrijpen van de rol van energie-efficiëntie bij de verkoop van onroerend goed en de transactiedynamiek.

## POST Methode

<figure><img src="/files/hrbflJohSiJz6reczXIf" alt=""><figcaption><p>Illustratie van input en output van de API voor inzichten in energielabels</p></figcaption></figure>


# Changelog

Changelog van de implementatie van de Energielabel inzichten API in formaatiteratie (1.01) en (verwachte) releasedatum (jaar, maand en dag).

### 1.01 - 2025-03-28

* Verbeteringen
  * Snellere laadtijden
  * Minder geheugengebruik
  * Van 33k stratificaties tot 166K stratificaties


# Authenticatie, invoer en resultaat

## Retourneert de impact van een energielabelwijziging op de verkoopduur en het verschil tussen de verwachte transactieprijs en de vraagprijs

<mark style="color:green;">`POST`</mark> `https://api.altum.ai/energyinsights`

#### Headers

| Name                                        | Type   | Description                                                                                              |
| ------------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------- |
| x-api-key<mark style="color:red;">\*</mark> | string | Unieke API-sleutel van Altum. Maak er een op [https://platform.altum.ai](https://platform.altum.ai/auth) |
| Content-Type                                | string | application/json                                                                                         |

#### Request Body

| Name                                                    | Type    | Description                               |
| ------------------------------------------------------- | ------- | ----------------------------------------- |
| postcode<mark style="color:red;">\*</mark>              | string  | 1234AB                                    |
| housenumber<mark style="color:red;">\*</mark>           | integer | 1                                         |
| houseaddition                                           | string  | A                                         |
| current\_energy\_label                                  | string  | B                                         |
| target\_energy\_label<mark style="color:red;">\*</mark> | string  | A+++                                      |
| ecovalue                                                | boolean | 1 om Ecowaarde op te vragen, default is 0 |

{% tabs %}
{% tab title="200: OK Succesvolle reactie" %}

```
{
	"current_insights": {
		"stratification": "('B', 'Dorpskern', 'vrijstaand', '1990-2004', '>150')",
		"mean_sales_duration": "124.0",
		"median_sales_duration": "144.0",
		"mean_diff_price": "28733.0",
		"median_diff_price": "42000.0"
	},
	"target_insights": {
		"stratification": "('A', 'Dorpskern', 'vrijstaand', '1990-2004', '>150')",
		"mean_sales_duration": "118.0",
		"median_sales_duration": "118.0",
		"mean_diff_price": "-12375.0",
		"median_diff_price": "-17250.0"
	},
	"delta": {
		"mean_sales_duration": "6.0",
		"median_sales_duration": "26.0",
		"mean_diff_price": "41108.0",
		"median_diff_price": "59250.0",
		"mean_diff_price_percentage": "143.1",
		"median_diff_price_percentage": "141.1",
		"ecovalue": "12872"
	}
}
```

{% endtab %}

{% tab title="400: Bad Request Verkeerd bestandsformaat" %}

```
{
   "Output": "The given house address not found in database, the combination of Post Code, House Number and House Addition does not exist."
}


{
   "Output": "The current energy label for the given house address not found in database. Please provide the current energy label."
}


{
   "Output": "We are not able to provide insights at the moment."
}
```

{% endtab %}

{% tab title="401: Unauthorized Geen toegang" %}

```
{
    'Output': 'Please use https://api.altum.ai or visit https://mopsus.altum.ai to make your request.'
}
```

{% endtab %}

{% tab title="403: Forbidden Verboden" %}

```
{
	"message": "Missing Authentication Token"
}
```

{% endtab %}

{% tab title="500: Internal Server Error Service is niet beschikbaar en/of offline" %}

{% endtab %}

{% tab title="422: Unprocessable Entity Verkeerde invoer" %}

```
{
	"detail": [
		{
			"loc": [
				"body",
				101
			],
			"msg": "Expecting ',' delimiter: line 6 column 3 (char 101)",
			"type": "value_error.jsondecode",
			"ctx": {
				"msg": "Expecting ',' delimiter",
				"doc": "{\n  \"postcode\": \"2201PZ\",\n  \"housenumber\": 11,\n  \"houseaddition\": \"\",\n\t\"current_energy_label\": \"A\"\n  \"target_energy_label\": \"A\",\n\t\"ecovalue\": 1\n}",
				"pos": 101,
				"lineno": 6,
				"colno": 3
			}
		}
	]
}
```

{% endtab %}
{% endtabs %}

## Request body

#### Voorbeeld verzoek

```
{
  "postcode": "1015GS",
  "housenumber":58,
  "houseaddition": "A1",
  "target_energy_label": "A",
  "ecovalue": 1
}
```


# API-sleutel Informatie

Begrijpen en Verkrijgen van jouw API-sleutel

Een API-sleutel is een unieke identificatiecode die je veilige toegang biedt tot de API's van Altum AI. Het is verplicht om deze sleutel in de `x-api-key` header van alle API-verzoeken op te nemen om een juiste authenticatie te garanderen.

**Hoe verkrijg je jouw API-sleutel?**\
Je kunt je API-sleutel op twee manieren verkrijgen:

1. **Via het Platform:** Genereer jouw API-sleutel direct op het Altum AI-platform.
2. **Door een Abonnement:** Een API-sleutel wordt verstrekt wanneer je je abonneert op het Startup- of Unlimited-plan.

**Waar gebruik je jouw API-sleutel?**\
Voeg de API-sleutel toe aan de `x-api-key` header van elk API-verzoek. Zonder een geldige sleutel wordt je verzoek niet geauthenticeerd.

**Voorbeeld Header:**

```plaintext
x-api-key: JOUW_UNIEKE_API_SLEUTEL
```

**Beveiligingsnotitie**\
Houd jouw API-sleutel vertrouwelijk om ongeautoriseerde toegang tot je account te voorkomen.


# Resultaat interpretatie

Een uitleg en interpretatie van elke functie die in het API-antwoord wordt weergegeven.

### Current insights

De inzichten zijn gebaseerd op het huidige energielabel van de woning.

<table><thead><tr><th width="244.33333333333331">Feature</th><th width="174">Voorbeeld</th><th>Uitleg</th></tr></thead><tbody><tr><td>stratification</td><td>('B', 'Dorpskern', 'vrijstaand', '1990-2004', '>150')</td><td>De meest complete functiestratificatie die in onze database bestaat</td></tr><tr><td>mean_sales_duration</td><td>124.0</td><td>De gemiddelde waarde van de verkoopduur, uitgedrukt in aantal dagen, van de huizen die tot dezelfde stratificatie behoren.</td></tr><tr><td>median_sales_duration</td><td>144.0</td><td>De mediaanwaarde van de verkoopduur, uitgedrukt in aantal dagen, van de huizen die tot dezelfde stratificatie behoren.</td></tr><tr><td>mean_diff_price</td><td>28733.0</td><td>De gemiddelde waarde van het verschil tussen transactieprijs en vraagprijs, van de huizen die tot dezelfde stratificatie behoren.</td></tr><tr><td>median_diff_price</td><td>42000.0</td><td>De mediaanwaarde van het verschil tussen transactieprijs en vraagprijs, van de huizen die tot dezelfde stratificatie behoren.</td></tr></tbody></table>

### Target insights

De inzichten op basis van het gewenste energielabel voor de woning.

<table><thead><tr><th width="244.33333333333331">Feature</th><th width="174">Voorbeeld</th><th>Uitleg</th></tr></thead><tbody><tr><td>stratification</td><td>('A', 'Dorpskern', 'vrijstaand', '1990-2004', '>150')</td><td>De meest complete functiestratificatie die in onze database bestaat</td></tr><tr><td>mean_sales_duration</td><td>118.0</td><td>De gemiddelde waarde van de verkoopduur, uitgedrukt in aantal dagen, van de huizen die tot dezelfde stratificatie behoren.</td></tr><tr><td>median_sales_duration</td><td>118.0</td><td>De mediaanwaarde van de verkoopduur, uitgedrukt in aantal dagen, van de huizen die tot dezelfde stratificatie behoren.</td></tr><tr><td>mean_diff_price</td><td>-12375.0</td><td>De gemiddelde waarde van het verschil tussen transactieprijs en vraagprijs, van de huizen die tot dezelfde stratificatie behoren.</td></tr><tr><td>median_diff_price</td><td>-17250.0</td><td>De mediaanwaarde van het verschil tussen transactieprijs en vraagprijs, van de huizen die tot dezelfde stratificatie behoren.</td></tr></tbody></table>

### Delta

De delta tussen de huidige inzichten en de beoogde inzichten.

<table><thead><tr><th width="282.3333333333333">Feature</th><th width="174">Voorbeeld</th><th>Explanation</th></tr></thead><tbody><tr><td>mean_sales_duration</td><td>6.0</td><td>Hoeveel de gemiddelde verkoopduur, in dagen, zou veranderen als het energielabel van de woning van het huidige energielabel naar het gewenste (streef)energielabel zou gaan.</td></tr><tr><td>median_sales_duration</td><td>26.0</td><td>Hoeveel de gemiddelde verkoopduur, in dagen, zou veranderen als het energielabel van de woning van het huidige energielabel naar het gewenste (streef)energielabel zou gaan.</td></tr><tr><td>mean_diff_price</td><td>41108.0</td><td>Hoeveel het gemiddelde verschil van de (transactieprijs – vraagprijs) zou veranderen als het energielabel van de woning van het huidige energielabel naar het gewenste (streef)energielabel zou gaan.</td></tr><tr><td>median_diff_price</td><td>59250.0</td><td>Hoeveel het mediaan verschil van de (transactieprijs – vraagprijs) zou veranderen als het energielabel van de woning van het huidige energielabel naar het gewenste (streef)energielabel zou gaan.</td></tr><tr><td>mean_diff_price_percentage</td><td>143.1</td><td>Het percentage (%) verandering van het gemiddelde verschil van de (transactieprijs – vraagprijs) als het energielabel van de woning van het huidige energielabel naar het gewenste (doel) gaat.</td></tr><tr><td>median_diff_price_percentage</td><td>141.1</td><td>Het percentage (%) verandering van het mediaan verschil van de (transactieprijs – vraagprijs) als het energielabel van de woning van het huidige energielabel naar het gewenste (doel) gaat.</td></tr><tr><td>ecovalue</td><td>12872</td><td>De verhoging of verlaging van de transactieprijs, indien het energielabel van de woning, gaat van het huidige energielabel naar het gewenste (doel).</td></tr></tbody></table>


# EPC API

De EPC API is verouderd.

{% hint style="info" %} <mark style="color:$danger;">**Verouderd**</mark>\ <mark style="color:$danger;">Deze API is verouderd en wordt niet langer aanbevolen voor nieuwe implementaties. Bestaande integraties blijven mogelijk werken. Neem contact op met Altum AI voor advies over de aanbevolen configuratie.</mark>
{% endhint %}

## Introductie

De EPC API levert een gestructureerd JSON-formaat dat de informatie uit het EPC-document van een gebruiker ontleedt.

Belangrijke kenmerken van de EPC API zijn:

* Het mogelijk maken voor gebruikers om grote hoeveelheden NTA 8800 PDF-bestanden efficiënt te verwerken en beheren door de onderliggende ruwe data te extraheren, op te slaan en te analyseren.
* Het bieden van de functionaliteit voor klanten om NTA 8800 PDF-bestanden te uploaden, waarbij automatisch een correct geformatteerde input wordt gegenereerd voor de Sustainability API, die vervolgens gedetailleerde en datagedreven aanbevelingen opstelt.
* Naadloze integratie in uiteenlopende workflows, softwareomgevingen en applicaties ter ondersteuning en optimalisatie van diverse processen.

{% hint style="warning" %}
**Toegang tot de PDF Extract Service voor NTA 8800-rapporten is gratis.**\
Door gebruik te maken van deze API, gaat u akkoord met het feit dat de geüploade PDF's en de geëxtraheerde data opgeslagen en gebruikt mogen worden door Altum AI voor het trainen van machine learning-modellen en het optimaliseren van andere API's en dataproducten.\
Deze service verwerkt NTA 8800-rapporten met behulp van OCR-technologie en levert gestructureerde gegevens als output.\
Wij delen uw gegevens niet met derden. De gegevens worden verwerkt in overeenstemming met de toepasselijke privacy- en beveiligingsnormen.
{% endhint %}


# Changelog

Changelog van de implementatie van de EPC API in formaatiteratie (1.01) en (verwachte) releasedatum (jaar, maand en dag).

<mark style="color:$danger;">**Verouderd**</mark>\ <mark style="color:$danger;">Deze API is verouderd en wordt niet langer aanbevolen voor nieuwe implementaties. Bestaande integraties blijven mogelijk werken. Neem contact op met Altum AI voor advies over de aanbevolen configuratie.</mark>


# API-sleutel Informatie

Begrijpen en Verkrijgen van jouw API-sleutel

Een API-sleutel is een unieke identificatiecode die je veilige toegang biedt tot de API's van Altum AI. Het is verplicht om deze sleutel in de `x-api-key` header van alle API-verzoeken op te nemen om een juiste authenticatie te garanderen.

**Hoe verkrijg je jouw API-sleutel?**

De API-sleutel voor deze dienst wordt verstrekt, aangezien dit een gratis service is die wij bij Altum AI aanbieden.

**Header:**

```plaintext
x-api-key: H2NzzMOieF1CyFpmQHPcT4Woynp450An3FtXbhng
```


# Authenticatie, invoer en resultaat

Details over de invoer-, uitvoer- en authenticatievereisten.

{% hint style="info" %} <mark style="color:$danger;">**Verouderd**</mark>\ <mark style="color:$danger;">Deze API is verouderd en wordt niet langer aanbevolen voor nieuwe implementaties. Bestaande integraties blijven mogelijk werken. Neem contact op met Altum AI voor advies over de aanbevolen configuratie.</mark>
{% endhint %}

## Stuur objectgegevens in om een nauwkeurige geautomatiseerde modelwaardering te ontvangen.&#x20;

<mark style="color:green;">`POST`</mark> `https://api.altum.ai/epc/pdf`

**Header**

| Name                                        | Type   | Description                                                                                              |
| ------------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------- |
| x-api-key<mark style="color:red;">\*</mark> | string | Unieke API-sleutel van Altum. Maak er een op [https://platform.altum.ai](https://platform.altum.ai/auth) |
| Content-Type                                | string | multipart/form-data                                                                                      |

**Request Body**

De EPC API accepteert een EPC-certificaat als invoer, ook wel aangeduid als een definitief energielabelrapport.

<figure><img src="/files/Hbm7Cz0JAx40GDamH5fc" alt=""><figcaption></figcaption></figure>

{% tabs %}
{% tab title="200: OK Succesvolle reactie" %}

```json
{
	"Output": {
		"post_code": "7875AC",
		"house_number": "12",
		"house_addition": null,
		"build_year": 1900,
		"inner_surface_area": 175,
		"house_type": "Vrijstaande woning",
		"installation": 4,
		"wall_insulation": 2,
		"roof_insulation": 2,
		"floor_insulation": 1,
		"living_room_windows": 1,
		"bedroom_windows": 1,
		"shower": 0,
		"ventilation": 1,
		"solar_panels": 15.57,
		"solarpanel_watt_peak": 240,
		"CO2": 5740,
		"definitive_energy_label": "B",
		"definitive_energy_label_type": "",
		"definitive_energy_label_validity_date": "",
		"definitive_BENG2_score": "",
		"current_estimated_energy_label": "B",
		"current_estimated_BENG1_score": 113,
		"current_estimated_BENG2_score": 186
	},
	"raw_data": {
		"Adres": "Hoofdstraat 12, 7875AC Exloo",
		"Class": "A",
		"Bouwjaar": "1900",
		"Compactheid": "2.19",
		"Vloeroppervlakte": "175",
		"Woningtype": "Vrijstaande woning",
		"Verwarming": "HR-107 ketel",
		"Warm water": "Combiketel",
		"Zonneboiler": "Geen zonneboiler",
		"Ventilatie": "Natuurlijke ventilatie via ramen en/of roosters",
		"Koeling": "Geen koeling",
		"Zonnepanelen": "3300 Wp",
		"Energy": "140.47",
		"CO2 per m2": "24.81",
		"Warmtebehoefte": "115.63",
		"Isolatie": {
			"Gevels": {
				"Noord": [
					{
						"Opp": "18.4",
						"Rc": "1.69"
					},
					{
						"Opp": "8.4",
						"Rc": "1.69"
					},
					{
						"Opp": "5.0",
						"Rc": "1.92"
					}
				],
				"Oost": [
					{
						"Opp": "17.3",
						"Rc": "2.14"
					},
					{
						"Opp": "7.8",
						"Rc": "1.69"
					},
					{
						"Opp": "2.7",
						"Rc": "2.14"
					}
				],
				"Zuid": [
					{
						"Opp": "12.6",
						"Rc": "2.14"
					},
					{
						"Opp": "9.4",
						"Rc": "2.14"
					}
				],
				"West": [
					{
						"Opp": "16.2",
						"Rc": "2.14"
					},
					{
						"Opp": "8.5",
						"Rc": "1.92"
					},
					{
						"Opp": "6.3",
						"Rc": "1.69"
					},
					{
						"Opp": "2.7",
						"Rc": "2.14"
					}
				]
			},
			"Gevelpanelen": {},
			"Daken": {
				"Noord": [
					{
						"Opp": "44.7",
						"Rc": "2.00"
					}
				],
				"Oost": [
					{
						"Opp": "45.5",
						"Rc": "2.00"
					},
					{
						"Opp": "8.6",
						"Rc": "2.00"
					}
				],
				"Zuid": [
					{
						"Opp": "45.5",
						"Rc": "2.00"
					},
					{
						"Opp": "10.6",
						"Rc": "2.00"
					}
				],
				"West": [
					{
						"Opp": "8.6",
						"Rc": "2.00"
					}
				]
			},
			"Vloeren": {
				"Algemeen": [
					{
						"Opp": "104.2",
						"Rc": "1.30"
					},
					{
						"Opp": "12.5",
						"Rc": "2.82"
					}
				]
			},
			"Ramen": {
				"Noord": [
					{
						"Opp": "1.3",
						"Uw": "2.90"
					},
					{
						"Opp": "1.2",
						"Uw": "2.90"
					},
					{
						"Opp": "1.2",
						"Uw": "2.90"
					},
					{
						"Opp": "0.8",
						"Uw": "1.80"
					},
					{
						"Opp": "0.6",
						"Uw": "1.40"
					}
				],
				"Oost": [
					{
						"Opp": "2.1",
						"Uw": "1.80"
					}
				],
				"Zuid": [
					{
						"Opp": "2.1",
						"Uw": "1.80"
					},
					{
						"Opp": "2.1",
						"Uw": "1.80"
					},
					{
						"Opp": "1.6",
						"Uw": "1.80"
					},
					{
						"Opp": "1.6",
						"Uw": "1.80"
					},
					{
						"Opp": "0.6",
						"Uw": "1.80"
					}
				],
				"West": [
					{
						"Opp": "1.6",
						"Uw": "1.80"
					},
					{
						"Opp": "1.6",
						"Uw": "1.80"
					},
					{
						"Opp": "1.0",
						"Uw": "5.10"
					},
					{
						"Opp": "0.8",
						"Uw": "1.80"
					},
					{
						"Opp": "0.8",
						"Uw": "1.80"
					}
				]
			},
			"Buitendeuren": {
				"Zuid": [
					{
						"Opp": "1.3",
						"Ud": "3.40"
					}
				],
				"West": [
					{
						"Opp": "0.5",
						"Ud": "3.40"
					}
				]
			}
		}
	}
}
```

{% endtab %}

{% tab title="422: Unprocessable Entity Verkeerd invoerformaat" %}

```json
{
	"detail": [
		{
			"type": "missing",
			"loc": [
				"body",
				"file"
			],
			"msg": "Field required",
			"input": null
		}
	]
}
```

{% endtab %}

{% tab title="403: Forbidden Verboden" %}

```
{
	"message": "Missing Authentication Token"
}
```

{% endtab %}
{% endtabs %}


# Resultaat interpretatie

Een uitleg en interpretatie van elke functie die wordt uitgevoerd in het API-antwoord.

{% hint style="info" %} <mark style="color:$danger;">**Verouderd**</mark>\ <mark style="color:$danger;">Deze API is verouderd en wordt niet langer aanbevolen voor nieuwe implementaties. Bestaande integraties blijven mogelijk werken. Neem contact op met Altum AI voor advies over de aanbevolen configuratie.</mark>
{% endhint %}

| Feature                                   | Voorbeeld              | Uitleg                                                                 |
| ----------------------------------------- | ---------------------- | ---------------------------------------------------------------------- |
| post\_code                                | 2542GM                 | Postcode                                                               |
| house\_number                             | 547                    | Huisnummer                                                             |
| house\_addition                           | B                      | Huisnummer toevoeging                                                  |
| build\_year                               | 1960                   | Bouwjaar                                                               |
| inner\_surface\_area                      | 42                     | Woonoppervlak                                                          |
| house\_type                               | Tussenwoning onder dak | Woningtype                                                             |
| installation                              | 4                      | zie [Maatregelen](/verduurzamen/verduurzaming-api/measures)            |
| wall\_insulation                          | 2                      | zie [Maatregelen](/verduurzamen/verduurzaming-api/measures)            |
| roof\_insulation                          | 2                      | zie [Maatregelen](/verduurzamen/verduurzaming-api/measures)            |
| floor\_insulation                         | 2                      | zie [Maatregelen](/verduurzamen/verduurzaming-api/measures)            |
| living\_room\_windows                     | 2                      | zie [Maatregelen](/verduurzamen/verduurzaming-api/measures)            |
| bedroom\_windows                          | 1                      | zie [Maatregelen](/verduurzamen/verduurzaming-api/measures)            |
| shower                                    | 0                      | zie [Maatregelen](/verduurzamen/verduurzaming-api/measures)            |
| ventilation                               | 1                      | zie [Maatregelen](/verduurzamen/verduurzaming-api/measures)            |
| solar\_panels                             | 4                      | zie [Maatregelen](/verduurzamen/verduurzaming-api/measures)            |
| solarpanel\_watt\_peak                    | 212                    | Wattpiekvermogen van zonnepanelen per m2                               |
| CO2                                       | 3084                   | De totale CO2 emissie (zie [CO2](/verduurzamen/verduurzaming-api/co2)) |
| definitive\_energy\_label                 | A                      | Definitief energielabel uit EP-online van RVO                          |
| definitive\_energy\_label\_type           | NEN7120                | Norm waarop het definitieve energielabel is gebaseerd                  |
| definitive\_energy\_label\_validity\_date | 2030-12                | Geldigheid einddatum van het gegeven definitieve energielabel          |
| definitive\_BENG2\_score                  | 125                    | Definitief BENG2 score uit EP-online van RVO                           |
| current\_estimated\_energy\_label         | A                      |                                                                        |
| current\_stimated\_BENG1\_score           | 118                    | Huidige geschatte numerieke BENG1 score                                |
| current\_estimated\_BENG2\_score          | 128                    | BENG2 numerieke score van de huidige geschatte NTA 8800-score          |

| Ruwe data             | Voorbeeld                    | Uitleg                       |
| --------------------- | ---------------------------- | ---------------------------- |
| Adres                 | Hoofdstraat 12, 7875AC Exloo | adres van het huis           |
| Class                 | A                            |                              |
| Bouwjaar              | 1900                         | bouwjaar van het huis        |
| vloeropperviakte      | 175                          | vloeropperviakte             |
| Woningtype            | Vrijstaande                  | Woningtype                   |
| Verwarming            | HR-107 ketel                 | Verwarming                   |
| Warm Water            | Combitekel                   | ketel van het huis           |
| Koeling               | Geen Koeling                 | Koeling                      |
| Zonnepanelen          | 3300 Wp                      |                              |
| Energie               | 140.47                       |                              |
| CO2 per m<sup>2</sup> | 24.81                        |                              |
| Warmtebehoefte        | 115.63                       | Warmtebehoefte van de woning |
| Opp                   | 18.4                         | oppervlakte                  |
| RC                    | 1.69                         | RC-waarde van de isolatie    |

#### Voorbeeld resultaat

```json
{
	"Output": {
		"post_code": "7875AC",
		"house_number": "12",
		"house_addition": null,
		"build_year": 1900,
		"inner_surface_area": 175,
		"house_type": "Vrijstaande woning",
		"installation": 4,
		"wall_insulation": 2,
		"roof_insulation": 2,
		"floor_insulation": 1,
		"living_room_windows": 1,
		"bedroom_windows": 1,
		"shower": 0,
		"ventilation": 1,
		"solar_panels": 15.57,
		"solarpanel_watt_peak": 240,
		"CO2": 5740,
		"definitive_energy_label": "B",
		"definitive_energy_label_type": "",
		"definitive_energy_label_validity_date": "",
		"definitive_BENG2_score": "",
		"current_estimated_energy_label": "B",
		"current_estimated_BENG1_score": 113,
		"current_estimated_BENG2_score": 186
	},
	"raw_data": {
		"Adres": "Hoofdstraat 12, 7875AC Exloo",
		"Class": "A",
		"Bouwjaar": "1900",
		"Compactheid": "2.19",
		"Vloeroppervlakte": "175",
		"Woningtype": "Vrijstaande woning",
		"Verwarming": "HR-107 ketel",
		"Warm water": "Combiketel",
		"Zonneboiler": "Geen zonneboiler",
		"Ventilatie": "Natuurlijke ventilatie via ramen en/of roosters",
		"Koeling": "Geen koeling",
		"Zonnepanelen": "3300 Wp",
		"Energy": "140.47",
		"CO2 per m2": "24.81",
		"Warmtebehoefte": "115.63",
		"Isolatie": {
			"Gevels": {
				"Noord": [
					{
						"Opp": "18.4",
						"Rc": "1.69"
					},
					{
						"Opp": "8.4",
						"Rc": "1.69"
					},
					{
						"Opp": "5.0",
						"Rc": "1.92"
					}
				],
				"Oost": [
					{
						"Opp": "17.3",
						"Rc": "2.14"
					},
					{
						"Opp": "7.8",
						"Rc": "1.69"
					},
					{
						"Opp": "2.7",
						"Rc": "2.14"
					}
				],
				"Zuid": [
					{
						"Opp": "12.6",
						"Rc": "2.14"
					},
					{
						"Opp": "9.4",
						"Rc": "2.14"
					}
				],
				"West": [
					{
						"Opp": "16.2",
						"Rc": "2.14"
					},
					{
						"Opp": "8.5",
						"Rc": "1.92"
					},
					{
						"Opp": "6.3",
						"Rc": "1.69"
					},
					{
						"Opp": "2.7",
						"Rc": "2.14"
					}
				]
			},
			"Gevelpanelen": {},
			"Daken": {
				"Noord": [
					{
						"Opp": "44.7",
						"Rc": "2.00"
					}
				],
				"Oost": [
					{
						"Opp": "45.5",
						"Rc": "2.00"
					},
					{
						"Opp": "8.6",
						"Rc": "2.00"
					}
				],
				"Zuid": [
					{
						"Opp": "45.5",
						"Rc": "2.00"
					},
					{
						"Opp": "10.6",
						"Rc": "2.00"
					}
				],
				"West": [
					{
						"Opp": "8.6",
						"Rc": "2.00"
					}
				]
			},
			"Vloeren": {
				"Algemeen": [
					{
						"Opp": "104.2",
						"Rc": "1.30"
					},
					{
						"Opp": "12.5",
						"Rc": "2.82"
					}
				]
			},
			"Ramen": {
				"Noord": [
					{
						"Opp": "1.3",
						"Uw": "2.90"
					},
					{
						"Opp": "1.2",
						"Uw": "2.90"
					},
					{
						"Opp": "1.2",
						"Uw": "2.90"
					},
					{
						"Opp": "0.8",
						"Uw": "1.80"
					},
					{
						"Opp": "0.6",
						"Uw": "1.40"
					}
				],
				"Oost": [
					{
						"Opp": "2.1",
						"Uw": "1.80"
					}
				],
				"Zuid": [
					{
						"Opp": "2.1",
						"Uw": "1.80"
					},
					{
						"Opp": "2.1",
						"Uw": "1.80"
					},
					{
						"Opp": "1.6",
						"Uw": "1.80"
					},
					{
						"Opp": "1.6",
						"Uw": "1.80"
					},
					{
						"Opp": "0.6",
						"Uw": "1.80"
					}
				],
				"West": [
					{
						"Opp": "1.6",
						"Uw": "1.80"
					},
					{
						"Opp": "1.6",
						"Uw": "1.80"
					},
					{
						"Opp": "1.0",
						"Uw": "5.10"
					},
					{
						"Opp": "0.8",
						"Uw": "1.80"
					},
					{
						"Opp": "0.8",
						"Uw": "1.80"
					}
				]
			},
			"Buitendeuren": {
				"Zuid": [
					{
						"Opp": "1.3",
						"Ud": "3.40"
					}
				],
				"West": [
					{
						"Opp": "0.5",
						"Ud": "3.40"
					}
				]
			}
		}
	}
}
```


# Gebouw geometrie API

Geometriegegevens ophalen uit een gebouw met het adres als invoer.

### **Dataset**

De gegevensset objectgeometrie ([**3D BAG**](https://docs.3dbag.nl/en/)) is een actuele dataset met daarin 3D bouwmodellen van Nederland. Het bevat 3D-modellen op meerdere detailniveaus ([**LOD**](https://docs.3dbag.nl/en/schema/layers/)), die worden gegenereerd door twee open datasets te combineren: de gebouwgegevens van de [**BAG**](https://docs.3dbag.nl/en/overview/sources/#BAG) en de hoogtegegevens van de [**AHN**](https://docs.3dbag.nl/en/overview/sources/#AHN).&#x20;

Er zijn gegevenskenmerken die een gebouw beschrijven: het aantal verdiepingen en de oppervlakte, maar ook informatie over de oppervlakten van een gebouw: oppervlaktetype, oppervlakte, omtrek, geometrie. Het doel van de Object Geometrie API is om deze informatie vrij te geven om de geometriegegevens van een enkel object op te halen.

### Toepassingen

* Gebruik gebouw geometriegegevens als aanvulling op de Sustainability API voor verbeterde berekeningen
* Ophalen van dakoppervlakken, oriëntatie en helling
* Vraag de oriëntatie van de muren en de (gedeelde) muuroppervlaktes op
* Vraag de polygonen van het object op in GeoJSON formaat


# Authenticatie, invoer en resultaat

## Haal gebouwgeometriegegevens op voor een object

<mark style="color:green;">`POST`</mark> `https://api.altum.ai/geometry`

#### Headers

| Name                                           | Type   | Description                                                                                              |
| ---------------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------- |
| x-api-key<mark style="color:red;">\*</mark>    | string | Unieke API-sleutel van Altum. Maak er een op [https://platform.altum.ai](https://platform.altum.ai/auth) |
| Content-Type<mark style="color:red;">\*</mark> | string | application/json                                                                                         |

#### Request Body

| Name                                          | Type    | Description                                                            |
| --------------------------------------------- | ------- | ---------------------------------------------------------------------- |
| postcode<mark style="color:red;">\*</mark>    | string  | Postcode van het object                                                |
| include\_geometry                             | integer | 1 = Activeer het antwoord om polygonen in GeoJSON-indeling op te nemen |
| houseaddition                                 | string  | Huisbrief en toevoeging van het object                                 |
| housenumber<mark style="color:red;">\*</mark> | number  | Huisnummer van het object                                              |

{% tabs %}
{% tab title="200: OK Standaard reactie" %}

```
{
	"Output": {
		"address": {
			"bag_id": "0637010000264937",
			"pand_id": "0637100000154943",
			"postcode": "2728KH",
			"housenumber": 5,
			"houseaddition": null,
			"number_of_floors": 2
		},
		"ground_surface": {
			"ground_area": 58.58763122558594,
			"perimeter": 29.91849544228239,
			"max_length": 10.075360770088622,
			"max_width": 5.997715962399906
		},
		"roof_surface": {
			"type": "sloping",
			"no_of_surfaces": 2,
			"surfaces": [
				{
					"orientation": "NE",
					"area": 18.283644166378284,
					"perimeter": 26.122111567056024,
					"roof_angle": 21.9
				},
				{
					"orientation": "horizontal",
					"area": 18.20771122754056,
					"perimeter": 16.79418313304299,
					"roof_angle": 0.6
				}
			]
		},
		"wall_surface": {
			"wall_area": 289.73,
			"shared_wall_area": 173.67,
			"number_of_surfaces": 19,
			"surfaces": [
				{
					"orientation": "NE",
					"area": 0.1179748291056703,
					"perimeter": 5.926721744304837
				},
				{
					"orientation": "ES",
					"area": 2.007550100242397,
					"perimeter": 7.218128814489008
				},
				{
					"orientation": "NE",
					"area": 11.504453433629768,
					"perimeter": 13.720814558970318
				},
				{
					"orientation": "ES",
					"area": 0.3648075626100832,
					"perimeter": 10.157390687167904
				},
				{
					"orientation": "SW",
					"area": 0.3604685665218503,
					"perimeter": 10.132360659459511
				},
				{
					"orientation": "SW",
					"area": 1.380436226506788,
					"perimeter": 10.556900353281828
				},
				{
					"orientation": "WN",
					"area": "",
					"perimeter": 20.807620799148147
				},
				{
					"orientation": "WN",
					"area": 0.5944294528413128,
					"perimeter": 10.188479420953716
				},
				{
					"orientation": "ES",
					"area": 51.47712797293855,
					"perimeter": 29.34865226714016
				},
				{
					"orientation": "NE",
					"area": 0.042340000059973,
					"perimeter": 1.576008620102327
				},
				{
					"orientation": "NE",
					"area": 4.328445192627674,
					"perimeter": 13.144203660340873
				},
				{
					"orientation": "NE",
					"area": 0.1464361841671296,
					"perimeter": 5.933419121639009
				},
				{
					"orientation": "WN",
					"area": 3.945476944682557,
					"perimeter": 8.538686973032593
				},
				{
					"orientation": "SW",
					"area": 28.21407802068922,
					"perimeter": 21.28721581352973
				},
				{
					"orientation": "WN",
					"area": 5.951166266376108,
					"perimeter": 9.918066058911071
				},
				{
					"orientation": "ES",
					"area": 1.9453478134960305,
					"perimeter": 7.1825074271135945
				},
				{
					"orientation": "ES",
					"area": 6.125275275908871,
					"perimeter": 10.045215888535882
				},
				{
					"orientation": "NE",
					"area": 0.0825265321880375,
					"perimeter": 1.708148598879047
				},
				{
					"orientation": "NE",
					"area": 5.7661478019092645,
					"perimeter": 9.791363861506555
				}
			]
		}
	}
}
```

{% endtab %}

{% tab title="200: OK GeoJSON-uitvoer" %}

```
{
	"Output": {
		"address": {
			"bag_id": "0499010002023718",
			"pand_id": "0499100002015826",
			"post_code": "2771DS",
			"house_number": 87,
			"house_addition": null,
			"no_of_floors": 2
		},
		"ground_surface": {
			"area": 122.03668975830078,
			"perimeter": 53.19795020555981,
			"max_length": 13.936105098015044,
			"max_width": 12.699969711612086
		},
		"roof_surface": {
			"type": "sloping",
			"no_of_surfaces": 4,
			"surfaces": [
				{
					"orientation": "WN",
					"area": 19.832505836178303,
					"perimeter": 20.4330747637086,
					"roof_angle": 24.8,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105001.073,
									453592.295,
									1.771
								],
								[
									105002.265,
									453592.122,
									2.327
								],
								[
									105002.274,
									453592.186,
									2.327
								],
								[
									105002.289,
									453592.299,
									2.328
								],
								[
									105003.892,
									453604.067,
									2.418
								],
								[
									105003.903,
									453604.148,
									2.418
								],
								[
									105002.128,
									453604.392,
									1.591
								],
								[
									105002.119,
									453604.316,
									1.591
								],
								[
									105001.886,
									453602.284,
									1.595
								],
								[
									105001.719,
									453600.824,
									1.599
								],
								[
									105001.64,
									453600.139,
									1.6
								],
								[
									105001.626,
									453600.017,
									1.601
								],
								[
									105001.856,
									453599.985,
									1.708
								],
								[
									105000.771,
									453592.34,
									1.63
								],
								[
									105001.073,
									453592.295,
									1.771
								]
							]
						]
					}
				},
				{
					"orientation": "WN",
					"area": 12.652916942719283,
					"perimeter": 25.810687359706225,
					"roof_angle": 23.7,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105003.892,
									453604.067,
									3.957
								],
								[
									105002.289,
									453592.299,
									3.975
								],
								[
									105002.274,
									453592.186,
									3.975
								],
								[
									105002.265,
									453592.122,
									3.975
								],
								[
									105002.315,
									453592.115,
									3.997
								],
								[
									105003.648,
									453591.921,
									4.588
								],
								[
									105003.654,
									453591.965,
									4.588
								],
								[
									105003.692,
									453592.233,
									4.588
								],
								[
									105005.322,
									453603.866,
									4.59
								],
								[
									105005.334,
									453603.951,
									4.59
								],
								[
									105003.903,
									453604.148,
									3.957
								],
								[
									105003.892,
									453604.067,
									3.957
								]
							]
						]
					}
				},
				{
					"orientation": "SW",
					"area": 5.255787722065841,
					"perimeter": 13.98183934283994,
					"roof_angle": 39.1,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105001.64,
									453600.139,
									1.037
								],
								[
									105001.719,
									453600.824,
									1.599
								],
								[
									105001.886,
									453602.284,
									2.793
								],
								[
									104998.265,
									453602.55,
									2.625
								],
								[
									104998.303,
									453603.094,
									3.068
								],
								[
									104997.759,
									453603.156,
									3.061
								],
								[
									104997.681,
									453602.593,
									2.598
								],
								[
									104997.63,
									453602.222,
									2.294
								],
								[
									104997.419,
									453600.702,
									1.046
								],
								[
									104997.408,
									453600.617,
									0.975
								],
								[
									104998.122,
									453600.515,
									0.969
								],
								[
									105000.231,
									453600.215,
									0.95
								],
								[
									105001.626,
									453600.017,
									0.938
								],
								[
									105001.64,
									453600.139,
									1.037
								]
							]
						]
					}
				},
				{
					"orientation": "ES",
					"area": 71.68768159329929,
					"perimeter": 40.00529312464371,
					"roof_angle": 22.9,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105009.673,
									453591.477,
									2.043
								],
								[
									105010.244,
									453595.739,
									2.054
								],
								[
									105010.807,
									453599.93,
									2.065
								],
								[
									105010.974,
									453599.909,
									1.994
								],
								[
									105011.37,
									453599.86,
									1.825
								],
								[
									105011.77,
									453602.959,
									1.84
								],
								[
									105011.784,
									453603.064,
									1.841
								],
								[
									105011.533,
									453603.098,
									1.947
								],
								[
									105005.334,
									453603.951,
									4.59
								],
								[
									105005.322,
									453603.866,
									4.59
								],
								[
									105003.692,
									453592.233,
									4.588
								],
								[
									105003.654,
									453591.965,
									4.588
								],
								[
									105003.648,
									453591.921,
									4.588
								],
								[
									105004.097,
									453591.856,
									4.397
								],
								[
									105004.811,
									453591.753,
									4.092
								],
								[
									105004.801,
									453591.684,
									4.092
								],
								[
									105009.25,
									453590.593,
									2.168
								],
								[
									105009.322,
									453591.186,
									2.172
								],
								[
									105009.445,
									453591.171,
									2.12
								],
								[
									105010.162,
									453591.084,
									1.815
								],
								[
									105010.207,
									453591.401,
									1.815
								],
								[
									105009.673,
									453591.477,
									2.043
								]
							]
						]
					}
				}
			]
		},
		"wall_surface": {
			"wall_area": 289.73,
			"shared_wall_area": 173.67,
			"no_of_surfaces": 44,
			"surfaces": [
				{
					"orientation": "NE",
					"area": 1.060962676449464,
					"perimeter": 5.05897142729812,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105010.207,
									453591.401,
									1.815
								],
								[
									105010.207,
									453591.401,
									-2.119
								],
								[
									105009.673,
									453591.477,
									-2.119
								],
								[
									105009.673,
									453591.477,
									2.043
								],
								[
									105010.207,
									453591.401,
									1.815
								]
							]
						]
					}
				},
				{
					"orientation": "SW",
					"area": 0.5723490386221373,
					"perimeter": 4.390652544685693,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105000.771,
									453592.34,
									1.63
								],
								[
									105000.771,
									453592.34,
									-2.119
								],
								[
									105001.073,
									453592.295,
									-2.119
								],
								[
									105001.073,
									453592.295,
									1.771
								],
								[
									105000.771,
									453592.34,
									1.63
								]
							]
						]
					}
				},
				{
					"orientation": "SW",
					"area": 4.1192576712387305,
					"perimeter": 8.934031161246072,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105002.315,
									453592.115,
									3.997
								],
								[
									105002.315,
									453592.115,
									-2.119
								],
								[
									105003.648,
									453591.921,
									-2.119
								],
								[
									105003.648,
									453591.921,
									4.588
								],
								[
									105002.315,
									453592.115,
									3.997
								]
							]
						]
					}
				},
				{
					"orientation": "ES",
					"area": 1.2804304494986765,
					"perimeter": 5.481723398862594,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105009.25,
									453590.593,
									2.168
								],
								[
									105009.25,
									453590.593,
									-2.119
								],
								[
									105009.322,
									453591.186,
									-2.119
								],
								[
									105009.322,
									453591.186,
									2.172
								],
								[
									105009.25,
									453590.593,
									2.168
								]
							]
						]
					}
				},
				{
					"orientation": "WN",
					"area": 14.77529937307406,
					"perimeter": 19.270612525761983,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105001.856,
									453599.985,
									1.708
								],
								[
									105001.856,
									453599.985,
									-2.119
								],
								[
									105000.771,
									453592.34,
									-2.119
								],
								[
									105000.771,
									453592.34,
									1.63
								],
								[
									105001.856,
									453599.985,
									1.708
								]
							]
						]
					}
				},
				{
					"orientation": "ES",
					"area": 0.6297902744652016,
					"perimeter": 4.574356150984596,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105010.162,
									453591.084,
									1.815
								],
								[
									105010.162,
									453591.084,
									-2.119
								],
								[
									105010.207,
									453591.401,
									-2.119
								],
								[
									105010.207,
									453591.401,
									1.815
								],
								[
									105010.162,
									453591.084,
									1.815
								]
							]
						]
					}
				},
				{
					"orientation": "SW",
					"area": 0.8205847320560656,
					"perimeter": 4.945353639379955,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105010.974,
									453599.909,
									1.994
								],
								[
									105010.974,
									453599.909,
									-2.119
								],
								[
									105011.37,
									453599.86,
									-2.119
								],
								[
									105011.37,
									453599.86,
									1.825
								],
								[
									105010.974,
									453599.909,
									1.994
								]
							]
						]
					}
				},
				{
					"orientation": "SW",
					"area": 0.352115357703032,
					"perimeter": 4.534992491669089,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105010.807,
									453599.93,
									2.065
								],
								[
									105010.807,
									453599.93,
									-2.119
								],
								[
									105010.974,
									453599.909,
									-2.119
								],
								[
									105010.974,
									453599.909,
									1.994
								],
								[
									105010.807,
									453599.93,
									2.065
								]
							]
						]
					}
				},
				{
					"orientation": "SW",
					"area": 1.1157720743225852,
					"perimeter": 4.536522789916829,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									104997.408,
									453600.617,
									0.975
								],
								[
									104997.408,
									453600.617,
									-2.119
								],
								[
									104998.122,
									453600.515,
									-2.119
								],
								[
									104998.122,
									453600.515,
									0.969
								],
								[
									104997.408,
									453600.617,
									0.975
								]
							]
						]
					}
				},
				{
					"orientation": "WN",
					"area": 0.1356341908180616,
					"perimeter": 3.3620057096150147,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									104997.419,
									453600.702,
									1.046
								],
								[
									104997.419,
									453600.702,
									-2.119
								],
								[
									104997.408,
									453600.617,
									-2.119
								],
								[
									104997.408,
									453600.617,
									0.975
								],
								[
									104997.419,
									453600.702,
									1.046
								]
							]
						]
					}
				},
				{
					"orientation": "ES",
					"area": 0.2096868942455473,
					"perimeter": 4.170863163295509,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105011.77,
									453602.959,
									1.84
								],
								[
									105011.77,
									453602.959,
									-2.119
								],
								[
									105011.784,
									453603.064,
									-2.119
								],
								[
									105011.784,
									453603.064,
									1.841
								],
								[
									105011.77,
									453602.959,
									1.84
								]
							]
						]
					}
				},
				{
					"orientation": "NE",
					"area": 0.5015187960255274,
					"perimeter": 4.487870179071035,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105011.784,
									453603.064,
									1.841
								],
								[
									105011.784,
									453603.064,
									-2.119
								],
								[
									105011.533,
									453603.098,
									-2.119
								],
								[
									105011.533,
									453603.098,
									1.947
								],
								[
									105011.784,
									453603.064,
									1.841
								]
							]
						]
					}
				},
				{
					"orientation": "NE",
					"area": 12.721319418335009,
					"perimeter": 17.116103991775674,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105011.533,
									453603.098,
									1.947
								],
								[
									105011.533,
									453603.098,
									-2.119
								],
								[
									105005.334,
									453603.951,
									-2.119
								],
								[
									105005.334,
									453603.951,
									4.59
								],
								[
									105011.533,
									453603.098,
									1.947
								]
							]
						]
					}
				},
				{
					"orientation": "SW",
					"area": "",
					"perimeter": 4.207896859649481,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105001.626,
									453600.017,
									1.601
								],
								[
									105001.626,
									453600.017,
									0.938
								],
								[
									105001.626,
									453600.017,
									-2.119
								],
								[
									105001.856,
									453599.985,
									-2.119
								],
								[
									105001.856,
									453599.985,
									1.708
								],
								[
									105001.626,
									453600.017,
									1.601
								]
							]
						]
					}
				},
				{
					"orientation": "WN",
					"area": 0.0938717762124373,
					"perimeter": 1.874986841707227,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105002.289,
									453592.299,
									3.975
								],
								[
									105002.289,
									453592.299,
									2.328
								],
								[
									105002.274,
									453592.186,
									2.327
								],
								[
									105002.274,
									453592.186,
									3.975
								],
								[
									105002.289,
									453592.299,
									3.975
								]
							]
						]
					}
				},
				{
					"orientation": "NE",
					"area": 8.122403549846428,
					"perimeter": 14.267601077617252,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105005.334,
									453603.951,
									4.59
								],
								[
									105005.334,
									453603.951,
									-2.119
								],
								[
									105003.903,
									453604.148,
									-2.119
								],
								[
									105003.903,
									453604.148,
									2.418
								],
								[
									105003.903,
									453604.148,
									3.957
								],
								[
									105005.334,
									453603.951,
									4.59
								]
							]
						]
					}
				},
				{
					"orientation": "ES",
					"area": 6.16192446466457,
					"perimeter": 10.193452295871491,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105011.37,
									453599.86,
									1.825
								],
								[
									105011.37,
									453599.86,
									-2.119
								],
								[
									105011.77,
									453602.959,
									-2.119
								],
								[
									105011.77,
									453602.959,
									1.84
								],
								[
									105011.37,
									453599.86,
									1.825
								]
							]
						]
					}
				},
				{
					"orientation": "WN",
					"area": 3.386040146673642,
					"perimeter": 7.925560271436407,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									104997.63,
									453602.222,
									2.294
								],
								[
									104997.63,
									453602.222,
									-2.119
								],
								[
									104997.419,
									453600.702,
									-2.119
								],
								[
									104997.419,
									453600.702,
									1.046
								],
								[
									104997.63,
									453602.222,
									2.294
								]
							]
						]
					}
				},
				{
					"orientation": "WN",
					"area": 3.794059121319569,
					"perimeter": 7.800633691752974,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105002.119,
									453604.316,
									1.591
								],
								[
									105002.119,
									453604.316,
									-2.119
								],
								[
									105001.886,
									453602.284,
									-2.119
								],
								[
									105001.886,
									453602.284,
									1.595
								],
								[
									105002.119,
									453604.316,
									1.591
								]
							]
						]
					}
				},
				{
					"orientation": "WN",
					"area": 1.4720977648670108,
					"perimeter": 6.481468232772957,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									104997.759,
									453603.156,
									3.061
								],
								[
									104997.759,
									453603.156,
									-2.119
								],
								[
									104997.681,
									453602.593,
									-2.119
								],
								[
									104997.681,
									453602.593,
									2.598
								],
								[
									104997.759,
									453603.156,
									3.061
								]
							]
						]
					}
				},
				{
					"orientation": "WN",
					"area": 0.1419650780947126,
					"perimeter": 3.863062078908894,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105002.128,
									453604.392,
									1.591
								],
								[
									105002.128,
									453604.392,
									-2.119
								],
								[
									105002.119,
									453604.316,
									-2.119
								],
								[
									105002.119,
									453604.316,
									1.591
								],
								[
									105002.128,
									453604.392,
									1.591
								]
							]
						]
					}
				},
				{
					"orientation": "WN",
					"area": 0.0629016243248711,
					"perimeter": 1.7024870025521848,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105003.903,
									453604.148,
									3.957
								],
								[
									105003.903,
									453604.148,
									2.418
								],
								[
									105003.892,
									453604.067,
									2.418
								],
								[
									105003.892,
									453604.067,
									3.957
								],
								[
									105003.903,
									453604.148,
									3.957
								]
							]
						]
					}
				},
				{
					"orientation": "NE",
					"area": 4.0644537940105865,
					"perimeter": 8.302037092982527,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105003.903,
									453604.148,
									2.418
								],
								[
									105003.903,
									453604.148,
									-2.119
								],
								[
									105002.128,
									453604.392,
									-2.119
								],
								[
									105002.128,
									453604.392,
									1.591
								],
								[
									105003.903,
									453604.148,
									2.418
								]
							]
						]
					}
				},
				{
					"orientation": "WN",
					"area": 0.8832322713875905,
					"perimeter": 5.5738353337148,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									104997.681,
									453602.593,
									2.598
								],
								[
									104997.681,
									453602.593,
									-2.119
								],
								[
									104997.63,
									453602.222,
									-2.119
								],
								[
									104997.63,
									453602.222,
									2.294
								],
								[
									104997.681,
									453602.593,
									2.598
								]
							]
						]
					}
				},
				{
					"orientation": "SW",
					"area": 14.225726384225268,
					"perimeter": 15.76028310237138,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105004.801,
									453591.684,
									4.092
								],
								[
									105004.801,
									453591.684,
									-2.119
								],
								[
									105009.25,
									453590.593,
									-2.119
								],
								[
									105009.25,
									453590.593,
									2.168
								],
								[
									105004.801,
									453591.684,
									4.092
								]
							]
						]
					}
				},
				{
					"orientation": "SW",
					"area": 0.016258133189198,
					"perimeter": 6.199560301498584,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105002.265,
									453592.122,
									3.975
								],
								[
									105002.265,
									453592.122,
									2.327
								],
								[
									105002.265,
									453592.122,
									-2.119
								],
								[
									105002.315,
									453592.115,
									-2.119
								],
								[
									105002.315,
									453592.115,
									3.997
								],
								[
									105002.265,
									453592.122,
									3.975
								]
							]
						]
					}
				},
				{
					"orientation": "SW",
					"area": 1.5308278579226735,
					"perimeter": 5.745276175509553,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105009.445,
									453591.171,
									2.12
								],
								[
									105009.445,
									453591.171,
									-2.119
								],
								[
									105010.162,
									453591.084,
									-2.119
								],
								[
									105010.162,
									453591.084,
									1.815
								],
								[
									105009.445,
									453591.171,
									2.12
								]
							]
						]
					}
				},
				{
					"orientation": "SW",
					"area": 2.34273049856275,
					"perimeter": 6.421111844933829,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105001.073,
									453592.295,
									1.771
								],
								[
									105001.073,
									453592.295,
									-2.119
								],
								[
									105002.265,
									453592.122,
									-2.119
								],
								[
									105002.265,
									453592.122,
									2.327
								],
								[
									105001.073,
									453592.295,
									1.771
								]
							]
						]
					}
				},
				{
					"orientation": "SW",
					"area": 3.2890755357171697,
					"perimeter": 7.348545269415376,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									104998.122,
									453600.515,
									0.969
								],
								[
									104998.122,
									453600.515,
									-2.119
								],
								[
									105000.231,
									453600.215,
									-2.119
								],
								[
									105000.231,
									453600.215,
									0.95
								],
								[
									104998.122,
									453600.515,
									0.969
								]
							]
						]
					}
				},
				{
					"orientation": "SW",
					"area": 1.521417571235183,
					"perimeter": 7.652927393609493,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105003.648,
									453591.921,
									4.588
								],
								[
									105003.648,
									453591.921,
									-2.119
								],
								[
									105004.097,
									453591.856,
									-2.119
								],
								[
									105004.097,
									453591.856,
									4.397
								],
								[
									105003.648,
									453591.921,
									4.588
								]
							]
						]
					}
				},
				{
					"orientation": "WN",
					"area": 0.2165181682074254,
					"perimeter": 6.350441744026737,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105004.811,
									453591.753,
									4.092
								],
								[
									105004.811,
									453591.753,
									-2.119
								],
								[
									105004.801,
									453591.684,
									-2.119
								],
								[
									105004.801,
									453591.684,
									4.092
								],
								[
									105004.811,
									453591.753,
									4.092
								]
							]
						]
					}
				},
				{
					"orientation": "WN",
					"area": 0.0532548846593998,
					"perimeter": 1.777259429083799,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105002.274,
									453592.186,
									3.975
								],
								[
									105002.274,
									453592.186,
									2.327
								],
								[
									105002.265,
									453592.122,
									2.327
								],
								[
									105002.265,
									453592.122,
									3.975
								],
								[
									105002.274,
									453592.186,
									3.975
								]
							]
						]
					}
				},
				{
					"orientation": "SW",
					"area": 2.350291934728034,
					"perimeter": 8.020608739361908,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105004.097,
									453591.856,
									4.397
								],
								[
									105004.097,
									453591.856,
									-2.119
								],
								[
									105004.811,
									453591.753,
									-2.119
								],
								[
									105004.811,
									453591.753,
									4.092
								],
								[
									105004.097,
									453591.856,
									4.397
								]
							]
						]
					}
				},
				{
					"orientation": "ES",
					"area": "",
					"perimeter": 2.6675254336218943,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105001.886,
									453602.284,
									1.595
								],
								[
									105001.886,
									453602.284,
									2.793
								],
								[
									105001.719,
									453600.824,
									1.599
								],
								[
									105001.886,
									453602.284,
									1.595
								]
							]
						]
					}
				},
				{
					"orientation": "ES",
					"area": 1.2935123012290697,
					"perimeter": 5.991912951923278,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									104998.265,
									453602.55,
									2.625
								],
								[
									104998.265,
									453602.55,
									-2.119
								],
								[
									104998.303,
									453603.094,
									-2.119
								],
								[
									104998.303,
									453603.094,
									3.068
								],
								[
									104998.265,
									453602.55,
									2.625
								]
							]
						]
					}
				},
				{
					"orientation": "NE",
					"area": 1.4199975006494605,
					"perimeter": 6.282088123377185,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									104998.303,
									453603.094,
									3.068
								],
								[
									104998.303,
									453603.094,
									-2.119
								],
								[
									104997.759,
									453603.156,
									-2.119
								],
								[
									104997.759,
									453603.156,
									3.061
								],
								[
									104998.303,
									453603.094,
									3.068
								]
							]
						]
					}
				},
				{
					"orientation": "NE",
					"area": "",
					"perimeter": 12.17739888161531,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105001.886,
									453602.284,
									2.793
								],
								[
									105001.886,
									453602.284,
									1.595
								],
								[
									105001.886,
									453602.284,
									-2.119
								],
								[
									104998.265,
									453602.55,
									-2.119
								],
								[
									104998.265,
									453602.55,
									2.625
								],
								[
									105001.886,
									453602.284,
									2.793
								]
							]
						]
					}
				},
				{
					"orientation": "WN",
					"area": 9.139102188140347,
					"perimeter": 25.292706655828727,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105003.892,
									453604.067,
									3.957
								],
								[
									105003.892,
									453604.067,
									2.418
								],
								[
									105002.289,
									453592.299,
									2.328
								],
								[
									105002.289,
									453592.299,
									3.975
								],
								[
									105003.892,
									453604.067,
									3.957
								]
							]
						]
					}
				},
				{
					"orientation": "WN",
					"area": 0.0345683833919732,
					"perimeter": 0.843541846076987,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105001.64,
									453600.139,
									1.6
								],
								[
									105001.64,
									453600.139,
									1.037
								],
								[
									105001.626,
									453600.017,
									0.938
								],
								[
									105001.626,
									453600.017,
									1.601
								],
								[
									105001.64,
									453600.139,
									1.6
								]
							]
						]
					}
				},
				{
					"orientation": "ES",
					"area": 8.948465752656391,
					"perimeter": 12.762173370424396,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105009.673,
									453591.477,
									2.043
								],
								[
									105009.673,
									453591.477,
									-2.119
								],
								[
									105010.244,
									453595.739,
									-2.119
								],
								[
									105010.244,
									453595.739,
									2.054
								],
								[
									105009.673,
									453591.477,
									2.043
								]
							]
						]
					}
				},
				{
					"orientation": "SW",
					"area": 2.1620821839885163,
					"perimeter": 5.887014193966108,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105000.231,
									453600.215,
									0.95
								],
								[
									105000.231,
									453600.215,
									-2.119
								],
								[
									105001.626,
									453600.017,
									-2.119
								],
								[
									105001.626,
									453600.017,
									0.938
								],
								[
									105000.231,
									453600.215,
									0.95
								]
							]
						]
					}
				},
				{
					"orientation": "ES",
					"area": 8.823070620851952,
					"perimeter": 12.630307018164244,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105010.244,
									453595.739,
									2.054
								],
								[
									105010.244,
									453595.739,
									-2.119
								],
								[
									105010.807,
									453599.93,
									-2.119
								],
								[
									105010.807,
									453599.93,
									2.065
								],
								[
									105010.244,
									453595.739,
									2.054
								]
							]
						]
					}
				},
				{
					"orientation": "WN",
					"area": "",
					"perimeter": 1.4525560690571897,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105001.64,
									453600.139,
									1.037
								],
								[
									105001.64,
									453600.139,
									1.6
								],
								[
									105001.719,
									453600.824,
									1.599
								],
								[
									105001.64,
									453600.139,
									1.037
								]
							]
						]
					}
				},
				{
					"orientation": "SW",
					"area": 0.2658516052805348,
					"perimeter": 4.549291316629075,
					"geometry": {
						"type": "Polygon",
						"coordinates": [
							[
								[
									105009.322,
									453591.186,
									2.172
								],
								[
									105009.322,
									453591.186,
									-2.119
								],
								[
									105009.445,
									453591.171,
									-2.119
								],
								[
									105009.445,
									453591.171,
									2.12
								],
								[
									105009.322,
									453591.186,
									2.172
								]
							]
						]
					}
				}
			]
		}
	}
}
```

{% endtab %}

{% tab title="400: Bad Request Mislukte reactie" %}

```
{
	"Output": "The given house address was not found in database."
}
```

{% endtab %}

{% tab title="422: Unprocessable Entity Verkeerd invoerformaat" %}

```
{
	"detail": [
		{
			"loc": [
				"body",
				"housenumber"
			],
			"msg": "value is not a valid integer",
			"type": "type_error.integer"
		}
	]
}
```

{% endtab %}

{% tab title="500: Internal Server Error Service is niet beschikbaar en/of niet beschikbaar" %}

```
{
	"message": "Internal server error"
}
```

{% endtab %}

{% tab title="403: Forbidden Verboden" %}

```
{
	"message": "Forbidden"
}
```

{% endtab %}

{% tab title="401: Unauthorized Geen toegang" %}

```
{
    'Output': 'Please use https://api.altum.ai or visit https://mopsus.altum.ai to make your request.'
}
```

{% endtab %}
{% endtabs %}

## Request body

#### Voorbeeld verzoek

```
{
   "postcode" : "2771DS",
   "housenumber" : "87",
   "houseaddition":"",
   "include_geometry" : 1
}
```


# API-sleutel Informatie

Begrijpen en Verkrijgen van jouw API-sleutel

Een API-sleutel is een unieke identificatiecode die je veilige toegang biedt tot de API's van Altum AI. Het is verplicht om deze sleutel in de `x-api-key` header van alle API-verzoeken op te nemen om een juiste authenticatie te garanderen.

**Hoe verkrijg je jouw API-sleutel?**\
Je kunt je API-sleutel op twee manieren verkrijgen:

1. **Via het Platform:** Genereer jouw API-sleutel direct op het Altum AI-platform.
2. **Door een Abonnement:** Een API-sleutel wordt verstrekt wanneer je je abonneert op het Startup- of Unlimited-plan.

**Waar gebruik je jouw API-sleutel?**\
Voeg de API-sleutel toe aan de `x-api-key` header van elk API-verzoek. Zonder een geldige sleutel wordt je verzoek niet geauthenticeerd.

**Voorbeeld Header:**

```plaintext
x-api-key: JOUW_UNIEKE_API_SLEUTEL
```

**Beveiligingsnotitie**\
Houd jouw API-sleutel vertrouwelijk om ongeautoriseerde toegang tot je account te voorkomen.


# Resultaat interpretatie

Een uitleg en interpretatie van elke functie die wordt uitgevoerd in h

<table><thead><tr><th width="299.3333333333333">Feature</th><th>Example</th><th>Explanation</th></tr></thead><tbody><tr><td>address.bag_id</td><td>0499010002023718</td><td>BAG ID</td></tr><tr><td>address.pand_id</td><td>0499100002015826</td><td>PAND ID</td></tr><tr><td>address.postcode</td><td>1234AB</td><td>Postcode</td></tr><tr><td>address.housenumber</td><td>1</td><td>Huisnummer</td></tr><tr><td>address.houseaddition</td><td>B</td><td>Huisnummer toevoeging</td></tr><tr><td>address.number_of_floors</td><td>2</td><td>Aantal verdiepingen</td></tr><tr><td>ground_surface.ground_area</td><td>122.03668975830078</td><td>Oppervlakte begane grond (m2)</td></tr><tr><td>ground_surface.perimeter</td><td>53.19795020555981</td><td>Omtrek (m)</td></tr><tr><td>ground_surface.max_length</td><td>13.936105098015044</td><td>Maximale lengte van het gebouw (m)</td></tr><tr><td>ground_surface.max_width</td><td>12.699969711612086</td><td>Maximale breedte van het gebouw (m)</td></tr><tr><td>roof_surface.type</td><td>sloping</td><td>Type dakoppervlak (horizontal or sloping)</td></tr><tr><td>roof_surface.no_of_surfaces</td><td>4</td><td>Aantal dakoppervlakken</td></tr><tr><td><em><strong>voor elk dakoppervlak</strong></em></td><td></td><td></td></tr><tr><td>surfaces.orientation</td><td>WN</td><td>Oriëntatie van het dakoppervlak</td></tr><tr><td>surfaces.area</td><td>12.652916942719283</td><td>Oppervlakte dakoppervlak (m2)</td></tr><tr><td>surfaces.perimeter</td><td>25.810687359706225</td><td>Omtrek dakoppervlak (m2)</td></tr><tr><td>surfaces.roof_angle</td><td>23.7</td><td>Dakhelling (graden)</td></tr><tr><td>surfaces.geometry.type</td><td>Polygon</td><td>Geometrie formaat</td></tr><tr><td>surfaces.geometry.coordinates</td><td>[ 105003.892, 453604.067, 3.957 ]...</td><td>Coördinaten van het dakoppervlak</td></tr><tr><td>wall_surface.wall_area</td><td>268.0</td><td>Totaal muuroppervlak (m2)</td></tr><tr><td>wall_surface.shared_wall_area</td><td>18.08</td><td>Totaal gedeeld muuroppervlak (m2)</td></tr><tr><td>wall_surface.number_of_surfaces</td><td>44</td><td>Aantal muuroppervlakken</td></tr><tr><td><em><strong>voor elk muuroppervlak</strong></em></td><td></td><td></td></tr><tr><td>wall_surface.orientation</td><td>ES</td><td>Oriëntatie van het muuroppervlak</td></tr><tr><td>wall_surface.area</td><td>0.6297902744652016</td><td>Area of wall surface (m2)</td></tr><tr><td>wall_surface.perimeter</td><td>4.574356150984596</td><td>Oppervlakte muuroppervlak (m2)</td></tr><tr><td>wall_surface.geometry.type</td><td>Polygon</td><td>Geometrie formaat</td></tr><tr><td>wall_surface.geometry.coordinates</td><td>[ 105010.162, 453591.084, 1.815 ]...</td><td>Coördinaten van het muuroppervlak</td></tr></tbody></table>


# NTA 8800 Energielabel API

Welkom bij de NTA 8800 Energylabel API-documentatie. Deze API gebruikt een combinatie van verschillende bronnen en methoden om de meest nauwkeurige energielabelschattingen te leveren.

## Introductie

De NTA 8800 Energielabel API is ontworpen om gebruikers de mogelijkheid te geven de huidige of potentiële energie-efficiëntieklasse van een woning te schatten op basis van specifieke woningdetails. Deze API dient als een robuust analytisch hulpmiddel en biedt twee kernfunctionaliteiten:

1. **Genereer een geschat huidig energielabel**: Gebruikers kunnen gegevens invoeren over de bestaande kenmerken van een woning om een geschat energielabel te ontvangen volgens de NTA 8800-standaard. Deze schatting helpt bij het meten van de huidige energieprestaties van een woning.
2. **Haal de huidige geschatte maatregelen op die aanwezig zijn in het pand**: De API biedt ook inzicht in de energie-efficiëntiemaatregelen die al binnen een pand zijn geïmplementeerd. Dit zorgt voor een uitgebreid inzicht in de bestaande energiebesparende functies van het pand.

Door gebruik te maken van de NTA 8800 Energielabel API kunnen gebruikers een duidelijk beeld krijgen van de energie-efficiëntiestatus van een pand en potentiële verbeteringen onderzoeken om de energieprestaties te verbeteren.

<figure><img src="/files/XfFBHIr7VKL8fPHLAiID" alt=""><figcaption><p>Reeks van energielabels</p></figcaption></figure>

***

## Bepaal het geschatte huidige of potentiële NTA 8800-energielabel op basis van de invoer van de huidige of verwachte situatie van het pand.

Onze nieuwste nauwkeurigheidsstatistieken zijn beschikbaar en zijn gevalideerd tegen meerdere datasets. De prestaties van onze schattingen zijn grondig beoordeeld om betrouwbaarheid te waarborgen. Gedetailleerde nauwkeurigheidsinformatie vindt u hieronder:

{% tabs %}
{% tab title="Q2 2025" %}
Altum AI heeft onlangs prestatietests uitgevoerd op de NTA 8800 Energielabel API met behulp van een dataset van 4.818 adressen met de NTA 8800-bepalingsmethode. Het doel van deze test was om de BENG2-nauwkeurigheid van de NTA 8800 Energielabel API te evalueren bij het verwerken van adresgerelateerde queries. De resultaten van de test zijn als volgt:

* Gemiddelde Absolute Fout: 6.98
* Mediaan Absolute Fout: 1.0

Deze meetwaarden geven inzicht in de gemiddelde en mediane afwijking tussen voorspelde en werkelijke BENG2-waarden. Lagere waarden duiden op een hogere nauwkeurigheid en precisie in de prestaties van onze API. Naast deze meetwaarden hebben we ook de voorspellingen binnen verschillende foutmarges geanalyseerd:

* &#x20;BENG2

  \- 88.13% voorspellingen binnen een foutmarge van 5 BENG2-eenheden

  \- 90.62% voorspellingen binnen een foutmarge van 10 BENG2-eenheden

  \- 94.04% voorspellingen binnen een foutmarge van 20 BENG2-eenheden

  \- 96.14% voorspellingen binnen een foutmarge van 30 BENG2-eenheden

  \- 97.20% voorspellingen binnen een foutmarge van 40 BENG2-eenheden

  \- 97.68% voorspellingen binnen een foutmarge van 50 BENG2-eenheden

  \- 97.92% voorspellingen binnen een foutmarge van 60 BENG2-eenheden

  \- 98.11% voorspellingen binnen een foutmarge van 70 BENG2-eenheden

  \- 98.38% voorspellingen binnen een foutmarge van 80 BENG2-eenheden

  \- 98.53% voorspellingen binnen een foutmarge van 90 BENG2-eenheden

  \- 98.75% voorspellingen binnen een foutmarge van 100 BENG2-eenheden
* Energy label

  &#x20; \- 100.00% voorspellingen met 0 energielabelverschil

  &#x20; \- 100.00% voorspellingen met 1 energielabelverschil

  &#x20; \- 100.00% voorspellingen met 2 energielabelverschil

  &#x20; \- 100.00% voorspellingen met 3 energielabelverschil

  &#x20; \- 100.00% voorspellingen met 4 energielabelverschil

  &#x20; \- 100.00% voorspellingen met 5 energielabelverschil

<figure><img src="/files/RRstImqJtFWOyoj7iyhY" alt=""><figcaption><p>Deze percentages geven de nauwkeurigheid aan van de voorspellingen van onze API binnen specifieke foutmarges. Hogere percentages tonen de betrouwbaarheid en consistentie van de prestaties van onze API aan.</p></figcaption></figure>
{% endtab %}

{% tab title="Q1 2025" %}
Altum AI heeft onlangs prestatietests uitgevoerd op de NTA 8800 Energielabel API met behulp van een dataset van 4.813 adressen met de NTA 8800-bepalingsmethode. Het doel van deze test was om de BENG2-nauwkeurigheid van de NTA 8800 Energielabel API te evalueren bij het verwerken van adresgerelateerde queries. De resultaten van de test zijn als volgt:

* Gemiddelde Absolute Fout: 7.04
* Mediaan Absolute Fout: 1.0

Deze meetwaarden geven inzicht in de gemiddelde en mediane afwijking tussen voorspelde en werkelijke BENG2-waarden. Lagere waarden duiden op een hogere nauwkeurigheid en precisie in de prestaties van onze API. Naast deze meetwaarden hebben we ook de voorspellingen binnen verschillende foutmarges geanalyseerd:

* &#x20;BENG2

  \- 87.95% voorspellingen binnen een foutmarge van 5 BENG2-eenheden

  \- 90.42% voorspellingen binnen een foutmarge van 10 BENG2-eenheden

  \- 93.91% voorspellingen binnen een foutmarge van 20 BENG2-eenheden

  \- 96.07% voorspellingen binnen een foutmarge van 30 BENG2-eenheden

  \- 97.15% voorspellingen binnen een foutmarge van 40 BENG2-eenheden

  \- 97.63% voorspellingen binnen een foutmarge van 50 BENG2-eenheden

  \- 97.90% voorspellingen binnen een foutmarge van 60 BENG2-eenheden

  \- 98.07% voorspellingen binnen een foutmarge van 70 BENG2-eenheden

  \- 98.36% voorspellingen binnen een foutmarge van 80 BENG2-eenheden

  \- 98.50% voorspellingen binnen een foutmarge van 90 BENG2-eenheden

  \- 98.75% voorspellingen binnen een foutmarge van 100 BENG2-eenheden
* Energy label

  &#x20; \- 99.72% voorspellingen met 0 energielabelverschil

  &#x20; \- 99.88% voorspellingen met 1 energielabelverschil

  &#x20; \- 99.95% voorspellingen met 2 energielabelverschil

  &#x20; \- 100.00% voorspellingen met 3 energielabelverschil

  &#x20; \- 100.00% voorspellingen met 4 energielabelverschil

  &#x20; \- 100.00% voorspellingen met 5 energielabelverschil

<figure><img src="/files/viwVAH197S63pPTNoGnM" alt=""><figcaption><p>Deze percentages geven de nauwkeurigheid aan van de voorspellingen van onze API binnen specifieke foutmarges. Hogere percentages tonen de betrouwbaarheid en consistentie van de prestaties van onze API aan.</p></figcaption></figure>
{% endtab %}

{% tab title="Q4 2024" %}
Altum AI heeft onlangs prestatietests uitgevoerd op de NTA 8800 Energielabel API met behulp van een dataset van 4.828 adressen met de NTA 8800-bepalingsmethode. Het doel van deze test was om de BENG2-nauwkeurigheid van de NTA 8800 Energielabel API te evalueren bij het verwerken van adresgerelateerde queries. De resultaten van de test zijn als volgt:

* Gemiddelde Absolute Fout: 7.16&#x20;
* Mediaan Absolute Fout: 1.0

Deze meetwaarden geven inzicht in de gemiddelde en mediane afwijking tussen voorspelde en werkelijke BENG2-waarden. Lagere waarden duiden op een hogere nauwkeurigheid en precisie in de prestaties van onze API. Naast deze meetwaarden hebben we ook de voorspellingen binnen verschillende foutmarges geanalyseerd:

* &#x20;BENG2

  \- 87.53% voorspellingen binnen een foutmarge van 5 BENG2-eenheden

  \- 90.18% voorspellingen binnen een foutmarge van 10 BENG2-eenheden

  \- 93.79% voorspellingen binnen een foutmarge van 20 BENG2-eenheden

  \- 96.04% voorspellingen binnen een foutmarge van 30 BENG2-eenheden

  \- 97.12% voorspellingen binnen een foutmarge van 40 BENG2-eenheden

  \- 97.58% voorspellingen binnen een foutmarge van 50 BENG2-eenheden

  \- 97.87% voorspellingen binnen een foutmarge van 60 BENG2-eenheden

  \- 98.05% voorspellingen binnen een foutmarge van 70 BENG2-eenheden

  \- 98.34% voorspellingen binnen een foutmarge van 80 BENG2-eenheden

  \- 98.47% voorspellingen binnen een foutmarge van 90 BENG2-eenheden

  \- 98.70% voorspellingen binnen een foutmarge van 100 BENG2-eenheden
* Energy label

  &#x20; \- 99.71% voorspellingen met 0 energielabelverschil

  &#x20; \- 99.88% voorspellingen met 1 energielabelverschil

  &#x20; \- 99.96% voorspellingen met 2 energielabelverschil

  &#x20; \- 100.00% voorspellingen met 3 energielabelverschil

  &#x20; \- 100.00% voorspellingen met 4 energielabelverschil

  &#x20; \- 100.00% voorspellingen met 5 energielabelverschil

<figure><img src="/files/8B4wpe3G4IxFMd835hYr" alt=""><figcaption><p>Deze percentages geven de nauwkeurigheid aan van de voorspellingen van onze API binnen specifieke foutmarges. Hogere percentages tonen de betrouwbaarheid en consistentie van de prestaties van onze API aan.</p></figcaption></figure>
{% endtab %}

{% tab title="Q3 2024" %}
Altum AI heeft onlangs prestatietests uitgevoerd op de NTA 8800 Energielabel API met behulp van een dataset van 4.263 adressen met de NTA 8800-bepalingsmethode. Het doel van deze test was om de BENG2-nauwkeurigheid van de NTA 8800 Energielabel API te evalueren bij het verwerken van adresgerelateerde queries. De resultaten van de test zijn als volgt:

* Gemiddelde Absolute Fout: 7.12
* Mediaan Absolute Fout: 1.0

Deze meetwaarden geven inzicht in de gemiddelde en mediane afwijking tussen voorspelde en werkelijke BENG2-waarden. Lagere waarden duiden op een hogere nauwkeurigheid en precisie in de prestaties van onze API. Naast deze meetwaarden hebben we ook de voorspellingen binnen verschillende foutmarges geanalyseerd:

* &#x20;BENG2

  \- 88.44% voorspellingen binnen een foutmarge van 5 BENG2-eenheden

  \- 90.66% voorspellingen binnen een foutmarge van 10 BENG2-eenheden

  \- 94.07% voorspellingen binnen een foutmarge van 20 BENG2-eenheden

  \- 96.18% voorspellingen binnen een foutmarge van 30 BENG2-eenheden

  \- 97.28% voorspellingen binnen een foutmarge van 40 BENG2-eenheden

  \- 97.72% voorspellingen binnen een foutmarge van 50 BENG2-eenheden

  \- 98.01% voorspellingen binnen een foutmarge van 60 BENG2-eenheden

  \- 98.15% voorspellingen binnen een foutmarge van 70 BENG2-eenheden

  \- 98.45% voorspellingen binnen een foutmarge van 80 BENG2-eenheden

  \- 98.52% voorspellingen binnen een foutmarge van 90 BENG2-eenheden

  \- 98.73% voorspellingen binnen een foutmarge van 100 BENG2-eenheden
* Energy label

  &#x20; \- 99.67% voorspellingen met 0 energielabelverschil

  &#x20; \- 99.86% voorspellingen met 1 energielabelverschil

  &#x20; \- 99.95% voorspellingen met 2 energielabelverschil

  &#x20; \- 100.00% voorspellingen met 3 energielabelverschil

  &#x20; \- 100.00% voorspellingen met 4 energielabelverschil

  &#x20; \- 100.00% voorspellingen met 5 energielabelverschil

<figure><img src="/files/tucgN01A9JoynGzbh84G" alt=""><figcaption><p>Deze percentages geven de nauwkeurigheid aan van de voorspellingen van onze API binnen specifieke foutmarges. Hogere percentages tonen de betrouwbaarheid en consistentie van de prestaties van onze API aan.</p></figcaption></figure>
{% endtab %}

{% tab title="Q2 2024" %}
Altum AI heeft onlangs prestatietests uitgevoerd op de NTA 8800 Energielabel API met behulp van een dataset van 4.220 adressen met de NTA 8800-bepalingsmethode. Het doel van deze test was om de BENG2-nauwkeurigheid van de NTA 8800 Energielabel API te evalueren bij het verwerken van adresgerelateerde queries. De resultaten van de test zijn als volgt:

* Gemiddelde Absolute Fout: 8.80&#x20;
* Mediaan Absolute Fout: 1.0

Deze meetwaarden geven inzicht in de gemiddelde en mediane afwijking tussen voorspelde en werkelijke BENG2-waarden. Lagere waarden duiden op een hogere nauwkeurigheid en precisie in de prestaties van onze API. Naast deze meetwaarden hebben we ook de voorspellingen binnen verschillende foutmarges geanalyseerd:

* &#x20;BENG2

  \- 79.79% voorspellingen binnen een foutmarge van 5 BENG2-eenheden

  \- 84.43% voorspellingen binnen een foutmarge van 10 BENG2-eenheden

  \- 91.09% voorspellingen binnen een foutmarge van 20 BENG2-eenheden

  \- 94.57% voorspellingen binnen een foutmarge van 30 BENG2-eenheden

  \- 96.71% voorspellingen binnen een foutmarge van 40 BENG2-eenheden

  \- 97.56% voorspellingen binnen een foutmarge van 50 BENG2-eenheden

  \- 97.89% voorspellingen binnen een foutmarge van 60 BENG2-eenheden

  \- 98.01% voorspellingen binnen een foutmarge van 70 BENG2-eenheden

  \- 98.29% voorspellingen binnen een foutmarge van 80 BENG2-eenheden

  \- 98.44% voorspellingen binnen een foutmarge van 90 BENG2-eenheden

  \- 98.67% voorspellingen binnen een foutmarge van 100 BENG2-eenheden
* Energy label

  &#x20; \- 99.62% voorspellingen met 0 energielabelverschil

  &#x20; \- 99.83% voorspellingen met 1 energielabelverschil

  &#x20; \- 99.95% voorspellingen met 2 energielabelverschil

  &#x20; \- 100.00% voorspellingen met 3 energielabelverschil

  &#x20; \- 100.00% voorspellingen met 4 energielabelverschil

  &#x20; \- 100.00% voorspellingen met 5 energielabelverschil

<figure><img src="/files/AchL1dSmYuFOYBsQbUVh" alt=""><figcaption><p>Deze percentages geven de nauwkeurigheid aan van de voorspellingen van onze API binnen specifieke foutmarges. Hogere percentages tonen de betrouwbaarheid en consistentie van de prestaties van onze API aan.</p></figcaption></figure>
{% endtab %}

{% tab title="Q1 2024" %}
Altum AI heeft onlangs prestatietests uitgevoerd op de NTA 8800 Energielabel API met behulp van een dataset van 4.408 adressen met de NTA 8800-bepalingsmethode. Het doel van deze test was om de BENG2-nauwkeurigheid van de NTA 8800 Energielabel API te evalueren bij het verwerken van adresgerelateerde queries. De resultaten van de test zijn als volgt:

* Gemiddelde Absolute Fout: 8.69&#x20;
* Mediaan Absolute Fout: 1.0

Deze meetwaarden geven inzicht in de gemiddelde en mediane afwijking tussen voorspelde en werkelijke BENG2-waarden. Lagere waarden duiden op een hogere nauwkeurigheid en precisie in de prestaties van onze API. Naast deze meetwaarden hebben we ook de voorspellingen binnen verschillende foutmarges geanalyseerd:

* &#x20;BENG2

  \- 80.31% voorspellingen binnen een foutmarge van 5 BENG2-eenheden

  \- 85.96% voorspellingen binnen een foutmarge van 10 BENG2-eenheden

  \- 91.58% voorspellingen binnen een foutmarge van 20 BENG2-eenheden

  \- 94.92% voorspellingen binnen een foutmarge van 30 BENG2-eenheden

  \- 96.87% voorspellingen binnen een foutmarge van 40 BENG2-eenheden

  \- 97.69% voorspellingen binnen een foutmarge van 50 BENG2-eenheden

  \- 97.96% voorspellingen binnen een foutmarge van 60 BENG2-eenheden

  \- 98.07% voorspellingen binnen een foutmarge van 70 BENG2-eenheden

  \- 98.34% voorspellingen binnen een foutmarge van 80 BENG2-eenheden

  \- 98.48% voorspellingen binnen een foutmarge van 90 BENG2-eenheden

  \- 98.73% voorspellingen binnen een foutmarge van 100 BENG2-eenheden
* Energy label

  &#x20; \- 99.64% voorspellingen met 0 energielabelverschil

  &#x20; \- 99.84% voorspellingen met 1 energielabelverschil

  &#x20; \- 99.95% voorspellingen met 2 energielabelverschil

  &#x20; \- 100.00% voorspellingen met 3 energielabelverschil

  &#x20; \- 100.00% voorspellingen met 4 energielabelverschil

  &#x20; \- 100.00% voorspellingen met 5 energielabelverschil

<figure><img src="/files/g0chXBDo0FPKwkLwKvl7" alt=""><figcaption><p>Deze percentages geven de nauwkeurigheid aan van de voorspellingen van onze API binnen specifieke foutmarges. Hogere percentages tonen de betrouwbaarheid en consistentie van de prestaties van onze API aan.</p></figcaption></figure>
{% endtab %}

{% tab title="Q4 2023" %}
Altum AI heeft onlangs prestatietests uitgevoerd op de NTA 8800 Energylabel API met behulp van een dataset van 1.679 adressen met de NTA 8800 bepalingsmethode. Het doel van deze tests was om de BENG2-nauwkeurigheid van de NTA 8800 Energylabel API te evalueren bij het verwerken van adresgerelateerde vragen. De resultaten van de test zijn als volgt:

* Gemiddelde Absolute Fout: 20.59
* Mediaan Absolute Fout: 1.88

Deze metrieken bieden inzicht in de gemiddelde en mediane afwijking tussen voorspelde en daadwerkelijke BENG2-waarden. Lagere waarden duiden op een hogere nauwkeurigheid en precisie in de prestaties van onze API. Naast deze metrieken hebben we ook de voorspellingen geanalyseerd binnen verschillende foutmarges:

\- 79.09% voorspellingen binnen een foutmarge van 5 BENG2 eenheden

\- 82.13% voorspellingen binnen een foutmarge van 10 BENG2 eenheden

\- 86.90% voorspellingen binnen een foutmarge van 20 BENG2 eenheden

\- 90.47% voorspellingen binnen een foutmarge van 30 BENG2 eenheden

\- 92.32% voorspellingen binnen een foutmarge van 40 BENG2 eenheden

\- 93.03% voorspellingen binnen een foutmarge van 50 BENG2 eenheden

\- 93.69% voorspellingen binnen een foutmarge van 60 BENG2 eenheden

\
Deze percentages geven de nauwkeurigheid aan van de voorspellingen van onze API binnen specifieke foutmarges. Hogere percentages tonen de betrouwbaarheid en consistentie van de prestaties van onze API aan.
{% endtab %}
{% endtabs %}


# Changelog

Changelog van de implementatie van de NTA 8800 Energielabel API in formaatiteratie (1.01) en (verwachte) releasedatum (jaar, maand en dag).

### 1.12 - 2025-07-02

* EPOnline versie-update van V4 naar V5.

### 1.11 - 2025-03-06

* De service is geoptimaliseerd om een ​​groter aantal API-verzoeken beter te kunnen verwerken

### 1.10- 2024-12-11&#x20;

* Correctie toegevoegd voor het berekende jaarlijkse gasverbruik "estimated\_gas\_usage", gebaseerd op statistische gemiddelden van huizen in Nederland.

### 1.09 - 2024-12-05

* &#x20;Nieuwe output toegevoegd "current\_estimated\_BENG1\_score", de huidige geschatte BENG1 score.

### 1.08 - 2024-09-16

* EPOnline versie-update van V3 naar V4.

### 1.07 - 2024-06-18

* Nieuwe output toegevoegd "measures\_method". Deze output geeft aan op welke methode de maatregelen zijn vastgesteld.&#x20;
* Bug opgelost met betrekking tot "build\_year" en "living\_room\_windows".

### 1.06 - 2024-02-02

* Toevoeging "definitive\_BENG2 score" output, de definitieve BENG2 score.
* Ingevoerd een datagestuurde benadering door gebruik te maken van bekende informatie om de nauwkeurigheid van de geschatte maatregelen te verbeteren.

### 1.05 - 2023-12-15

* Toevoeging "estimated\_city\_heating\_usage" output, het jaarlijkse warmteverbruik in GJ van de woning.

### 1.04 - 2023-12-05

* Toevoeging "inhabitants" input

### 1.03 - 2023-10-09

* Toevoeging current "CO2" output
* Toevoeging "watt\_panels" input om invoer "solar\_panels" veld te interpreteren als wattpiek capaciteit zonnepanelen. Voorbeeld invoer: "solar\_panels": 15000, "watt\_panels": 0

### 1.02 - 2023-09-23

* Toevoeging "ventilation" als input/output

### 1.01 - 2023-08-29

* Toevoeging /bag endpoint voor opvragen verduurzamingadvies o.b.v. BAG ID (VBO)


# Authenticatie, invoer en resultaat

Details over de invoer-, uitvoer- en authenticatievereisten.

## Bepaal het geschatte huidige of potentiële NTA 8800 energielabel&#x20;

<mark style="color:green;">`POST`</mark> `https://api.altum.ai/energylabel`

#### Headers

| Name                                        | Type   | Description                                                                                              |
| ------------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------- |
| x-api-key<mark style="color:red;">\*</mark> | string | Unieke API-sleutel van Altum. Maak er een op [https://platform.altum.ai](https://platform.altum.ai/auth) |
| Content-Type                                | string | application/json                                                                                         |

#### Request Body

| Name                                            | Type    | Description                                                                                                               |
| ----------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------- |
| post\_code<mark style="color:red;">\*</mark>    | String  | 1234AB                                                                                                                    |
| house\_number<mark style="color:red;">\*</mark> | Number  | 1                                                                                                                         |
| house\_addition                                 | String  | A                                                                                                                         |
| inner\_surface\_area                            | Number  | 100                                                                                                                       |
| build\_year                                     | Number  | 2001                                                                                                                      |
| house\_type                                     | Number  | huidige woningtype: '2 onder 1 kap' = 1, 'hoekwoning' = 2, 'tussenwoning' = 3, 'vrijstaand' = 4 of 'appartement' = 5      |
| installation                                    | Number  | huidig installatietype - zie [maatregelen](/verduurzamen/verduurzaming-api/measures)                                      |
| wall\_insulation                                | Number  | huidige muurisolatie - zie [maatregelen](/verduurzamen/verduurzaming-api/measures)                                        |
| roof\_insulation                                | Number  | huidige dakisolatie - zie [maatregelen](/verduurzamen/verduurzaming-api/measures)                                         |
| floor\_insulation                               | Number  | huidige vloerisolatie- zie [maatregelen](/verduurzamen/verduurzaming-api/measures)                                        |
| living\_room\_windows                           | Number  | huidige woonkamerramen - zie [maatregelen](/verduurzamen/verduurzaming-api/measures)                                      |
| bedroom\_windows                                | Number  | huidige slaapkamerramen - zie [maatregelen](/verduurzamen/verduurzaming-api/measures)                                     |
| shower                                          | Boolean | huidige douche WTW - zie [maatregelen](/verduurzamen/verduurzaming-api/measures)                                          |
| ventilation                                     | Number  | huidige ventilatie - zie [maatregelen](/verduurzamen/verduurzaming-api/measures)                                          |
| solar\_panels                                   | Number  | huidige zonnepanelen in m2 of totaal watt-piekvermogen in W - zie [maatregelen](/verduurzamen/verduurzaming-api/measures) |
| solarpanel\_watt\_peak                          | Number  | huidige zonnepanelen watt piekvermogen per m2                                                                             |
| watt\_panels                                    | Boolean | neem aan dat de invoer van zonnepanelen in W (0) of m2 (1) is. Standaard = 1                                              |
| inhabitants                                     | Integer | aantal mensen dat in het huis woont                                                                                       |

{% tabs %}
{% tab title="200: OK Succesvolle reactie" %}

```
{
	"Output": {
		"post_code": "2771DS",
		"house_number": 87,
		"house_addition": null,
		"build_year": 1961,
		"inner_surface_area": 151,
		"house_type": "vrijstaand",
		"installation": 4,
		"wall_insulation": 2,
		"roof_insulation": 2,
		"floor_insulation": 2,
		"living_room_windows": 2,
		"ventilation": 1,
		"bedroom_windows": 2,
		"shower": 0,
		"solar_panels": 15,
		"solarpanel_watt_peak": 300,
		"CO2": 3084,
		"definitive_energy_label": "C",
		"definitive_energy_label_type": "NEN7120",
		"definitive_energy_label_validity_date": "2030-12",
		"current_estimated_energy_label": "B",
		"current_estimated_BENG2_score" : 146,
		"current_estimated_BENG2_score": 167,
		"estimated_gas_usage": 3108,
		"estimated_energy_usage": 760
	}
}
```

{% endtab %}

{% tab title="422: Unprocessable Entity Verkeerd invoerformaat" %}

```
{
  "detail": [
    {
      "loc": [
        "body",
        "postcode"
      ],
      "msg": "string does not match regex \"^(?!1000|1001|1002|1003|1004|1005|1006|1007|1008|1009|1010)[1-9][0-9]{3}[A-Z]{2}$\"",
      "type": "value_error.str.regex",
      "ctx": {
        "pattern": "^(?!1000|1001|1002|1003|1004|1005|1006|1007|1008|1009|1010)[1-9][0-9]{3}[A-Z]{2}$"
      }
    }
  ]
}
```

{% endtab %}

{% tab title="400: Bad Request Mislukte reactie" %}

```
{ 
    "detail": "Address not found in database, combination of zip code   and house number." 
}
```

```
{
     "detail": "No measures suggested for this combination of input."
}
```

```
{
     "detail": "Code used in exclude_measure parameter is invalid"
}
```

```
{
     "detail": "No housing variant with the selected installation options found with which the goal can be reached within the investment limit. Try again with different inputs and/or different search criteria."
}
```

```
{
     "detail": "Gevelisolatie code ongeldig"
}
```

{% endtab %}

{% tab title="301: Moved Permanently Appartementfout" %}

```
{ 
    "detail": "Unable to check apartment."
}
```

{% endtab %}

{% tab title="303: See Other Huistypefout" %}

```
{ 
    "detail": "The house type of the given house was not found in database. Use house_type parameter instead."
}
```

{% endtab %}

{% tab title="500: Internal Server Error Service is niet beschikbaar en/of niet beschikbaar" %}

```
{
	"message": "Internal server error"
}
```

{% endtab %}

{% tab title="404: Not Found Als BagId wordt gebruikt in plaats van Adres" %}

<pre><code><strong>{
</strong>     "detail": "Could not find any object with your BAG ID." 
}
</code></pre>

{% endtab %}

{% tab title="401: Unauthorized Geen toegang" %}

```
{
    'Output': 'Please use https://api.altum.ai or visit https://mopsus.altum.ai to make your request.'
}
```

{% endtab %}

{% tab title="403: Forbidden Verboden" %}

```
{
	"message": "Missing Authentication Token"
}
```

{% endtab %}
{% endtabs %}

## Bepaal het geschatte huidige of potentiële NTA 8800 energielabel&#x20;

<mark style="color:green;">`POST`</mark> `https://api.altum.ai/energylabel/bag`

Gebruik **BAG\_id** als alternatief voor **post\_code, house\_number** en **house\_addition**. Alle andere invoer en uitvoer is gelijk.

#### Headers

| Name                                        | Type   | Description                                                              |
| ------------------------------------------- | ------ | ------------------------------------------------------------------------ |
| x-api-key<mark style="color:red;">\*</mark> | string | API-sleutel van Altum. Maak er een via Mopsus(<https://mopsus.altum.ai>) |
| Content-Type                                | string | application/json                                                         |

#### Request Body

| Name                                      | Type    | Description                                                                                                               |
| ----------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------- |
| bag\_id<mark style="color:red;">\*</mark> | string  | 16 cijfers BAG\_ID                                                                                                        |
| inner\_surface\_area                      | Number  | 100                                                                                                                       |
| build\_year                               | Number  | 2001                                                                                                                      |
| house\_type                               | Number  | huidige woningtype: '2 onder 1 kap' = 1, 'hoekwoning' = 2, 'tussenwoning' = 3, 'vrijstaand' = 4 of 'appartement' = 5      |
| installation                              | Number  | huidig installatietype - zie [maatregelen](/verduurzamen/verduurzaming-api/measures)                                      |
| wall\_insulation                          | Number  | huidige muurisolatie - zie [maatregelen](/verduurzamen/verduurzaming-api/measures)                                        |
| roof\_insulation                          | Number  | huidige dakisolatie - zie [maatregelen](/verduurzamen/verduurzaming-api/measures)                                         |
| floor\_insulation                         | Number  | huidige vloerisolatie - zie [maatregelen](/verduurzamen/verduurzaming-api/measures)                                       |
| living\_room\_windows                     | Number  | huidige woonkamerramen - zie [maatregelen](/verduurzamen/verduurzaming-api/measures)                                      |
| bedroom\_windows                          | Number  | huidige slaapkamerramen - zie [maatregelen](/verduurzamen/verduurzaming-api/measures)                                     |
| shower                                    | Boolean | huidige douche WTW - zie [maatregelen](/verduurzamen/verduurzaming-api/measures)                                          |
| ventilation                               | Number  | huidige ventilatie - zie [maatregelen](/verduurzamen/verduurzaming-api/measures)                                          |
| solar\_panels                             | Number  | huidige zonnepanelen in m2 of totaal watt-piekvermogen in W - zie [maatregelen](/verduurzamen/verduurzaming-api/measures) |
| solarpanel\_watt\_peak                    | Number  | huidige zonnepanelen watt piekvermogen per m2                                                                             |
| watt\_panels                              | Boolean | neem aan dat de invoer van zonnepanelen in W (0) of m2 (1) is. Standaard = 1                                              |
| inhabitants                               | Integer | aantal mensen dat in het huis woont                                                                                       |

{% tabs %}
{% tab title="200: OK Succesvolle reactie" %}

```
{
	"Output": {
		"post_code": "2771DS",
		"house_number": 87,
		"house_addition": null,
		"build_year": 1961,
		"inner_surface_area": 151,
		"house_type": "vrijstaand",
		"installation": 4,
		"wall_insulation": 2,
		"roof_insulation": 2,
		"floor_insulation": 2,
		"living_room_windows": 2,
		"ventilation": 1,
		"bedroom_windows": 2,
		"shower": 0,
		"solar_panels": 15,
		"solarpanel_watt_peak": 300,
		"CO2": 3084,
		"definitive_energy_label": "C",
		"definitive_energy_label_type": "NEN7120",
		"definitive_energy_label_validity_date": "2030-12",
		"current_estimated_energy_label": "B",
		"current_estimated_BENG2_score": 167,
		"estimated_gas_usage": 3108,
		"estimated_energy_usage": 760
	}
}
```

{% endtab %}

{% tab title="422: Unprocessable Entity Verkeerd invoerformaat" %}

```
{
  "detail": [
    {
      "loc": [
        "body",
        "postcode"
      ],
      "msg": "string does not match regex \"^(?!1000|1001|1002|1003|1004|1005|1006|1007|1008|1009|1010)[1-9][0-9]{3}[A-Z]{2}$\"",
      "type": "value_error.str.regex",
      "ctx": {
        "pattern": "^(?!1000|1001|1002|1003|1004|1005|1006|1007|1008|1009|1010)[1-9][0-9]{3}[A-Z]{2}$"
      }
    }
  ]
}
```

{% endtab %}

{% tab title="400: Bad Request Mislukte reactie" %}

```
{ 
    "detail": "Address not found in database, combination of zip code   and house number." 
}
```

```
{
     "detail": "No measures suggested for this combination of input."
}
```

```
{
     "detail": "Code used in exclude_measure parameter is invalid"
}
```

```
{
     "detail": "No housing variant with the selected installation options found with which the goal can be reached within the investment limit. Try again with different inputs and/or different search criteria."
}
```

```
{
     "detail": "Gevelisolatie code ongeldig"
}
```

{% endtab %}

{% tab title="301: Moved Permanently Appartementfout" %}

```
{ 
    "detail": "Unable to check apartment."
}
```

{% endtab %}

{% tab title="303: See Other Huistypefout" %}

```
{ 
    "detail": "The house type of the given house was not found in database. Use house_type parameter instead."
}
```

{% endtab %}

{% tab title="500: Internal Server Error Service is niet beschikbaar en/of niet beschikbaar" %}

```
{
	"message": "Internal server error"
}
```

{% endtab %}

{% tab title="404: Not Found Als BagId wordt gebruikt in plaats van Adres" %}

<pre><code><strong>{
</strong>     "detail": "Could not find any object with your BAG ID." 
}
</code></pre>

{% endtab %}

{% tab title="401: Unauthorized Geen toegang" %}

```
{
    'Output': 'Please use https://api.altum.ai or visit https://mopsus.altum.ai to make your request.'
}
```

{% endtab %}

{% tab title="403: Forbidden Verboden" %}

```
{
	"message": "Missing Authentication Token"
}
```

{% endtab %}
{% endtabs %}

## Request body

#### Voorbeeld verzoeken

<pre><code><strong>{
</strong>  "post_code": "4709BM",
  "house_number": 1,
  "house_addition": "A",
  "installation": 1,
  "wall_insulation": 3,
  "roof_insulation": 2,
  "floor_insulation": 2,
  "living_room_windows": 3
}
</code></pre>

<pre><code><strong>{
</strong>  "bag_id": "0637010000264937",
  "installation": 1,
  "wall_insulation": 3,
  "roof_insulation": 2,
  "floor_insulation": 2,
  "living_room_windows": 3
}
</code></pre>


# API-sleutel Informatie

Begrijpen en Verkrijgen van jouw API-sleutel

Een API-sleutel is een unieke identificatiecode die je veilige toegang biedt tot de API's van Altum AI. Het is verplicht om deze sleutel in de `x-api-key` header van alle API-verzoeken op te nemen om een juiste authenticatie te garanderen.

**Hoe verkrijg je jouw API-sleutel?**\
Je kunt je API-sleutel op twee manieren verkrijgen:

1. **Via het Platform:** Genereer jouw API-sleutel direct op het Altum AI-platform.
2. **Door een Abonnement:** Een API-sleutel wordt verstrekt wanneer je je abonneert op het Startup- of Unlimited-plan.

**Waar gebruik je jouw API-sleutel?**\
Voeg de API-sleutel toe aan de `x-api-key` header van elk API-verzoek. Zonder een geldige sleutel wordt je verzoek niet geauthenticeerd.

**Voorbeeld Header:**

```plaintext
x-api-key: JOUW_UNIEKE_API_SLEUTEL
```

**Beveiligingsnotitie**\
Houd jouw API-sleutel vertrouwelijk om ongeautoriseerde toegang tot je account te voorkomen.


# Resultaat interpretatie

Een uitleg en interpretatie van elke functie die wordt uitgevoerd in het API-antwoord.

| Feature                                   | Voorbeeld  | Uitleg                                                                                                                                                                                    |
| ----------------------------------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| post\_code                                | 1234AB     | Postcode                                                                                                                                                                                  |
| house\_number                             | 1          | Huisnummer                                                                                                                                                                                |
| house\_addition                           | A          | Huisnummer toevoeging                                                                                                                                                                     |
| build\_year                               | 2001       | Bouwjaar                                                                                                                                                                                  |
| inner\_surface\_area                      | 151        | Woonoppervlak                                                                                                                                                                             |
| house\_type                               | vrijstaand | Woningtype: '2 onder 1 kap' 'hoekwoning', 'tussenwoning', 'vrijstaand' or 'appartement'                                                                                                   |
| installation                              | 4          | zie [Maatregelen](/verduurzamen/verduurzaming-api/measures)                                                                                                                               |
| wall\_insulation                          | 2          | zie [Maatregelen](/verduurzamen/verduurzaming-api/measures)                                                                                                                               |
| roof\_insulation                          | 2          | zie [Maatregelen](/verduurzamen/verduurzaming-api/measures)                                                                                                                               |
| floor\_insulation                         | 2          | zie [Maatregelen](/verduurzamen/verduurzaming-api/measures)                                                                                                                               |
| living\_room\_windows                     | 2          | zie [Maatregelen](/verduurzamen/verduurzaming-api/measures)                                                                                                                               |
| bedroom\_windows                          | 1          | zie [Maatregelen](/verduurzamen/verduurzaming-api/measures)                                                                                                                               |
| shower                                    | 0          | zie [Maatregelen](/verduurzamen/verduurzaming-api/measures)                                                                                                                               |
| ventilation                               | 1          | zie [Maatregelen](/verduurzamen/verduurzaming-api/measures)                                                                                                                               |
| solar\_panels                             | 4          | zie [Maatregelen](/verduurzamen/verduurzaming-api/measures)                                                                                                                               |
| solarpanel\_watt\_peak                    | 212        | Wattpiekvermogen van zonnepanelen per m2                                                                                                                                                  |
| CO2                                       | 3084       | De totale CO2 emissie (zie [CO2](/verduurzamen/verduurzaming-api/co2))                                                                                                                    |
| definitive\_energy\_label                 | A          | Definitief energielabel uit EP-online van RVO                                                                                                                                             |
| definitive\_energy\_label\_type           | NEN7120    | Norm waarop het definitieve energielabel is gebaseerd                                                                                                                                     |
| definitive\_energy\_label\_validity\_date | 2030-12    | Geldigheid einddatum van het gegeven definitieve energielabel                                                                                                                             |
| definitive\_BENG2\_score                  | 125        | Definitief BENG2 score uit EP-online van RVO                                                                                                                                              |
| current\_estimated\_energy\_label         | A          | Huidige geschatte NTA 8800 energielabel met betrekking tot de input op basis van woningtype, bouwjaar, binnenoppervlakte en geschatte of gegeven maatregelen                              |
| current\_stimated\_BENG1\_score           | 118        | Huidige geschatte numerieke BENG1 score                                                                                                                                                   |
| current\_estimated\_BENG2\_score          | 128        | BENG2 numerieke score van de huidige geschatte NTA 8800-score                                                                                                                             |
| estimated\_gas\_usage                     | 2172       | Geschat gasverbruik (m3) per jaar                                                                                                                                                         |
| estimated\_energy\_usage                  | 2800       | Geschat elektriciteitsverbruik (kWh) per jaar                                                                                                                                             |
| estimated\_city\_heating\_usage           | 1300       | Geschat warmteverbruik (GJ) per jaar                                                                                                                                                      |
| measures\_method                          | 1          | <p>statistisch gebaseerd op def. BENG2 or def. energy label = 1,</p><p>aangevuld/bepaald met externe bronnen = 2, op basis van bouwregelgeving = 3, op basis van gebruikersinvoer = 4</p> |

#### Voorbeeld resultaat

```
{
	"Output": {
		"post_code": "2771DS",
		"house_number": 87,
		"house_addition": null,
		"build_year": 1961,
		"inner_surface_area": 131,
		"house_type": "vrijstaand",
		"installation": 4,
		"wall_insulation": 0,
		"roof_insulation": 2,
		"floor_insulation": 2,
		"living_room_windows": 1,
		"bedroom_windows": 1,
		"shower": 0,
		"ventilation": 0,
		"solar_panels": 0,
		"solarpanel_watt_peak": 212,
		"CO2": 5292,
		"definitive_energy_label": "C",
		"definitive_energy_label_type": "NEN7120",
		"definitive_energy_label_validity_date": "2030-12",
		"definitive_BENG2_score": null,
		"current_estimated_energy_label": "C",
		"current_estimated_BENG1_score": 146,
		"current_estimated_BENG2_score": 211,
		"estimated_gas_usage": 3147,
		"estimated_energy_usage": 3686,
		"estimated_city_heating_usage": 0,
		"measures_method": 1
	}
}
```


# NTA 8800 Energielabel v2 API

Welkom bij de documentatie van de NTA 8800 Energielabel v2 API. Deze API combineert verschillende bronnen en methoden voor nauwkeurige energielabelschattingen.

## Introductie

De NTA 8800 Energielabel API v2 schat de huidige energieprestatie van Nederlandse woningen op basis van de NTA 8800-methodiek: de officiële Nederlandse standaard voor het berekenen van energielabels.

Met de API kun je het huidige energielabel van een woning schatten en de aanwezige verduurzamingsmaatregelen ophalen. De API werkt met minimale adresinvoer, maar ondersteunt ook gedetailleerde woningkenmerken. Zo kun je per toepassing kiezen tussen snelheid en nauwkeurigheid.

Typische toepassingen zijn verduurzamingsplatformen, vastgoedtools, woningwaarderingsmodellen en financiële applicaties die schaalbaar inzicht nodig hebben in de energieprestatie van woningen.

### Kernmogelijkheden

#### Geschat energielabel berekenen

De API schat het huidige energielabel van een woning op basis van beschikbare gebouwdata en voorspellende modellen die aansluiten op de NTA 8800-methodiek.

Het resultaat bevat onder andere:

* Geschat energielabel: A++++ t/m G
* Geschatte BENG2-score: primair fossiel energiegebruik
* Geschatte energieverbruikswaarden
* Geschat verbruik voor gas, elektriciteit en stadsverwarming, inclusief CO₂-uitstoot
* Relevante duurzaamheidsindicatoren

Deze resultaten geven snel inzicht in het huidige energieprestatieniveau van een woning.

<figure><img src="/files/hONK8JUTU6Ebn4cVlce4" alt=""><figcaption><p>Range of Energy labels</p></figcaption></figure>

#### Herkenning van aanwezige energiemaatregelen

De API schat ook welke energiebesparende maatregelen op dit moment in de woning aanwezig zijn.

Voorbeelden hiervan zijn:

* Gevelisolatie
* Dakisolatie
* Vloerisolatie
* Type beglazing
* Type verwarmingsinstallatie
* Ventilatiesystemen
* Zonnepanelen

Deze maatregelen vormen de basis voor de berekening van de geschatte energieprestatie.

### Flexibel invoermodel

De API is ontworpen om te werken met verschillende niveaus van invoerdetail.

#### Minimale invoer

Gebruikers kunnen een schatting van de energieprestatie ophalen met alleen:

* Postcode
* Huisnummer
* Huisnummertoevoeging

Op basis van deze gegevens schat de API de gebouwkenmerken met behulp van eigen datasets en statistische modellen.

#### Gedetailleerde woninginvoer

Voor een hogere nauwkeurigheid kunnen gebruikers aanvullende informatie meegeven, zoals:

* Woningtype
* Bouwjaar
* Gebruiksoppervlakte
* Isolatieniveaus
* Verwarmingsinstallatie
* Zonnepanelen
* Ventilatiesystemen

Door meer gedetailleerde woningkenmerken mee te geven, zijn er minder modelaannames nodig en verbetert de nauwkeurigheid van het geschatte energielabel.

### Nauwkeurigheid en methodiek

De API schat het huidige energielabel met een combinatie van statistische modellen, machine learning en berekeningen op basis van de NTA 8800-methodiek.

Omdat volledige gebouwdata vaak niet beschikbaar is, richt het model zich op de gebouwkenmerken met de meeste invloed. Hiervoor gebruiken we voorspellende modellen die zijn getraind op grote datasets met Nederlandse woningen.

### Voorspelling met machine learning

Als directe data over een woning niet beschikbaar is, gebruikt de API machinelearningmodellen om gebouwkenmerken en energieprestatie-indicatoren te schatten.

{% hint style="info" %}
Migreer je vanaf v1? Begin dan met de [**Migratiehandleiding voor woningen** ](/verduurzamen/nta-8800-energielabel-v2-api/woningen/migratiehandleiding-v1-v2)of [**Migratiehandleiding voor appartementen.**](/verduurzamen/nta-8800-energielabel-v2-api/appartementen/migratiehandleiding-v1-v2)
{% endhint %}


# Woningen

De endpoint die in deze sectie wordt beschreven, is van toepassing op grondgebonden woningen. Hieronder vallen:

* Vrijstaande woningen
* Twee-onder-een-kapwoningen
* Hoekwoningen
* Tussenwoningen

Het model gaat uit van één zelfstandige woning met een eigen dak, eigen gevels en eigen installaties. Hierdoor kan de API isolatieniveaus, verwarmingssystemen en andere maatregelen schatten op basis van gebouwkenmerken en voorspellingen met machine learning.


# Migratiehandleiding: v1 → v2

Deze pagina geeft een overzicht van de wijzigingen die nodig zijn bij de migratie van v1 naar v2 van de API.

## 1. Wijzigingen in de request body

#### v1

```json
{
    "post_code": "2771DS",
    "house_number": "87",
    "house_addition": ""
}
```

#### v2

```json
{
    "postcode": "2771DS",
    "housenumber": "87",
    "houseaddition": ""
}
```

## 2. Wijzigingen in de invoer

#### a. Basiskenmerken

**Nieuwe invoervelden**

* `roof_type`
* `electric_cooking`
* `cooling`

**Hernoemde invoervelden**

* `roof_insulation` → `sloped_roof_insulation`
* `roof_insulation` → `flat_roof_insulation`

#### Wijzigingen in de invoer voor zonnepanelen

De structuur van `solar_panels` is gewijzigd van één integerwaarde naar een lijst waarin afzonderlijke zonnepaneelinstallaties worden beschreven.

Nieuwe velden voor zonnepanelen zijn onder andere:

* `solar_panels` (per zonnepaneel)
* `pv_total_watt_peak`
* `pv_area`
* `specific_watt_peak`
* `angle`
* `orientation`
* `roof_type`

## 3. Wijzigingen in de output

De responsstructuur bevat nu extra velden en aangepaste naamgeving.

#### Hernoemde outputvelden

* `roof_insulation` → `sloped_roof_insulation`
* `roof_insulation` → `flat_roof_insulation`

#### Nieuwe outputvelden

* `cooling`
* `electric_cooking`
* `solar_panels` (per zonnepaneel)
* `roof_surface`
* `roof_type`
* `original_watt_peak_capacity`
* `total_watt_peak_capacity`
* `inclination_angle`
* `orientation`

## 4. Wijzigingen in waarden van kenmerken

Het waardebereik voor verschillende kenmerken is gewijzigd.

Voorheen liepen deze waarden van `0–3`, maar nu lopen ze van `1–4`.

Dit geldt voor onder andere:

* `wall_insulation`
* `floor_insulation`
* `flat_roof_insulation`
* `sloped_roof_insulation`
* `living_room_windows`
* `bedroom_windows`

#### Voorbeeld

**v1**

```
1 = matige gevelisolatie
```

**v2**

```
2 = matige gevelisolatie
```


# Changelog

Changelog van de deploy van de Energielabel v2 API in het formaat iteratie (\`1.01\`) en verwachte releasedatum: jaar, maand en dag.

## 1.03 - 2026-05-20

Nieuwe invoervelden: `battery_type`, `battery_system`, `ev_charger`, `electricity_connection_type` en `netting_enabled`.

Nieuwe outputvelden: `grid_import`, `grid_feed`, `electricity_need` en `battery`.

## 1.02 - 2026-05-07

Nieuw outputveld: `accuracy_indicator`.

De `accuracy_indicator` meet de betrouwbaarheid van het geschatte huidige energielabel binnen een afwijking van ±1 label. Voor eenvoud wordt dit omgerekend naar een score van 1 tot 7. Meer informatie vind je bij [**Nauwkeurigheidsindicator**](https://docs.altum.ai/verduurzamen/nta-8800-energielabel-v2-api/woningen/nauwkeurigheidsindicator).

Het nieuwe ML-model is bijgewerkt voor situaties waarin het definitieve energielabel niet bekend is.

## 1.01 - 2026-04-14

Nieuw invoerveld: `number_of_solar_panels`, dat wordt vertaald naar standaardwaarden zoals uitgelegd bij[ **Maatregelen**](https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen).


# Authenticatie, invoer en resultaat

## Bepaal het geschatte huidige of potentiële NTA 8800-energielabel.

<mark style="color:green;">`POST`</mark> `https://api.altum.ai/v2/energylabel/houses`

#### Headers

| Naam                                        | Type   | Omschrijving                                                                                             |
| ------------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------- |
| x-api-key<mark style="color:red;">\*</mark> | string | Unieke API-sleutel van Altum. Maak er een op [https://platform.altum.ai](https://platform.altum.ai/auth) |
| Content-Type                                | string | application/json                                                                                         |

#### Request Body

<table><thead><tr><th>Veld</th><th>Type</th><th width="187">Omschrijving</th><th>Voorbeeld/Standaard</th></tr></thead><tbody><tr><td>postcode<mark style="color:red;">*</mark></td><td>string</td><td>Zes-cijferige postcode</td><td>1234AB</td></tr><tr><td>housenumber<mark style="color:red;">*</mark></td><td>integer</td><td>Huisnummer</td><td>1</td></tr><tr><td>houseaddition</td><td>string</td><td>Huisnummertoevoeging</td><td>A</td></tr><tr><td>build_year</td><td>integer</td><td>Bouwjaar</td><td>1960</td></tr><tr><td>roof_type</td><td>integer</td><td><p><code>1</code> = (voornamelijk) schuin dak</p><p><code>2</code> = (voornamelijk) plat dak</p><p><code>3</code> = deels schuin, deels plat dak<br></p><p>Als het platte of hellende deel meer dan 25% van het dakoppervlak beslaat, wordt type <code>3</code> gebruikt.</p></td><td>Standaard: 1</td></tr><tr><td>house_type</td><td>integer</td><td><p><code>1</code> = Vrijstaand</p><p><code>2</code> = 2 onder 1 kap</p><p><code>3</code> = Hoekwoning</p><p><code>4</code> = Tussenwoning</p></td><td>2</td></tr><tr><td>inner_surface_area</td><td>float</td><td>Woonoppervlakte (m²)</td><td>70</td></tr><tr><td>wall_insulation</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>2</td></tr><tr><td>floor_insulation</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>2</td></tr><tr><td>sloped_roof_insulation</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>2</td></tr><tr><td>flat_roof_insulation</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>2</td></tr><tr><td>living_room_windows</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>2</td></tr><tr><td>bedroom_windows</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>2</td></tr><tr><td>installation</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>Standaard: 4</td></tr><tr><td>shower</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>Standaard: 1</td></tr><tr><td>cooling</td><td>integer</td><td><p>Is er een koelsysteem aanwezig?</p><p><code>1</code> = geen koeling</p><p><code>2</code> = airco-unit, directe luchtkoeling</p></td><td>Standaard: 1</td></tr><tr><td>ventilation</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>1</td></tr><tr><td>electric_cooking</td><td>integer</td><td><p>Waar wordt mee gekookt?</p><p><code>1</code> = gasfornuis<br><code>2</code> = elektrisch fornuis</p></td><td>Standaard: 2 als <code>installation</code> gelijk is aan <code>6</code> of <code>7</code>, anders <code>1</code>.</td></tr><tr><td>inhabitants</td><td>integer</td><td>Aantal bewoners van de woning</td><td>Standaard: 3</td></tr><tr><td>ev_charger</td><td>integer</td><td><p>Heeft het gebouw een laadpaal voor elektrische voertuigen?</p><p><code>0</code> = geen laadpaal</p><p><code>1</code> = laadpaal aanwezig</p></td><td>Standaard: 0</td></tr><tr><td>electricity_connection_type</td><td>integer</td><td><p>Het aansluitingstype van het gebouw</p><p><code>1</code> = 1-fase<br><code>2</code> = 3-fase</p></td><td>Standaard: 1</td></tr><tr><td>electricity_contract_type</td><td>integer</td><td><p>Type elektriciteitscontract</p><p><code>1</code> = vast contract </p><p><code>2</code> = dynamisch contract</p></td><td>Standaard: 1</td></tr><tr><td>dynamic_price_reference_year</td><td>integer</td><td><p>Het jaar vanaf wanneer dynamische prijzen worden gebruikt:</p><p><code>2023</code>, <code>2024</code>, <code>2025</code></p></td><td>Standaard: 2025</td></tr><tr><td>netting_enabled</td><td>integer</td><td><p>Of de salderingsregeling wordt toegepast.</p><p><code>0</code> = geen saldering </p><p><code>1</code> = saldering toegepast</p></td><td>Standaard: 1</td></tr><tr><td>solar_panels</td><td>list</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td></td></tr><tr><td>number_of_solar_panels</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td></td></tr><tr><td>battery_type</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td></td></tr><tr><td>battery_system</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td></td></tr></tbody></table>

## Request body

```
{
  "postcode": "2771DS",
  "housenumber": 87,
  "houseaddition": ""
}
```

## Response Status Codes

{% tabs %}
{% tab title="200: OK Successful response" %}

```
{
  "Output": {
    "warnings": [],
    "postcode": "2771DS",
    "housenumber": 87,
    "houseaddition": null,
    "build_year": 1961,
    "inner_surface_area": 131,
    "house_type": "Vrijstaand",
    "installation": 6,
    "wall_insulation": 3,
    "sloped_roof_insulation": 1,
    "flat_roof_insulation": 1,
    "floor_insulation": 3,
    "living_room_windows": 2,
    "bedroom_windows": 2,
    "shower": 1,
    "ventilation": 4,
    "cooling": 1,
    "electric_cooking": 2,
    "solar_panels": {
      "pv_generation": 0,
      "curtailed_pv": 0,
      "self_consumed_pv": 0,
      "self_consumed_ratio": 0,
      "netting_enabled": 1
    },
    "battery": null,
    "CO2": 2299,
    "grid_import": 10436,
    "grid_feed": 0,
    "electricity_need": 10436,
    "definitive_energy_label": "A+++",
    "definitive_energy_label_type": "NTA 8800:2024 (basisopname woningbouw)",
    "definitive_energy_label_validity_date": "2036-1",
    "definitive_BENG2_score": 49,
    "current_estimated_energy_label": "A++",
    "current_estimated_BENG2_score": 75,
    "estimated_gas_usage": 0,
    "estimated_energy_usage": 10438,
    "estimated_city_heating_usage": 0,
    "measures_method": 1,
    "accuracy_indicator": 6,
    "response_meta": null
  }
}
```

{% endtab %}
{% endtabs %}


# API-sleutel informatie

Begrijpen en verkrijgen van jouw API-sleutel

Een API-sleutel is een unieke code waarmee je veilig toegang krijgt tot de API’s van Altum AI. Deze sleutel is verplicht in de `x-api-key` header voor alle API-aanvragen, zodat de aanvraag correct kan worden geverifieerd.

### **Hoe verkrijg je jouw API-sleutel?**

Je kunt je API-key op twee manieren verkrijgen:

* **Via het platform:** genereer je API-sleutel direct op het Altum AI-platform.
* **Via een abonnement:** je ontvangt een API-sleutel wanneer je je abonneert op het Startup-plan of Unlimited-plan.

### Waar gebruik je je API-sleutel?

Voeg de API-sleutel toe aan de `x-api-key` header van elke API-aanvraag. Zonder geldige sleutel wordt je aanvraag niet geverifieerd.

#### Voorbeeldheader

```
x-api-key: YOUR_UNIQUE_API_KEY
```

### Veiligheid

Houd je API-sleutel vertrouwelijk om ongeautoriseerde toegang tot je account te voorkomen.


# Voorbeeld API calls

Een verzameling van voorbeelden van API calls.

### Minimale invoer

```html
{
    "postcode": "2771DS",
    "housenumber": 87,
    "houseaddition": ""
}
```

### Gebouwparameters toevoegen

<pre><code><strong>{
</strong>    "postcode": "2771DS",
    "housenumber": 87,
    "houseaddition": "",
    "build_year" : 1961,
    "house_type": 1,
    "roof_type": 1,
    "inner_surface_area": 131
}
</code></pre>

### Huidige maatregelen toevoegen

```
{
    "postcode": "2771DS",
    "housenumber": 87,
    "houseaddition": "",
    "wall_insulation": 1,
    "floor_insulation": 1,
    "sloped_roof_insulation": 1,
    "flat_roof_insulation": 1,
    "living_room_windows": 1,
    "bedroom_windows": 1,
    "shower": 1,
    "cooling": 1,
    "electric_cooking": 1,
    "ventilation": 1,
    "installation": 4,
    "inhabitants" : 3
}
```

### Zonnepanelen toevoegen

<pre><code><strong>{
</strong>    "postcode": "2771DS",
    "housenumber": 87,
    "houseaddition": "",
    "solar_panels": [{"pv_total_watt_peak":2000,
                      "angle":45,
                      "orientation":180,
                      "roof_type": 1},
                     {"pv_area": 20,     
                      "specific_watt_peak": 150,
                      "angle":45,
                      "orientation":180,
                      "roof_type": 1}]        
}
</code></pre>

of

<pre><code><strong>{
</strong>    "postcode": "2771DS",
    "housenumber": 87,
    "houseaddition": "",
    "number_of_solar_panels": 10     
}
</code></pre>

### Batterijen toevoegen

```
{
   "postcode": "2771DS",
   "housenumber": 87,
   "houseaddition": "",
   "battery_type":3,
   "battery_system": {"capacity": 12, "power":6}
}
```


# Resultaat interpretatie

Een uitleg en interpretatie van elk kenmerk dat in de API-response wordt teruggegeven.

<table><thead><tr><th width="249">Veld</th><th>Type</th><th>Beschrijving</th><th>Voorbeeld</th></tr></thead><tbody><tr><td>warnings</td><td>list</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/waarschuwingen">Waarschuwingen</a></td><td></td></tr><tr><td>postcode</td><td>string</td><td>postcode</td><td>1234AB</td></tr><tr><td>housenumber</td><td>integer</td><td>Huisnummer</td><td>1</td></tr><tr><td>houseaddition</td><td>string</td><td>Huisnummer toevoeging</td><td>A</td></tr><tr><td>build_year</td><td>integer</td><td>Bouwjaar</td><td>1961</td></tr><tr><td>inner_surface_area</td><td>integer</td><td>Woonoppervlakte (m²)</td><td>70</td></tr><tr><td>house_type</td><td>string</td><td>Woningtype</td><td>Vrijstaand</td></tr><tr><td>installation</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>4</td></tr><tr><td>wall_insulation</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>2</td></tr><tr><td>sloped_roof_insulation</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>2</td></tr><tr><td>flat_roof_insulation</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>2</td></tr><tr><td>floor_insulation</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>2</td></tr><tr><td>living_room_windows</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>2</td></tr><tr><td>bedroom_windows</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>1</td></tr><tr><td>shower</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>1</td></tr><tr><td>ventilation</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>1</td></tr><tr><td>cooling</td><td>integer</td><td><p><code>1</code> = geen koeling</p><p><code>2</code> = airco-unit, directe luchtkoeling</p></td><td>1</td></tr><tr><td>electric_cooking</td><td>integer</td><td><p><code>1</code> = Gasfornuis</p><p><code>2</code> = elektrisch fornuis</p></td><td>1</td></tr><tr><td>solar_panels</td><td>dict</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td></td></tr><tr><td>CO2</td><td>integer</td><td>De totale CO₂-uitstoot, bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/co-uitstoot">CO₂-uitstoot</a>.</td><td>3084</td></tr><tr><td>grid_import</td><td>integer</td><td>Jaarlijkse elektriciteit uit het elektriciteitsnet in kWh.</td><td>2058</td></tr><tr><td>grid_feed</td><td>integer</td><td>Jaarlijkse elektriciteit die aan het elektriciteitsnet wordt teruggeleverd, in kWh.</td><td>2808</td></tr><tr><td>electricity_need</td><td>integer</td><td>Jaarlijkse elektriciteitsvraag in kWh.</td><td>1405</td></tr><tr><td>definitive_energy_label</td><td>string</td><td>Definitief energielabel uit RVO’s EP-online.</td><td>A</td></tr><tr><td>definitive_energy_label_type</td><td>string</td><td>Norm waarop het definitieve energielabel is gebaseerd.</td><td>NEN7120</td></tr><tr><td>definitive_energy_label_validity_date</td><td>string</td><td>Einddatum van de geldigheid van het opgegeven definitieve energielabel.</td><td>2030-12</td></tr><tr><td>definitive_BENG2_score</td><td>integer</td><td>Definitieve BENG2-score van het energielabel uit RVO’s EP-online.</td><td>125</td></tr><tr><td>current_estimated_energy_label</td><td>string</td><td>Geschat huidig NTA 8800-energielabel op basis van gebouwkenmerken en maatregelen. Voor <code>measures_method</code> 2 en 3 wordt dit voorspeld met machine learning.</td><td>A</td></tr><tr><td>current_estimated_BENG2_score</td><td>integer</td><td>Numerieke BENG2-score van het geschatte huidige NTA 8800-energielabel.</td><td>128</td></tr><tr><td>estimated_gas_usage</td><td>integer</td><td>Geschat gasverbruik per jaar in m³.</td><td>2172</td></tr><tr><td>estimated_energy_usage</td><td>integer</td><td>Geschat elektriciteitsverbruik per jaar in kWh.</td><td>2800</td></tr><tr><td>estimated_city_heating_usage</td><td>integer</td><td>Geschat warmteverbruik per jaar in GJ.</td><td>1300</td></tr><tr><td>measures_method</td><td>integer</td><td><p><code>1</code> = statistisch </p><p><code>2</code> = externe bronnen</p><p><code>3</code> = gebouwkenmerken</p><p><code>4</code> = gebruikersinvoer</p></td><td>1</td></tr><tr><td>accuracy_indicator</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/nta-8800-energielabel-v2-api/woningen/nauwkeurigheidsindicator">Nauwkeurigheidsindicator</a></td><td>5</td></tr></tbody></table>

### Hoe het geschatte huidige energielabel wordt berekend (`measures_method`)

De response bevat `measures_method`. Dit veld legt uit hoe de maatregelen en het geschatte energielabel zijn afgeleid.

`1` = **Statistisch**\
Gebruikt het NTA 8800-model en, indien beschikbaar, het definitieve energielabel.

`2` = **Externe bronnen**\
Gebruikt voorspellingen met machine learning op basis van externe databronnen om de schatting van het NTA 8800-model te ondersteunen wanneer er geen definitief energielabel beschikbaar is.

`3` = **Gebouwkenmerken**\
Gebruikt voorspellingen met machine learning op basis van gebouwkenmerken om de schatting van het NTA 8800-model te ondersteunen wanneer er geen definitief energielabel en geen externe bronnen beschikbaar zijn.

`4` = **Gebruikersinvoer**\
De schatting wordt gebaseerd op de maatregelen die in de request zijn meegegeven en op de gebouwkenmerken die worden gebruikt om het NTA 8800-model te ondersteunen. Deze methode wordt gebruikt wanneer de gebruiker minimaal één maatregel meegeeft.

De maatregelen:

* `installation`
* `wall_insulation`
* `sloped_roof_insulation`
* `flat_roof_insulation`
* `floor_insulation`
* `living_room_windows`
* `bedroom_windows`
* `shower`
* `ventilation`
* `cooling`
* `electirc_cooking`
* `solar_panels`

{% hint style="info" %}
De API geeft een **geschatte** NTA 8800-uitkomst terug. Dit is geen vervanging voor een officiële registratie in EP-online.
{% endhint %}

#### Voorbeeld output

```
{
  "Output": {
    "warnings": [],
    "postcode": "2771DS",
    "housenumber": 87,
    "houseaddition": null,
    "build_year": 1961,
    "inner_surface_area": 131,
    "house_type": "Vrijstaand",
    "installation": 4,
    "wall_insulation": 1,
    "sloped_roof_insulation": 1,
    "flat_roof_insulation": 1,
    "floor_insulation": 1,
    "living_room_windows": 2,
    "bedroom_windows": 2,
    "shower": 1,
    "ventilation": 1,
    "cooling": 1,
    "electric_cooking": 1,
    "solar_panels": {
      "pv_generation": 1920,
      "curtailed_pv": 0,
      "self_consumed_pv": 1920,
      "self_consumed_ratio": 1,
      "netting_enabled": 1,
      "systems": [
        {
          "roof_surface": 0,
          "roof_type": "Sloped",
          "total_watt_peak_capacity": 2000,
          "inclination_angle": 45,
          "orientation": 180,
          "added_watt_peak_capacity": null,
          "specific_watt_peak_of_added_panels": null,
          "added_panels": null,
          "panel_size": null
        }
      ]
    },
    "battery": [
      {
        "type": "custom",
        "capacity": 12,
        "power": 6,
        "control_mode": "pv_only",
        "charge": 718,
        "discharge": 655,
        "cycles": 60.7
      }
    ],
    "CO2": 3456,
    "grid_import": 1405,
    "grid_feed": 0,
    "electricity_need": 1405,
    "definitive_energy_label": "A+++",
    "definitive_energy_label_type": "NTA 8800:2024 (basisopname woningbouw)",
    "definitive_energy_label_validity_date": "2036-1",
    "definitive_BENG2_score": 49,
    "current_estimated_energy_label": "E",
    "current_estimated_BENG2_score": 295,
    "estimated_gas_usage": 1666,
    "estimated_energy_usage": 3263,
    "estimated_city_heating_usage": 0,
    "measures_method": 4,
    "accuracy_indicator": 6,
    "response_meta": null
  }
```


# Nauwkeurigheidsindicator

De nauwkeurigheidsindicator meet de betrouwbaarheid van het geschatte huidige energielabel binnen een afwijking van ±1 label. Voor eenvoud wordt dit omgerekend naar een score van 1 tot 7.

| Score | Niveau         |
| ----- | -------------- |
| 7     | Zeer hoog      |
| 6     | Hoog           |
| 5     | Gemiddeld hoog |
| 4     | Gemiddeld      |
| 3     | Gemiddeld laag |
| 2     | Laag           |
| 1     | Zeer laag      |


# Appartementen

De endpoint die in deze sectie wordt beschreven, is van toepassing op appartementen binnen woongebouwen met meerdere wooneenheden. Hieronder vallen:

* Galerijflat
* Portiekflat
* Maisonnette
* Benedenwoning
* Bovenwoning
* Portiekwoning

Het model gaat uit van een woning binnen een woongebouw met meerdere wooneenheden, waarbij daken, gevels en installaties gedeeld kunnen worden met andere woningen. De positie van het appartement binnen het gebouw en het aantal woonlagen zijn belangrijke factoren. Hierdoor kan de API isolatieniveaus, verwarmingssystemen en andere maatregelen schatten op basis van gebouwkenmerken en voorspellingen met machine learning.


# Migratiehandleiding: v1 → v2

Deze pagina geeft een overzicht van de wijzigingen die nodig zijn bij de migratie van v1 naar v2 van de API.

## 1. Wijzigingen in de request body

#### v1

```json
{
    "post_code": "3024XL",
    "house_number": "227",
    "house_addition": "B"
}
```

#### v2

```json
{
    "postcode": "3024XL",
    "housenumber": "227",
    "houseaddition": "B"
}
```

## 2. Wijzigingen in de invoer

#### a. Basiskenmerken

**Nieuwe invoervelden**

* `electric_cooking`
* `cooling`
* `apartment_type`

#### Wijzigingen in de invoer voor zonnepanelen

De structuur van `solar_panels` is gewijzigd van één integerwaarde naar een lijst waarin afzonderlijke zonnepaneelinstallaties worden beschreven.

Nieuwe velden voor zonnepanelen zijn onder andere:

* `solar_panels` (per zonnepaneel)
* `pv_total_watt_peak`
* `pv_area`
* `specific_watt_peak`
* `angle`
* `orientation`

## 3. Wijzigingen in de output

De responsstructuur bevat nu extra velden en aangepaste naamgeving.

#### Nieuwe outputvelden

* `cooling`
* `electric_cooking`
* `solar_panels` (per zonnepaneel)
* `roof_surface`
* `original_watt_peak_capacity`
* `total_watt_peak_capacity`
* `inclination_angle`
* `orientation`

## 4. Wijzigingen in waarden van kenmerken

Het waardebereik voor verschillende kenmerken is gewijzigd.

Voorheen liepen deze waarden van `0–3`, maar nu lopen ze van `1–4`.

Dit geldt voor onder andere:

* `wall_insulation`
* `floor_insulation`
* `roof_insulation`
* `living_room_windows`

#### Voorbeeld

**v1**

```
1 = matige gevelisolatie
```

**v2**

```
2 = matige gevelisolatie
```


# Changelog

Changelog van de deploy van de Energielabel v2 API in het formaat iteratie (\`1.01\`) en verwachte releasedatum: jaar, maand en dag.

## 1.02 - 2026-05-07

Nieuw outputveld: `accuracy_indicator`.

De `accuracy_indicator` meet de betrouwbaarheid van het geschatte huidige energielabel binnen een afwijking van ±1 label. Voor eenvoud wordt dit omgerekend naar een score van 1 tot 7. Meer informatie vind je bij [**Nauwkeurigheidsindicator**](https://docs.altum.ai/verduurzamen/nta-8800-energielabel-v2-api/woningen/nauwkeurigheidsindicator).

Het nieuwe ML-model is bijgewerkt voor situaties waarin het definitieve energielabel niet bekend is.

## 1.01 - 2026-04-14

Nieuw invoerveld: `number_of_solar_panels`, dat wordt vertaald naar standaardwaarden zoals uitgelegd bij[ **Maatregelen**](https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen).


# Authenticatie, invoer en resultaat

## Bepaal het geschatte huidige of potentiële NTA 8800-energielabel.

<mark style="color:green;">`POST`</mark> `https://api.altum.ai/v2/energylabel/apartments`

#### Headers

| Naam                                        | Type   | Beschrijving                                                                                             |
| ------------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------- |
| x-api-key<mark style="color:red;">\*</mark> | string | Unieke API-sleutel van Altum. Maak er een op [https://platform.altum.ai](https://platform.altum.ai/auth) |
| Content-Type                                | string | application/json                                                                                         |

#### Request Body

<table><thead><tr><th width="188">Veld</th><th width="131">Type</th><th width="203">Omschrijving</th><th>Voorbeeld/Standaard</th></tr></thead><tbody><tr><td>postcode<mark style="color:red;">*</mark></td><td>string</td><td>Zes-cijferige postcode</td><td>1234AB</td></tr><tr><td>housenumber<mark style="color:red;">*</mark></td><td>integer</td><td>Huisnummer</td><td>1</td></tr><tr><td>houseaddition</td><td>string</td><td>Huisnummertoevoeging</td><td>A</td></tr><tr><td>position</td><td>integer</td><td><code>1</code> = hoekappartement op de begane grond<br><code>2</code> = tussenappartement op de begane grond<br><code>3</code> = hoekappartement op een tussenverdieping<br><code>4</code> = tussenappartement op een tussenverdieping<br><code>5</code> = hoekappartement op de bovenste verdieping<br><code>6</code> = tussenappartement op de bovenste verdieping<br><code>7</code> = volledige bovenste verdieping (penthouse)</td><td>Standaard: 1</td></tr><tr><td>floors</td><td>integer</td><td><p>Heeft de woning één of meerdere woonlagen?</p><p><code>1</code> = één woonlaag<br><code>2</code> = meerdere woonlagen</p></td><td>Standaard: 1</td></tr><tr><td>back_facade</td><td>boolean</td><td><p>Heeft de woning een achtergevel?</p><p><code>false</code> = nee</p><p><code>true</code> = ja</p></td><td>Standaard: false</td></tr><tr><td>build_year</td><td>integer</td><td>Bouwjaar</td><td>1960</td></tr><tr><td>inner_surface_area</td><td>float</td><td>Woonoppervlakte (m²)</td><td>70</td></tr><tr><td>apartment_type</td><td>integer</td><td><code>1</code> = 'Galerijflat'<br><code>2</code> = 'Portiekflat'<br><code>3</code> = 'Maisonnette'<br><code>4</code> = 'Benedenwoning'<br><code>5</code> = 'Bovenwoning'<br><code>6</code> = 'Portiekwoning'</td><td>2</td></tr><tr><td>wall_insulation</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>2</td></tr><tr><td>floor_insulation</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>2</td></tr><tr><td>roof_insulation</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>2</td></tr><tr><td>living_room_windows</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>2</td></tr><tr><td>installation</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>Standaard: 4</td></tr><tr><td>shower</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>Standaard: 1</td></tr><tr><td>cooling</td><td>integer</td><td><p>Is er een koelsysteem aanwezig?</p><p><code>1</code> = geen koeling</p><p><code>2</code> = airco-unit, directe luchtkoeling</p></td><td>Standaard: 1</td></tr><tr><td>ventilation</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>1</td></tr><tr><td>electric_cooking</td><td>integer</td><td><p>Waar wordt mee gekookt?</p><p><code>1</code> = gasfornuis </p><p><code>2</code> = elektrisch fornuis</p></td><td>Standaard: 2 als <code>installation</code> gelijk is aan <code>6</code> of <code>7</code>, anders <code>1</code>.</td></tr><tr><td>inhabitants</td><td>integer</td><td>Aantal bewoners van de woning</td><td>Standaard: 3</td></tr><tr><td>solar_panels</td><td>list</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td></td></tr><tr><td>number_of_solar_panels</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td></td></tr></tbody></table>

{% hint style="info" %}
*<mark style="color:red;">**Voor optimale resultaten raden we aan om zowel de positie als het aantal woonlagen van het appartement mee te geven.**</mark>*
{% endhint %}

## Verschillen ten opzichte van de Woningen-endpoint

* `apartment_type` in plaats van `house_type`
* `roof_insulation` in plaats van `sloped_roof_insulation` en `flat_roof_insulation`
* Geen `bedroom_windows`
* `apartment_type` is minder bepalend; de positie van het appartement en het aantal woonlagen zijn belangrijker.

## Request body

```
{
  "postcode": "3024XL",
  "housenumber":227,
  "houseaddition": "B",
  "position": 3,
  "floors": 1
}
```

## Response Status Codes

{% tabs %}
{% tab title="200: OK Successful response" %}

```
{
  "Output": {
    "warnings": [],
    "tip": null,
    "postcode": "3024XL",
    "housenumber": 227,
    "houseaddition": "B",
    "build_year": 1927,
    "inner_surface_area": 74,
    "apartment_type": "Portiekwoning",
    "installation": 4,
    "wall_insulation": 1,
    "roof_insulation": null,
    "floor_insulation": null,
    "living_room_windows": 2,
    "shower": 1,
    "ventilation": 1,
    "cooling": 1,
    "electric_cooking": 1,
    "solar_panels": null,
    "CO2": 2208,
    "definitive_energy_label": null,
    "definitive_energy_label_type": null,
    "definitive_energy_label_validity_date": null,
    "definitive_BENG2_score": null,
    "current_estimated_energy_label": "C",
    "current_estimated_BENG2_score": 221,
    "estimated_gas_usage": 805,
    "estimated_energy_usage": 2262,
    "estimated_city_heating_usage": 0,
    "solar_panel_yield": 0,
    "measures_method": 2,
    "accuracy_indicator": 3,
    "response_meta": null
  }
}
```

{% endtab %}
{% endtabs %}


# API-sleutel informatie

Begrijpen en verkrijgen van jouw API-sleutel

Een API-sleutel is een unieke code waarmee je veilig toegang krijgt tot de API’s van Altum AI. Deze sleutel is verplicht in de `x-api-key` header voor alle API-aanvragen, zodat de aanvraag correct kan worden geverifieerd.

### **Hoe verkrijg je jouw API-sleutel?**

Je kunt je API-key op twee manieren verkrijgen:

* **Via het platform:** genereer je API-sleutel direct op het Altum AI-platform.
* **Via een abonnement:** je ontvangt een API-sleutel wanneer je je abonneert op het Startup-plan of Unlimited-plan.

### Waar gebruik je je API-sleutel?

Voeg de API-sleutel toe aan de `x-api-key` header van elke API-aanvraag. Zonder geldige sleutel wordt je aanvraag niet geverifieerd.

#### Voorbeeldheader

```
x-api-key: YOUR_UNIQUE_API_KEY
```

### Veiligheid

Houd je API-sleutel vertrouwelijk om ongeautoriseerde toegang tot je account te voorkomen.


# Voorbeeld API calls

Een verzameling van voorbeelden van API calls.

### Minimale invoer

{% hint style="info" %}
*<mark style="color:red;">**Voor optimale resultaten raden we aan om zowel de positie als het aantal woonlagen van het appartement mee te geven.**</mark>*
{% endhint %}

```html
{
    "postcode": "3024XL",
    "housenumber":227,
    "houseaddition": "B",
    "position": 3,
    "floors": 1
}
```

### Gebouwparameters toevoegen

<pre><code><strong>{
</strong>    "postcode": "3024XL",
    "housenumber":227,
    "houseaddition": "B",
    "position": 3,
    "floors": 1,
    "build_year" : 1961,
    "apartment_type": 1,
    "inner_surface_area": 131
}
</code></pre>

### Huidige maatregelen toevoegen

```
{
    "postcode": "3024XL",
    "housenumber":227,
    "houseaddition": "B",
    "position": 3,
    "floors": 1,
    "wall_insulation": 1,
    "floor_insulation": 1,
    "roof_insulation": 1,
    "living_room_windows": 1,
    "shower": 1,
    "cooling": 1,
    "electric_cooking": 1,
    "ventilation": 1,
    "installation": 4,
    "inhabitants" : 3
}
```

### Zonnepanelen toevoegen

<pre><code><strong>{
</strong>    "postcode": "3024XL",
    "housenumber":227,
    "houseaddition": "B",
    "position": 3,
    "floors": 1,
    "solar_panels": [{"pv_total_watt_peak":2000,
                      "angle":45,
                      "orientation":180},
                     {"pv_area": 20,     
                      "specific_watt_peak": 150,
                      "angle":45,
                      "orientation":180}]        
}
</code></pre>

of

<pre><code><strong>{
</strong>    "postcode": "3024XL",
    "housenumber":227,
    "houseaddition": "B",
    "number_of_solar_panels": 10     
}
</code></pre>


# Resultaat interpretatie

Een uitleg en interpretatie van elk kenmerk dat in de API-response wordt teruggegeven.

<table><thead><tr><th width="249">Veld</th><th>Type</th><th>Omschrijving</th><th>Voorbeeld</th></tr></thead><tbody><tr><td>warnings</td><td>list</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/waarschuwingen">Waarschuwingen</a></td><td></td></tr><tr><td>postcode</td><td>string</td><td>zes-cijferige postcode</td><td>1234AB</td></tr><tr><td>housenumber</td><td>integer</td><td>Huisnummer</td><td>1</td></tr><tr><td>houseaddition</td><td>string</td><td>Huisnummer toevoeging</td><td>A</td></tr><tr><td>build_year</td><td>integer</td><td>Bouwjaar</td><td>1961</td></tr><tr><td>inner_surface_area</td><td>integer</td><td>Woonoppervlakte (m²)</td><td>70</td></tr><tr><td>apartment_type</td><td>string</td><td>Appartementtype</td><td>Portiekwoning</td></tr><tr><td>installation</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>4</td></tr><tr><td>wall_insulation</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>2</td></tr><tr><td>roof_insulation</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>2</td></tr><tr><td>floor_insulation</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>2</td></tr><tr><td>living_room_windows</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>2</td></tr><tr><td>shower</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>1</td></tr><tr><td>ventilation</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td>1</td></tr><tr><td>cooling</td><td>integer</td><td><p><code>1</code> = geen koeling</p><p><code>2</code> = airco-unit, directe luchtkoeling</p></td><td>1</td></tr><tr><td>electric_cooking</td><td>integer</td><td><p><code>1</code> = Gasfornuis</p><p><code>2</code> = elektrisch fornuis</p></td><td>1</td></tr><tr><td>solar_panels</td><td>list</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/maatregelen">Maatregelen</a></td><td></td></tr><tr><td>CO2</td><td>integer</td><td>De totale CO₂-uitstoot, bekijk <a href="https://docs.altum.ai/verduurzamen/verduurzaming-api-v2/co-uitstoot">CO₂-uitstoot</a></td><td>3084</td></tr><tr><td>definitive_energy_label</td><td>string</td><td>Definitief energielabel uit RVO’s EP-online.</td><td>A</td></tr><tr><td>definitive_energy_label_type</td><td>string</td><td>Norm waarop het definitieve energielabel is gebaseerd.</td><td>NEN7120</td></tr><tr><td>definitive_energy_label_validity_date</td><td>string</td><td>Einddatum van de geldigheid van het opgegeven definitieve energielabel.</td><td>2030-12</td></tr><tr><td>definitive_BENG2_score</td><td>integer</td><td>Definitieve BENG2-score van het energielabel uit RVO’s EP-online.</td><td>125</td></tr><tr><td>current_estimated_energy_label</td><td>string</td><td>Geschat huidig NTA 8800-energielabel op basis van gebouwkenmerken en maatregelen. Voor <code>measures_method</code> 2 en 3 wordt dit voorspeld met machine learning.</td><td>A</td></tr><tr><td>current_estimated_BENG2_score</td><td>integer</td><td>Numerieke BENG2-score van het geschatte huidige NTA 8800-energielabel.</td><td>128</td></tr><tr><td>estimated_gas_usage</td><td>integer</td><td>Geschat gasverbruik per jaar in m³.</td><td>2172</td></tr><tr><td>estimated_energy_usage</td><td>integer</td><td>Geschat elektriciteitsverbruik per jaar in kWh.</td><td>2800</td></tr><tr><td>estimated_city_heating_usage</td><td>integer</td><td>Geschat warmteverbruik per jaar in GJ.</td><td>1300</td></tr><tr><td>solar_panel_yield</td><td>integer</td><td>Jaarlijkse elektriciteitsopbrengst in kWh.</td><td>1000</td></tr><tr><td>measures_method</td><td>integer</td><td><p><code>1</code> = statistisch</p><p><code>2</code> = externe bronnen</p><p><code>3</code> = gebouwkenmerken</p><p><code>4</code> = gebruikersinvoer</p></td><td>1</td></tr><tr><td>accuracy_indicator</td><td>integer</td><td>Bekijk <a href="https://docs.altum.ai/verduurzamen/nta-8800-energielabel-v2-api/woningen/nauwkeurigheidsindicator">Nauwkeurigheidsindicator</a></td><td>5</td></tr></tbody></table>

### Hoe het geschatte huidige energielabel wordt berekend (`measures_method`) <a href="#hoe-het-geschatte-huidige-energielabel-wordt-berekend-measures_method" id="hoe-het-geschatte-huidige-energielabel-wordt-berekend-measures_method"></a>

De response bevat `measures_method`. Dit veld legt uit hoe de maatregelen en het geschatte energielabel zijn afgeleid.

`1` = **Statistisch** \
Gebruikt het NTA 8800-model en, indien beschikbaar, het definitieve energielabel.

`2` = **Externe bronnen** \
Gebruikt voorspellingen met machine learning op basis van externe databronnen om de schatting van het NTA 8800-model te ondersteunen wanneer er geen definitief energielabel beschikbaar is.

`3` = **Gebouwkenmerken** \
Gebruikt voorspellingen met machine learning op basis van gebouwkenmerken om de schatting van het NTA 8800-model te ondersteunen wanneer er geen definitief energielabel en geen externe bronnen beschikbaar zijn.

`4` = **Gebruikersinvoer** \
De schatting wordt gebaseerd op de maatregelen die in de request zijn meegegeven en op de gebouwkenmerken die worden gebruikt om het NTA 8800-model te ondersteunen. Deze methode wordt gebruikt wanneer de gebruiker minimaal één maatregel meegeeft.

De maatregelen:

* * `installation`
  * `wall_insulation`
  * `roof_insulation`
  * `floor_insulation`
  * `living_room_windows`
  * `shower`
  * `ventilation`
  * `cooling`
  * `electirc_cooking`
  * `solar_panels`

{% hint style="info" %}
De API geeft een **geschatte** NTA 8800-uitkomst terug. Dit is geen vervanging voor een officiële registratie in EP-online.
{% endhint %}

#### Voorbeeld output

```
{
	"Output": {
		"warnings": [],
		"tip": null,
		"postcode": "3024XL",
		"housenumber": 227,
		"houseaddition": "B",
		"build_year": 1927,
		"inner_surface_area": 74,
		"apartment_type": "Portiekwoning",
		"installation": 4,
		"wall_insulation": 1,
		"roof_insulation": null,
		"floor_insulation": null,
		"living_room_windows": 2,
		"shower": 1,
		"ventilation": 1,
		"cooling": 1,
		"electric_cooking": 1,
		"solar_panels": null,
		"CO2": 2280,
		"definitive_energy_label": null,
		"definitive_energy_label_type": null,
		"definitive_energy_label_validity_date": null,
		"definitive_BENG2_score": null,
		"current_estimated_energy_label": "C",
		"current_estimated_BENG2_score": 221,
		"estimated_gas_usage": 845,
		"estimated_energy_usage": 2262,
		"estimated_city_heating_usage": 0,
		"measures_method": 2,
		"response_meta": null
	}
}
```


# Nauwkeurigheidsindicator

De nauwkeurigheidsindicator meet de betrouwbaarheid van het geschatte huidige energielabel binnen een afwijking van ±1 label. Voor eenvoud wordt dit omgerekend naar een score van 1 tot 7.

| Score | Niveau         |
| ----- | -------------- |
| 7     | Zeer hoog      |
| 6     | Hoog           |
| 5     | Gemiddeld hoog |
| 4     | Gemiddeld      |
| 3     | Gemiddeld laag |
| 2     | Laag           |
| 1     | Zeer laag      |


# Veelgestelde vragen (FAQ)

### Wat is de bron van de overige maatregelen als `measures_method = 4` wordt gebruikt en slechts een deel van de maatregelen is meegegeven?

Bij **gebruikersinvoer** (`measures_method = 4`) gebruikt de API de maatregelen die in de request zijn meegegeven als basis voor de berekening.

Als slechts **een deel van de maatregelen** is meegegeven, bepaalt de API de overige maatregelen met interne standaardwaarden van het model. Deze zijn gebaseerd op gebouwkenmerken, zoals bouwjaar, woningtype en gebruiksoppervlakte.

Zodra de gebruiker **minimaal één maatregel meegeeft**, worden **externe bronnen en machinelearningmodellen niet gebruikt** om de overige maatregelen te bepalen.

De berekening kan een meegegeven maatregel nog wel aanpassen op basis van **modelbeperkingen of bouwregelgeving**. In dat geval vervangt het systeem de waarde door de dichtstbijzijnde toegestane waarde en geeft de response een **waarschuwing** terug.

<pre><code>{
<strong>  "code": "03",
</strong>  "description": "wall_insulation: 2 is not allowed for build_year: 2010. Allowed values: [4]. Set wall_insulation: 4."
}
</code></pre>

Als gebruikers de **basisschatting** **zonder eigen overschrijvingen** willen zien, kunnen ze de API eerst aanroepen **zonder maatregelen** mee te geven. Daarna kunnen ze de teruggegeven maatregelen hergebruiken of aanpassen in een volgend request.


# Satelliet Dakscan API

Deze API voegt intelligentie toe aan de energietransitie door AI-gestuurde detectie te combineren met open diensten. Hierdoor worden slimmere beslissingen, een snellere adoptie van duurzame energie en

### Introductie

Nederland heeft ambitieuze doelstellingen gesteld om de transitie naar een CO₂-neutrale toekomst te realiseren, waarbij zonne-energie een centrale rol speelt in de strategie voor hernieuwbare energie. Hoewel de toepassing van zonnepanelen op daken voortdurend toeneemt, blijft het nauwkeurig in kaart brengen van zonnepaneelinstallaties door het hele land een uitdaging voor beleidsmakers, gemeenten en energieleveranciers.

Om deze uitdaging aan te pakken, hebben wij een AI-gestuurd systeem voor de detectie van zonnepanelen ontwikkeld dat zonnepanelen op Nederlandse woningen identificeert en in kaart brengt met behulp van luchtfoto’s en satellietbeelden. Deze innovatie is meer dan alleen een technische prestatie: het is een praktisch hulpmiddel dat besluitvorming verbetert, de nationale klimaatdoelstellingen ondersteunt en huishoudens stimuleert om bij te dragen aan een duurzamere toekomst.

### Functies van de Satellite Roof Scan API

De Satellite Roof Scan API verrijkt vastgoeddatasets door automatisch zonnepanelen op daken in heel Nederland te detecteren. Door gebruik te maken van hoge-resolutie luchtbeelden van PDOK (laatste update: januari 2026), zet de API ruwe geospatiale gegevens om in bruikbare duurzaamheidsinzichten. Elke woning wordt uniek geïdentificeerd via het BAG-ID, waardoor een nauwkeurige koppeling met nationale vastgoedregisters mogelijk wordt en grootschalige analyses kunnen worden uitgevoerd.

### Belangrijkste mogelijkheden

* **Detectie en telling van zonnepanelen:** Detecteert automatisch zonnepanelen op elk dak en geeft het exacte aantal gevonden panelen terug, zodat u direct inzicht krijgt in de zonne-installatie van een woning of gebouw.

* **Visuele output:** Geeft een link naar een geannoteerde afbeelding waarop de gedetecteerde zonnepanelen direct op het dak zijn gemarkeerd.

* **Beeldmateriaal uit meerdere bronnen:** Haalt lucht- en satellietbeelden op van meerdere aanbieders, met automatische terugval naar een andere bron wanneer één bron niet beschikbaar is. Zo wordt altijd het best beschikbare beeld gebruikt.

* **Altijd gebruik van de meest recente beelden:** Geeft prioriteit aan hoogwaardige Nederlandse overheidsbeelden (PDOK, bijgewerkt in januari 2026), zodat de resultaten betrouwbaar en actueel blijven.

* **Datum van beeldmateriaal inbegrepen:** Elk resultaat vermeldt wanneer de luchtfoto is gemaakt, zodat u altijd weet hoe recent de informatie is.

* **Eenvoudig te integreren:** Ontworpen als API voor een naadloze koppeling met bestaande dashboards, platforms en workflows.

### Voordelen

* **Voor gemeenten:** Krijg inzicht in de verspreiding van zonnepanelen binnen uw gemeente om klimaatbeleid, duurzaamheidsdoelstellingen en subsidiemonitoring beter te ondersteunen.
* **Voor netbeheerders:** Verkrijg een duidelijker beeld van de groei van zonne-energie in verschillende regio’s om de capaciteit van het elektriciteitsnet beter te plannen.
* **Voor verzekeraars en vastgoedprofessionals:** Verrijk vastgoedgegevens met nauwkeurige en actuele informatie over zonnepanelen voor waarderingen en risicoanalyses.
* **Voor onderzoekers en beleidsplanners:** Krijg toegang tot betrouwbare gegevens op woningniveau op grote schaal, zonder dure veldonderzoeken of handmatige controles.

### **Authenticatie & vereiste parameters**

Om de **Satelliet Dakscan API** te gebruiken, zijn er twee belangrijke vereisten voor het maken van een verzoek:

* **x-api-key:** Deze sleutel is verplicht voor authenticatie. U moet de geldige API-sleutel bij elk verzoek opnemen om veilige en geautoriseerde toegang te garanderen.
* **search:** Deze parameter is verplicht om de gewenste postcode op te geven. Zonder de correcte postcode zal de API geen resultaten teruggeven, dus zorg ervoor dat deze correct in het verzoek is opgenomen.

Deze twee elementen zorgen ervoor dat elke zoekopdracht geverifieerd en nauwkeurig gericht is, zodat de API efficiënt de meest relevante gegevens kan leveren.

### **Conclusie**

De **Satelliet Dakscan API** levert bruikbare inzichten voor de vastgoedsector en transformeert de manier waarop professionals duurzaamheid van panden beoordelen en presenteren. Door AI-gestuurde detectie te combineren met BAG-ID-integratie, stelt het belanghebbenden in staat om weloverwogen beslissingen te nemen, vastgoedwaardering te verbeteren en marktkansen te identificeren.

Deze API voorziet vastgoedprofessionals van schaalbare inzichten op pandniveau en ondersteunt een groenere, slimmere en competitievere woningmarkt in Nederland.


# Authenticatie, invoer en resultaat

### **Authenticatie, invoer en reactie**

Beoordeel het volledige potentieel van de **Satelliet Dakscan API** door de belangrijkste parameters en het antwoord te begrijpen.

<mark style="color:green;">`POST`</mark> `https://api.altum.ai/satellite-roof-scan`

\
Het endpoint stelt u in staat om te communiceren met de **Satelliet Dakscan API** door specifieke queries te verzenden, zoals postcodes, om gedetailleerde vastgoedgegevens op te halen. Het volledige endpoint vindt u hierboven.

**Queryparameters**

| Parameter       | Type      | Beschrijving                                                                                                                                                                                    |
| --------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `postcode`      | `string`  | postcode in zeskarakterformaat, bijvoorbeeld 1234AB                                                                                                                                             |
| `huisnummer`    | `string`  | huisnummer van het object, bijvoorbeeld 1                                                                                                                                                       |
| `huisletter`    | `string`  | toevoeging aan het huisnummer, bijvoorbeeld A                                                                                                                                                   |
| `roof_geometry` | `boolean` | Toont de polygoonvorm van het geselecteerde dak; indien false wordt de geometrie overgeslagen en wordt alleen beeldgebaseerde detectie uitgevoerd.                                              |
| `image_source`  | `string`  | Geeft aan waar de beelddata vandaan komt (auto, **pdok**, **esri**, **google\_maps**).                                                                                                          |
| `show_image`    | `bool`    | Indien deze optie op **false** staat, wordt het tekenen van de geannoteerde afbeelding overgeslagen. Gebruik dit om tijd te besparen wanneer alleen het aantal gedetecteerde objecten nodig is. |

{% hint style="info" %}
**Opmerking:**

* De huisletter is een **optioneel veld**; je kunt dit leeg laten (""). Anders zijn alle velden verplicht.
* Sommige dakgeometrieën zijn niet altijd beschikbaar.
* Google Maps-services zijn tijdelijk uitgeschakeld.
* Je kunt de afbeeldingsbron wisselen tussen **pdok**, **esri** of **auto** (standaard).
  {% endhint %}

### **Headers**

| Header       | Type     | Beschrijving                                                                                              |
| ------------ | -------- | --------------------------------------------------------------------------------------------------------- |
| Content-Type | `string` | application/json                                                                                          |
| x-api-key\*  | `string` | Unieke API-sleutel van Altum. Verkrijgbaar op [https://platform.altum.ai](https://platform.altum.ai/auth) |

### **Request body**

Een geldig `POST-verzoek` ziet er bijvoorbeeld zo uit:

```json
{
  "postcode": "4624AD",
  "housenumber": "4",
  "huisletter": "",
  "roof_geometry": true,
  "image_source": "auto",
  "show_image": true
}
```

### **Response**

Bij een succesvolle POST-aanvraag retourneert de API een **200 OK-status** met een JSON-object dat de resultaten bevat.

**Voorbeeld van volledige output**

<table data-search="false"><thead><tr><th>Veld</th><th>Type</th><th>Beschrijving</th></tr></thead><tbody><tr><td><code>postcode</code></td><td><code>string</code></td><td>postcode in zeskarakterformaat, bijvoorbeeld 1234AB</td></tr><tr><td><code>huisnummer</code></td><td><code>string</code></td><td>huisnummer van het object, bijvoorbeeld 1</td></tr><tr><td><code>huisletter</code></td><td><code>string</code></td><td>toevoeging aan het huisnummer, bijvoorbeeld A</td></tr><tr><td><code>imagery_source</code></td><td><code>string</code></td><td>Bron van de gebruikte luchtfoto.</td></tr><tr><td><code>annotated_image_url</code></td><td><code>string</code></td><td>Een openbare URL naar de afbeelding waarop de gedetecteerde zonnepanelen zijn weergegeven.</td></tr><tr><td><code>imagery_date</code></td><td><code>date</code></td><td>Datum waarop de luchtfoto is gemaakt.</td></tr><tr><td><code>num_panels_detected</code></td><td><code>integer</code></td><td>Het totale aantal gedetecteerde zonnepanelen (of andere objecten).</td></tr><tr><td><code>estimation_method</code></td><td><code>string</code></td><td><code>"detected"</code>, <code>"detected_unmasked"</code>, or <code>"estimated"</code></td></tr><tr><td><code>error_margin</code></td><td><code>int | null</code></td><td><code>±</code> panels of uncertainty around <code>num_panels_detected</code></td></tr><tr><td><code>detections</code></td><td><code>array</code></td><td>Een array van JSON-objecten, waarbij elk object een gedetecteerd zonnepaneel beschrijft, inclusief label, betrouwbaarheids-score en bounding box-coördinaten.</td></tr></tbody></table>

**Voorbeeld van volledige output**

```json
{
	"postcode": "4624AD",
	"housenumber": "4",
	"huisletter": "",
	"houseaddress": "4624AD-4-",
	"imagery_source": "PDOK Aerial RGB (Open), Current Ortho 25cm RGB",
	"annotated_image_url": "https://altum-gis.s3.eu-west-1.amazonaws.com/solar_panels/4624AD-4-_beb82c36.png",
	"imagery_date": "2026",
	"num_panels_detected": 11,
	"estimation_method": "estimated",
	"error_margin": 2,
	"detections": [
		{
			"label": "solar_array_region",
			"confidence": 0.84,
			"bbox": {
				"x1": 340,
				"y1": 615,
				"x2": 528,
				"y2": 691,
				"width": 188,
				"height": 76
			}
		}
	]
}
```

<figure><img src="/files/F25vv7dGWFVUUmOYxQMH" alt="" width="375"><figcaption></figcaption></figure>

{% tabs %}
{% tab title="200: OK Standard response" %}

```
{
	"postcode": "4624AD",
	"housenumber": "4",
	"huisletter": "",
	"houseaddress": "4624AD-4-",
	"imagery_source": "PDOK Aerial RGB (Open), Current Ortho 25cm RGB",
	"annotated_image_url": "https://altum-gis.s3.eu-west-1.amazonaws.com/solar_panels/4624AD-4-_beb82c36.png",
	"imagery_date": "2026",
	"num_panels_detected": 11,
	"estimation_method": "estimated",
	"error_margin": 2,
	"detections": [
		{
			"label": "solar_array_region",
			"confidence": 0.84,
			"bbox": {
				"x1": 340,
				"y1": 615,
				"x2": 528,
				"y2": 691,
				"width": 188,
				"height": 76
			}
		}
	]
}
```

{% endtab %}

{% tab title="400: Bad Request Unsuccessful response" %}
`postcode` or `housenumber` missing/empty.
{% endtab %}

{% tab title="404 Not Found" %}
Er kon geen satellietbeeld worden opgehaald voor het gevonden adres (alle bronnen in de fallback-keten zijn mislukt).
{% endtab %}

{% tab title="500: Internal Server Error Service is not available and/or down" %}
Databaseverbinding niet tot stand gebracht, of de geannoteerde afbeelding kon niet naar S3 worden geüpload.
{% endtab %}
{% endtabs %}




---

[Next Page](/llms-full.txt/1)

