← APIs / KVK — Dutch Business Register
Verified

KVK — Dutch Business Register

Apiosk Basicsby Apiosk Basics · General

Official Dutch company register (Handelsregister) from KVK, the Netherlands Chamber of Commerce: search companies by name, resolve a KVK number (kvk-nummer), and look up the basic profile (basisprofiel), branch profile (vestigingsprofiel), registered and trade names (statutaire naam, handelsnamen), filed annual accounts (jaarrekeningen) and open company data — the employee count (how many people work at a company, headcount, staff, werknemers), where the company is based (registered address, office location, vestiging), SBI activities, RSIN, legal form (rechtsvorm) and insolvency status.

dataapi
Price per request
$0.08
About

The authoritative Dutch business register, metered per call. Six services under one source: KVK Search resolves a company name to a kvkNummer or vestigingsnummer, Basic Profile returns the registration itself (statutory and trade names, SBI activities, employee counts, addresses, websites, branches), Branch Profile does the same for one specific establishment, Naming returns every registered name, Financial Statements returns structured fields from filed XBRL annual accounts, Open Company Data returns the open BV/NV dataset (active flag, start date, insolvency code, legal form, postcode region, SBI activities). Endpoints that need a kvkNummer resolve it automatically from a company name through KVK Search, charged as its own step. Registration dates can carry unknown components (YYYYMM00, YYYY0000) — do not parse them as plain ISO dates. Only adopted annual accounts filed via XBRL are available, and the open dataset covers BV and NV registrations only.

Base URL
https://gateway.apiosk.com/kvk-dutch-business-register
Technical Specs
Auth MethodapiKey
Response FormatJSON
Endpoints5
Endpoints
MethodPathDescriptionCost
GET /api/v1/basisprofielen Official registration record for one Dutch company by KVK number — the basisprofiel. Answers most company questions in a single call: the employee count — how many people work at the company, headcount, staff, company size (werknemers: voltijd, deeltijd, totaal) — and where the company is based: its registered visiting and postal address, city, office location and main branch (hoofdvestiging), plus the statutory name (statutaire naam) and trade names (handelsnamen), SBI business activities, RSIN, legal form (rechtsvorm), formal registration date, registered website and the number of branches (vestigingen). Use one call to answer several fields at once rather than one call per field. Needs an 8-digit kvkNummer, a company name is resolved to one automatically via KVK Search.
$0.08 default
View details
GET /api/v1/hvds/jaarrekeningen/kvknummer Structured financial data from the annual accounts a Dutch company filed with KVK — the jaarrekening. Balance sheet (balans: assets, equity, provisions, liabilities), income statement (winst- en verliesrekening: gross margin, employee benefits expenses, operating result, result before and after tax), cash flow statement, their consolidated variants, the financial year and the filing/adoption date. Open data under CC BY 4.0. Only adopted (vastgestelde) accounts filed via XBRL are available, not every company is required to file, and which fields are present depends on company size class. Rate-limited hard upstream (1 request/minute per IP), so answers are cached for a day.
$0.08 default
View details
GET /api/v1/naamgevingen/kvknummer Every name a Dutch company is registered under — the naamgeving. The statutory name (statutaire naam), the trading name, alternative names it is also known by (ook genoemd), and the trade names (handelsnamen) registered per establishment, with their start and end dates. The call to make when the question is which names, brands or trade names belong to a registration, rather than what the company does.
$0.08 default
View details
GET /api/v1/vestigingsprofielen Registration record for ONE specific establishment of a Dutch company — the vestigingsprofiel — by 12-digit branch number (vestigingsnummer). What this location does (SBI activities), its official visiting and postal address, the employee count at that office — how many people work there, headcount, staff (voltijd, deeltijd, totaal werkzame personen) — which trade names (handelsnamen) it uses, whether it is the main branch (hoofdvestiging), and its parent KVK number and RSIN. Use this instead of the basic profile when the question is about one office location rather than the company as a whole.
$0.08 default
View details
GET /api/v2/zoeken Search the Dutch Handelsregister (KVK business register) and resolve identifiers: find a company by name and get its KVK number (kvkNummer), RSIN or branch number (vestigingsnummer). Zoek bedrijven op naam, kvk-nummer, rsin, vestigingsnummer of adres (postcode, huisnummer, straatnaam, plaats). Returns a list of matching registrations with name, address, type (rechtspersoon, hoofdvestiging, nevenvestiging) and active flag. Inactive registrations are excluded unless asked for, result ordering is not guaranteed, so filter on name, address or type when a company name is ambiguous.
$0.02 default
View details
Endpoint documentation
GET/api/v1/basisprofielen
$0.08 default
Description

