Getting Started with KVKBase

KVKBase provides a simple, fast API for looking up Dutch company data. Get KVK numbers, addresses, VAT validation, and more in a single API call.

How tokens work Every API call costs tokens. A basic lookup costs 1 token. Adding ?enrich=true for full details (activities, VAT validation) costs 5 tokens. Your plan determines your monthly token allowance.

1. Sign up for an account

Create a free account at kvkbase.nl/signup. The free plan includes 50 tokens per month -- no credit card required.

2. Get your API key

After signing in, go to your Dashboard → API Keys and create a new key. Your key will look like this:

kvk_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6
Important Store your API key securely. You will not be able to view it again after creation. If you lose it, revoke the old key and create a new one from the dashboard.

3. Make your first request

Use the /v1/lookup endpoint to fetch company data by KVK number:

bash
# Look up a company by KVK number (1 token)
curl https://api.kvkbase.nl/v1/lookup/12345678 \
  -H "Authorization: Bearer YOUR_API_KEY"

You will get a JSON response like this:

json
{
  "kvkNumber": "12345678",
  "name": "Acme B.V.",
  "address": {
    "street": "Herengracht 100",
    "city": "Amsterdam",
    "postalCode": "1015 AA"
  },
  "isActive": true
}

Enriched lookup

Add ?enrich=true to get full company details including activities, legal form, and VIES-validated VAT number (costs 5 tokens):

bash
# Enriched lookup with VAT validation (5 tokens)
curl https://api.kvkbase.nl/v1/lookup/12345678?enrich=true \
  -H "Authorization: Bearer YOUR_API_KEY"
json
{
  "kvkNumber": "12345678",
  "name": "Acme B.V.",
  "tradingNames": ["Acme", "Acme Nederland"],
  "legalForm": "Besloten vennootschap",
  "address": {
    "street": "Herengracht",
    "houseNumber": "100",
    "postalCode": "1015 AA",
    "city": "Amsterdam",
    "country": "Nederland"
  },
  "isActive": true,
  "registrationDate": "2020-01-15",
  "activities": [
    {
      "sbiCode": "6201",
      "description": "Ontwikkelen en produceren van software",
      "isMain": true
    }
  ],
  "vat": {
    "number": "NL123456789B01",
    "valid": true,
    "validatedAt": "2026-03-17T12:00:00Z"
  },
  "enriched": true,
  "source": {
    "kvk": "opendata+zoeken+naamgeving",
    "vies": "live",
    "cachedAt": "2026-03-17T12:00:00Z"
  }
}

4. Try the autocomplete

The /v1/autocomplete endpoint is designed for search-as-you-type dropdowns. It returns lightweight results quickly (1 token per call):

bash
curl "https://api.kvkbase.nl/v1/autocomplete?q=acme" \
  -H "Authorization: Bearer YOUR_API_KEY"

5. Add the widget to a form

Want to add auto-complete to your checkout or registration form? Add the KVKBase widget with just one line of HTML:

html
<script
  src="https://widget.kvkbase.nl/v1/widget.js"
  data-apikey="YOUR_API_KEY"
  data-target="#kvk-input"
  data-autofill="true"
></script>

See the Widget documentation for full configuration options.

Available endpoints

Here is what you can do with the KVKBase API:

Endpoint Description Cost
GET /v1/lookup/{kvk} Look up a company by KVK number 1 token
GET /v1/lookup/{kvk}?enrich=true Full company details with VAT validation 5 tokens
GET /v1/search Search companies by name 1 token
GET /v1/autocomplete Lightweight search for dropdowns 1 token
POST /v1/lookup/batch Batch lookup of multiple companies 1-5 per item
GET /v1/lookup/{kvk}/branches Get company branches/vestigingen 5 tokens
GET /v1/validate/vat/{vat} Validate a VAT number via VIES 1 token
GET /v1/health API status check (no auth needed) Free

Next steps