{ "diy" :

Zelf bouwen of scrapen tegenover een API

Kort antwoord

Handelsregisterdata is openbaar en de KVK publiceert een gratis open dataset met basisgegevens, dus het zelf bouwen is een echte optie, zeker voor eenmalig of laagvolume werk. Het werk zit niet in de eerste versie maar in het onderhoud: VIES is SOAP en valt per lidstaat uit, adressen moeten genormaliseerd worden, rechtsvormen gemapt, en een cache moet vers blijven. Het scrapen van de KVK-website in plaats van de API gebruiken is bovendien een voorwaardenprobleem.

cURL
# Zelf: KVK-call, dan VIES SOAP,
# dan mappen, dan cachen.

# Of 1 call:
curl ".../v1/lookup/68750110" \
  -H "Authorization: Bearer KEY"

{
  "vat": {
    "valid": true,
    "validatedAt": "2026-08-22"
  }
}

Zelf bouwen is een serieuze optie

Dit is geen strohalm om omver te blazen. Handelsregisterdata is openbaar, de KVK publiceert een gratis open dataset met basisgegevens, en er is een gedocumenteerde API. Voor een eenmalige verrijking van een bestand, een migratie, een analyse of een intern hulpmiddel is zelf bouwen vaak gewoon de juiste keuze. Je hebt niemand nodig die daar een abonnement voor verkoopt.

Het beeld kantelt zodra het iets wordt dat blijft draaien.

OnderdeelZelf bouwenKVKBase
Bedrijfsprofiel ophalenKVK API of open datasetéén call
Zoeken, profiel en vestiging samenvoegenzelf, meerdere callsin de response
BTW-nummer afleidenzelf, alleen geldig voor BV en NVingebouwd
VIES-controlezelf, SOAP, met retries en cachelive in de response
Adresnormalisatiezelfgestructureerde velden
Rechtsvormmappingzelf onderhoudenlegalForm
Cacheverversingjouw schema, jouw probleem24 uur op actieve bedrijven
Kosten per maandinfrastructuur plus urengratis, EUR 19 of EUR 49

Scrapen tegenover de API

Kort en zonder preek. De data is openbaar, maar de KVK-website heeft gebruiksvoorwaarden en geautomatiseerd uitlezen valt daar doorgaans niet onder. Er staat een API en een open dataset naast die hetzelfde doel dienen. Als je het toch overweegt: een scraper is ook technisch de slechtste optie van de drie, want elke wijziging aan de frontend breekt je parser en je merkt het pas als je data stilvalt.

De open dataset gebruiken is geen scrapen en heeft dat probleem niet.

Waar de uren echt heen gaan

Vier plekken, in volgorde van hoe vaak ze mensen verrassen.

VIES. Het BTW-nummer staat niet in het Handelsregister. Je leidt het af als NL + KVK-nummer + B01, en dat geldt alleen voor BV en NV. Daarna moet het gecontroleerd worden bij VIES, en dat is SOAP. VIES is regelmatig traag en lidstaten gaan onafhankelijk van elkaar offline. Je hebt dus retries, een timeout die je checkout niet ophangt, en een cache met een eigen geldigheidsduur.

De gotcha die het vaakst in productie stukgaat: “ongeldig” en “VIES was onbereikbaar” zijn niet hetzelfde. Als je die twee op één false afbeeldt, blokkeer je tijdens een storing legitieme klanten en heb je geen idee waarom. Bewaar de reden apart, ook als je UI er maar één ding mee doet. De achtergrond staat in de gids over btw-nummers valideren via VIES.

Adressen. Straat, huisnummer en toevoeging komen niet in één keer schoon binnen. Toevoegingen als A, bis, 2-hoog en zwart moeten van het huisnummer gescheiden blijven, anders matcht je adres later nergens meer op. Wij geven houseNumber en houseNumberAddition als aparte velden terug, precies om die reden.

Rechtsvormen. De register-notaties zijn niet wat je in je UI wilt tonen en niet wat je in je facturatielogica wilt gebruiken. Je bouwt een mappingtabel, en die tabel is nooit af.

Verversing. Een kopie van de open dataset is per definitie een momentopname. Inschrijvingen, verhuizingen en naamswijzigingen lopen door. Je hebt een importschema nodig, een manier om te weten hoe oud je kopie is, en een besluit over wat je doet met een KVK-nummer dat je nog niet hebt. Dat is geen bouwwerk maar onderhoud.

Geen van deze vier is moeilijk. Ze zijn alleen alle vier nooit af, en ze komen terug op een moment dat je aan iets anders werkt. Dat is het echte verschil met de eerste versie, die je op een middag schrijft.

Voor de validatieregels op het KVK-nummer zelf hoef je niets te verzinnen, die staan in de post over KVK-nummervalidatie en de elfproef.

Wie zelf moet bouwen

Bouw zelf als het eenmalig is, als het intern blijft, als je volume laag genoeg is dat een storing niemand raakt, of als je al een team hebt dat dit soort integraties toch onderhoudt. Dat is geen tweede keus, dat is de goedkoopste oplossing voor die situatie.

Kom je bij ons uit, dan is dat omdat het in een klantpad zit en moet blijven werken zonder dat iemand er wekelijks naar kijkt: één call voor bedrijf plus btw, of de embeddable widget als je helemaal geen backend wilt schrijven. En als je toch zelf bouwt, neem dan in elk geval het onderscheid tussen ongeldig en onbereikbaar mee. Dat is de fout die het meeste geld kost.

Veelgestelde vragen

Mag ik de KVK-website scrapen?
De data is openbaar, maar de website heeft gebruiksvoorwaarden en geautomatiseerd uitlezen valt daar doorgaans niet onder. Er is bovendien een API en een open dataset die hetzelfde doel dienen zonder dat risico. Praktisch gezien is scrapen ook fragiel, want elke frontendwijziging breekt je parser.
Is zelf bouwen goedkoper?
In euro's per opvraging vrijwel altijd, want de open dataset is gratis en de KVK API kost EUR 6,40 per maand plus EUR 0,02 per betaalde profielopvraging. In ontwikkel- en onderhoudsuren zelden, tenzij je het één keer draait en daarna nooit meer aanraakt.
Wat is het lastigste stuk om zelf te bouwen?
VIES. Het is SOAP, het is regelmatig traag, en lidstaten gaan afzonderlijk offline. Je hebt retries nodig, een cache met een eigen geldigheidsduur, en een expliciet onderscheid tussen ongeldig en onbereikbaar. Dat laatste wordt bijna altijd vergeten en levert onterecht geblokkeerde klanten op.
Wanneer is zelf bouwen de juiste keuze?
Bij eenmalig werk, een migratie, een analyse of een intern hulpmiddel met een handvol gebruikers. Ook als je al een team hebt dat integraties draagt en je toch een eigen contract met de KVK wilde. Bij een productformulier waar dagelijks klanten doorheen gaan, is de onderhoudslast meestal de doorslaggevende factor.
Kan ik de open dataset gewoon in mijn database laden?
Voor basisgegevens kan dat, maar dan is verversing jouw probleem. Inschrijvingen, uitschrijvingen, verhuizingen en naamswijzigingen lopen door, dus je hebt een importschema nodig en een manier om te weten hoe oud je kopie is. Een stilstaande kopie van het register wordt sneller onbruikbaar dan mensen verwachten.

Bijgewerkt:

Eén call geeft je het hele bedrijf

KVK-data, het afgeleide BTW-nummer en een live VIES-controle in één request. Het gratis plan geeft je 50 lookups per maand, zonder creditcard.

50
gratis lookups per maand
1
request in plaats van drie
0
creditcards, contracten of salesgesprekken