API Documentatie

RESTful JSON API voor klimaatrisicoscoring van Nederlandse postcodes. Real-time data van PDOK, KNMI, Deltares, TNO en CBS.

https://klimaatrisicopro.nl/api/v1
Authenticatie Health Check Risk Summary Risk Detail Report Abonnement Bestelling API Key Endpoints Webhooks Score Berekening Prijzen
๐Ÿ” Authenticatie
Publieke endpoints (risk summary, health, report) zijn zonder API key bereikbaar. Gedetailleerde data vereist een API key via een Professional of Team abonnement.
API Key meegeven:
Header: X-API-Key: kr_live_...
Of als query parameter: ?api_key=kr_live_...
Let op: Bewaar je API key veilig. Deel deze nooit in publieke repositories of client-side code. Gebruik environment variables of secrets management in productie.
๐Ÿฉบ Health Check
GET /health Service status โ–ผ
Controleer de beschikbaarheid van de API en de databaseverbinding.
Gratis Geen auth
VOORBEELD RESPONSE
{
  "status": "ok",
  "service": "klimaatrisicopro.nl",
  "version": "1.0.0",
  "db": "ok"
}
๐Ÿ“Š Risk Summary
GET /risk/:postcode Publiek overzicht โ–ผ
Bereken klimaatrisicoscore voor een Nederlandse postcode. Retourneert een samenvatting met totaalscore, risicoklasse en de 4 as-scores. Gedetailleerde sub-scores en bronnen vereisen een API key.
Gratis Rate limited

Parameters

ParameterTypeLocatieBeschrijving
postcodestringpath vereistNederlandse postcode, formaat 1234AB (4 cijfers + 2 letters, zonder spatie)

Status Codes

200Risicoscore berekend
400Ongeldige postcode
500Interne fout
VOORBEELD REQUEST
GET /api/v1/risk/3011AA
VOORBEELD RESPONSE
{
  "property": {
    "postcode": "3011AA",
    "city": "Rotterdam"
  },
  "risk": {
    "total_score": 67.3,
    "risk_class": "hoog",
    "calc_date": "2025-01-15T12:00:00Z",
    "overstroming_score": 7.2,
    "overstroming_label": "hoog",
    "hitte_score": 5.8,
    "hitte_label": "gemiddeld",
    "droogte_score": 6.1,
    "droogte_label": "hoog",
    "wind_score": 5.9,
    "wind_label": "hoog"
  },
  "eu_taxonomy": {
    "alignment": "EU Taxonomy Article 8",
    "disclosure_required": true
  },
  "data_quality": "live_geodata",
  "message": "Gedetailleerde risico-analyse per as beschikbaar in het volledige rapport."
}

๐Ÿงช Probeer het uit

๐Ÿ”ฌ Risk Detail
POST /risk/detail Adres-specifieke details โ–ผ
Bereken risico met volledig adres inclusief bouwjaar, woningtype en oppervlakte. Retourneert alle sub-scores, probabiliteiten en bronnen per risico-as.
Betaald API Key vereist

Request Body

ParameterTypeBeschrijving
postcodestringVereist Nederlandse postcode (1234AB)
addressstringOptioneel Straatnaam en huisnummer
bouwjaarintegerOptioneel Bouwjaar (1500โ€“2100)
woningtypestringOptioneel vrijstaand | tussenwoning | hoekwoning | appartement | rijtjeshuis
oppervlakteintegerOptioneel Woonoppervlakte in mยฒ (1โ€“100.000)
VOORBEELD REQUEST
POST /api/v1/risk/detail
Content-Type: application/json

{
  "postcode": "3011AA",
  "address": "Coolsingel 1",
  "bouwjaar": 1920,
  "woningtype": "appartement",
  "oppervlakte": 110
}
VOORBEELD RESPONSE (fragment)
{
  "property": {
    "id": 42,
    "postcode": "3011AA",
    "city": "Rotterdam",
    "lat": 51.92,
    "lon": 4.49,
    "bouwjaar": 1920,
    "woningtype": "appartement",
    "oppervlakte": 110
  },
  "risk": {
    "total_score": 67.3,
    "risk_class": "hoog",
    "overstroming": {
      "score": 7.2,
      "rivier_prob": 0.25,
      "zee_prob": 0.40,
      "pluviaal_prob": 0.45
    },
    "hitte": {
      "score": 5.8,
      "uhi_intensity": 4.8,
      "tropische_dagen": 11
    },
    "droogte": {
      "score": 6.1,
      "grondwaterstand": -1.2,
      "bodemdaling_mm": 6.0,
      "funderingsrisico": 0.55
    },
    "wind": {
      "score": 5.9,
      "windbelt": "winderig",
      "wind_max_ms": 28,
      "kusterosie_prob": 0.35
    },
    "sources": { ... }
  },
  "eu_taxonomy": { "alignment": "EU Taxonomy Article 8", "disclosure_required": true }
}
๐Ÿ“„ Report Endpoints
GET /report/:postcode HTML rapport โ–ผ
Genereer een volledig HTML rapport voor een postcode. EU Taxonomy Article 8 compliant, inclusief alle 4 risico-assen met sub-scores en bronvermelding.
Gratis
VOORBEELD
GET /api/v1/report/3011AA
Accept: text/html
GET /report/:postcode/pdf PDF rapport โ–ผ
Genereer een PDF rapport. Content-Type: application/pdf. Falls back to HTML als PDF generatie niet beschikbaar is.
Betaald
VOORBEELD
GET /api/v1/report/3011AA/pdf