Official registration record for one Dutch company by KVK number — the basisprofiel. Answers most company questions in a single call: the employee count — how many people work at the company, headcount, staff, company size (werknemers: voltijd, deeltijd, totaal) — and where the company is based: its registered visiting and postal address, city, office location and main branch (hoofdvestiging), plus the statutory name (statutaire naam) and trade names (handelsnamen), SBI business activities, RSIN, legal form (rechtsvorm), formal registration date, registered website and the number of branches (vestigingen). Use one call to answer several fields at once rather than one call per field. Needs an 8-digit kvkNummer, a company name is resolved to one automatically via KVK Search.

Pricing
$0.08 default
Parameters
{
  "geoData": {
    "description": "Include geodata (GPS latitude/longitude, Rijksdriehoek coordinates, BAG object ids) on addresses. Default false.",
    "required": false,
    "type": "boolean"
  },
  "kvkNummer": {
    "description": "KVK number (kvk-nummer) of the company, 8 digits.",
    "pattern": "^[0-9]{8}$",
    "required": true,
    "type": "string",
    "x-parameter-location": "path"
  }
}
Response schema
{
  "properties": {
    "_embedded": {
      "description": "hoofdvestiging (vestigingsnummer, employee counts voltijdWerkzamePersonen / deeltijdWerkzamePersonen / totaalWerkzamePersonen, handelsnamen, adressen, websites, sbiActiviteiten), eigenaar (rsin, rechtsvorm, uitgebreideRechtsvorm, adressen, websites) and vestigingen (aantalCommercieleVestigingen, aantalNietCommercieleVestigingen, totaalAantalVestigingen, vestigingen[]).",
      "type": "object"
    },
    "formeleRegistratiedatum": {
      "description": "YYYYMMDD, unknown components appear as zeros (YYYYMM00, YYYY0000).",
      "type": "string"
    },
    "handelsnamen": {
      "description": "Registered trade names.",
      "type": "array"
    },
    "indNonMailing": {
      "type": "string"
    },
    "kvkNummer": {
      "type": "string"
    },
    "links": {
      "type": "array"
    },
    "materieleRegistratie": {
      "type": "object"
    },
    "naam": {
      "type": "string"
    },
    "sbiActiviteiten": {
      "description": "Business activities.",
      "items": {
        "properties": {
          "indHoofdactiviteit": {
            "type": "string"
          },
          "sbiCode": {
            "type": "string"
          },
          "sbiOmschrijving": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "type": "array"
    },
    "statutaireNaam": {
      "type": "string"
    }
  },
  "type": "object"
}
Example response
{
  "handelsnamen": [
    {
      "naam": "Mollie"
    }
  ],
  "kvkNummer": "30204462",
  "sbiActiviteiten": [
    {
      "indHoofdactiviteit": "Ja",
      "sbiCode": "6419",
      "sbiOmschrijving": "Overige monetaire intermediatie"
    }
  ],
  "statutaireNaam": "Mollie B.V."
}
GET/api/v1/hvds/jaarrekeningen/kvknummer
$0.08 default
Description

Structured financial data from the annual accounts a Dutch company filed with KVK — the jaarrekening. Balance sheet (balans: assets, equity, provisions, liabilities), income statement (winst- en verliesrekening: gross margin, employee benefits expenses, operating result, result before and after tax), cash flow statement, their consolidated variants, the financial year and the filing/adoption date. Open data under CC BY 4.0. Only adopted (vastgestelde) accounts filed via XBRL are available, not every company is required to file, and which fields are present depends on company size class. Rate-limited hard upstream (1 request/minute per IP), so answers are cached for a day.

Pricing
$0.08 default
Parameters
{
  "kvkNummer": {
    "description": "KVK number (kvk-nummer) of the company, 8 digits.",
    "pattern": "^[0-9]{8}$",
    "required": true,
    "type": "string",
    "x-parameter-location": "path"
  }
}
Response schema
{
  "properties": {
    "opendataFields": {
      "description": "Nested key/value tree. Each entry has a key, an optional value and optional nested opendataFields. Top-level keys include SbiBusinessCode, DocumentAdoptionDate, FinancialYear, BalanceSheet, ConsolidatedBalanceSheet, IncomeStatement, ConsolidatedIncomeStatement, CashFlowStatement and ConsolidatedCashFlowStatement.",
      "items": {
        "properties": {
          "key": {
            "type": "string"
          },
          "opendataFields": {
            "type": "array"
          },
          "value": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "type": "array"
    }
  },
  "type": "object"
}
Example response
{
  "opendataFields": [
    {
      "key": "FinancialYear",
      "value": "2024"
    },
    {
      "key": "BalanceSheet",
      "opendataFields": [
        {
          "key": "Assets",
          "value": "123456"
        },
        {
          "key": "Equity",
          "value": "65432"
        }
      ]
    }
  ]
}
GET/api/v1/naamgevingen/kvknummer
$0.08 default
Description

Every name a Dutch company is registered under — the naamgeving. The statutory name (statutaire naam), the trading name, alternative names it is also known by (ook genoemd), and the trade names (handelsnamen) registered per establishment, with their start and end dates. The call to make when the question is which names, brands or trade names belong to a registration, rather than what the company does.

Pricing
$0.08 default
Parameters
{
  "kvkNummer": {
    "description": "KVK number (kvk-nummer) of the company, 8 digits.",
    "pattern": "^[0-9]{8}$",
    "required": true,
    "type": "string",
    "x-parameter-location": "path"
  }
}
Response schema
{
  "properties": {
    "einddatum": {
      "type": "string"
    },
    "kvkNummer": {
      "type": "string"
    },
    "links": {
      "type": "array"
    },
    "naam": {
      "type": "string"
    },
    "ookGenoemd": {
      "type": "string"
    },
    "rsin": {
      "type": "string"
    },
    "startdatum": {
      "type": "string"
    },
    "statutaireNaam": {
      "type": "string"
    },
    "vestigingen": {
      "description": "Per establishment: vestigingsnummer plus eersteHandelsnaam and handelsnamen (commercial), or naam and ookGenoemd (non-commercial).",
      "type": "array"
    }
  },
  "type": "object"
}
Example response
{
  "kvkNummer": "30204462",
  "statutaireNaam": "Mollie B.V.",
  "vestigingen": [
    {
      "eersteHandelsnaam": "Mollie",
      "vestigingsnummer": "000018296932"
    }
  ]
}
GET/api/v1/vestigingsprofielen
$0.08 default
Description

Registration record for ONE specific establishment of a Dutch company — the vestigingsprofiel — by 12-digit branch number (vestigingsnummer). What this location does (SBI activities), its official visiting and postal address, the employee count at that office — how many people work there, headcount, staff (voltijd, deeltijd, totaal werkzame personen) — which trade names (handelsnamen) it uses, whether it is the main branch (hoofdvestiging), and its parent KVK number and RSIN. Use this instead of the basic profile when the question is about one office location rather than the company as a whole.

Pricing
$0.08 default
Parameters
{
  "vestigingsnummer": {
    "description": "Branch number (vestigingsnummer) of the establishment, 12 digits.",
    "pattern": "^[0-9]{12}$",
    "required": true,
    "type": "string",
    "x-parameter-location": "path"
  }
}
Response schema
{
  "properties": {
    "adressen": {
      "type": "array"
    },
    "deeltijdWerkzamePersonen": {
      "type": "integer"
    },
    "eersteHandelsnaam": {
      "type": "string"
    },
    "formeleRegistratiedatum": {
      "description": "YYYYMMDD, unknown components appear as zeros.",
      "type": "string"
    },
    "handelsnamen": {
      "type": "array"
    },
    "indCommercieleVestiging": {
      "type": "string"
    },
    "indHoofdvestiging": {
      "type": "string"
    },
    "indNonMailing": {
      "type": "string"
    },
    "kvkNummer": {
      "type": "string"
    },
    "links": {
      "type": "array"
    },
    "materieleRegistratie": {
      "type": "object"
    },
    "rsin": {
      "type": "string"
    },
    "sbiActiviteiten": {
      "items": {
        "properties": {
          "indHoofdactiviteit": {
            "type": "string"
          },
          "sbiCode": {
            "type": "string"
          },
          "sbiOmschrijving": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "type": "array"
    },
    "statutaireNaam": {
      "type": "string"
    },
    "totaalWerkzamePersonen": {
      "type": "integer"
    },
    "vestigingsnummer": {
      "type": "string"
    },
    "voltijdWerkzamePersonen": {
      "type": "integer"
    },
    "websites": {
      "type": "array"
    }
  },
  "type": "object"
}
Example response
{
  "eersteHandelsnaam": "Mollie",
  "kvkNummer": "30204462",
  "totaalWerkzamePersonen": 750,
  "vestigingsnummer": "000018296932"
}
GET/api/v2/zoeken
$0.02 default
Description

Search the Dutch Handelsregister (KVK business register) and resolve identifiers: find a company by name and get its KVK number (kvkNummer), RSIN or branch number (vestigingsnummer). Zoek bedrijven op naam, kvk-nummer, rsin, vestigingsnummer of adres (postcode, huisnummer, straatnaam, plaats). Returns a list of matching registrations with name, address, type (rechtspersoon, hoofdvestiging, nevenvestiging) and active flag. Inactive registrations are excluded unless asked for, result ordering is not guaranteed, so filter on name, address or type when a company name is ambiguous.

Pricing
$0.02 default
Parameters
{
  "huisletter": {
    "description": "House letter, one alphabetic character. Only with a house number.",
    "example": "D",
    "pattern": "^[a-zA-Z]$",
    "required": false,
    "type": "string"
  },
  "huisnummer": {
    "description": "House number. KVK accepts it only together with a postcode.",
    "example": 300,
    "maximum": 99999,
    "minimum": 1,
    "required": false,
    "type": "integer"
  },
  "inclusiefInactieveRegistraties": {
    "description": "Include inactive registrations. Default false.",
    "required": false,
    "type": "boolean"
  },
  "kvkNummer": {
    "description": "KVK number (kvk-nummer), 8 digits.",
    "example": "59581883",
    "pattern": "^[0-9]{8}$",
    "required": false,
    "requiredOneOf": "search",
    "type": "string"
  },
  "naam": {
    "description": "Company name, trade name (handelsnaam) or statutory name. Matching is full text, not plain substring, so a distinctive word works better than a full legal name.",
    "example": "Kamer van Koophandel",
    "required": false,
    "requiredOneOf": "search",
    "type": "string"
  },
  "pagina": {
    "default": 1,
    "description": "Page number, 1 to 1000.",
    "maximum": 1000,
    "minimum": 1,
    "required": false,
    "type": "integer"
  },
  "plaats": {
    "description": "City or place.",
    "example": "Utrecht",
    "required": false,
    "requiredOneOf": "search",
    "type": "string"
  },
  "postbusnummer": {
    "description": "PO box number (postbusnummer). Only with a postcode.",
    "example": 9292,
    "maximum": 99999,
    "minimum": 1,
    "required": false,
    "type": "integer"
  },
  "postcode": {
    "description": "Dutch postal code. KVK accepts it only together with a house number or a PO box number.",
    "example": "3511BT",
    "pattern": "^[0-9]{4}[a-zA-Z]{2}$",
    "required": false,
    "requiredOneOf": "search",
    "type": "string"
  },
  "resultatenPerPagina": {
    "default": 10,
    "description": "Results per page, 1 to 100. Default 10.",
    "maximum": 100,
    "minimum": 1,
    "required": false,
    "type": "integer"
  },
  "rsin": {
    "description": "RSIN, 9 digits.",
    "example": "823807071",
    "pattern": "^[0-9]{9}$",
    "required": false,
    "requiredOneOf": "search",
    "type": "string"
  },
  "straatnaam": {
    "description": "Street name.",
    "example": "St.-Jacobsstraat",
    "required": false,
    "requiredOneOf": "search",
    "type": "string"
  },
  "type": {
    "description": "Restrict to main branch, secondary branch or legal entity.",
    "enum": [
      "hoofdvestiging",
      "nevenvestiging",
      "rechtspersoon"
    ],
    "required": false,
    "type": "string"
  },
  "vestigingsnummer": {
    "description": "Branch number (vestigingsnummer), 12 digits.",
    "example": "000015063097",
    "pattern": "^[0-9]{12}$",
    "required": false,
    "requiredOneOf": "search",
    "type": "string"
  }
}
Response schema
{
  "properties": {
    "pagina": {
      "type": "integer"
    },
    "resultaten": {
      "description": "Matching registrations.",
      "items": {
        "properties": {
          "actief": {
            "description": "Whether the registration is active.",
            "type": "string"
          },
          "adres": {
            "description": "Domestic (straatnaam, huisnummer, huisletter, postbusnummer, postcode, plaats) or foreign (straatHuisnummer, postcodeWoonplaats, land) address.",
            "type": "object"
          },
          "kvkNummer": {
            "description": "8-digit KVK number.",
            "type": "string"
          },
          "links": {
            "description": "HATEOAS links to the basisprofiel / vestigingsprofiel for this hit.",
            "type": "array"
          },
          "naam": {
            "description": "Statutory name, first trade name, or the matched trade name.",
            "type": "string"
          },
          "rsin": {
            "type": "string"
          },
          "type": {
            "description": "hoofdvestiging, nevenvestiging or rechtspersoon.",
            "type": "string"
          },
          "vervallenNaam": {
            "description": "Former or inactive name that produced this hit.",
            "type": "string"
          },
          "vestigingsnummer": {
            "description": "12-digit branch number.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "type": "array"
    },
    "resultatenPerPagina": {
      "type": "integer"
    },
    "totaal": {
      "description": "Total matching registrations.",
      "type": "integer"
    }
  },
  "type": "object"
}
Example response
{
  "pagina": 1,
  "resultaten": [
    {
      "actief": "Ja",
      "adres": {
        "binnenlandsAdres": {
          "plaats": "Amsterdam",
          "straatnaam": "Keizersgracht"
        }
      },
      "kvkNummer": "30204462",
      "naam": "Mollie B.V.",
      "type": "rechtspersoon"
    }
  ],
  "resultatenPerPagina": 10,
  "totaal": 2
}