{"openapi":"3.1.0","info":{"title":"GetApi","version":"0.0.1","description":"## Authentication\n\nAll API endpoints require authentication. Include your API key in every request using **one** of the following methods:\n\n**Option 1 \u2014 X-Api-Key header (recommended)**\n```\nX-Api-Key: ga_live_xxxxxxxxxxxxxxxxxxxx\n```\n\n**Option 2 \u2014 Bearer token**\n```\nAuthorization: Bearer ga_live_xxxxxxxxxxxxxxxxxxxx\n```\n\nYou can generate and manage API keys in your [dashboard](https:\/\/getapi.nl\/dashboard).\n\n## AI & Agent Payments (x402)\n\nSome endpoints support direct payments for AI agents via the **x402** protocol (https:\/\/www.x402.org).\nNo API key or account is needed. Send a normal request without key;\nthe server will respond with **HTTP 402** and a `PAYMENT-REQUIRED` header:\n\n```\nPAYMENT-REQUIRED: <base64 JSON PaymentRequirements>\n```\n\nThis base64 string contains, among other things, `network`, `asset`, `amount`, and `payTo`. \nYour agent signs an EIP-3009 *transferWithAuthorization* for the specified `amount` of USDC to that `payTo` address, \nencodes the signature as base64, and resubmits the request with:\n\n```\nPAYMENT-SIGNATURE: <base64 SignedAuthorization>\n```\n\nThe server verifies the signature via a facilitator, provides the data, and settles the payment on-chain. \nThe success response includes a `PAYMENT-RESPONSE` header containing the transaction information. \nA one-time `nonce` prevents replay attacks. Payments are made in USDC on **Base**; \nthe price is determined by the `credit_cost` of the endpoint.","contact":{"email":"info@wdnoord.nl"},"x-guidance":"GetAPI.nl is een Nederlandse API-platform voor lookups en validaties (postcode,\nadres, kenteken, BTW, e-mail, KVK, IBAN, energiemaatwerk, overheidsdata). Elke\nendpoint accepteert een API key via de X-Api-Key header of Authorization:\nBearer <key>.\n\nSommige endpoints zijn ook direct betaalbaar voor AI-agents via het x402-protocol\n(https:\/\/www.x402.org) zonder account of API key: stuur een verzoek zonder key,\nde server antwoordt met HTTP 402 en een PAYMENT-REQUIRED header (base64 JSON met\nnetwork, asset, amount, payTo). Teken daarna een EIP-3009 transferWithAuthorization\nvoor het gevraagde bedrag in USDC op Base en hertrail met een PAYMENT-SIGNATURE\nheader. De server verifieert, levert de data en settleert on-chain.\n\nTips voor agents:\n- Lees eerst de PAYMENT-REQUIRED header van een 402-antwoord; die is leidend.\n- Geef altijd de exact door de server gevraagde parameters mee.\n- Een endpoint met een \"x-payment-info\" blok vereist betaling voor gebruik."},"servers":[{"url":"https:\/\/api.getapi.nl","description":"GetAPI"}],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"paths":{"\/v1\/kadaster\/bag\/address":{"get":{"operationId":"kadaster.bag.address","description":"Returns full BAG address data for a Dutch address, including BAG IDs,\nusage purposes, surface area, build year, status, and GPS coordinates.\n\nData is sourced from the PDOK BAG open API (Landelijke Voorziening BAG).\n\nResults are cached for 24 hours. The upstream timeout is 8 seconds;\nif PDOK is unavailable the endpoint returns HTTP 503.\n\nSource: [PDOK BAG](https:\/\/api.pdok.nl\/lv\/bag\/open-api\/v1_5)","summary":"Address lookup by postcode and house number","tags":["BAG \u2013 Addresses and Buildings Register","BagAdres"],"parameters":[{"name":"postcode","in":"query","required":true,"schema":{"type":"string","pattern":"^[1-9][0-9]{3}\\s?[A-Za-z]{2}$"}},{"name":"house_number","in":"query","required":true,"schema":{"type":"integer","minimum":1,"maximum":99999}},{"name":"house_letter","in":"query","schema":{"type":["string","null"],"pattern":"^[a-zA-Z]{1}$"}},{"name":"house_number_addition","in":"query","schema":{"type":["string","null"],"pattern":"^[a-zA-Z0-9]{1,4}$","maxLength":4}}],"responses":{"200":{"description":"Address found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":true,"address":{"bag_nummeraanduiding_id":"0363200000218908","bag_verblijfsobject_id":"0363010000218908","bag_pand_ids":["0363100012165277"],"bag_openbare_ruimte_id":"0363300000006316","bag_woonplaats_id":"3594","street":"Damrak","short_name":"Damrak","house_number":1,"house_letter":null,"house_number_addition":null,"postcode":"1012LG","city":"Amsterdam","municipality":"Amsterdam","address_line":"Damrak 1","address_line_postal":"1012 LG  AMSTERDAM","usage_purposes":["retail"],"surface_area_m2":312,"build_year":1900,"status":"in_use","type":"residence","is_secondary_address":false,"is_observed":false,"in_investigation":null,"document_date":"2019-11-22","document_number":"19SZ2048","secondary_address_ids":[],"occurrence":null,"lat":52.3745,"lon":4.8986}}],"properties":{"found":{"type":"boolean"},"address":{"type":"object","properties":{"bag_nummeraanduiding_id":{"type":"string"},"bag_verblijfsobject_id":{"type":"string"},"bag_pand_ids":{"type":"array","items":{"type":"string"}},"bag_openbare_ruimte_id":{"type":"string"},"bag_woonplaats_id":{"type":"string"},"street":{"type":["string","null"]},"short_name":{"type":["string","null"]},"house_number":{"type":"integer"},"house_letter":{"type":["string","null"]},"house_number_addition":{"type":["string","null"]},"postcode":{"type":"string"},"city":{"type":"string"},"municipality":{"type":"string"},"address_line":{"type":"string"},"address_line_postal":{"type":"string"},"usage_purposes":{"type":"array","items":{"type":"string"}},"surface_area_m2":{"type":["integer","null"]},"build_year":{"type":["integer","null"]},"status":{"type":["string","null"]},"type":{"type":["string","null"]},"is_secondary_address":{"type":"boolean"},"is_observed":{"type":["boolean","null"]},"in_investigation":[],"document_date":{"type":["string","null"]},"document_number":{"type":["string","null"]},"secondary_address_ids":{"type":"array","items":{"type":"string"}},"occurrence":[],"lat":{"type":["number","null"]},"lon":{"type":["number","null"]}},"required":["bag_nummeraanduiding_id","bag_verblijfsobject_id","bag_pand_ids","bag_openbare_ruimte_id","bag_woonplaats_id","street","short_name","house_number","house_letter","house_number_addition","postcode","city","municipality","address_line","address_line_postal","usage_purposes","surface_area_m2","build_year","status","type","is_secondary_address","is_observed","in_investigation","document_date","document_number","secondary_address_ids","occurrence","lat","lon"]}},"required":["found","address"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"404":{"description":"Not found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":false,"address":null,"error":"not_found","message":"Niet gevonden."}],"properties":{"found":{"type":"boolean"},"address":{"type":"null"},"error":{"type":"string"},"message":{"type":"string"}},"required":["found","address","error","message"]}}}},"503":{"description":"Service temporarily unavailable","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":false,"address":null,"error":"upstream_unavailable","message":"De brondata is tijdelijk niet beschikbaar. Probeer het later opnieuw."}],"properties":{"found":{"type":"boolean"},"address":{"type":"null"},"error":{"type":"string"},"message":{"type":"string"}},"required":["found","address","error","message"]}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"\/v1\/kadaster\/bag\/address-suggest":{"get":{"operationId":"kadaster.bag.address-suggest","description":"Returns address suggestions for autocomplete functionality based on a partial query.\nUseful for implementing address autocomplete in forms. Returns up to 10 suggestions\nwith full address details and BAG identifiers.\n\nResults are cached for 1 hour.","summary":"Address autocomplete suggestions","tags":["BAG \u2013 Addresses and Buildings Register","AddressSuggest"],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":100}},{"name":"limit","in":"query","schema":{"type":["integer","null"],"minimum":1,"maximum":25}}],"responses":{"200":{"description":"Address suggestions found","content":{"application\/json":{"schema":{"type":"object","examples":[{"suggestions":[{"id":"adr-1234567890123456","label":"Damrak 1, 1012LG Amsterdam","type":"adres","nummeraanduiding_id":"1234567890123456","verblijfsobject_id":"1234567890123456","postcode":"1012LG","house_number":1},{"id":"adr-1234567890123457","label":"Damrak 2, 1012LG Amsterdam","type":"adres","nummeraanduiding_id":"1234567890123457","verblijfsobject_id":"1234567890123457","postcode":"1012LG","house_number":2}]}],"properties":{"suggestions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"type":{"type":"string"},"nummeraanduiding_id":{"type":["string","null"]},"verblijfsobject_id":{"type":["string","null"]},"postcode":{"type":["string","null"]},"house_number":{"type":["integer","null"]}},"required":["id","label","type","nummeraanduiding_id","verblijfsobject_id","postcode","house_number"]}}},"required":["suggestions"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"\/v1\/kadaster\/bag\/id":{"get":{"operationId":"kadaster.bag.id","description":"Returns full BAG address data for a given BAG nummeraanduiding ID.\nThe nummeraanduiding ID is a 16-digit identifier from the BAG register.\n\nData is sourced from the PDOK BAG open API (Landelijke Voorziening BAG).\n\nResults are cached for 24 hours. The upstream timeout is 8 seconds;\nif PDOK is unavailable the endpoint returns HTTP 503.\n\nSource: [PDOK BAG](https:\/\/api.pdok.nl\/lv\/bag\/open-api\/v1_5)","summary":"Address lookup by nummeraanduiding ID","tags":["BAG \u2013 Addresses and Buildings Register","BagId"],"parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string","pattern":"^[0-9]{16}$"}}],"responses":{"200":{"description":"Address found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":true,"address":{"bag_nummeraanduiding_id":"0363200000218908","bag_verblijfsobject_id":"0363010000218908","bag_pand_ids":["0363100012165277"],"bag_openbare_ruimte_id":"0363300000006316","bag_woonplaats_id":"3594","street":"Damrak","short_name":"Damrak","house_number":1,"house_letter":null,"house_number_addition":null,"postcode":"1012LG","city":"Amsterdam","municipality":"Amsterdam","address_line":"Damrak 1","address_line_postal":"1012 LG  AMSTERDAM","usage_purposes":["retail"],"surface_area_m2":312,"build_year":1900,"status":"in_use","type":"residence","is_secondary_address":false,"is_observed":false,"in_investigation":null,"document_date":"2019-11-22","document_number":"19SZ2048","secondary_address_ids":[],"occurrence":null,"lat":52.3745,"lon":4.8986}}],"properties":{"found":{"type":"boolean"},"address":{"type":"object","properties":{"bag_nummeraanduiding_id":{"type":"string"},"bag_verblijfsobject_id":{"type":"string"},"bag_pand_ids":{"type":"array","items":{"type":"string"}},"bag_openbare_ruimte_id":{"type":"string"},"bag_woonplaats_id":{"type":"string"},"street":{"type":["string","null"]},"short_name":{"type":["string","null"]},"house_number":{"type":"integer"},"house_letter":{"type":["string","null"]},"house_number_addition":{"type":["string","null"]},"postcode":{"type":"string"},"city":{"type":"string"},"municipality":{"type":"string"},"address_line":{"type":"string"},"address_line_postal":{"type":"string"},"usage_purposes":{"type":"array","items":{"type":"string"}},"surface_area_m2":{"type":["integer","null"]},"build_year":{"type":["integer","null"]},"status":{"type":["string","null"]},"type":{"type":["string","null"]},"is_secondary_address":{"type":"boolean"},"is_observed":{"type":["boolean","null"]},"in_investigation":[],"document_date":{"type":["string","null"]},"document_number":{"type":["string","null"]},"secondary_address_ids":{"type":"array","items":{"type":"string"}},"occurrence":[],"lat":{"type":["number","null"]},"lon":{"type":["number","null"]}},"required":["bag_nummeraanduiding_id","bag_verblijfsobject_id","bag_pand_ids","bag_openbare_ruimte_id","bag_woonplaats_id","street","short_name","house_number","house_letter","house_number_addition","postcode","city","municipality","address_line","address_line_postal","usage_purposes","surface_area_m2","build_year","status","type","is_secondary_address","is_observed","in_investigation","document_date","document_number","secondary_address_ids","occurrence","lat","lon"]}},"required":["found","address"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"404":{"description":"Not found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":false,"address":null,"error":"not_found","message":"Niet gevonden."}],"properties":{"found":{"type":"boolean"},"address":{"type":"null"},"error":{"type":"string"},"message":{"type":"string"}},"required":["found","address","error","message"]}}}},"503":{"description":"Service temporarily unavailable","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":false,"address":null,"error":"upstream_unavailable","message":"De brondata is tijdelijk niet beschikbaar. Probeer het later opnieuw."}],"properties":{"found":{"type":"boolean"},"address":{"type":"null"},"error":{"type":"string"},"message":{"type":"string"}},"required":["found","address","error","message"]}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"\/v1\/cbs\/sbi":{"get":{"operationId":"cbs.sbi","description":"Returns all SBI codes from the local dataset. Optionally filter by `level` (1\u20135)\nand\/or `parent_code` to retrieve only the direct children of a given SBI code.\n\nLevels: 1 = sectie (A\u2013U), 2 = afdeling, 3 = groep, 4 = klasse, 5 = subklasse.\n\nSource: [CBS Standaard Bedrijfsindeling 2025](https:\/\/www.cbs.nl\/sbi)","summary":"SBI code index","tags":["CBS - SBI Codes","SbiIndex"],"parameters":[{"name":"level","in":"query","schema":{"type":["integer","null"],"minimum":1,"maximum":5}},{"name":"parent_code","in":"query","schema":{"type":["string","null"],"pattern":"^[A-Za-z0-9][A-Za-z0-9.]*$","maxLength":12}}],"responses":{"200":{"description":"List of SBI codes","content":{"application\/json":{"schema":{"type":"object","examples":[{"total":2,"results":[{"code":"A","code_numeric":"A","parent_code":null,"level":1,"title":"Landbouw, bosbouw en visserij","has_children":true},{"code":"01","code_numeric":"01","parent_code":"A","level":2,"title":"Landbouw, jacht en dienstverlening voor de landbouw en jacht","has_children":true}]}],"properties":{"total":{"type":"integer"},"results":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"code_numeric":{"type":"string"},"parent_code":{"type":["string","null"]},"level":{"type":"integer"},"title":{"type":"string"},"has_children":{"type":"boolean"}},"required":["code","code_numeric","parent_code","level","title","has_children"]}}},"required":["total","results"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"\/v1\/cbs\/sbi\/search":{"get":{"operationId":"cbs.sbi.search","description":"Searches through all SBI codes and titles using a free-text query.\nReturns up to 25 matches, ordered by level (broad \u2192 specific) and code.\n\nSource: [CBS Standaard Bedrijfsindeling 2025](https:\/\/www.cbs.nl\/sbi)","summary":"SBI code search","tags":["CBS - SBI Codes","SbiSearch"],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":100}},{"name":"limit","in":"query","schema":{"type":["integer","null"],"minimum":1,"maximum":100}}],"responses":{"200":{"description":"Search results","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":true,"query":"hypotheek","total":2,"results":[{"code":"64.92","code_numeric":"6492","title":"Overige kredietverstrekking","level":4},{"code":"64.92.3","code_numeric":"64923","title":"Hypotheekverstrekkers","level":5}]}],"properties":{"found":{"type":"boolean"},"query":{"type":"string"},"total":{"type":"integer"},"results":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"code_numeric":{"type":"string"},"title":{"type":["string","null"]},"level":{"type":"integer"}},"required":["code","code_numeric","title","level"]}}},"required":["found","query","total","results"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]}}},"\/v1\/cbs\/sbi\/{code}":{"get":{"operationId":"cbs.sbi.detail","description":"Returns the title, description, level and full classification path for a single SBI code.\nAccepts both the dotted CBS format (`64.92.3`) and the numeric format (`64923`).\n\nSource: [CBS Standaard Bedrijfsindeling 2025](https:\/\/www.cbs.nl\/sbi)","summary":"SBI code lookup","tags":["CBS - SBI Codes","Sbi"],"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","example":"64.92"}}],"responses":{"200":{"description":"SBI code found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":true,"code":"64.92.3","code_numeric":"64923","title":"Hypotheekverstrekkers","description":null,"level":5,"path":[{"code":"64","code_numeric":"64","title":"Financi\u00eble dienstverlening (geen verzekeringen en pensioenfondsen)"},{"code":"64.9","code_numeric":"649","title":"Financi\u00eble dienstverlening (geen verzekeringen en pensioenfondsen), overig"},{"code":"64.92","code_numeric":"6492","title":"Overige kredietverstrekking"},{"code":"64.92.3","code_numeric":"64923","title":"Hypotheekverstrekkers"}]}],"properties":{"found":{"type":"boolean"},"code":{"type":"string"},"code_numeric":{"type":"string"},"title":{"type":["string","null"]},"description":{"type":["string","null"]},"level":{"type":["integer","null"]},"path":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"code_numeric":{"type":"string"},"title":{"type":["string","null"]}},"required":["code","code_numeric","title"]}}},"required":["found","code","code_numeric","title","description","level","path"]}}}},"404":{"description":"Not found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":false,"code":"99.99.9","code_numeric":"99999","title":null,"description":null,"level":null,"path":[],"error":"not_found","message":"Niet gevonden."}],"properties":{"found":{"type":"boolean"},"code":{"type":"string"},"code_numeric":{"type":"string"},"title":{"type":"null"},"description":{"type":"null"},"level":{"type":"null"},"path":{"type":"array","items":[]},"error":{"type":"string"},"message":{"type":"string"}},"required":["found","code","code_numeric","title","description","level","path","error","message"]}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]}}},"\/v1\/lookup\/dns\/nameservers":{"get":{"operationId":"lookup.dns.nameservers","description":"Returns the NS records for the given domain. Results are cached for 10 minutes.","summary":"Nameserver lookup for a domain","tags":["DNS Lookup","DnsNameservers"],"parameters":[{"name":"domain","in":"query","required":true,"schema":{"type":"string","maxLength":253}}],"responses":{"200":{"description":"Nameservers found (or a domain with valid NS records)","content":{"application\/json":{"schema":{"type":"object","examples":[{"domain":"example.com","found":true,"nameservers":["a.iana-servers.net","b.iana-servers.net"]},{"domain":"niet-bestaand-domein.invalid","found":false,"nameservers":[]}],"properties":{"domain":{"type":"string"},"found":{"type":"boolean"},"nameservers":{"type":"array","items":{"type":"string"}}},"required":["domain","found","nameservers"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"\/v1\/lookup\/dns\/records":{"get":{"operationId":"lookup.dns.records","description":"Returns DNS records of the specified type for a domain.\n\nSupported types: A, AAAA, CNAME, MX, NS, TXT, SOA, PTR, SRV, ALL (default).\n\nResults are cached for 5 minutes.","summary":"DNS record lookup for a domain and record type","tags":["DNS Lookup","DnsRecords"],"parameters":[{"name":"domain","in":"query","required":true,"schema":{"type":"string","maxLength":253}},{"name":"type","in":"query","schema":{"type":["string","null"],"enum":["A","AAAA","CNAME","MX","NS","TXT","SOA","PTR","SRV","ALL"]}}],"responses":{"200":{"description":"DNS records found (of geen records voor dit type)","content":{"application\/json":{"schema":{"type":"object","examples":[{"domain":"example.com","type":"MX","found":true,"records":[{"type":"MX","domain":"example.com","ttl":3600,"pri":10,"target":"mail.example.com"}]},{"domain":"example.com","type":"TXT","found":false,"records":[]}],"properties":{"domain":{"type":"string"},"type":{"type":"string"},"found":{"type":"boolean"},"records":{"type":"array","items":{"type":"object","additionalProperties":[]}}},"required":["domain","type","found","records"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"\/v1\/validate\/dnsbl":{"post":{"operationId":"validation.dnsbl","description":"Checks an IP address against 5 public DNSBL \/ RBL zones (Spamhaus, SpamCop,\nSORBS, Barracuda, PSBL) by querying their DNS-based blacklists. This is a\nlightweight, realtime check without any external API calls or rate limits.\nResults are cached per IP for 1 hour.\n\nUseful for inbound mail filtering, form submission blocking, and general\nIP reputation checks. Combine with our email validation APIs for a full\nanti-spam suite.","summary":"Check an IP address against DNS-based blacklists (RBLs)","tags":["DNSBL \/ Spam Blacklist","Dnsbl"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"ip":{"type":"string"}},"required":["ip"]}}}},"responses":{"200":{"description":"DNSBL check found listings","content":{"application\/json":{"schema":{"type":"object","examples":[{"ip":"185.130.5.133","listed":true,"blacklists":[{"zone":"zen.spamhaus.org","listed":true,"return_code":"127.0.0.2","description":"SBL \u2014 Directe spam-bron"},{"zone":"bl.spamcop.net","listed":false,"return_code":null,"description":null},{"zone":"dnsbl.sorbs.net","listed":true,"return_code":"127.0.0.6","description":"SORBS \u2014 vari\u00ebrend per sub-code"},{"zone":"b.barracudacentral.org","listed":false,"return_code":null,"description":null},{"zone":"psbl.com","listed":false,"return_code":null,"description":null}],"total_checks":5,"listed_count":2}],"properties":{"ip":{"type":"string"},"listed":{"type":"boolean"},"blacklists":{"type":"array","items":{"type":"object","properties":{"zone":{"type":"string"},"listed":{"type":"boolean"},"return_code":{"type":["string","null"]},"description":{"type":["string","null"]}},"required":["zone","listed","return_code","description"]}},"total_checks":{"type":"integer"},"listed_count":{"type":"integer"}},"required":["ip","listed","blacklists","total_checks","listed_count"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"parameters":[]}},"\/v1\/dso\/documents":{"get":{"operationId":"dso.documents","description":"Searches environmental documents (Omgevingswet and Wro) in context for the\ngiven location. Returns all applicable plans, environmental plans and related\ndocuments. Accepts coordinates or a postcode.\n\nSource: [DSO Omgevingsinformatie Ontsluiten v2](https:\/\/developer.omgevingswet.overheid.nl\/api-register\/api\/omgevingsinformatie-ontsluiten\/)","summary":"Search environmental documents","tags":["DSO - Environmental information","DocumentenZoeken"],"parameters":[{"name":"lat","in":"query","schema":{"type":["number","null"],"minimum":-90,"maximum":90}},{"name":"lon","in":"query","schema":{"type":["number","null"],"minimum":-180,"maximum":180}},{"name":"postcode","in":"query","schema":{"type":["string","null"],"pattern":"^[1-9][0-9]{3}\\s?[A-Za-z]{2}$"}},{"name":"huisnummer","in":"query","schema":{"type":["integer","null"],"minimum":1,"maximum":99999}}],"responses":{"200":{"description":"Documents found","content":{"application\/json":{"schema":{"type":"object","examples":[{"_embedded":{"resultaten":[{"identificatie":"NL.IMRO.0363.A1234BPSTD-VG01","naam":"Bestemmingsplan Centrum","type":"bestemmingsplan","plan_url":"https:\/\/www.ruimtelijkeplannen.nl\/viewer\/viewer?planidn=NL.IMRO.0363.A1234BPSTD-VG01"}]}}],"properties":{"_embedded":{"type":"object","properties":{"resultaten":{"type":"array","items":{"type":"object","properties":{"identificatie":{"type":"string"},"naam":{"type":"string"},"type":{"type":"string"},"plan_url":{"type":"string"}},"required":["identificatie","naam","type","plan_url"]}}},"required":["resultaten"]}},"required":["_embedded"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"404":{"description":"Not found","content":{"application\/json":{"schema":{"type":"object","examples":[{"error":"not_found","message":"Not found."}],"properties":{"error":{"type":"string"},"message":{"type":"string"}},"required":["error","message"]}}}},"503":{"description":"Service temporarily unavailable","content":{"application\/json":{"schema":{"type":"object","examples":[{"error":"upstream_unavailable","message":"The upstream data source is temporarily unavailable. Please try again later."}],"properties":{"error":{"type":"string"},"message":{"type":"string"}},"required":["error","message"]}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"\/v1\/dso\/plans":{"get":{"operationId":"dso.plans","description":"Searches spatial plans (Wro) for the given location. Returns zoning plans,\nintegration plans and amendment plans that affect the location. Accepts\ncoordinates or a postcode.\n\nSource: [DSO Ruimtelijke Plannen Opvragen v4](https:\/\/developer.omgevingswet.overheid.nl\/api-register\/api\/rp-opvragen\/)","summary":"Search spatial plans","tags":["DSO - Environmental information","PlannenZoeken"],"parameters":[{"name":"lat","in":"query","schema":{"type":["number","null"],"minimum":-90,"maximum":90}},{"name":"lon","in":"query","schema":{"type":["number","null"],"minimum":-180,"maximum":180}},{"name":"postcode","in":"query","schema":{"type":["string","null"],"pattern":"^[1-9][0-9]{3}\\s?[A-Za-z]{2}$"}},{"name":"huisnummer","in":"query","schema":{"type":["integer","null"],"minimum":1,"maximum":99999}}],"responses":{"200":{"description":"Plans found","content":{"application\/json":{"schema":{"type":"object","examples":[{"_embedded":{"plannen":[{"id":"NL.IMRO.0363.A1234BPSTD-VG01","naam":"Bestemmingsplan Centrum","type":"bestemmingsplan","planstatusInfo":{"planstatus":"vastgesteld","datum":"2022-03-15"},"beleidsmatigVerantwoordelijkeOverheid":{"naam":"gemeente Amsterdam"},"plan_url":"https:\/\/www.ruimtelijkeplannen.nl\/viewer\/viewer?planidn=NL.IMRO.0363.A1234BPSTD-VG01"}]}}],"properties":{"_embedded":{"type":"object","properties":{"plannen":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"naam":{"type":"string"},"type":{"type":"string"},"planstatusInfo":{"type":["object","null"],"properties":{"planstatus":{"type":["string","null"]},"datum":{"type":["string","null"]}},"required":["planstatus","datum"]},"beleidsmatigVerantwoordelijkeOverheid":{"type":["object","null"],"properties":{"naam":{"type":["string","null"]}},"required":["naam"]},"plan_url":{"type":"string"}},"required":["id","naam","type","planstatusInfo","beleidsmatigVerantwoordelijkeOverheid","plan_url"]}}},"required":["plannen"]}},"required":["_embedded"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"404":{"description":"Not found","content":{"application\/json":{"schema":{"type":"object","examples":[{"error":"not_found","message":"Not found."}],"properties":{"error":{"type":"string"},"message":{"type":"string"}},"required":["error","message"]}}}},"503":{"description":"Service temporarily unavailable","content":{"application\/json":{"schema":{"type":"object","examples":[{"error":"upstream_unavailable","message":"The upstream data source is temporarily unavailable. Please try again later."}],"properties":{"error":{"type":"string"},"message":{"type":"string"}},"required":["error","message"]}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"\/v1\/validate\/email":{"post":{"operationId":"validation.email","description":"Checks the RFC format and verifies that the domain has a valid DNS or MX record.","summary":"Validate an email address","tags":["Email Validation","Email"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":255}},"required":["email"]}}}},"responses":{"200":{"description":"Email appears valid","content":{"application\/json":{"schema":{"type":"object","examples":[{"valid":true,"email":"user@example.com","checks":{"format":true,"domain_exists":true,"has_mx_record":true,"is_disposable":false},"message":"Email address appears valid."}],"properties":{"valid":{"type":"boolean"},"email":{"type":"string"},"checks":{"type":"object","properties":{"format":{"type":"boolean"},"domain_exists":{"type":"boolean"},"has_mx_record":{"type":"boolean"},"is_disposable":{"type":"boolean"}},"required":["format","domain_exists","has_mx_record","is_disposable"]},"message":{"type":"string"}},"required":["valid","email","checks","message"]}}}},"422":{"description":"Unprocessable content","content":{"application\/json":{"schema":{"type":"object","examples":[{"valid":false,"email":"invalid@","checks":{"format":false,"domain_exists":false,"has_mx_record":false,"is_disposable":false},"message":"Invalid email format."}],"properties":{"valid":{"type":"boolean"},"email":{"type":"string"},"checks":{"type":"object","properties":{"format":{"type":"boolean"},"domain_exists":{"type":"boolean"},"has_mx_record":{"type":"boolean"},"is_disposable":{"type":"boolean"}},"required":["format","domain_exists","has_mx_record","is_disposable"]},"message":{"type":"string"}},"required":["valid","email","checks","message"]}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"parameters":[]}},"\/v1\/validate\/email\/batch":{"post":{"operationId":"validation.email.batch","description":"Validates up to 25 email addresses in a single request.\nEach address is checked for RFC format and DNS\/MX record existence.","summary":"Validate a batch of email addresses","tags":["Email Validation","EmailBatch"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"emails":{"type":"array","items":{"type":"string","maxLength":255},"minItems":1,"maxItems":25}},"required":["emails"]}}}},"responses":{"200":{"description":"Batch validation results","content":{"application\/json":{"schema":{"type":"object","examples":[{"total":2,"valid_count":1,"invalid_count":1,"results":[{"valid":true,"email":"user@example.com","checks":{"format":true,"domain_exists":true,"has_mx_record":true,"is_disposable":false},"message":"Email address appears valid."},{"valid":false,"email":"invalid@","checks":{"format":false,"domain_exists":false,"has_mx_record":false,"is_disposable":false},"message":"Invalid email format."}]}],"properties":{"total":{"type":"integer"},"valid_count":{"type":"integer"},"invalid_count":{"type":"integer"},"results":{"type":"array","items":{"type":"object","properties":{"valid":{"type":"boolean"},"email":{"type":"string"},"checks":{"type":"object","properties":{"format":{"type":"boolean"},"domain_exists":{"type":"boolean"},"has_mx_record":{"type":"boolean"},"is_disposable":{"type":"boolean"}},"required":["format","domain_exists","has_mx_record","is_disposable"]},"message":{"type":"string"}},"required":["valid","email","checks","message"]}}},"required":["total","valid_count","invalid_count","results"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"parameters":[]}},"\/v1\/validate\/email\/disposable":{"post":{"operationId":"validation.email.disposable","description":"Checks the domain against a continuously updated blocklist of known\nthrowaway email services (Mailinator, Guerrilla Mail, 10minutemail, etc.).","summary":"Disposable email domain checker","tags":["Email Validation","DisposableEmail"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":255}},"required":["email"]}}}},"responses":{"200":{"description":"Domain check result","content":{"application\/json":{"schema":{"type":"object","examples":[{"disposable":false,"email":"user@example.com","domain":"example.com","message":"This domain is not known as disposable."},{"disposable":true,"email":"user@mailinator.com","domain":"mailinator.com","message":"This email uses a known disposable\/temporary domain."}],"properties":{"disposable":{"type":"boolean"},"email":{"type":"string"},"domain":{"type":"string"},"message":{"type":"string"}},"required":["disposable","email","domain","message"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"parameters":[]}},"\/v1\/lookup\/postcode":{"get":{"operationId":"lookup.postcode","description":"Returns address data for a Dutch postcode, optionally refined by house number.\nThere are multiple sources available with varying coverage and accuracy.","summary":"Zipcode lookup for the Netherlands","tags":["Geolocation services","Postcode"],"parameters":[{"name":"postcode","in":"query","required":true,"schema":{"type":"string","pattern":"^[1-9][0-9]{3}\\s?[A-Za-z]{2}$"}},{"name":"number","in":"query","schema":{"type":["integer","null"],"minimum":1,"maximum":99999}}],"responses":{"200":{"description":"Postcode found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":true,"postcode":"1011AB","street":"De Ruijterkade","city":"Amsterdam","municipality":"Amsterdam","number":null,"lat":52.37779461,"lon":4.90564828}],"properties":{"found":{"type":"boolean"},"postcode":{"type":"string"},"street":{"type":["string","null"]},"city":{"type":["string","null"]},"municipality":{"type":["string","null"]},"number":{"type":["integer","null"]},"lat":{"type":["number","null"]},"lon":{"type":["number","null"]}},"required":["found","postcode","street","city","municipality","number","lat","lon"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"404":{"description":"Not found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":false,"postcode":"9999ZZ","street":null,"city":null,"municipality":null,"number":null,"lat":null,"lon":null,"error":"not_found","message":"Niet gevonden."}],"properties":{"found":{"type":"boolean"},"postcode":{"type":"string"},"street":{"type":"null"},"city":{"type":"null"},"municipality":{"type":"null"},"number":{"type":"null"},"lat":{"type":"null"},"lon":{"type":"null"},"error":{"type":"string"},"message":{"type":"string"}},"required":["found","postcode","street","city","municipality","number","lat","lon","error","message"]}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"\/v1\/validate\/iban":{"post":{"operationId":"validation.iban","description":"Validates an IBAN (ISO 13616) fully offline: country-specific length + structure\nand the mod-97 check digit. Supported for 70+ countries. For Dutch IBANs the\nbank name and BIC are resolved from the bank code. An optional BIC can be\nsubmitted to validate its format.\n\nNo external\/network calls are made, so this endpoint is always available and\nhas no rate limits from any third party.","summary":"Validate an international IBAN \/ BIC","tags":["IBAN \/ BIC Validation","Iban"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"iban":{"type":"string","minLength":15,"maxLength":34},"bic":{"type":["string","null"],"maxLength":11}},"required":["iban"]}}}},"responses":{"200":{"description":"IBAN is valid","content":{"application\/json":{"schema":{"type":"object","examples":[{"valid":true,"iban":"NL91ABNA0417164300","country_code":"NL","bban":"ABNA0417164300","bank_code":"ABNA","bank_name":"ABN AMRO","bic":"ABNANL2A","message":"IBAN is geldig."}],"properties":{"valid":{"type":"boolean"},"iban":{"type":"string"},"country_code":{"type":"string"},"bban":{"type":"string"},"bank_code":{"type":["string","null"]},"bank_name":{"type":["string","null"]},"bic":{"type":["string","null"]},"message":{"type":"string"}},"required":["valid","iban","country_code","bban","bank_code","bank_name","bic","message"]}}}},"422":{"description":"Unprocessable content","content":{"application\/json":{"schema":{"type":"object","examples":[{"valid":false,"iban":"NL91ABNA0417164301","country_code":"NL","bban":"ABNA0417164301","bank_code":null,"bank_name":null,"bic":null,"message":"IBAN-controlecijfer klopt niet."}],"properties":{"valid":{"type":"boolean"},"iban":{"type":"string"},"country_code":{"type":"string"},"bban":{"type":"string"},"bank_code":{"type":["string","null"]},"bank_name":{"type":["string","null"]},"bic":{"type":["string","null"]},"message":{"type":"string"}},"required":["valid","iban","country_code","bban","bank_code","bank_name","bic","message"]}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"parameters":[]}},"\/v1\/lookup\/ip":{"get":{"operationId":"lookup.ip","description":"Returns location, ISP, organisation and hosting details for a given IP address.\nResults are cached for 1 hour.","summary":"Get ISP information and location details for an IP address","tags":["IP Location Lookup","IpLocation"],"parameters":[{"name":"ip","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"IP information found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":true,"ip":"8.8.8.8","isp":"Google LLC","org":"Google Public DNS","as":"AS15169 Google LLC","country":"United States","country_code":"US","region":"California","city":"Mountain View","zip":"94043","lat":37.4056,"lon":-122.0775,"is_hosting":false}],"properties":{"found":{"type":"boolean"},"ip":{"type":"string"},"isp":{"type":["string","null"]},"org":{"type":["string","null"]},"as":{"type":["string","null"]},"country":{"type":["string","null"]},"country_code":{"type":["string","null"]},"region":{"type":["string","null"]},"city":{"type":["string","null"]},"zip":{"type":["string","null"]},"lat":{"type":["number","null"]},"lon":{"type":["number","null"]},"is_hosting":{"type":"boolean"}},"required":["found","ip","isp","org","as","country","country_code","region","city","zip","lat","lon","is_hosting"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"404":{"description":"Not found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":false,"ip":"10.0.0.1","isp":null,"org":null,"as":null,"country":null,"country_code":null,"region":null,"city":null,"zip":null,"lat":null,"lon":null,"is_hosting":false,"error":"not_found","message":"Niet gevonden."}],"properties":{"found":{"type":"boolean"},"ip":{"type":"string"},"isp":{"type":"null"},"org":{"type":"null"},"as":{"type":"null"},"country":{"type":"null"},"country_code":{"type":"null"},"region":{"type":"null"},"city":{"type":"null"},"zip":{"type":"null"},"lat":{"type":"null"},"lon":{"type":"null"},"is_hosting":{"type":"boolean"},"error":{"type":"string"},"message":{"type":"string"}},"required":["found","ip","isp","org","as","country","country_code","region","city","zip","lat","lon","is_hosting","error","message"]}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"\/v1\/ndw\/laadpunten":{"get":{"operationId":"ndw.laadpunten","description":"Returns a list of all publicly accessible charging points in the Netherlands.\nData comes from the NDW Open Data platform (DOT-NL); each charging point\nincludes all available source fields, including the complete `availabilities`\n(counts, power, current type, tariff IDs and connector format per connector).\nOptionally paginate with `page` (plus `per_page`, max 500; only then does the\nresponse contain a `meta` block). Filter by city, status, availability or\nconnector type.","summary":"Charging points list","tags":["NDW - Charging points","NdwLaadpunten"],"parameters":[{"name":"city","in":"query","schema":{"type":["string","null"],"maxLength":100}},{"name":"status","in":"query","schema":{"type":["string","null"],"maxLength":32}},{"name":"connector_types[]","in":"query","schema":{"type":"array","items":{"type":"string","maxLength":64}}},{"name":"beschikbaar","in":"query","schema":{"type":["boolean","null"]}},{"name":"page","in":"query","schema":{"type":["integer","null"],"minimum":1}},{"name":"per_page","in":"query","schema":{"type":["integer","null"],"minimum":1,"maximum":500}}],"responses":{"200":{"description":"List of charging points","content":{"application\/json":{"schema":{"type":"object","examples":[{"total":1,"results":[{"id":"NL-ALL-NLLOC006433","name":null,"operator":"Allego","latitude":51.932396,"longitude":5.567213,"address":"Nedereindsestraat 27 d","city":null,"postal_code":null,"country":"NLD","cpo_id":"ALL","owner_name":"Allego","suboperator_name":null,"connector_types":["IEC_62196_T2"],"availabilities":[{"total":2,"available":2,"power_max":11040,"power_type":"AC3","tariff_ids":["1683"],"connector_type":"IEC_62196_T2","connector_format":"SOCKET"}],"status":"UNAVAILABLE","source_updated_at":"2026-05-14T12:10:00+00:00"}]}],"properties":{"total":{"type":"integer"},"meta":{"type":"object","properties":{"page":{"type":"integer"},"per_page":{"type":"integer"},"last_page":{"type":"integer"},"total":{"type":"integer"}},"required":["page","per_page","last_page","total"]},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":["string","null"]},"operator":{"type":["string","null"]},"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]},"address":{"type":["string","null"]},"city":{"type":["string","null"]},"postal_code":{"type":["string","null"]},"country":{"type":["string","null"]},"cpo_id":{"type":["string","null"]},"owner_name":{"type":["string","null"]},"suboperator_name":{"type":["string","null"]},"connector_types":{"type":"array","items":{"type":"string"}},"availabilities":{"type":"array","items":{"type":"object","properties":{"total":{"type":["integer","null"]},"available":{"type":["integer","null"]},"power_max":{"type":["number","null"]},"power_type":{"type":["string","null"]},"tariff_ids":{"type":"array","items":{"type":"string"}},"connector_type":{"type":["string","null"]},"connector_format":{"type":["string","null"]}},"required":["total","available","power_max","power_type","tariff_ids","connector_type","connector_format"]}},"status":{"type":["string","null"]},"source_updated_at":{"type":["string","null"]}},"required":["id","name","operator","latitude","longitude","address","city","postal_code","country","cpo_id","owner_name","suboperator_name","connector_types","availabilities","status","source_updated_at"]}}},"required":["total","results"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"\/v1\/ndw\/laadpunten\/{id}":{"get":{"operationId":"ndw.laadpunten.detail","description":"Returns the details of a single charging point by external ID (EVSEId or\nlocationId), including all available NDW fields and the complete availabilities.","summary":"Charging point detail","tags":["NDW - Charging points","NdwLaadpunt"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","example":"1"}}],"responses":{"200":{"description":"Charging point found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":true,"result":{"id":"NL-ALL-NLLOC006433","name":null,"operator":"Allego","latitude":51.932396,"longitude":5.567213,"address":"Nedereindsestraat 27 d","city":null,"postal_code":null,"country":"NLD","cpo_id":"ALL","owner_name":"Allego","suboperator_name":null,"connector_types":["IEC_62196_T2"],"availabilities":[{"total":2,"available":2,"power_max":11040,"power_type":"AC3","tariff_ids":["1683"],"connector_type":"IEC_62196_T2","connector_format":"SOCKET"}],"status":"UNAVAILABLE","source_updated_at":"2026-05-14T12:10:00+00:00"}}],"properties":{"found":{"type":"boolean"},"result":{"type":["object","null"],"properties":{"id":{"type":"string"},"name":{"type":["string","null"]},"operator":{"type":["string","null"]},"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]},"address":{"type":["string","null"]},"city":{"type":["string","null"]},"postal_code":{"type":["string","null"]},"country":{"type":["string","null"]},"cpo_id":{"type":["string","null"]},"owner_name":{"type":["string","null"]},"suboperator_name":{"type":["string","null"]},"connector_types":{"type":"array","items":{"type":"string"}},"availabilities":{"type":"array","items":{"type":"object","properties":{"total":{"type":["integer","null"]},"available":{"type":["integer","null"]},"power_max":{"type":["number","null"]},"power_type":{"type":["string","null"]},"tariff_ids":{"type":"array","items":{"type":"string"}},"connector_type":{"type":["string","null"]},"connector_format":{"type":["string","null"]}},"required":["total","available","power_max","power_type","tariff_ids","connector_type","connector_format"]}},"status":{"type":["string","null"]},"source_updated_at":{"type":["string","null"]}},"required":["id","name","operator","latitude","longitude","address","city","postal_code","country","cpo_id","owner_name","suboperator_name","connector_types","availabilities","status","source_updated_at"]}},"required":["found","result"]}}}},"404":{"description":"Not found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":false,"result":null,"error":"not_found","message":"Niet gevonden."}],"properties":{"found":{"type":"boolean"},"result":{"type":"null"},"error":{"type":"string"},"message":{"type":"string"}},"required":["found","result","error","message"]}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"\/v1\/ndw\/emissiezones":{"get":{"operationId":"ndw.emissiezones","description":"Returns an overview of all environmental zones (low-emission and zero-emission\nzones) in the Netherlands. Data comes from the NDW Open Data platform\n(DATEX II format). Optionally paginate with `page` (plus `per_page`, max 500;\nonly then does the response contain a `meta` block). Filter by zone type or city.","summary":"Emission zones list","tags":["NDW - Emission zones","NdwEmissiezones"],"parameters":[{"name":"zone_type","in":"query","schema":{"type":["string","null"],"enum":["low_emission","zero_emission"]}},{"name":"city","in":"query","schema":{"type":["string","null"],"maxLength":100}},{"name":"page","in":"query","schema":{"type":["integer","null"],"minimum":1}},{"name":"per_page","in":"query","schema":{"type":["integer","null"],"minimum":1,"maximum":500}}],"responses":{"200":{"description":"List of emission zones","content":{"application\/json":{"schema":{"type":"object","examples":[{"total":1,"results":[{"id":"NDW11_1022dd10-d4f5-47b1-9cc4-02219b3fb7b1","name":"Milieuzone Arnhem","city":"Arnhem","zone_type":"low_emission","controlled_zone_type":"lowemissionzone","status":"active","url_for_further_information":"https:\/\/www.arnhem.nl\/stad_en_wijken\/Wegen_en_vervoer\/milieuzones","regulation_id":"stcrt-2020-31211","access_restriction_type":"noEntry","geometry":{"type":"Polygon","coordinates":[[[5.87,51.97],[5.93,51.97],[5.93,51.99],[5.87,51.99],[5.87,51.97]]]},"vehicle_restrictions":[{"type":"condition_set","id":"NDW11_1022dd10-d4f5-47b1-9cc4-02219b3fb7b1_CS","label":"CS","operator":"and","conditions":[{"type":"validity_condition","id":"..._VAC","label":"VAC","validity_status":"definedByValidityTimeSpec","valid_from":"2025-03-01T00:00:00Z","valid_until":"2999-01-01T00:00:00Z"},{"type":"location_condition","id":"..._area","label":"area"},{"type":"vehicle_condition","id":"..._restriction_VC","label":"VC","vehicle_characteristics":{"fuelType":["diesel"],"vehicleType":["anyVehicle"]}},{"type":"condition_set","id":"..._EX_CS","label":"EX_CS","operator":"or","negate":true,"conditions":[{"type":"vehicle_condition","id":"..._oldtimerExemption_A","label":"A","vehicle_characteristics":{"comparisonOperator":["greaterThanOrEqualTo"],"vehicleAge":["40"]}}]}]}],"valid_from":"2025-03-01T00:00:00+00:00","valid_until":null}]}],"properties":{"total":{"type":"integer"},"meta":{"type":"object","properties":{"page":{"type":"integer"},"per_page":{"type":"integer"},"last_page":{"type":"integer"},"total":{"type":"integer"}},"required":["page","per_page","last_page","total"]},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":["string","null"]},"city":{"type":["string","null"]},"zone_type":{"type":["string","null"]},"controlled_zone_type":{"type":["string","null"]},"status":{"type":["string","null"]},"url_for_further_information":{"type":["string","null"]},"regulation_id":{"type":["string","null"]},"access_restriction_type":{"type":["string","null"]},"geometry":{"type":["object","null"],"additionalProperties":[]},"vehicle_restrictions":{"type":"array","items":{"type":"object","additionalProperties":[]}},"valid_from":{"type":["string","null"]},"valid_until":{"type":["string","null"]}},"required":["id","name","city","zone_type","controlled_zone_type","status","url_for_further_information","regulation_id","access_restriction_type","geometry","vehicle_restrictions","valid_from","valid_until"]}}},"required":["total","results"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"\/v1\/ndw\/emissiezones\/{id}":{"get":{"operationId":"ndw.emissiezones.detail","description":"Returns the details of a single emission zone by external ID, including the\nzone's GeoJSON geometry and vehicle restrictions.","summary":"Emission zone detail","tags":["NDW - Emission zones","NdwEmissiezone"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","example":"1"}}],"responses":{"200":{"description":"Emission zone found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":true,"result":{"id":"NDW11_1022dd10-d4f5-47b1-9cc4-02219b3fb7b1","name":"Milieuzone Arnhem","city":"Arnhem","zone_type":"low_emission","controlled_zone_type":"lowemissionzone","status":"active","url_for_further_information":"https:\/\/www.arnhem.nl\/stad_en_wijken\/Wegen_en_vervoer\/milieuzones","regulation_id":"stcrt-2020-31211","access_restriction_type":"noEntry","geometry":{"type":"Polygon","coordinates":[[[5.87,51.97],[5.93,51.97],[5.93,51.99],[5.87,51.99],[5.87,51.97]]]},"vehicle_restrictions":[{"type":"condition_set","id":"NDW11_1022dd10-d4f5-47b1-9cc4-02219b3fb7b1_CS","label":"CS","operator":"and","conditions":[{"type":"validity_condition","id":"..._VAC","label":"VAC","validity_status":"definedByValidityTimeSpec","valid_from":"2025-03-01T00:00:00Z","valid_until":"2999-01-01T00:00:00Z"},{"type":"location_condition","id":"..._area","label":"area"},{"type":"vehicle_condition","id":"..._restriction_VC","label":"VC","vehicle_characteristics":{"fuelType":["diesel"],"vehicleType":["anyVehicle"]}},{"type":"condition_set","id":"..._EX_CS","label":"EX_CS","operator":"or","negate":true,"conditions":[{"type":"vehicle_condition","id":"..._oldtimerExemption_A","label":"A","vehicle_characteristics":{"comparisonOperator":["greaterThanOrEqualTo"],"vehicleAge":["40"]}}]}]}],"valid_from":"2025-03-01T00:00:00+00:00","valid_until":null}}],"properties":{"found":{"type":"boolean"},"result":{"type":["object","null"],"properties":{"id":{"type":"string"},"name":{"type":["string","null"]},"city":{"type":["string","null"]},"zone_type":{"type":["string","null"]},"controlled_zone_type":{"type":["string","null"]},"status":{"type":["string","null"]},"url_for_further_information":{"type":["string","null"]},"regulation_id":{"type":["string","null"]},"access_restriction_type":{"type":["string","null"]},"geometry":{"type":["object","null"],"additionalProperties":[]},"vehicle_restrictions":{"type":"array","items":{"type":"object","additionalProperties":[]}},"valid_from":{"type":["string","null"]},"valid_until":{"type":["string","null"]}},"required":["id","name","city","zone_type","controlled_zone_type","status","url_for_further_information","regulation_id","access_restriction_type","geometry","vehicle_restrictions","valid_from","valid_until"]}},"required":["found","result"]}}}},"404":{"description":"Not found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":false,"result":null,"error":"not_found","message":"Niet gevonden."}],"properties":{"found":{"type":"boolean"},"result":{"type":"null"},"error":{"type":"string"},"message":{"type":"string"}},"required":["found","result","error","message"]}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"\/v1\/ndw\/truckparking":{"get":{"operationId":"ndw.truckparking","description":"Returns an overview of all truck parking locations in the Netherlands with\ncurrent occupancy information. Static location data is combined with dynamic\noccupancy status (DATEX II). Optionally paginate with `page` (plus `per_page`,\nmax 500; only then does the response contain a `meta` block). Filter by status,\navailability or road.","summary":"Truck parking list","tags":["NDW - Truckparking","NdwTruckparking"],"parameters":[{"name":"status","in":"query","schema":{"type":["string","null"],"enum":["available","full","closed","unknown"]}},{"name":"beschikbaar","in":"query","schema":{"type":["boolean","null"]}},{"name":"road","in":"query","schema":{"type":["string","null"],"maxLength":16}},{"name":"page","in":"query","schema":{"type":["integer","null"],"minimum":1}},{"name":"per_page","in":"query","schema":{"type":["integer","null"],"minimum":1,"maximum":500}}],"responses":{"200":{"description":"List of truck parking locations","content":{"application\/json":{"schema":{"type":"object","examples":[{"total":1,"results":[{"id":"NL-12_421","name":"Truckstop Venlo","latitude":51.39038,"longitude":6.108905,"city":"Venlo","road":"A67","address":"James Cookweg","house_number":"31","postal_code":"5928LJ","country":"nl","total_capacity":402,"available_spaces":1488,"status":"available","site_details":{"roads":[{"type":"primary","identifier":"A67","destination":"Onbekend","origination":null,"junction_name":"39","distance_to_this_road_m":1}],"tariffs":{"free_of_charge":false,"url":"https:\/\/truckparkingvenlo.nl","bands":[{"name":"Tarief per uur","currency":"eur","amount":1,"interval_seconds":3600}]},"facilities":[{"kind":"equipment","type":"electricChargingStation","availability":"available"}],"security":{"values":["cctv","fences","lighting","guard24hours"],"certified_secure_parking":true,"label_security_level":"securityLevel3","label_self_assessment":"securityLevel3"},"supervision":["patrol"],"reservation":"mandatory","usage_scenarios":["truckParking"],"spaces_groups":[{"group_index":0,"number_of_spaces":390,"type_of_group":"statisticsOnly","vehicle_characteristics":[{"assignment":"assigned_among_others","vehicleType":["lorry"]}]}],"record_version_time":"2024-03-19T08:47:28.943990Z"},"occupancy":{"vacant_spaces":1488,"occupied_spaces":0,"occupancy_percent":25.714285,"site_status":"spacesAvailable","origin_time":"2026-09-21T15:22:57.424423863Z","groups":[{"group_index":1,"vacant_spaces":248,"occupied_spaces":0,"occupancy_percent":30}]},"static_updated_at":"2026-04-29T00:00:00+00:00","dynamic_updated_at":"2026-05-14T13:47:00+00:00"}]}],"properties":{"total":{"type":"integer"},"meta":{"type":"object","properties":{"page":{"type":"integer"},"per_page":{"type":"integer"},"last_page":{"type":"integer"},"total":{"type":"integer"}},"required":["page","per_page","last_page","total"]},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":["string","null"]},"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]},"city":{"type":["string","null"]},"road":{"type":["string","null"]},"address":{"type":["string","null"]},"house_number":{"type":["string","null"]},"postal_code":{"type":["string","null"]},"country":{"type":["string","null"]},"total_capacity":{"type":["integer","null"]},"available_spaces":{"type":["integer","null"]},"status":{"type":["string","null"]},"site_details":{"type":["object","null"],"properties":{"roads":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"identifier":{"type":["string","null"]},"destination":{"type":["string","null"]},"origination":{"type":["string","null"]},"junction_name":{"type":["string","null"]},"distance_to_this_road_m":{"type":["integer","null"]}},"required":["type","identifier","destination","origination","junction_name","distance_to_this_road_m"]}},"tariffs":{"type":["object","null"],"properties":{"free_of_charge":{"type":["boolean","null"]},"url":{"type":["string","null"]},"bands":{"type":"array","items":{"type":"object","properties":{"name":{"type":["string","null"]},"currency":{"type":["string","null"]},"amount":{"type":["number","null"]},"interval_seconds":{"type":["integer","null"]}},"required":["name","currency","amount","interval_seconds"]}}},"required":["free_of_charge","url","bands"]},"facilities":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"type":{"type":["string","null"]},"availability":{"type":["string","null"]}},"required":["kind","type","availability"]}},"security":{"type":"object","properties":{"values":{"type":"array","items":{"type":"string"}},"certified_secure_parking":{"type":["boolean","null"]},"label_security_level":{"type":["string","null"]},"label_self_assessment":{"type":["string","null"]}},"required":["values","certified_secure_parking","label_security_level","label_self_assessment"]},"supervision":{"type":"array","items":{"type":"string"}},"reservation":{"type":["string","null"]},"usage_scenarios":{"type":"array","items":{"type":"string"}},"spaces_groups":{"type":"array","items":{"type":"object","properties":{"group_index":{"type":["integer","null"]},"number_of_spaces":{"type":["integer","null"]},"type_of_group":{"type":["string","null"]},"vehicle_characteristics":{"type":"array","items":{"type":"object","additionalProperties":[]}}},"required":["group_index","number_of_spaces","type_of_group","vehicle_characteristics"]}},"record_version_time":{"type":["string","null"]}},"required":["roads","tariffs","facilities","security","supervision","reservation","usage_scenarios","spaces_groups","record_version_time"]},"occupancy":{"type":["object","null"],"properties":{"vacant_spaces":{"type":["integer","null"]},"occupied_spaces":{"type":["integer","null"]},"occupancy_percent":{"type":["number","null"]},"site_status":{"type":["string","null"]},"origin_time":{"type":["string","null"]},"groups":{"type":"array","items":{"type":"object","properties":{"group_index":{"type":["integer","null"]},"vacant_spaces":{"type":["integer","null"]},"occupied_spaces":{"type":["integer","null"]},"occupancy_percent":{"type":["number","null"]}},"required":["group_index","vacant_spaces","occupied_spaces","occupancy_percent"]}}},"required":["vacant_spaces","occupied_spaces","occupancy_percent","site_status","origin_time","groups"]},"static_updated_at":{"type":["string","null"]},"dynamic_updated_at":{"type":["string","null"]}},"required":["id","name","latitude","longitude","city","road","address","house_number","postal_code","country","total_capacity","available_spaces","status","site_details","occupancy","static_updated_at","dynamic_updated_at"]}}},"required":["total","results"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"\/v1\/ndw\/truckparking\/{id}":{"get":{"operationId":"ndw.truckparking.detail","description":"Returns the details of a single truck parking location by external ID.","summary":"Truck parking detail","tags":["NDW - Truckparking","NdwTruckpark"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","example":"1"}}],"responses":{"200":{"description":"Truck parking location found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":true,"result":{"id":"NL-12_421","name":"Truckstop Venlo","latitude":51.39038,"longitude":6.108905,"city":"Venlo","road":"A67","address":"James Cookweg","house_number":"31","postal_code":"5928LJ","country":"nl","total_capacity":402,"available_spaces":1488,"status":"available","site_details":{"roads":[{"type":"primary","identifier":"A67","destination":"Onbekend","origination":null,"junction_name":"39","distance_to_this_road_m":1}],"tariffs":{"free_of_charge":false,"url":"https:\/\/truckparkingvenlo.nl","bands":[{"name":"Tarief per uur","currency":"eur","amount":1,"interval_seconds":3600}]},"facilities":[{"kind":"equipment","type":"electricChargingStation","availability":"available"}],"security":{"values":["cctv","fences","lighting","guard24hours"],"certified_secure_parking":true,"label_security_level":"securityLevel3","label_self_assessment":"securityLevel3"},"supervision":["patrol"],"reservation":"mandatory","usage_scenarios":["truckParking"],"spaces_groups":[{"group_index":0,"number_of_spaces":390,"type_of_group":"statisticsOnly","vehicle_characteristics":[{"assignment":"assigned_among_others","vehicleType":["lorry"]}]}],"record_version_time":"2024-03-19T08:47:28.943990Z"},"occupancy":{"vacant_spaces":1488,"occupied_spaces":0,"occupancy_percent":25.714285,"site_status":"spacesAvailable","origin_time":"2026-09-21T15:22:57.424423863Z","groups":[{"group_index":1,"vacant_spaces":248,"occupied_spaces":0,"occupancy_percent":30}]},"static_updated_at":"2026-04-29T00:00:00+00:00","dynamic_updated_at":"2026-05-14T13:47:00+00:00"}}],"properties":{"found":{"type":"boolean"},"result":{"type":["object","null"],"properties":{"id":{"type":"string"},"name":{"type":["string","null"]},"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]},"city":{"type":["string","null"]},"road":{"type":["string","null"]},"address":{"type":["string","null"]},"house_number":{"type":["string","null"]},"postal_code":{"type":["string","null"]},"country":{"type":["string","null"]},"total_capacity":{"type":["integer","null"]},"available_spaces":{"type":["integer","null"]},"status":{"type":["string","null"]},"site_details":{"type":["object","null"],"properties":{"roads":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"identifier":{"type":["string","null"]},"destination":{"type":["string","null"]},"origination":{"type":["string","null"]},"junction_name":{"type":["string","null"]},"distance_to_this_road_m":{"type":["integer","null"]}},"required":["type","identifier","destination","origination","junction_name","distance_to_this_road_m"]}},"tariffs":{"type":["object","null"],"properties":{"free_of_charge":{"type":["boolean","null"]},"url":{"type":["string","null"]},"bands":{"type":"array","items":{"type":"object","properties":{"name":{"type":["string","null"]},"currency":{"type":["string","null"]},"amount":{"type":["number","null"]},"interval_seconds":{"type":["integer","null"]}},"required":["name","currency","amount","interval_seconds"]}}},"required":["free_of_charge","url","bands"]},"facilities":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"type":{"type":["string","null"]},"availability":{"type":["string","null"]}},"required":["kind","type","availability"]}},"security":{"type":"object","properties":{"values":{"type":"array","items":{"type":"string"}},"certified_secure_parking":{"type":["boolean","null"]},"label_security_level":{"type":["string","null"]},"label_self_assessment":{"type":["string","null"]}},"required":["values","certified_secure_parking","label_security_level","label_self_assessment"]},"supervision":{"type":"array","items":{"type":"string"}},"reservation":{"type":["string","null"]},"usage_scenarios":{"type":"array","items":{"type":"string"}},"spaces_groups":{"type":"array","items":{"type":"object","properties":{"group_index":{"type":["integer","null"]},"number_of_spaces":{"type":["integer","null"]},"type_of_group":{"type":["string","null"]},"vehicle_characteristics":{"type":"array","items":{"type":"object","additionalProperties":[]}}},"required":["group_index","number_of_spaces","type_of_group","vehicle_characteristics"]}},"record_version_time":{"type":["string","null"]}},"required":["roads","tariffs","facilities","security","supervision","reservation","usage_scenarios","spaces_groups","record_version_time"]},"occupancy":{"type":["object","null"],"properties":{"vacant_spaces":{"type":["integer","null"]},"occupied_spaces":{"type":["integer","null"]},"occupancy_percent":{"type":["number","null"]},"site_status":{"type":["string","null"]},"origin_time":{"type":["string","null"]},"groups":{"type":"array","items":{"type":"object","properties":{"group_index":{"type":["integer","null"]},"vacant_spaces":{"type":["integer","null"]},"occupied_spaces":{"type":["integer","null"]},"occupancy_percent":{"type":["number","null"]}},"required":["group_index","vacant_spaces","occupied_spaces","occupancy_percent"]}}},"required":["vacant_spaces","occupied_spaces","occupancy_percent","site_status","origin_time","groups"]},"static_updated_at":{"type":["string","null"]},"dynamic_updated_at":{"type":["string","null"]}},"required":["id","name","latitude","longitude","city","road","address","house_number","postal_code","country","total_capacity","available_spaces","status","site_details","occupancy","static_updated_at","dynamic_updated_at"]}},"required":["found","result"]}}}},"404":{"description":"Not found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":false,"result":null,"error":"not_found","message":"Niet gevonden."}],"properties":{"found":{"type":"boolean"},"result":{"type":"null"},"error":{"type":"string"},"message":{"type":"string"}},"required":["found","result","error","message"]}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]}}},"\/v1\/property\/pandgegevens":{"get":{"operationId":"property.pandgegevens","description":"Returns combined property data for a Dutch address: Address details + BAG identifiers, Energy label info,\nproperty value (WOZ waarde), spatial planning data, and environmental information.\n\nThe `energy_labels` block contains every EP-Online label for this address\n(complete records, including history); `energy_label`, `energy_details` and\n`building` continue to expose the most recent label in subset form.\n\nThis API combines multiple data sources and provides comprehensive property information\nthat is not easily available elsewhere. Also keep in mind that due the multiple underlying\nAPI calls, the response time for this endpoint may be longer than typical lookup endpoints, especially on cache misses.\n\nResults are cached for 24 hours.","summary":"Property data lookup (pandgegevens)","tags":["Property data","Pandgegevens"],"parameters":[{"name":"postcode","in":"query","required":true,"schema":{"type":"string","pattern":"^[1-9][0-9]{3}\\s?[A-Za-z]{2}$"}},{"name":"house_number","in":"query","required":true,"schema":{"type":"integer","minimum":1,"maximum":99999}},{"name":"house_letter","in":"query","schema":{"type":["string","null"],"pattern":"^[a-zA-Z]{1}$"}},{"name":"house_number_addition","in":"query","schema":{"type":["string","null"],"pattern":"^[a-zA-Z0-9]{1,4}$","maxLength":4}}],"responses":{"200":{"description":"Property data found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":true,"address":{"bag_nummeraanduiding_id":"0363200000218908","bag_verblijfsobject_id":"0363010000218908","bag_pand_ids":["0363100012165277"],"bag_openbare_ruimte_id":"0363300000006316","bag_woonplaats_id":"3594","street":"Damrak","short_name":"Damrak","house_number":1,"house_letter":null,"house_number_addition":null,"postcode":"1012LG","city":"Amsterdam","municipality":"Amsterdam","address_line":"Damrak 1","address_line_postal":"1012 LG  AMSTERDAM","usage_purposes":["retail"],"surface_area_m2":312,"build_year":1900,"status":"in_use","type":"residence","is_secondary_address":false,"is_observed":false,"in_investigation":null,"document_date":"2019-11-22","document_number":"19SZ2048","secondary_address_ids":[],"occurrence":null,"lat":52.3745,"lon":4.8986},"bag_identifiers":{"nummeraanduiding_id":"1234567890123456","verblijfsobject_id":"1234567890123456","openbareruimte_id":"1234567890123456"},"energy_labels":[{"registration_date":"2024-08-30T22:25:14.623","recording_date":"2024-08-26T00:00:00","valid_until":"2034-08-26T00:00:00","certificate_holder":"Prosperos B.V.","recording_type":"Basisopname","status":"Bestaand","calculation_type":"NTA 8800:2024 (basisopname utiliteitsbouw)","is_simplified_label":null,"based_on_reference_building":false,"building_class":"Utiliteitsbouw","building_type":null,"building_subtype":null,"sbi_code":null,"zipcode":"1012LG","house_number":1,"house_letter":null,"house_number_addition":null,"detail_description":null,"bag_residence_id":"0363010012111931","bag_mooring_id":null,"bag_stand_id":null,"bag_building_ids":["0363100012185508"],"construction_year":1890,"usable_area_thermal_zone":16131.58,"compactness":0.51,"energy_class":"A+","energy_index":null,"energy_index_emg_forfeit":null,"energy_demand":112.77,"primary_fossil_energy":177.25,"primary_fossil_energy_emg_forfeit":null,"renewable_energy_share":19.4,"renewable_energy_share_emg_forfeit":null,"temperature_overrun":null,"heat_demand":74.62,"requirement_energy_demand":null,"requirement_primary_fossil_energy":null,"requirement_renewable_energy_share":null,"requirement_temperature_overrun":null,"calculated_co2_emission":36.99,"calculated_energy_consumption":177.24}],"energy_label":{"label":"C","energy_class":"C","energy_index":1.4,"building_class":"residential","building_type":"apartment","building_subtype":"corner_apartment","construction_year":1925,"calculated_co2_emission":12.5,"calculated_energy_consumption":85.3,"registration_date":"2024-01-01","valid_until":"2034-01-01"},"energy_details":{"recording":{"recording_date":"2024-01-01","recording_type":"full_calculation","certificate_holder":"Example Company","status":"valid","calculation_type":"detailed","is_simplified_label":false,"based_on_reference_building":false},"energy_performance":{"energy_index_emg_forfeit":1.35,"energy_demand":75.2,"primary_fossil_energy":120.5,"primary_fossil_energy_emg_forfeit":118.3,"renewable_energy_share":15.2,"renewable_energy_share_emg_forfeit":16.8,"temperature_overrun":2.1,"heat_demand":45.8},"requirements":{"energy_demand":70,"primary_fossil_energy":115,"renewable_energy_share":14,"temperature_overrun":2},"bag_building_ids":["1234567890123456"],"sbi_code":"4110","detail_description":"Detailed building description"},"property_value":{"amount":475000,"reference_date":"2024-01-01","history":[{"amount":450000,"reference_date":"2023-01-01"},{"amount":425000,"reference_date":"2022-01-01"},{"amount":400000,"reference_date":"2021-01-01"}]},"building":{"surface_area":72,"construction_year":1925,"type":"residential","subtype":"apartment","class":"residential","compactness":0.85},"spatial_planning":{"agrarisch":false,"type":"Wonen","plan":"Bestemmingsplan Centrum","plan_id":"NL.IMRO.1234.BP1234","plan_url":"https:\/\/www.ruimtelijkeplannen.nl\/viewer\/viewer?planidn=NL.IMRO.1234.BP1234","plan_status":"vastgesteld","plan_datum":"2023-06-15","overheid":"Gemeente Voorbeeldstad","bestemmingsvlak":{"id":"12345","naam":"Wonen","type":"bestemmingsvlak","bestemmingshoofdgroep":"Wonen","artikelnummer":"3.1","verwijzingNaarTekst":["Artikel 3 Wonen"]},"plannen":[],"copyright":"Gegevens geleverd door Digitaal Stelsel Omgevingswet (DSO-LV) onder CC-BY licentie."},"environmental_info":{"mogelijk":true,"reden":"Woonfunctie aanwezig in bestemmingsvlak.","bestemming":"Wonen","plan_url":"https:\/\/www.ruimtelijkeplannen.nl\/viewer\/viewer?planidn=NL.IMRO.1234.BP1234","bestemmingsvlak":{"id":"12345","naam":"Wonen","type":"bestemmingsvlak","bestemmingshoofdgroep":"Wonen","artikelnummer":"3.1","verwijzingNaarTekst":["Artikel 3 Wonen"]},"documenten":[],"copyright":"Gegevens geleverd door Digitaal Stelsel Omgevingswet (DSO-LV) onder CC-BY licentie."}}],"properties":{"found":{"type":"boolean"},"address":{"type":["object","null"],"properties":{"bag_nummeraanduiding_id":{"type":["string","null"]},"bag_verblijfsobject_id":{"type":["string","null"]},"bag_pand_ids":{"type":"array","items":{"type":"string"}},"bag_openbare_ruimte_id":{"type":["string","null"]},"bag_woonplaats_id":{"type":["string","null"]},"street":{"type":["string","null"]},"short_name":{"type":["string","null"]},"house_number":{"type":["integer","null"]},"house_letter":{"type":["string","null"]},"house_number_addition":{"type":["string","null"]},"postcode":{"type":["string","null"]},"city":{"type":["string","null"]},"municipality":{"type":["string","null"]},"address_line":{"type":["string","null"]},"address_line_postal":{"type":["string","null"]},"usage_purposes":{"type":"array","items":{"type":"string"}},"surface_area_m2":{"type":["integer","null"]},"build_year":{"type":["integer","null"]},"status":{"type":["string","null"]},"type":{"type":["string","null"]},"is_secondary_address":{"type":"boolean"},"is_observed":{"type":["boolean","null"]},"in_investigation":[],"document_date":{"type":["string","null"]},"document_number":{"type":["string","null"]},"secondary_address_ids":{"type":"array","items":{"type":"string"}},"occurrence":[],"lat":{"type":["number","null"]},"lon":{"type":["number","null"]}},"required":["bag_nummeraanduiding_id","bag_verblijfsobject_id","bag_pand_ids","bag_openbare_ruimte_id","bag_woonplaats_id","street","short_name","house_number","house_letter","house_number_addition","postcode","city","municipality","address_line","address_line_postal","usage_purposes","surface_area_m2","build_year","status","type","is_secondary_address","is_observed","in_investigation","document_date","document_number","secondary_address_ids","occurrence","lat","lon"]},"bag_identifiers":{"type":"object","properties":{"nummeraanduiding_id":{"type":["string","null"]},"verblijfsobject_id":{"type":["string","null"]},"openbareruimte_id":{"type":["string","null"]}},"required":["nummeraanduiding_id","verblijfsobject_id","openbareruimte_id"]},"energy_labels":{"type":"array","items":{"type":"object","additionalProperties":[]}},"energy_label":{"type":["object","null"],"properties":{"label":{"type":["string","null"]},"energy_class":{"type":["string","null"]},"energy_index":{"type":["number","null"]},"building_class":{"type":["string","null"]},"building_type":{"type":["string","null"]},"building_subtype":{"type":["string","null"]},"construction_year":{"type":["integer","null"]},"calculated_co2_emission":{"type":["number","null"]},"calculated_energy_consumption":{"type":["number","null"]},"registration_date":{"type":["string","null"]},"valid_until":{"type":["string","null"]}},"required":["label","energy_class","energy_index","building_class","building_type","building_subtype","construction_year","calculated_co2_emission","calculated_energy_consumption","registration_date","valid_until"]},"energy_details":{"type":["object","null"],"properties":{"recording":{"type":"object","properties":{"recording_date":{"type":["string","null"]},"recording_type":{"type":["string","null"]},"certificate_holder":{"type":["string","null"]},"status":{"type":["string","null"]},"calculation_type":{"type":["string","null"]},"is_simplified_label":{"type":["boolean","null"]},"based_on_reference_building":{"type":["boolean","null"]}},"required":["recording_date","recording_type","certificate_holder","status","calculation_type","is_simplified_label","based_on_reference_building"]},"energy_performance":{"type":"object","properties":{"energy_index_emg_forfeit":{"type":["number","null"]},"energy_demand":{"type":["number","null"]},"primary_fossil_energy":{"type":["number","null"]},"primary_fossil_energy_emg_forfeit":{"type":["number","null"]},"renewable_energy_share":{"type":["number","null"]},"renewable_energy_share_emg_forfeit":{"type":["number","null"]},"temperature_overrun":{"type":["number","null"]},"heat_demand":{"type":["number","null"]}},"required":["energy_index_emg_forfeit","energy_demand","primary_fossil_energy","primary_fossil_energy_emg_forfeit","renewable_energy_share","renewable_energy_share_emg_forfeit","temperature_overrun","heat_demand"]},"requirements":{"type":"object","properties":{"energy_demand":{"type":["number","null"]},"primary_fossil_energy":{"type":["number","null"]},"renewable_energy_share":{"type":["number","null"]},"temperature_overrun":{"type":["number","null"]}},"required":["energy_demand","primary_fossil_energy","renewable_energy_share","temperature_overrun"]},"bag_building_ids":{"type":"array","items":{"type":"string"}},"sbi_code":{"type":["string","null"]},"detail_description":{"type":["string","null"]}},"required":["recording","energy_performance","requirements","bag_building_ids","sbi_code","detail_description"]},"property_value":{"type":["object","null"],"properties":{"amount":{"type":["integer","null"]},"reference_date":{"type":["string","null"]},"history":{"type":"array","items":{"type":"object","properties":{"amount":{"type":["integer","null"]},"reference_date":{"type":["string","null"]}},"required":["amount","reference_date"]}}},"required":["amount","reference_date","history"]},"building":{"type":["object","null"],"properties":{"surface_area":{"type":["integer","null"]},"construction_year":{"type":["integer","null"]},"type":{"type":["string","null"]},"subtype":{"type":["string","null"]},"class":{"type":["string","null"]},"compactness":{"type":["number","null"]}},"required":["surface_area","construction_year","type","subtype","class","compactness"]},"spatial_planning":{"type":["object","null"],"additionalProperties":[]},"environmental_info":{"type":["object","null"],"additionalProperties":[]}},"required":["found"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"404":{"description":"Not found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":false,"error":"not_found","message":"Niet gevonden."}],"properties":{"found":{"type":"boolean"},"error":{"type":"string"},"message":{"type":"string"}},"required":["found","error","message"]}}}}}}},"\/v1\/property\/pandgegevens-lite":{"get":{"operationId":"property.pandgegevens-lite","description":"Returns property data for a Dutch address: Address details + BAG identifiers, energy label info,\nand building characteristics. The `energy_labels` block contains all EP-Online\nlabels (complete records); the summary blocks show the most recent label.\nThis is the lightweight (\"lite\") version of the pandgegevens API:\nit deliberately omits the costly WOZ-waarde and DSO spatial\/environmental data for a faster\nand cheaper response. For those, use the full `pandgegevens` API.\n\nResults are cached for 24 hours.","summary":"Lightweight property data lookup (pandgegevens lite)","tags":["Property data","PandgegevensLite"],"parameters":[{"name":"postcode","in":"query","required":true,"schema":{"type":"string","pattern":"^[1-9][0-9]{3}\\s?[A-Za-z]{2}$"}},{"name":"house_number","in":"query","required":true,"schema":{"type":"integer","minimum":1,"maximum":99999}},{"name":"house_letter","in":"query","schema":{"type":["string","null"],"pattern":"^[a-zA-Z]{1}$"}},{"name":"house_number_addition","in":"query","schema":{"type":["string","null"],"pattern":"^[a-zA-Z0-9]{1,4}$","maxLength":4}}],"responses":{"200":{"description":"Property data found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":true,"address":{"bag_nummeraanduiding_id":"0363200000218908","bag_verblijfsobject_id":"0363010000218908","bag_pand_ids":["0363100012165277"],"bag_openbare_ruimte_id":"0363300000006316","bag_woonplaats_id":"3594","street":"Damrak","short_name":"Damrak","house_number":1,"house_letter":null,"house_number_addition":null,"postcode":"1012LG","city":"Amsterdam","municipality":"Amsterdam","address_line":"Damrak 1","address_line_postal":"1012 LG  AMSTERDAM","usage_purposes":["retail"],"surface_area_m2":312,"build_year":1900,"status":"in_use","type":"residence","is_secondary_address":false,"is_observed":false,"in_investigation":null,"document_date":"2019-11-22","document_number":"19SZ2048","secondary_address_ids":[],"occurrence":null,"lat":52.3745,"lon":4.8986},"bag_identifiers":{"nummeraanduiding_id":"0363200000218908","verblijfsobject_id":"0363010000218908","openbareruimte_id":"0363300000006316"},"energy_labels":[{"registration_date":"2024-08-30T22:25:14.623","recording_date":"2024-08-26T00:00:00","valid_until":"2034-08-26T00:00:00","certificate_holder":"Prosperos B.V.","recording_type":"Basisopname","status":"Bestaand","calculation_type":"NTA 8800:2024 (basisopname utiliteitsbouw)","is_simplified_label":null,"based_on_reference_building":false,"building_class":"Utiliteitsbouw","building_type":null,"building_subtype":null,"sbi_code":null,"zipcode":"1012LG","house_number":1,"house_letter":null,"house_number_addition":null,"detail_description":null,"bag_residence_id":"0363010012111931","bag_mooring_id":null,"bag_stand_id":null,"bag_building_ids":["0363100012185508"],"construction_year":1890,"usable_area_thermal_zone":16131.58,"compactness":0.51,"energy_class":"A+","energy_index":null,"energy_index_emg_forfeit":null,"energy_demand":112.77,"primary_fossil_energy":177.25,"primary_fossil_energy_emg_forfeit":null,"renewable_energy_share":19.4,"renewable_energy_share_emg_forfeit":null,"temperature_overrun":null,"heat_demand":74.62,"requirement_energy_demand":null,"requirement_primary_fossil_energy":null,"requirement_renewable_energy_share":null,"requirement_temperature_overrun":null,"calculated_co2_emission":36.99,"calculated_energy_consumption":177.24}],"energy_label":{"label":"C","energy_class":"C","energy_index":1.4,"building_class":"residential","building_type":"apartment","building_subtype":"corner_apartment","construction_year":1925,"calculated_co2_emission":12.5,"calculated_energy_consumption":85.3,"registration_date":"2024-01-01","valid_until":"2034-01-01"},"energy_details":{"recording":{"recording_date":"2024-01-01","recording_type":"full_calculation","certificate_holder":"Example Company","status":"valid","calculation_type":"detailed","is_simplified_label":false,"based_on_reference_building":false},"energy_performance":{"energy_index_emg_forfeit":1.35,"energy_demand":75.2,"primary_fossil_energy":120.5,"primary_fossil_energy_emg_forfeit":118.3,"renewable_energy_share":15.2,"renewable_energy_share_emg_forfeit":16.8,"temperature_overrun":2.1,"heat_demand":45.8},"requirements":{"energy_demand":70,"primary_fossil_energy":115,"renewable_energy_share":14,"temperature_overrun":2},"bag_building_ids":["0363100012165277"],"sbi_code":"4110","detail_description":"Detailed building description"},"building":{"surface_area":72,"construction_year":1925,"type":"residential","subtype":"apartment","class":"residential","compactness":0.85}}],"properties":{"found":{"type":"boolean"},"address":{"type":"object","properties":{"bag_nummeraanduiding_id":{"type":"string"},"bag_verblijfsobject_id":{"type":"string"},"bag_pand_ids":{"type":"array","items":{"type":"string"}},"bag_openbare_ruimte_id":{"type":"string"},"bag_woonplaats_id":{"type":"string"},"street":{"type":["string","null"]},"short_name":{"type":["string","null"]},"house_number":{"type":"integer"},"house_letter":{"type":["string","null"]},"house_number_addition":{"type":["string","null"]},"postcode":{"type":"string"},"city":{"type":"string"},"municipality":{"type":"string"},"address_line":{"type":"string"},"address_line_postal":{"type":"string"},"usage_purposes":{"type":"array","items":{"type":"string"}},"surface_area_m2":{"type":["integer","null"]},"build_year":{"type":["integer","null"]},"status":{"type":["string","null"]},"type":{"type":["string","null"]},"is_secondary_address":{"type":"boolean"},"is_observed":{"type":["boolean","null"]},"in_investigation":[],"document_date":{"type":["string","null"]},"document_number":{"type":["string","null"]},"secondary_address_ids":{"type":"array","items":{"type":"string"}},"occurrence":[],"lat":{"type":["number","null"]},"lon":{"type":["number","null"]}},"required":["bag_nummeraanduiding_id","bag_verblijfsobject_id","bag_pand_ids","bag_openbare_ruimte_id","bag_woonplaats_id","street","short_name","house_number","house_letter","house_number_addition","postcode","city","municipality","address_line","address_line_postal","usage_purposes","surface_area_m2","build_year","status","type","is_secondary_address","is_observed","in_investigation","document_date","document_number","secondary_address_ids","occurrence","lat","lon"]},"bag_identifiers":{"type":"object","properties":{"nummeraanduiding_id":{"type":"string"},"verblijfsobject_id":{"type":"string"},"openbareruimte_id":{"type":"string"}},"required":["nummeraanduiding_id","verblijfsobject_id","openbareruimte_id"]},"energy_labels":{"type":"array","items":{"type":"object","additionalProperties":[]}},"energy_label":{"type":["object","null"],"properties":{"label":{"type":["string","null"]},"energy_class":{"type":["string","null"]},"energy_index":{"type":["number","null"]},"building_class":{"type":["string","null"]},"building_type":{"type":["string","null"]},"building_subtype":{"type":["string","null"]},"construction_year":{"type":["integer","null"]},"calculated_co2_emission":{"type":["number","null"]},"calculated_energy_consumption":{"type":["number","null"]},"registration_date":{"type":["string","null"]},"valid_until":{"type":["string","null"]}},"required":["label","energy_class","energy_index","building_class","building_type","building_subtype","construction_year","calculated_co2_emission","calculated_energy_consumption","registration_date","valid_until"]},"energy_details":{"type":["object","null"],"properties":{"recording":{"type":"object","properties":{"recording_date":{"type":["string","null"]},"recording_type":{"type":["string","null"]},"certificate_holder":{"type":["string","null"]},"status":{"type":["string","null"]},"calculation_type":{"type":["string","null"]},"is_simplified_label":{"type":["boolean","null"]},"based_on_reference_building":{"type":["boolean","null"]}},"required":["recording_date","recording_type","certificate_holder","status","calculation_type","is_simplified_label","based_on_reference_building"]},"energy_performance":{"type":"object","properties":{"energy_index_emg_forfeit":{"type":["number","null"]},"energy_demand":{"type":["number","null"]},"primary_fossil_energy":{"type":["number","null"]},"primary_fossil_energy_emg_forfeit":{"type":["number","null"]},"renewable_energy_share":{"type":["number","null"]},"renewable_energy_share_emg_forfeit":{"type":["number","null"]},"temperature_overrun":{"type":["number","null"]},"heat_demand":{"type":["number","null"]}},"required":["energy_index_emg_forfeit","energy_demand","primary_fossil_energy","primary_fossil_energy_emg_forfeit","renewable_energy_share","renewable_energy_share_emg_forfeit","temperature_overrun","heat_demand"]},"requirements":{"type":"object","properties":{"energy_demand":{"type":["number","null"]},"primary_fossil_energy":{"type":["number","null"]},"renewable_energy_share":{"type":["number","null"]},"temperature_overrun":{"type":["number","null"]}},"required":["energy_demand","primary_fossil_energy","renewable_energy_share","temperature_overrun"]},"bag_building_ids":{"type":["array","null"],"items":{"type":"string"}},"sbi_code":{"type":["string","null"]},"detail_description":{"type":["string","null"]}},"required":["recording","energy_performance","requirements","bag_building_ids","sbi_code","detail_description"]},"building":{"type":"object","properties":{"surface_area":{"type":["integer","null"]},"construction_year":{"type":["integer","null"]},"type":{"type":["string","null"]},"subtype":{"type":["string","null"]},"class":{"type":["string","null"]},"compactness":{"type":["number","null"]}},"required":["surface_area","construction_year","type","subtype","class","compactness"]}},"required":["found","address","bag_identifiers","energy_labels","energy_label","energy_details","building"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"404":{"description":"Not found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":false,"error":"not_found","message":"Niet gevonden."}],"properties":{"found":{"type":"boolean"},"error":{"type":"string"},"message":{"type":"string"}},"required":["found","error","message"]}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]}}},"\/v1\/property\/woz-waarde":{"get":{"operationId":"property.woz-waarde","description":"Returns the Dutch government property assessment value (WOZ-waarde) for a property,\nincluding the historical values of the last three years. Alongside the value, the\nground area of the WOZ object (grondoppervlakte) and the linked cadastral parcel\n(kadastrale gemeente code, sectie and perceelnummer) are returned.\nThe endpoint accepts either a BAG nummeraanduiding identificatie directly, or a\nDutch address (postcode + house number, optionally with a house letter or number\naddition).\n\nWhen an address is supplied, the BAG (PDOK Locatieserver) is queried first to resolve\nthe nummeraanduiding identifier, after which the public sources are queried.\nWhen a nummeraanduiding ID is supplied directly, we try to fetch the WOZ value from the public sources.\n\nResults are cached for 30 days.\n\nFor some requests we use upstream servers with a default timeout of 8 seconds.\n\nSource: Public sources","summary":"WOZ-value lookup (WOZ-waarde)","tags":["Property data","WozWaarde"],"parameters":[{"name":"id","in":"query","schema":{"type":["string","null"],"pattern":"^[0-9]{16}$"}},{"name":"postcode","in":"query","schema":{"type":["string","null"],"pattern":"^[1-9][0-9]{3}\\s?[A-Za-z]{2}$"}},{"name":"house_number","in":"query","schema":{"type":["integer","null"],"minimum":1,"maximum":99999}},{"name":"house_letter","in":"query","schema":{"type":["string","null"],"pattern":"^[a-zA-Z]{1}$"}},{"name":"house_number_addition","in":"query","schema":{"type":["string","null"],"pattern":"^[a-zA-Z0-9]{1,4}$","maxLength":4}}],"responses":{"200":{"description":"WOZ value found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":true,"address":{"bag_nummeraanduiding_id":"0363200000218908","verblijfsobject_id":"0363010000218908","openbareruimte_id":"0363300000006316","street":"Damrak","house_number":1,"postcode":"1012LG","city":"Amsterdam","municipality":"Amsterdam","lat":52.3745,"lon":4.8986},"property_value":{"amount":475000,"reference_date":"2024-01-01","history":[{"amount":450000,"reference_date":"2023-01-01"},{"amount":425000,"reference_date":"2022-01-01"},{"amount":400000,"reference_date":"2021-01-01"}]},"grondoppervlakte":96,"kadastrale_gemeente_code":"ASD37","kadastrale_sectie":"M","kadastraal_perceel_nummer":"4321"}],"properties":{"found":{"type":"boolean"},"address":{"type":["object","null"],"properties":{"bag_nummeraanduiding_id":{"type":"string"},"verblijfsobject_id":{"type":["string","null"]},"openbareruimte_id":{"type":["string","null"]},"street":{"type":["string","null"]},"house_number":{"type":"integer"},"postcode":{"type":"string"},"city":{"type":["string","null"]},"municipality":{"type":["string","null"]},"lat":{"type":["number","null"]},"lon":{"type":["number","null"]}},"required":["bag_nummeraanduiding_id","verblijfsobject_id","openbareruimte_id","street","house_number","postcode","city","municipality","lat","lon"]},"property_value":{"type":["object","null"],"properties":{"amount":{"type":["integer","null"]},"reference_date":{"type":["string","null"]},"history":{"type":"array","items":{"type":"object","properties":{"amount":{"type":["integer","null"]},"reference_date":{"type":["string","null"]}},"required":["amount","reference_date"]}}},"required":["amount","reference_date","history"]},"grondoppervlakte":{"type":["integer","null"]},"kadastrale_gemeente_code":{"type":["string","null"]},"kadastrale_sectie":{"type":["string","null"]},"kadastraal_perceel_nummer":{"type":["string","null"]}},"required":["found","property_value"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"404":{"description":"Not found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":false,"property_value":null,"error":"not_found","message":"Niet gevonden."}],"properties":{"found":{"type":"boolean"},"property_value":{"type":"null"},"error":{"type":"string"},"message":{"type":"string"}},"required":["found","property_value","error","message"]}}}},"503":{"description":"Service temporarily unavailable","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":false,"property_value":null,"error":"upstream_unavailable","message":"De brondata is tijdelijk niet beschikbaar. Probeer het later opnieuw."}],"properties":{"found":{"type":"boolean"},"property_value":{"type":"null"},"error":{"type":"string"},"message":{"type":"string"}},"required":["found","property_value","error","message"]}}}}}}},"\/v1\/rdw\/vehicle":{"get":{"operationId":"rdw.vehicle","description":"Returns vehicle registration data from the RDW Basisregistratie Voertuigen,\nenriched with fuel + emission information, a national milieuzone compliance\nflag, and a wide range of extended fields: catalogusprijs, dimensions,\nweight limits, body type, axle data and EV-specific specs (range, consumption,\ncontinuous power). Results are cached for 24 hours.\n\nIn addition to the subset fields, the response contains the `rdw` block with\nthe complete source rows from all four RDW Open Data datasets (Kenteken\nVoertuigen, Brandstof, Carrosserie, Assen); no field is omitted. Columns that\nRDW leaves empty for a vehicle are `null`.\n\nRDW records fuel with one row per fuel type (ordered by `brandstof_volgnummer`).\n`fuel_type` is the primary fuel (sequence number 1); `fuel_types` contains all\nregistered fuels and `hybrid` is `true` as soon as there is more than one fuel\n(for example Petrol + Electricity). This distinguishes a hybrid car from a pure\ncombustion or EV car.\n\nThe `allowed_in_green_zones` flag is derived from the emission class and fuel type\nusing Dutch national milieuzone standards (2024\u20132025):\n\n\u2014 Electric \/ hydrogen \/ CNG: always allowed\n\n\u2014 Petrol (any Euro class): allowed\n\n\u2014 Diesel Euro 6+: allowed\n\n\u2014 Diesel Euro 5 and below: not allowed\n\n\u2014 Unknown fuel or emission class: `null`","summary":"Vehicle lookup by Dutch license plate (kenteken) \u2014 Pro \/ extended response","tags":["RDW","Vehicle"],"parameters":[{"name":"license_plate","in":"query","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9\\-\\s]{2,7}[A-Za-z0-9]$","minLength":4,"maxLength":9}}],"responses":{"200":{"description":"Vehicle found (extended response)","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":true,"license_plate":"1-SPV-45","vehicle":{"brand":"Renault","model":"Clio","color":"Wit","fuel_type":"Diesel","fuel_types":["Diesel"],"hybrid":false,"mass_empty":1096,"power_kw":66,"top_speed_kmh":null,"registration_date":"2025-06-02","first_admission_date":"2013-11-27","vehicle_type":"Personenauto","seats":5,"doors":4,"wheels":4,"length_cm":427,"wheelbase_cm":259,"mass_roadworthy_kg":1196,"max_mass_kg":1711,"towing_capacity_braked_kg":1200,"towing_capacity_unbraked_kg":595,"catalog_price_eur":19480,"eu_category":"M1","type_approval_number":"e2*2001\/116*0327*57","body_type":"Stationwagen","body_code":"AC","axle_count":2,"driven_axles":[]},"compliance":{"apk_expiry_date":"2027-07-06","tachograph_expiry_date":null,"emission_class":5,"allowed_in_green_zones":false,"transfer_possible":true,"recall_active":false,"export_indicator":false,"taxi":false,"liability_insured":true,"last_odometer_report":"Logisch"},"rdw":{"vehicle":{"kenteken":"1SPV45","voertuigsoort":"Personenauto","merk":"RENAULT","handelsbenaming":"CLIO","vervaldatum_apk":"20270706","datum_tenaamstelling":"20250602","bruto_bpm":"729","inrichting":"stationwagen","aantal_zitplaatsen":"5","eerste_kleur":"WIT","tweede_kleur":"Niet geregistreerd","aantal_cilinders":"4","cilinderinhoud":"1461","massa_ledig_voertuig":"1096","toegestane_maximum_massa_voertuig":"1711","massa_rijklaar":"1196","maximum_massa_trekken_ongeremd":"595","maximum_trekken_massa_geremd":"1200","datum_eerste_toelating":"20131127","datum_eerste_tenaamstelling_in_nederland":"20131127","wacht_op_keuren":"Geen verstrekking in Open Data","catalogusprijs":"19480","wam_verzekerd":"Ja","maximale_constructiesnelheid":null,"laadvermogen":null,"oplegger_geremd":null,"aanhangwagen_autonoom_geremd":null,"aanhangwagen_middenas_geremd":null,"aantal_staanplaatsen":null,"aantal_deuren":"4","aantal_wielen":"4","afstand_hart_koppeling_tot_achterzijde_voertuig":null,"afstand_voorzijde_voertuig_tot_hart_koppeling":null,"afwijkende_maximum_snelheid":null,"lengte":"427","breedte":null,"europese_voertuigcategorie":"M1","europese_voertuigcategorie_toevoeging":null,"europese_uitvoeringcategorie_toevoeging":null,"plaats_chassisnummer":"r. in kofferruimte by reservewiel","technische_max_massa_voertuig":"1711","type":"R","type_gasinstallatie":null,"typegoedkeuringsnummer":"e2*2001\/116*0327*57","variant":"7RJL","uitvoering":"7RJL0H","volgnummer_wijziging_eu_typegoedkeuring":"0","vermogen_massarijklaar":"0.06","wielbasis":"259","export_indicator":"Nee","openstaande_terugroepactie_indicator":"Nee","vervaldatum_tachograaf":null,"taxi_indicator":"Nee","maximum_massa_samenstelling":"2611","aantal_rolstoelplaatsen":null,"maximum_ondersteunende_snelheid":null,"jaar_laatste_registratie_tellerstand":"2026","tellerstandoordeel":"Logisch","code_toelichting_tellerstandoordeel":"00","tenaamstellen_mogelijk":"Ja","vervaldatum_apk_dt":"2027-07-06T00:00:00.000","datum_tenaamstelling_dt":"2025-06-02T00:00:00.000","datum_eerste_toelating_dt":"2013-11-27T00:00:00.000","datum_eerste_tenaamstelling_in_nederland_dt":"2013-11-27T00:00:00.000","vervaldatum_tachograaf_dt":null,"maximum_last_onder_de_vooras_sen_tezamen_koppeling":null,"type_remsysteem_voertuig_code":null,"rupsonderstelconfiguratiecode":null,"wielbasis_voertuig_minimum":null,"wielbasis_voertuig_maximum":null,"lengte_voertuig_minimum":null,"lengte_voertuig_maximum":null,"breedte_voertuig_minimum":null,"breedte_voertuig_maximum":null,"hoogte_voertuig":null,"hoogte_voertuig_minimum":null,"hoogte_voertuig_maximum":null,"massa_bedrijfsklaar_minimaal":null,"massa_bedrijfsklaar_maximaal":null,"technisch_toelaatbaar_massa_koppelpunt":null,"maximum_massa_technisch_maximaal":null,"maximum_massa_technisch_minimaal":null,"subcategorie_nederland":null,"verticale_belasting_koppelpunt_getrokken_voertuig":null,"zuinigheidsclassificatie":"A","registratie_datum_goedkeuring_afschrijvingsmoment_bpm":null,"registratie_datum_goedkeuring_afschrijvingsmoment_bpm_dt":null,"gem_lading_wrde":null,"aerodyn_voorz":null,"massa_alt_aandr":null,"verl_cab_ind":null,"aantal_passagiers_zitplaatsen_wettelijk":null,"aanwijzingsnummer":null,"api_gekentekende_voertuigen_assen":"https:\/\/opendata.rdw.nl\/resource\/3huj-srit.json","api_gekentekende_voertuigen_brandstof":"https:\/\/opendata.rdw.nl\/resource\/8ys7-d773.json","api_gekentekende_voertuigen_carrosserie":"https:\/\/opendata.rdw.nl\/resource\/vezc-m2t6.json","api_gekentekende_voertuigen_carrosserie_specifiek":"https:\/\/opendata.rdw.nl\/resource\/jhie-znh9.json","api_gekentekende_voertuigen_voertuigklasse":"https:\/\/opendata.rdw.nl\/resource\/kmfi-hrps.json"},"fuel":[{"kenteken":"1SPV45","brandstof_volgnummer":"1","brandstof_omschrijving":"Diesel","brandstofverbruik_gecombineerd":"3.20","co2_uitstoot_gecombineerd":"83","co2_uitstoot_gewogen":null,"geluidsniveau_rijdend":null,"geluidsniveau_stationair":"81","emissiecode_omschrijving":"5","milieuklasse_eg_goedkeuring_licht":"715\/2007*630\/2012J","milieuklasse_eg_goedkeuring_zwaar":null,"uitstoot_deeltjes_licht":"0.00015","uitstoot_deeltjes_zwaar":null,"nettomaximumvermogen":"66.00","nominaal_continu_maximumvermogen":null,"toerental_geluidsniveau":"3000","emis_deeltjes_type1_wltp":null,"emissie_co2_gecombineerd_wltp":null,"emis_co2_gewogen_gecombineerd_wltp":null,"brandstof_verbruik_gecombineerd_wltp":null,"brandstof_verbruik_gewogen_gecombineerd_wltp":null,"elektrisch_verbruik_enkel_elektrisch_wltp":null,"actie_radius_enkel_elektrisch_wltp":null,"elektrisch_verbruik_extern_opladen_wltp":null,"actie_radius_extern_opladen_wltp":null,"max_vermogen_15_minuten":null,"netto_max_vermogen_elektrisch":null,"klasse_hybride_elektrisch_voertuig":null,"opgegeven_maximum_snelheid":null,"uitlaatemissieniveau":"EURO 5 J","co2_emissieklasse":null,"brandstofverbruik_gewogen_gecombineerd":null,"elektriciteitsverbruik_gewogen_gecombineerd":null,"actieradius_extern_oplaadbaar":null,"actieradius":null,"elektriciteitsverbruik_volledig_elektrisch":null}],"body":[{"kenteken":"1SPV45","carrosserie_volgnummer":"1","carrosserietype":"AC","type_carrosserie_europese_omschrijving":"Stationwagen"}],"axles":[{"kenteken":"1SPV45","as_nummer":"1","aantal_assen":"2","aangedreven_as":null,"hefas":null,"plaatscode_as":null,"spoorbreedte":"151","weggedrag_code":null,"wettelijk_toegestane_maximum_aslast":"920","technisch_toegestane_maximum_aslast":"920","geremde_as_indicator":null,"afstand_tot_volgende_as_voertuig":null,"afstand_tot_volgende_as_voertuig_minimum":null,"afstand_tot_volgende_as_voertuig_maximum":null,"maximum_last_as_technisch_maximum":null,"maximum_last_as_technisch_minimum":null},{"kenteken":"1SPV45","as_nummer":"2","aantal_assen":"2","aangedreven_as":null,"hefas":null,"plaatscode_as":null,"spoorbreedte":"151","weggedrag_code":null,"wettelijk_toegestane_maximum_aslast":"885","technisch_toegestane_maximum_aslast":"885","geremde_as_indicator":null,"afstand_tot_volgende_as_voertuig":null,"afstand_tot_volgende_as_voertuig_minimum":null,"afstand_tot_volgende_as_voertuig_maximum":null,"maximum_last_as_technisch_maximum":null,"maximum_last_as_technisch_minimum":null}]}}],"properties":{"found":{"type":"boolean"},"license_plate":{"type":"string"},"vehicle":{"type":"object","additionalProperties":[]},"compliance":{"type":"object","additionalProperties":[]},"rdw":{"type":"object","properties":{"vehicle":{"type":"object","additionalProperties":[]},"fuel":{"type":"array","items":{"type":"object","additionalProperties":[]}},"body":{"type":"array","items":{"type":"object","additionalProperties":[]}},"axles":{"type":"array","items":{"type":"object","additionalProperties":[]}}},"required":["vehicle","fuel","body","axles"]}},"required":["found","license_plate","vehicle","compliance","rdw"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"404":{"description":"Not found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":false,"license_plate":"XX-000-X","vehicle":null,"compliance":null,"error":"not_found","message":"Niet gevonden."}],"properties":{"found":{"type":"boolean"},"license_plate":{"type":"string"},"vehicle":{"type":"null"},"compliance":{"type":"null"},"error":{"type":"string"},"message":{"type":"string"}},"required":["found","license_plate","vehicle","compliance","error","message"]}}}},"503":{"description":"Service temporarily unavailable","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":null,"license_plate":"AB-123-C","vehicle":null,"compliance":null,"error":"upstream_unavailable","message":"De brondata is tijdelijk niet beschikbaar. Probeer het later opnieuw."}],"properties":{"found":{"type":"null"},"license_plate":{"type":"string"},"vehicle":{"type":"null"},"compliance":{"type":"null"},"error":{"type":"string"},"message":{"type":"string"}},"required":["found","license_plate","vehicle","compliance","error","message"]}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"\/v1\/property\/energy-label":{"get":{"operationId":"property.energy-label","description":"Returns the registered energy label(s) for a Dutch address from EP-Online (RVO).\nEach label carries the complete EP-Online record (field names are translated\nto English; fields that EP-Online does not provide for that label are `null`).\nResults are cached for 24 hours.\nSource: [EP-Online by RVO](https:\/\/ep-online.nl)","summary":"Energy label lookup for a Dutch address","tags":["RVO","EnergyLabel"],"parameters":[{"name":"zipcode","in":"query","required":true,"schema":{"type":"string","pattern":"^[1-9][0-9]{3}\\s?[A-Za-z]{2}$"}},{"name":"house_number","in":"query","required":true,"schema":{"type":"integer","minimum":1,"maximum":99999}},{"name":"house_letter","in":"query","schema":{"type":["string","null"],"pattern":"^[a-zA-Z]{1}$"}},{"name":"house_number_addition","in":"query","schema":{"type":["string","null"],"pattern":"^[a-zA-Z0-9]{1,4}$","maxLength":4}}],"responses":{"200":{"description":"Energy label found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":true,"labels":[{"registration_date":"2024-08-30T22:25:14.623","recording_date":"2024-08-26T00:00:00","valid_until":"2034-08-26T00:00:00","certificate_holder":"Prosperos B.V.","recording_type":"Basisopname","status":"Bestaand","calculation_type":"NTA 8800:2024 (basisopname utiliteitsbouw)","is_simplified_label":null,"based_on_reference_building":false,"building_class":"Utiliteitsbouw","building_type":null,"building_subtype":null,"sbi_code":null,"zipcode":"1012LG","house_number":1,"house_letter":null,"house_number_addition":null,"detail_description":null,"bag_residence_id":"0363010012111931","bag_mooring_id":null,"bag_stand_id":null,"bag_building_ids":["0363100012185508"],"construction_year":1890,"usable_area_thermal_zone":16131.58,"compactness":0.51,"energy_class":"A+","energy_index":null,"energy_index_emg_forfeit":null,"energy_demand":112.77,"primary_fossil_energy":177.25,"primary_fossil_energy_emg_forfeit":null,"renewable_energy_share":19.4,"renewable_energy_share_emg_forfeit":null,"temperature_overrun":null,"heat_demand":74.62,"requirement_energy_demand":null,"requirement_primary_fossil_energy":null,"requirement_renewable_energy_share":null,"requirement_temperature_overrun":null,"calculated_co2_emission":36.99,"calculated_energy_consumption":177.24}]}],"properties":{"found":{"type":"boolean"},"labels":{"type":"array","items":{"type":"object","additionalProperties":[]}}},"required":["found","labels"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"404":{"description":"Not found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":false,"labels":[],"error":"not_found","message":"Niet gevonden."}],"properties":{"found":{"type":"boolean"},"labels":{"type":"array","items":[]},"error":{"type":"string"},"message":{"type":"string"}},"required":["found","labels","error","message"]}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]}}},"\/v1\/scraping\/email":{"post":{"operationId":"scraping.email","description":"Uses a simple regex to extract email addresses from the HTML content of a given URL. It is not always possible\nto extract email addresses due to obfuscation techniques. In such cases, the api will try to decode it. \n\nIf it still fails, it will return an empty array. Leave feedback at info@wdnoord.nl if you have a webpage that \ncontains email addresses but they are not extracted correctly and we will try to improve the regex or \nadd support for the obfuscation technique used on that webpage.","summary":"E-mail Address Extractor","tags":["Site Scraping","ExtractEmailaddressOnPage"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"]}}}},"responses":{"200":{"description":"One or more email addresses found on the page","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":true,"emails":["example@example.com","info@example.com"]}],"properties":{"found":{"type":"boolean"},"emails":{"type":"array","items":{"type":"string"}}},"required":["found","emails"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"404":{"description":"Not found","content":{"application\/json":{"schema":{"type":"object","examples":[{"found":false,"emails":[],"error":"not_found","message":"Niet gevonden."}],"properties":{"found":{"type":"boolean"},"emails":{"type":"array","items":{"type":"string"}},"error":{"type":"string"},"message":{"type":"string"}},"required":["found","emails","error","message"]}}}}}}},"\/v1\/validate\/vat":{"post":{"operationId":"validation.vat","description":"Validates a European VAT number via the official VIES system of the European Commission.\nThe country code must be the first two characters of the VAT number (e.g. `NL820646660B01`).\nSupported countries: all 27 EU member states + Northern Ireland (XI).\nWhen a member state provides it, the response includes the company name and address.\n\nWe use caching to mitigate VIES rate limits: valid numbers are cached for 24 hours, invalid numbers for 1 hour. When a member state is temporarily unavailable, we return a 503 status with an appropriate error message.","summary":"Validate an EU VAT number (VIES)","tags":["VAT Validation","Vat"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"vat_number":{"type":"string","pattern":"^[A-Z]{2}[A-Z0-9+*]{2,13}$","minLength":4,"maxLength":15}},"required":["vat_number"]}}}},"responses":{"200":{"description":"VAT number is valid","content":{"application\/json":{"schema":{"type":"object","examples":[{"valid":true,"vat_number":"NL820646660B01","country_code":"NL","request_date":"2026-03-20T18:25:46.822Z","company":{"name":"ABN AMRO BANK N.V.","address":"GUSTAV MAHLERLAAN 00010\n1082PP AMSTERDAM"},"error":null,"message":"BTW-nummer is geldig."}],"properties":{"valid":{"type":"boolean"},"vat_number":{"type":"string"},"country_code":{"type":"string"},"request_date":{"type":"string"},"company":{"type":["object","null"],"properties":{"name":{"type":"string"},"address":{"type":["string","null"]}},"required":["name","address"]},"error":{"type":["string","null"]},"message":{"type":"string"}},"required":["valid","vat_number","country_code","request_date","company","error","message"]}}}},"422":{"description":"Unprocessable content","content":{"application\/json":{"schema":{"type":"object","examples":[{"valid":false,"vat_number":"NL123456789B01","country_code":"NL","request_date":"2026-03-20T18:19:57.809Z","company":null,"message":"BTW-nummer is ongeldig of niet geregistreerd."}],"properties":{"valid":{"type":["boolean","null"]},"vat_number":{"type":"string"},"country_code":{"type":"string"},"request_date":{"type":"string"},"company":{"type":["object","null"],"properties":{"name":{"type":"string"},"address":{"type":["string","null"]}},"required":["name","address"]},"message":{"type":"string"}},"required":["valid","vat_number","country_code","request_date","company","message"]}}}},"503":{"description":"Service temporarily unavailable","content":{"application\/json":{"schema":{"type":"object","examples":[{"valid":null,"vat_number":"NL820646660B01","country_code":"NL","request_date":"2026-03-20T18:25:46.822Z","company":null,"error":"upstream_unavailable","message":"De brondata is tijdelijk niet beschikbaar. Probeer het later opnieuw."}],"properties":{"valid":{"type":["boolean","null"]},"vat_number":{"type":"string"},"country_code":{"type":"string"},"request_date":{"type":"string"},"company":{"type":["object","null"],"properties":{"name":{"type":"string"},"address":{"type":["string","null"]}},"required":["name","address"]},"error":{"type":"string"},"message":{"type":"string"}},"required":["valid","vat_number","country_code","request_date","company","error","message"]}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"parameters":[]}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-Api-Key"},"BearerAuth":{"type":"http","scheme":"bearer"}},"responses":{"ValidationException":{"description":"Unprocessable content","content":{"application\/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."},"errors":{"type":"object","description":"A detailed description of each field that failed validation.","additionalProperties":{"type":"array","items":{"type":"string"}}}},"required":["error","message","errors"]}}}}}}}