Response: PDF binary with Content-Disposition: inline; filename="klimaatrisico_3011AA.pdf"
GET /demo/addresses Demo adressen โ–ผ
Lijst van demo-postcodes om de API te testen zonder echte data.
Gratis Geen auth
{
  "addresses": [
    { "postcode": "1012AB", "city": "Amsterdam", "label": "Amsterdam Centraal" },
    { "postcode": "3011AA", "city": "Rotterdam", "label": "Rotterdam Centrum" },
    ...
  ]
}
๐Ÿ’ณ Abonnement
POST /subscribe Maak abonnement โ–ผ
Maak een Professional (โ‚ฌ7/maand) of Team (โ‚ฌ97/maand) abonnement. Na betaling ontvang je een API key per e-mail.
ParameterTypeBeschrijving
emailstringVereist E-mailadres
planstringVereist "professional" of "team"
companystringOptioneel Bedrijfsnaam
200Abonnement aangemaakt
400Ongeldige invoer
409Actief abonnement bestaat al
VOORBEELD RESPONSE
{
  "id": 1,
  "email": "info@bedrijf.nl",
  "plan": "professional",
  "status": "pending_payment",
  "calls_limit": 100,
  "price_cents": 700,
  "price_eur": 7.0,
  "message": "Abonnement aangemaakt..."
}
POST /order Eenmalig rapport โ–ผ
Bestel een eenmalig klimaatrisicorapport (Taxatierapport, โ‚ฌ99). Na betaling ontvangt u een PDF rapport per e-mail.
ParameterTypeBeschrijving
postcodestringVereist Nederlandse postcode
emailstringVereist Bezorgadres
VOORBEELD RESPONSE
{
  "order_id": 1,
  "postcode": "3011AA",
  "amount_eur": 99.0,
  "status": "pending_payment",
  "message": "Bestelling aangemaakt..."
}
๐Ÿ”‘ Authenticated API Endpoints
GET /api/risk/:postcode Volledige data met API key โ–ผ
Volledige risico-analyse inclusief alle sub-scores, probabiliteiten en bronvermelding. Vereist een actief abonnement met geldige API key.
Betaald API Key vereist
Authenticatie: Stuur je API key mee als X-API-Key header. Elk request telt tegen je maandelijkse limiet.
200Volledige risico-analyse
401Ontbrekende of ongeldige API key
429API-limiet bereikt
VOORBEELD REQUEST
GET /api/v1/api/risk/3011AA
X-API-Key: kr_live_abc123def456
๐Ÿ”— Webhooks
Betaalwebhooks voor Mollie (iDEAL) en Stripe. Deze endpoints worden door de betaalprovider aangeroepen โ€” niet bedoeld voor direct gebruik.
POST /webhooks/mollie Mollie betalingscallbacks โ–ผ
Ontvangt Mollie betalingsupdates (iDEAL, creditcard). Verifieert handtekening via X-Mollie-Signature header.
POST /webhooks/stripe Stripe betalingscallbacks โ–ผ
Ontvangt Stripe checkout session events. Verifieert handtekening via Stripe-Signature header.
๐Ÿ“ Risicoscore Berekening
Elke risico-as krijgt een score van 1 tot 10. Het gewogen totaal wordt geschaald naar 1-100.
๐ŸŒŠ

Overstroming

40% van totaal

Rivier (35%) + Zee (40%) + Pluviaal (25%)

๐ŸŒก๏ธ

Hitte

20% van totaal

Urban Heat Island (45%) + Tropische dagen (55%)

๐Ÿœ๏ธ

Droogte & Bodemdaling

25% van totaal

GWL (30%) + Bodemdaling (35%) + Fundering (35%)

๐Ÿ’จ

Wind & Storm

15% van totaal

Windgebied (40%) + Max wind (35%) + Kusterosie (25%)

Risicoklassen

ScoreKlasseInterpretatie
0 โ€“ 25LaagMinimaal klimaatrisico, geen bijzondere maatregelen nodig
26 โ€“ 50GemiddeldMatig risico, monitoring aanbevolen
51 โ€“ 75HoogVerhoogd risico, mitigatie-maatregelen advisabel
76 โ€“ 100Zeer hoogSerieus risico, directe actie vereist

Databronnen

๐Ÿ’ฐ Prijzen & Limieten

Gratis Indicatie

โ‚ฌ0
  • 1 postcode per request
  • Totaalscore + risicoklasse
  • 4 as-scores (1-10)
  • Rate limited

Team

โ‚ฌ97/maand
  • 1.000 API-calls/maand
  • Onbeperkt rapporten
  • Bulk-postcode analyse
  • Priority support

Taxatierapport

โ‚ฌ99/eenmalig
  • Volledig PDF-rapport
  • EU Taxonomy compliant
  • Adres-specifieke scoring
  • 1 jaar geldigheid
Rate limits: Gratis endpoints: 60 requests/minuut. API key endpoints: 100 of 1.000 calls/maand afhankelijk van abonnement. Bij overschrijding krijg je een 429 Too Many Requests response.