KVK API in Python: Makkelijke KVK API voor KVK Nummer Opzoeken, BTW Nummer Validatie en Bedrijfsgegevens API Nederland
Leer hoe je de makkelijke KVK API integreert in Python voor KVK nummer opzoeken, BTW nummer validatie en het ophalen van bedrijfsgegevens API Nederland. Stap-voor-stap met code voorbeelden, VIES validatie API (KVK lookup API) en de KVKBase widget.
KVK API in Python: Bedrijfsgegevens Ophalen met Drie Regels Code
Python is de meest gebruikte taal voor data-integraties, scripts en backend-services. Als je met Nederlandse bedrijfsdata werkt, heb je vroeg of laat een KVK API nodig. In dit artikel laten we zien hoe je met de makkelijke KVK API van KVKBase in Python bedrijfsgegevens ophaalt, KVK-nummers valideert en BTW-nummers controleert via VIES — allemaal via één endpoint, zonder onnodige complexiteit.
Waarom Python en de KVK API Goed Samengaan
Python’s requests-bibliotheek maakt het verbruiken van REST API’s eenvoudiger dan in bijna elke andere taal. De bedrijfsgegevens API Nederland van KVKBase geeft een schone JSON-response terug, wat perfect aansluit bij Python’s ingebouwde json-module en dataklassen zoals dataclasses of Pydantic-modellen.
Typische use cases in Python:
- Batch-verrijking van CRM-data: loop door een lijst KVK-nummers en voeg bedrijfsgegevens toe
- Onboarding-validatie: controleer bij registratie of een KVK-nummer actief is
- BTW-compliance: valideer klant-BTW-nummers via VIES voor factuurverwerking
- Data-pipelines: integreer KVK open data in ETL-processen of analytics dashboards
Installatie en Eerste Request
Je hebt alleen de requests-bibliotheek nodig. Die is standaard beschikbaar in de meeste Python-omgevingen; zo niet, installeer je hem met:
pip install requests
Vraag daarna een gratis API-sleutel aan op kvkbase.nl en voer je eerste request uit:
import requests
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.kvkbase.nl/api/v1"
headers = {"Authorization": f"Bearer {API_KEY}"}
# KVK nummer opzoeken
response = requests.get(f"{BASE_URL}/lookup/12345678", headers=headers)
data = response.json()
print(data["tradeName"]) # Voorbeeld B.V.
print(data["isActive"]) # True
Dat is alles. Geen XML-parsing, geen OAuth-flows, geen SDK nodig.
KVK Nummer Opzoeken: Volledig Voorbeeld
Het KVK nummer opzoeken via de KVK lookup API geeft een volledig bedrijfsprofiel terug:
import requests
from dataclasses import dataclass
from typing import Optional
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.kvkbase.nl/api/v1"
@dataclass
class Adres:
straat: str
huisnummer: str
postcode: str
stad: str
@dataclass
class Bedrijf:
kvk_nummer: str
handelsnaam: str
rechtsvorm: str
adres: Adres
is_actief: bool
btw_nummer: Optional[str] = None
def haal_bedrijfsgegevens_op(kvk_nummer: str) -> Bedrijf:
url = f"{BASE_URL}/lookup/{kvk_nummer}"
headers = {"Authorization": f"Bearer {API_KEY}"}
response = requests.get(url, headers=headers)
response.raise_for_status()
d = response.json()
return Bedrijf(
kvk_nummer=d["kvkNumber"],
handelsnaam=d["tradeName"],
rechtsvorm=d["legalForm"],
adres=Adres(
straat=d["address"]["street"],
huisnummer=d["address"]["houseNumber"],
postcode=d["address"]["postalCode"],
stad=d["address"]["city"],
),
is_actief=d["isActive"],
btw_nummer=d.get("vatNumber"),
)
# Gebruik
bedrijf = haal_bedrijfsgegevens_op("12345678")
print(f"{bedrijf.handelsnaam} — {bedrijf.adres.stad} — Actief: {bedrijf.is_actief}")
De bedrijfsgegevens API Nederland retourneert onder andere:
- Handelsnaam en eventuele andere namen
- Volledig adres (bezoek- en postadres)
- Rechtsvorm (BV, NV, eenmanszaak, stichting, etc.)
- SBI-codes met hoofd- en nevenactiviteiten
- Datum van oprichting en actief/inactief status
- BTW-nummer (indien beschikbaar)
KVK Zoeken op Bedrijfsnaam
Weet je het KVK-nummer nog niet? Gebruik de KVK zoeken API om op naam te zoeken:
def zoek_bedrijf(naam: str) -> list[dict]:
url = f"{BASE_URL}/search"
headers = {"Authorization": f"Bearer {API_KEY}"}
params = {"q": naam}
response = requests.get(url, headers=headers, params=params)
response.raise_for_status()
return response.json()["results"]
# Resultaten tonen
resultaten = zoek_bedrijf("Coolblue")
for r in resultaten[:5]:
print(f"{r['kvkNumber']} — {r['tradeName']} — {r['city']}")
BTW Nummer Validatie via VIES in Python
BTW nummer validatie is een wettelijke vereiste bij intracommunautaire leveringen in de EU. De VIES validatie API van KVKBase valideert zowel Nederlandse als Europese BTW-nummers rechtstreeks:
def valideer_btw_nummer(btw_nummer: str) -> dict:
"""
Valideert een BTW-nummer via VIES.
Geeft terug: valid (bool), name, address
"""
url = f"{BASE_URL}/validate/vat"
headers = {"Authorization": f"Bearer {API_KEY}"}
params = {"vatNumber": btw_nummer}
response = requests.get(url, headers=headers, params=params)
response.raise_for_status()
return response.json()
# Voorbeeld
resultaat = valideer_btw_nummer("NL123456789B01")
if resultaat["valid"]:
print(f"Geldig BTW-nummer voor: {resultaat['name']}")
else:
print("BTW-nummer is niet geldig of niet actief in VIES")
Voor een diepgaande uitleg over BTW-validatie en foutcodes, zie onze gids BTW nummer valideren met VIES.
Batch-verrijking van KVK Bedrijfsgegevens in Python
Een van de krachtigste use cases voor de bedrijfsdata API in Python is het verrijken van lijsten. Stel je hebt een CSV met KVK-nummers en wilt er handelsnamen en adressen aan toevoegen:
import csv
import time
import requests
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.kvkbase.nl/api/v1"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
def verrijk_csv(invoer_pad: str, uitvoer_pad: str):
with open(invoer_pad, newline="") as invoer, \
open(uitvoer_pad, "w", newline="") as uitvoer:
reader = csv.DictReader(invoer)
velden = reader.fieldnames + ["handelsnaam", "stad", "postcode", "is_actief"]
writer = csv.DictWriter(uitvoer, fieldnames=velden)
writer.writeheader()
for rij in reader:
kvk = rij.get("kvk_nummer", "").strip()
if not kvk:
writer.writerow(rij)
continue
try:
resp = requests.get(
f"{BASE_URL}/lookup/{kvk}",
headers=HEADERS,
timeout=5
)
if resp.status_code == 200:
d = resp.json()
rij["handelsnaam"] = d["tradeName"]
rij["stad"] = d["address"]["city"]
rij["postcode"] = d["address"]["postalCode"]
rij["is_actief"] = d["isActive"]
except Exception as e:
print(f"Fout bij KVK {kvk}: {e}")
writer.writerow(rij)
time.sleep(0.1) # Respecteer rate limits
verrijk_csv("klanten.csv", "klanten_verrijkt.csv")
Dit is het standaardpatroon dat data-engineers gebruiken voor CRM-verrijking, lead-scoring en compliance-screening op basis van KVK bedrijfsgegevens en Nederlandse bedrijfsgegevens.
KVK Open Data: Wat Is Beschikbaar?
KVKBase geeft toegang tot KVK open data uit het Nederlandse Handelsregister. Dit zijn de openbaar beschikbare gegevens die elk bedrijf verplicht registreert bij de KVK. Via de KVK bedrijfsgegevens API krijg je:
- Basisgegevens: handelsnaam, KVK-nummer, vestigingsnummer
- Adresgegevens: straat, huisnummer, postcode, stad
- Juridisch: rechtsvorm, oprichtingsdatum
- Activiteiten: SBI-codes met beschrijving
- Status: actief of opgeheven
Meer achtergrond over de structuur van het Nederlandse handelsregister lees je in onze gids KVK API vergelijken: officieel vs KVKBase.
Foutafhandeling en Retry-logica
Een robuuste integratie houdt rekening met tijdelijke fouten:
import time
import requests
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry
def maak_sessie() -> requests.Session:
sessie = requests.Session()
retry = Retry(
total=3,
backoff_factor=0.5,
status_forcelist=[429, 500, 502, 503, 504],
)
adapter = HTTPAdapter(max_retries=retry)
sessie.mount("https://", adapter)
return sessie
SESSIE = maak_sessie()
def veilig_opzoeken(kvk_nummer: str) -> dict | None:
try:
resp = SESSIE.get(
f"https://api.kvkbase.nl/api/v1/lookup/{kvk_nummer}",
headers={"Authorization": f"Bearer {API_KEY}"},
timeout=10,
)
if resp.status_code == 404:
return None # KVK-nummer niet gevonden
resp.raise_for_status()
return resp.json()
except requests.RequestException as e:
print(f"API-fout voor {kvk_nummer}: {e}")
return None
De KVKBase Widget als Alternatief voor Formulieren
Werk je aan een webapplicatie waarbij eindgebruikers zelf hun bedrijfsnaam of KVK-nummer invoeren? Dan is de KVKBase embeddable widget de snelste optie. Voeg één script-tag toe en je hebt direct een werkende zoekfunctie:
<script src="https://widget.kvkbase.nl/embed.js"
data-api-key="YOUR_API_KEY"
data-target="#bedrijf-zoeken">
</script>
De widget is volledig stijl-aanpasbaar en werkt zonder extra configuratie. Je kunt hem combineren met server-side Python-validatie: de widget verzorgt de UI, jouw Python-backend valideert en slaat de data op.
Aan de Slag: Makkelijke KVK API in Vijf Minuten
De makkelijke KVK API van KVKBase is ontworpen om in minuten operationeel te zijn, niet in dagen. Zo begin je:
- Maak een gratis account aan op kvkbase.nl
- Kopieer je API-sleutel vanuit het dashboard
- Installeer requests:
pip install requests - Voer je eerste lookup uit met de voorbeeldcode hierboven
- Schaal op naar de betaalde tier zodra je productieverkeer hebt
De gratis tier biedt voldoende ruimte voor prototypes en kleinere integraties. Schaalt je gebruik op? Dan upgrade je eenvoudig via het dashboard — geen contracten, geen minimale looptijden.
Vragen over een specifieke Python-integratie? Neem contact op via kvkbase.nl — we helpen graag.