kvkapiR: mijn eerste package op CRAN

Bedrijfsgegevens uit het Handelsregister rechtstreeks in R ophalen: kvkapiR is een interface voor de KvK-API’s — en mijn eerste officiële CRAN-package.

Data & R
Auteur

Coen Eisma

Publicatiedatum

8 juli 2025

Illustratie van het kvkapiR-hexlogo op een opengeslagen handelsregister waar winkeltjes en kantoorgebouwen uit oprijzen

Sinds 25 juni staat mijn eerste R-package op CRAN: kvkapiR! Ik heb eerder packages gebouwd voor eigen gebruik, maar dit is de eerste die het officiële publicatieproces van CRAN heeft doorlopen. Een mijlpaal!

Wat kun je ermee?

De Kamer van Koophandel biedt API’s aan op het Handelsregister, en kvkapiR maakt die vanuit R toegankelijk. Het package dekt de vier belangrijkste API’s: zoeken (kvk_search()), basisprofielen (kvk_get_basisprofiel()), vestigingsprofielen (kvk_get_vestigingsprofiel()) en naamhistorie (kvk_get_naamgeving()). Paginering en foutafhandeling gaan automatisch, en je krijgt de resultaten terug als nette tibbles.

Waar je het voor kunt gebruiken? Denk aan:

  • een bedrijvenlijst verrijken of controleren met officiële registratiegegevens (bestaat dit bedrijf nog, klopt het adres, wat is het KvK-nummer?);
  • vestigingsgegevens ophalen voor ruimtelijke analyses — welke bedrijven zitten er in een gemeente of op een bedrijventerrein?;
  • de naamhistorie van ondernemingen volgen, bijvoorbeeld bij onderzoek naar fusies en doorstarts.

Dit soort vragen komen binnen mijn werk regelmatig voorbij, en tot nu toe betekende dit voor collega’s: handmatig zoeken op kvk.nl. Dat kan nu in een paar regels code.

Direct proberen, zonder API-key

De KvK heeft een testomgeving met fictieve data, en die werkt zonder key. Zo kun je het package meteen uitproberen:

# install.packages("kvkapiR")
library(kvkapiR)

kvk_search(naam = "Donald", test_environment = TRUE)
ℹ You are using the KvK test environment. Test data will be returned.
# A tibble: 3 × 6
  kvkNummer vestigingsnummer naam                      adres        type  links 
  <chr>     <chr>            <chr>                     <list>       <chr> <list>
1 68750110  000037178601     Test BV Donald Nevenvest… <named list> neve… <list>
2 68750110  <NA>             Test BV Donald            <NULL>       rech… <list>
3 68750110  000037178598     Test BV Donald            <named list> hoof… <list>

Echte data

Voor het echte Handelsregister moet je eerst een API-key aanvragen via het KvK Developer Portal en stel je die één keer in met kvk_set_api_key(). Zoeken is gratis, maar profielopvragingen kosten een paar cent per call (overheidsorganisaties krijgen gratis toegang). Om te voorkomen dat je ongemerkt kosten opbouwt zitten er hulpfuncties in als kvk_usage_report() en kvk_usage_alert(), die je verbruik bijhouden en waarschuwen bij een grens die je zelf instelt.

kvk_set_api_key("jouw_api_key")

# Alle vestigingen van bakkerijen in Leeuwarden
bakkers <- kvk_search(naam = "bakkerij", plaats = "Leeuwarden")

Meer weten?

Alle documentatie staat op de packagewebsite, inclusief vignettes over de verschillende API’s. Loop je ergens tegenaan of mis je iets? Laat het weten via GitHub — feedback is meer dan welkom!