🏛️ NL Organisations
🇳🇱 NL Organizations API
💻 Purpose of the API
The NL Organizations API provides a unified way to search, discover, and retrieve detailed profiles for Dutch organizations.
It aggregates information from authoritative sources (such as Trade
Register, tax and financial datasets) and exposes them using consistent
JSON:API standards.
You can use this API to:
- Search across millions of Dutch organizations and branches
- Filter, sort, and aggregate results by attributes such as location, activities (SBI codes), financial fields, lifecycle events, and more
- Retrieve complete organization profiles with extended information (e.g., ownership structure, financial figures, management)
- Retrieve branch-level data for more granular use cases
The API is ideal for compliance screening, B2B onboarding, KYC/KYB processes, market research, sales enrichment, and internal data standardization.
🤔 How to use?
📌 Overview of the Flow
-
Search Entities
Start by calling
GET /nl/organizations/profiles/v1/entities
to find organizations or branches using:- Full-text search (
query) - Structured filtering (
filter) - Structured matching (
match) - Sorting (
sort) - Aggregations (
aggregate) - Pagination (
page[number],page[size])
- Full-text search (
-
Retrieve Organization Profile
Once you have anorganization_id, call:
GET /nl/organizations/profiles/v1/organizations/{organization_id}
This returns a rich profile with identifiers, contact data, financial info, lifecycle, ownership, etc.
Optional: addextensionsto retrieve additional blocks of data. -
Retrieve Organization Branches
To fetch all branches for the organization, call:
GET /nl/organizations/profiles/v1/organizations/{organization_id}/branches -
Retrieve a Single Branch
To retrieve full details for a specific branch:
GET /nl/organizations/profiles/v1/organizations/{organization_id}/branches/{branch_id}
🌀 Flow Behavior
- If your search query does not match anything, the API returns an
empty
data: []array --- this is normal and not an error. - Pagination allows you to iterate through all results efficiently.
- Some endpoints support
includeto return related resources. - Profile endpoints support
extensionsto fetch optional, additional data blocks. - All responses follow JSON:API conventions for consistency.
🔢 Versioning
Current version prefix:
/nl/organizations/profiles/v1/
Future versions will follow /v2/, /v3/, etc.
🌐 Base URL
📚 All Endpoints
❗ These endpoints incur usage-based charges.
1. Entity Search Endpoint
GET /nl/organizations/profiles/v1/entitiesSearch across all entity types (organisations, branches, legal entities, ...).This is the central search endpoint of the NL Organizations API. Use it when you need to: search by name, find companies by address, match trade register IDs (KvK), filter using rich metadata (legalForm, SBI, registration date, etc.), get aggregations, get a mixed list of organizations and branches in one request
Supported parameters:
- query (Full-text search) Searches the query across multiple fields. The default type is best_field, which finds documents matching any field but scores based on the best match. Minimum length is 2 characters.
- match (Prefix search) Supports partial or prefix-based text matching across key entity attributes. It is applied to fields like city, tradeRegisterID, and branchNumber, while general matching is used for postalCode, street, organizationName, name, and tradeNames.
- filter(Deep filtering) Enables filtering of entities based on exact values and range conditions. Supports structured fields such as address, financials, and metadata.
- sort Comma-separated list of fields used to sort the results, following JSON:API sorting conventions. Prefix a field with
-to sort in descending order (default is ascending). - aggregate Defines the data aggregation to be performed on the search results. It allows you to specify a comma-separated list of fields to group by and to define the size of each aggregation bucket.
- page Controls pagination for a collection of resources, allowing clients to request a specific page and specify the number of resources per page.
- Fuzzy search (external JSON:API parameter) It is based on Levenshtein Edit Distance — the number of one-character changes needed to match another string.
All available parameters can also be found in our API Reference.
Example request
GET /nl/organizations/profiles/v1/entities?query=company.info&filter[contact.address.city]=Amsterdam&sort=-registrationDate&include=organizations
Example Response
{
"data": [
{
"type": "branches",
"id": "string",
"attributes": {
"branch": {
"name": "company.info",
"isMain": true
},
"identifiers": {
"organization": {
"tradeRegister": {
"system": "tradeRegister",
"value": "12345678"
}
},
"branch": {
"tradeRegister": {
"system": "tradeRegister",
"value": "00001111"
}
}
},
"contact": {
"address": {
"city": "Harlingen",
"street": "Voorstraat"
}
}
},
"links": {
"self": "string"
},
"relationships": {
"organization": {
"data": {
"type": "string",
"id": "string"
}
}
}
}
],
"included": [
{
"type": "organizations",
"id": "string",
"attributes": {
"tradeRegisterID": "12345678",
"name": "Company.info"
},
"links": {
"self": "string"
}
}
],
"meta": {
"totalResults": 500,
"totalPages": 0,
"aggregations": {
"contact.address.city": [
{
"value": "Amsterdam",
"count": 125
}
],
"legalForm": [
{
"value": "Amsterdam",
"count": 125
}
],
"financials.bankGroup": [
{
"value": "Amsterdam",
"count": 125
}
]
}
},
"links": {
"self": "string",
"first": "string",
"last": "string",
"prev": "string",
"next": "string"
}
}2. Organization Profile Endpoint
GET /nl/organizations/profiles/v1/organizations/{organization_id}Get a complete organization profile just by ID. This endpoint returns everything we know about an organization, optionally enhanced by "extensions".
Supported Parameters:
-
organization_id Specifies Organization id
-
extensionsObtain a profile featuring specified blocks, delineated by commas.
Available values : sizeIndicators, activities, financials, ownershipStructures, management, contactPersons
Optional: Extensions
Add extra data blocks:
extensions=sizeIndicators,financials,activities,management,ownershipStructures
Example request
GET /nl/organizations/profiles/v1/organizations/12345678?extensions=financials
Accept-Language: nl
Example Response
{
"data": {
"type": "organizations",
"id": "string",
"attributes": {
"identifiers": {
"tradeRegister": {
"system": "tradeRegister",
"value": "12345678"
},
"rsin": {
"system": "taxOffice",
"value": "110011000"
}
},
"name": "Company A",
"statutorySeat": "Amsterdam",
"logoURL": "https://company.info/1.png",
"legalForm": {
"code": "private-limited-company",
"description": "Besloten Vennootschap (blijkens statuten structuurvennootschap)",
"shortDescription": "Besloten Vennootschap"
},
"contact": {
"excludeFromMailing": false,
"excludeFromMarketing": false,
"address": {
"formatted": "Postbus 123456 1111AB Amsterdam",
"street": "Postbus 123456",
"houseNumber": "12",
"houseNumberAddition": null,
"houseLetter": null,
"postalCode": "1111AB",
"city": "Amsterdam",
"country": "NLD",
"coordinates": {
"latitude": 123.456,
"longitude": 456.123
},
"countrySpecific": {
"identifiers": {
"bag": {
"system": "BAG",
"value": {
"addressableObjectID": 123,
"numberIndicationID": 456
}
}
}
},
"registrationDate": "1979-01-01"
},
"correspondenceAddress": {
"formatted": "Postbus 123456 1111AB Amsterdam",
"street": "Postbus 123456",
"houseNumber": "12",
"houseNumberAddition": null,
"houseLetter": null,
"postalCode": "1111AB",
"city": "Amsterdam",
"country": "NLD",
"coordinates": {
"latitude": 123.456,
"longitude": 456.123
},
"countrySpecific": {
"identifiers": {
"bag": {
"system": "BAG",
"value": {
"addressableObjectID": 123,
"numberIndicationID": 456
}
}
}
},
"registrationDate": "1979-01-01"
},
"phoneNumbers": [
{
"source": "string",
"number": "string"
}
],
"websites": [
{
"source": "string",
"value": "string"
}
],
"emails": [
{
"source": "string",
"value": "string"
}
]
},
"activities": {
"sbi": [
{
"isMain": false,
"source": "tradeRegister",
"system": "SBI",
"code": "1071",
"description": "Manufacture of bread and fresh pastry"
}
]
},
"lifecycle": {
"registration": {
"isActive": true,
"type": "registration",
"startDate": "1234-05-06",
"endDate": "1234-05-06"
},
"liquidation": {
"isActive": true,
"type": "registration",
"startDate": "1234-05-06",
"endDate": "1234-05-06"
},
"dissolution": {
"isActive": true,
"type": "registration",
"startDate": "1234-05-06",
"endDate": "1234-05-06",
"description": "string"
},
"events": {
"firstRegistration": {
"date": "1234-05-06",
"type": "registration"
},
"deedOfIncorporation": {
"date": "1234-05-06",
"type": "registration"
}
},
"insolvency": {
"isActive": true,
"debtRestructuring": {
"isActive": true,
"type": "registration",
"startDate": "1234-05-06",
"endDate": "1234-05-06"
},
"suspensionOfPayments": {
"isActive": true,
"type": "registration",
"startDate": "1234-05-06",
"endDate": "1234-05-06"
},
"bankrupt": {
"isActive": true,
"type": "registration",
"startDate": "1234-05-06",
"endDate": "1234-05-06"
},
"publications": [
{
"identifier": {
"system": "string",
"value": "string"
},
"court": {
"name": "Rechtbank Noord-Nederland",
"code": 43
},
"description": "string",
"AvailableUntil": "string"
}
]
}
},
"capital": {
"issued": {
"amount": "string",
"currency": "string"
},
"authorized": {
"amount": "string",
"currency": "string"
},
"contributed": {
"amount": "string",
"currency": "string"
}
},
"branch": {
"id": "123456780000",
"isMain": true,
"names": {
"main": "Test B.V.",
"tradeNames": [
{
"isActive": false,
"isMain": false,
"name": "Test B.V."
}
]
},
"lifecycle": {
"registration": {
"isActive": true,
"type": "registration",
"startDate": "1234-05-06",
"endDate": "1234-05-06"
},
"events": {
"continuation": {
"date": "1234-05-06",
"type": "continuation"
}
}
},
"personnel": {
"fullTime": {
"value": 23,
"class": {
"code": "6",
"description": "string"
}
},
"partTime": {
"value": 23,
"class": {
"code": "6",
"description": "string"
}
},
"total": {
"value": 23,
"class": {
"code": "6",
"description": "string"
}
},
"source": "tradeRegister"
},
"contact": {
"excludeFromMailing": false,
"excludeFromMarketing": false,
"address": {
"formatted": "Postbus 123456 1111AB Amsterdam",
"street": "Postbus 123456",
"houseNumber": "12",
"houseNumberAddition": null,
"houseLetter": null,
"postalCode": "1111AB",
"city": "Amsterdam",
"country": "NLD",
"coordinates": {
"latitude": 123.456,
"longitude": 456.123
},
"countrySpecific": {
"identifiers": {
"bag": {
"system": "BAG",
"value": {
"addressableObjectID": 123,
"numberIndicationID": 456
}
}
}
},
"registrationDate": "1979-01-01"
},
"correspondenceAddress": {
"formatted": "Postbus 123456 1111AB Amsterdam",
"street": "Postbus 123456",
"houseNumber": "12",
"houseNumberAddition": null,
"houseLetter": null,
"postalCode": "1111AB",
"city": "Amsterdam",
"country": "NLD",
"coordinates": {
"latitude": 123.456,
"longitude": 456.123
},
"countrySpecific": {
"identifiers": {
"bag": {
"system": "BAG",
"value": {
"addressableObjectID": 123,
"numberIndicationID": 456
}
}
}
},
"registrationDate": "1979-01-01"
},
"phoneNumbers": [
{
"source": "string",
"number": "string"
}
],
"websites": [
{
"source": "string",
"value": "string"
}
],
"emails": [
{
"source": "string",
"value": "string"
}
]
},
"activities": {
"sbi": [
{
"isMain": false,
"source": "tradeRegister",
"system": "SBI",
"code": "1071",
"description": "Manufacture of bread and fresh pastry"
}
]
}
},
"extensions": {
"activities": {
"summary": "string",
"sbi": [
{
"code": "string",
"isMain": true,
"system": "string",
"source": "string",
"description": "string"
}
],
"nace": [
{
"code": "string",
"isMain": true,
"system": "string",
"source": "string",
"description": "string"
}
]
}
}
},
"links": {
"self": "string"
}
}
}3. Organization's Branches Endpoint
GET /nl/organizations/profiles/v1/organizations/{organization_id}/branchesList all branches of a given organization. Use this to get a flat list of branches, with optional include=organizations.
Supported parameters
- organization_id Specifies Organization id
- IncludeA comma-separated list of relationship paths to be included as a compound document. This allows you to request that related resources be returned with the primary data in the included array.
Example Request
GET /nl/organizations/profiles/v1/organizations/32050334/branches
Example Response
{
"data": [
{
"type": "branches",
"id": "string",
"attributes": {
"isMain": true,
"names": {
"name": "string"
},
"lifecycle": {
"registration": {
"isActive": true,
"startDate": "string",
"type": "string"
}
},
"contact": {
"address": {
"street": "string",
"houseNumber": 0,
"houseNumberAddition": "string",
"houseLetter": "string",
"postalCode": "string",
"city": "string",
"country": "string"
}
}
},
"links": {
"self": "string"
},
"relationships": {
"organization": {
"data": {
"type": "string",
"id": "string"
}
}
}
}
],
"included": [
{
"type": "organizations",
"id": "string",
"attributes": {
"tradeRegisterID": "32050334",
"name": "Company A",
"tradeRegisterExcludeFromMailing": true
},
"links": {
"self": "string"
}
}
],
"links": {
"self": "string"
}
}
4. Organization's Branch Profile
Get /nl/organizations/profiles/v1/organizations/{organization_id}/branches/{branch_id}Retrieve a single branch’s detailed profile More detailed than the list endpoint.
Supported parameters
- organization_id Specifies Organization id
- branch_id Specifies Branch id
- IncludeA comma-separated list of relationship paths to be included as a compound document. This allows you to request that related resources be returned with the primary data in the included array.
Example Request
GET /nl/organizations/profiles/v1/organizations/32050334/branches/320503340001
Example Response
{
"data": {
"type": "branches",
"id": "string",
"attributes": {
"identifiers": {
"tradeRegister": {
"system": "tradeRegister",
"value": "123456780000"
}
},
"isMain": true,
"names": {
"main": "Test B.V.",
"tradeNames": [
{
"isActive": false,
"isMain": false,
"name": "Test B.V."
}
]
},
"lifecycle": {
"registration": {
"isActive": true,
"type": "registration",
"startDate": "1234-05-06",
"endDate": "1234-05-06"
},
"events": {
"continuation": {
"date": "1234-05-06",
"type": "continuation"
}
}
},
"personnel": {
"fullTime": {
"value": 23,
"class": {
"code": "6",
"description": "string"
}
},
"partTime": {
"value": 23,
"class": {
"code": "6",
"description": "string"
}
},
"total": {
"value": 23,
"class": {
"code": "6",
"description": "string"
}
},
"source": "tradeRegister"
},
"contact": {
"excludeFromMailing": false,
"excludeFromMarketing": false,
"address": {
"formatted": "Postbus 123456 1111AB Amsterdam",
"street": "Postbus 123456",
"houseNumber": "12",
"houseNumberAddition": null,
"houseLetter": null,
"postalCode": "1111AB",
"city": "Amsterdam",
"country": "NLD",
"coordinates": {
"latitude": 123.456,
"longitude": 456.123
},
"countrySpecific": {
"identifiers": {
"bag": {
"system": "BAG",
"value": {
"addressableObjectID": 123,
"numberIndicationID": 456
}
}
}
},
"registrationDate": "1979-01-01"
},
"correspondenceAddress": {
"formatted": "Postbus 123456 1111AB Amsterdam",
"street": "Postbus 123456",
"houseNumber": "12",
"houseNumberAddition": null,
"houseLetter": null,
"postalCode": "1111AB",
"city": "Amsterdam",
"country": "NLD",
"coordinates": {
"latitude": 123.456,
"longitude": 456.123
},
"countrySpecific": {
"identifiers": {
"bag": {
"system": "BAG",
"value": {
"addressableObjectID": 123,
"numberIndicationID": 456
}
}
}
},
"registrationDate": "1979-01-01"
},
"phoneNumbers": [
{
"source": "string",
"number": "string"
}
],
"websites": [
{
"source": "string",
"value": "string"
}
],
"emails": [
{
"source": "string",
"value": "string"
}
]
},
"activities": {
"sbi": [
{
"isMain": false,
"source": "tradeRegister",
"system": "SBI",
"code": "1071",
"description": "Manufacture of bread and fresh pastry"
}
]
},
"extensions": {
"transfers": [
{
"identifiers": {
"fromTradeRegister": {
"system": "tradeRegister",
"value": "12345678"
},
"toTradeRegister": {
"system": "tradeRegister",
"value": "12345679"
}
},
"date": "1979-01-01"
}
]
}
},
"relationships": {
"organization": {
"data": {
"type": "string",
"id": "string"
}
}
},
"links": {
"self": "string"
}
},
"included": [
{
"type": "organizations",
"id": "string",
"attributes": {
"name": "string",
"tradeRegisterID": "string",
"tradeRegisterExcludeFromMailing": true
},
"links": {
"self": "string"
}
}
]
}Updated 9 minutes ago
