API
De Home Drawing API genereert een woningillustratie als PNG, met daarin de voorgestelde verduurzamingsmaatregelen en een grafiek van de warmtebehoefte. De opmaak is vastgezet op het merkpalet en de achtergrond is transparant, zodat je de afbeelding in je eigen applicatie op elke achtergrond kunt plaatsen.
Basis-URL
https://api.sobolt.app
Authenticatie
De API vereist een API-sleutel. Geef deze bij elke aanroep mee in de
X-Api-Key-header:
X-Api-Key: <jouw-api-sleutel>
Een ontbrekende of ongeldige sleutel geeft 401 Unauthorized terug. Neem contact
op met Sobolt om een sleutel te verkrijgen.
Endpoint
GET /draw/home_rabobank.png
Geeft een PNG-illustratie terug met een transparante achtergrond. Alleen inhoudelijke parameters worden geaccepteerd — kleuren, lettertypen en opmaak staan server-side vast en kunnen niet worden overschreven.
Query-parameters
Elke maatregel is een name/amount-paar. Een maatregel wordt alleen getekend
wanneer zowel de name als de amount zijn meegegeven én de amount groter
is dan 0. De amount is het bedrag in euro's en wordt als geformatteerd bedrag
in de illustratie weergegeven.
| Parameter | Type | Omschrijving |
|---|---|---|
homeKind | string | Woningtype (zie waarden hieronder) |
roofName / roofAmount | string / number | Dakisolatie |
floorName / floorAmount | string / number | Vloerisolatie |
windowName / windowAmount | string / number | Ramen / beglazing |
doorName / doorAmount | string / number | Deur |
facadeName / facadeAmount | string / number | Gevelisolatie |
ventilationName / ventilationAmount | string / number | Ventilatie |
heatpumpName / heatpumpAmount | string / number | Warmtepomp |
solarName / solarAmount | string / number | Zonnepanelen |
otherName / otherAmount | string / number | Overige maatregel |
heatNeedBeforeMeasures | number | Warmtebehoefte vóór maatregelen (kWh/m²·jaar) |
heatNeedAfterMeasures | number | Warmtebehoefte ná maatregelen (kWh/m²·jaar) |
insulationStandard | number | Streefwaarde isolatiestandaard (kWh/m²·jaar) |
De grafiek van de warmtebehoefte wordt alleen getekend wanneer
heatNeedBeforeMeasures, heatNeedAfterMeasures en insulationStandard alle
drie samen worden meegegeven.
Woningtypen (homeKind):
| Waarde | Omschrijving |
|---|---|
detached_gabled | Vrijstaand, met kap (standaard) |
detached_flat | Vrijstaand, plat dak |
terraced_in_between_gabled | Tussenwoning, met kap |
terraced_in_between_flat | Tussenwoning, plat dak |
appartment_end_top | Hoekappartement, bovenste verdieping |
appartment_end_middle | Hoekappartement, tussenverdieping |
appartment_end_bottom | Hoekappartement, begane grond |
appartment_in_between_top | Tussenappartement, bovenste verdieping |
appartment_in_between_middle | Tussenappartement, tussenverdieping |
appartment_in_between_bottom | Tussenappartement, begane grond |
Een ontbrekende of onbekende homeKind valt terug op detached_gabled. Let op de
schrijfwijze appartment (dubbele p) — dat is exact de waarde waarop de server
matcht.
Voorbeeld
Teken een vrijstaande woning met dakisolatie, HR++-beglazing en zonnepanelen, plus
de grafiek van de warmtebehoefte, en sla het resultaat op als home.png:
curl -sS -H "X-Api-Key: <jouw-api-sleutel>" -o home.png \
'https://api.sobolt.app/draw/home_rabobank.png?homeKind=detached_gabled&roofName=Dakisolatie&roofAmount=3500&windowName=HR%2B%2B%20glas&windowAmount=4200&solarName=Zonnepanelen&solarAmount=5000&heatNeedBeforeMeasures=120&heatNeedAfterMeasures=55&insulationStandard=70'
Elke waarde met een spatie of een + moet in de URL worden ge-percent-encodeerd:
een spatie wordt %20 en een + wordt %2B. Het label HR++ glas schrijf je dus
als HR%2B%2B%20glas (een letterlijke + in een query-string wordt anders als
spatie gelezen).
Antwoorden
| Status | Betekenis |
|---|---|
200 OK | PNG-afbeelding (Content-Type: image/png), transparante achtergrond |
401 Unauthorized | De X-Api-Key-header ontbreekt of is ongeldig |
500 Internal Server Error | Genereren mislukt |