For the production environment use the following url with all endpoints. Please note that an active subscription and API-key is required:
https://api.kbodata.app/v2/
Our JSON REST-API is easy to integrate and contains a logical structure of the methods.
An Application Programming Interface (API) is a computing interface which defines interactions between multiple software intermediaries. It defines the kinds of calls or requests that can be made, how to make them, the data formats that should be used, the conventions to follow, without developers having to know how the other software exactly works.
Representational State Transfer (for short REST) is a software architectural style that defines a set of constraints to be used for creating Web services. SOAP has been replaced with URLs for addressing and the HTTP methods (GET, POST, DELETE and PUT) for calling the service.
Any programming language currently applicable to dynamically handle HTTP requests, in example with a cURL-library, is suitable for using REST.
To make requests to the API-endpoints, you will need an API-token. For development purposes, you can use a sandbox-token, read more about it in the sandbox-section.
You may create multiple production token, this can be useful if you would like to use the same subscription on different websites. You can make distinction between multiple websites or apps and the total number of requests.
You may create API-tokens for both sandbox- and production requests at your customer portal.
You authorize the request by using a Bearer-token (your API-key) in the Authorization-header.
200
Success response
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \ https://api.kbodata.app/v2/me
{
"Customer": {
"name": "My Company Ltd.",
"planName": "Small",
"dateCreated": "2020-02-02 02:02:02",
"webhookSubscriptionUsage": 300,
"requestUsage": 7800,
"requestSearchUsage": 2400,
"Plan": {
"name": "Small",
"maxRequest": 1500,
"maxRequestSearch": 500,
"maxWebhookSubscriptions": 400,
"maxPagination": 25
}
},
"ApiAccessToken": {
"isDevelopment": false,
"isSandbox": false,
"description": "My company token",
"dateCreated": "2020-02-02 02:02:02",
"dateExpiration": "2021-02-02 02:02:02"
}
}
HTTP/1.1 200 OK
Some methods return more than one result and are paginated over multiple pages.
These requests will always include a Pagination-object.
The maximum number of results per request depend on the purchased plan.
limit
integer
page
integer
totalPages
integer
totalItems
integer
countItems
integer
estimate
boolean
A number of API-related headers are included in the response headers of the request. They are useful to determine how many requests you have left for the current period and what type of key you're currently using.
The headers below are displayed in a request. Some values may depend on the type of key used (sandbox- or production key). This details serves as an aid, and can also be seen visually on your dashboard.Voorbeelden (headers)
X-API-Key-Type: production
X-Environment: production
X-API-Request-Count: 124
X-API-Request-Limit: 1000
X-API-Search-Request-Count: 794
X-API-Search-Request-Limit: 1000
Description
X-API-Key-Type
string
X-Environment
string
X-API-Request-Count
integer
X-API-Request-Limit
integer
X-API-Search-Request-Count
integer
X-API-Search-Request-Limit
integer
For the production environment use the following url with all endpoints. Please note that an active subscription and API-key is required:
https://api.kbodata.app/v2/
You may also use a different environments if you wish to mock or test API-requests. Please find more information about our sandbox environment in the sandbox section on the page.
This is a list of all currently available environments:
https://api.kbodata.app/v2/
production
https://api.kbodata.io/v2/
sandbox
Arguments prefixed with a (asterisk) are required, without these arguments the request will fail. Other arguments are optional.
To not publish any (old or incorrect) enterprise data on our website, we use fictional data in our examples.
Before you start with the implementation of our API, it is useful to have a clear picture of the data structure, below you fill find an image of the hierarchy of data and how they relate to each other.
As you can see, a denomination, address and activity can be related to both an enterprise or an establishment. Unfortunately, there are not any fixed rules for this structure. So in example it will be possible that an enterprise does not have any registration addresses, however the establishment linked to the enterprise does. Vice versa is also possible. Therefore, it is always a good idea to check the establishments of the enterprises if you are looking for any specific data.
enterpriseNumber
integer
0417497106
Successful response | Enterprise is found.
Enterprise
object
enterpriseNumber
string
0417497106
enterpriseNumberFormatted
string
0417.497.106
vatNumber
string
BE0417497106
active
boolean
false if the enterprise is in a pre-registration state.1
type
string
natural for natural person or entity for legal entity.natural
entity
entity
typeDescription
object
nl
string
Rechtspersoon
en
string
Legal entity
fr
string
Personne morale
de
string
Juristische Person
JuridicalForm
object
juridicalFormCode
string
030
description
object
nl
string
Buitenlandse entiteit
en
string
Foreign entity
fr
string
Entité étrangère
de
string
Ausländische Einheit
abbreviation
object
nl
string
Buitenlandse entiteit
en
string
Foreign entity
fr
string
Entité étrangère
de
string
Ausländische Einheit
JuridicalSituation
object
juridicalSituationCode
string
000
description
object
nl
string
Normale toestand
en
string
Foreign entity
fr
string
Situation normale
de
string
Gewöhnlicher Zustand
dateStart
string
2020-01-01
200
Successful response
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/enterprise/{enterpriseNumber}
{
"Enterprise": {
"enterpriseNumber": "0417497106",
"enterpriseNumberFormatted": "0417.497.106",
"vatNumber": "BE0417497106",
"active": true,
"type": "entity",
"typeDescription": {
"nl": "Rechtspersoon",
"en": "Legal entity",
"fr": "Personne morale",
"de": "Juristische Person"
},
"JuridicalForm": {
"juridicalFormCode": "030",
"description": {
"nl": "Buitenlandse entiteit",
"en": "Foreign entity",
"fr": "Entité étrangère",
"de": "Ausländische Einheit"
},
"abbreviation": {
"nl": "Buitenlandse entiteit",
"en": "Foreign entity",
"fr": "Entité étrangère",
"de": "Ausländische Einheit"
}
},
"JuridicalSituation": {
"juridicalSituationCode": "000",
"description": {
"nl": "Normale toestand",
"en": "Foreign entity",
"fr": "Situation normale",
"de": "Gewöhnlicher Zustand"
}
},
"dateStart": "2020-01-01"
}
}
HTTP/1.1 200 OK
404
Enterprise not found
{
"error": "The `enterprise` item specified could not be found",
"type": "RequestException",
"code": -2
}
enterpriseNumber
integer
0417497106
filter.naceVersion
integer
2008
2025
Successful response | All activities from the enterprise.
[]array
Activity
object
activityGroup
string
BTW001
EDR001
OLK001
POR001
PPO001
RSZ001
SCO001
BTW001
activityGroupDescription
object
nl
string
BTW-activiteiten
fr
string
Activités TVA
en
string
VAT activities
de
string
MwSt.-Aktivitäten
classification
string
ANCI
MAIN
SECO
MAIN
classificationDescription
object
nl
string
Hoofdactiviteit
fr
string
Activité principale
en
string
Main activity
de
string
Hauptaktivität
Nace
object
naceVersion
integer
2008
naceCode
string
474
description
object
nl
string
Detailhandel in ICT-apparatuur in gespecialiseerde winkels
fr
string
Commerce de détail d'équipements de l'information et de la communication en magasin spécialisé
de
string
Einzelhandel mit Geräten der Informations- und Kommunikationstechnik (in Verkaufsräumen)
en
string
Retail sale of information and communication equipment in specialised stores
200
Successful response
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/enterprise/{enterpriseNumber}/activities
[
{
"Activity": {
"activityGroup": "BTW001",
"activityGroupDescription": {
"nl": "BTW-activiteiten",
"fr": "Activités TVA",
"en": "VAT activities",
"de": "MwSt.-Aktivitäten"
},
"classification": "MAIN",
"classificationDescription": {
"nl": "Hoofdactiviteit",
"fr": "Activité principale",
"en": "Main activity",
"de": "Hauptaktivität"
},
"Nace": {
"naceVersion": 2008,
"naceCode": "474",
"description": {
"nl": "Detailhandel in ICT-apparatuur in gespecialiseerde winkels",
"fr": "Commerce de détail d'équipements de l'information et de la communication en magasin spécialisé",
"de": "Einzelhandel mit Geräten der Informations- und Kommunikationstechnik (in Verkaufsräumen)",
"en": "Retail sale of information and communication equipment in specialised stores"
}
}
}
},
{
"…": "…"
}
]
HTTP/1.1 200 OK
404
Enterprise not found
{
"error": "The `enterprise` item specified could not be found",
"type": "RequestException",
"code": -2
}
enterpriseNumber
integer
0417497106
Successful response | The specific address has been found.
Address
object
entityNumber
string
0417497106
entityNumberFormatted
string
0417.497.106
entityType
string
enterprise
establishment
enterprise
type
string
branch
establishment
active-establishment
legal-entity
branch
typeDescription
object
street
object
nl
string
Kerkstraat
fr
string
Rue de l'Église
addressNumber
string
1
addressAdditional
string
Unit 12, Floor 5
postOfficeBox
string
Box 5
zipcode
string
2000
city
object
nl
string
Brussel
fr
string
Bruxelles
countryCode
string
fr
country
object
nl
string
Frankrijk
fr
string
France
en
string
France
de
string
dateRevoke
string
dateStart
string
2020-01-01
200
Successful response
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/enterprise/{enterpriseNumber}/address
{
"Address": {
"entityNumber": "0417497106",
"entityNumberFormatted": "0417.497.106",
"entityType": "enterprise",
"type": "branch",
"typeDescription": {
"nl": "Maatschappelijke zetel",
"en": "Head office",
"fr": "Siège social",
"de": "Sitzes Adresse"
},
"street": {
"nl": "Kerkstraat",
"fr": "Rue de l'Église"
},
"addressNumber": 1,
"addressAdditional": "Unit 12, Floor 5",
"postOfficeBox": "Box 5",
"zipcode": 2000,
"city": {
"nl": "Brussel",
"fr": "Bruxelles"
},
"countryCode": "fr",
"country": {
"nl": "Frankrijk",
"fr": "France",
"en": "France",
"de": "string"
},
"dateRevoke": "string",
"dateStart": "2020-01-01"
}
}
HTTP/1.1 200 OK
404
Enterprise not found
{
"error": "The `enterprise` item specified could not be found",
"type": "RequestException",
"code": -2
}
enterpriseNumber
integer
0417497106
Successful response | All contact information of the enterprise.
[]array
Contact
object
enterpriseNumber
string
0417497106
enterpriseNumberFormatted
string
0417.497.106
typeCode
string
phone
email
website
phone
value
string
typeCode.0032123456789
200
Successful response
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/enterprise/{enterpriseNumber}/contact
[
{
"Contact": {
"enterpriseNumber": "0417497106",
"enterpriseNumberFormatted": "0417.497.106",
"typeCode": "phone",
"value": "0032123456789"
}
},
{
"…": "…"
}
]
HTTP/1.1 200 OK
404
Enterprise not found
{
"error": "The `enterprise` item specified could not be found",
"type": "RequestException",
"code": -2
}
402
Larger plan required
{
"error": "Your active plan doesn't meet the requirements for this endpoint",
"type": "PlanScopeException",
"code": -31
}
enterpriseNumber
integer
0417497106
Successful response | All denominations from the enterprise.
[]array
Denomination
object
entityNumber
string
0417497106
entityNumberFormatted
string
0417.497.106
entityType
string
enterprise
establishment
enterprise
language
string
unknown
nl
en
fr
de
nl
value
string
FaimMedia B.V.
type
string
social
abbreviation
commercial
social
typeDescription
object
nl
string
Maatschappelijke naam
en
string
Primary name
fr
string
Dénomination sociale
de
string
Primärname
200
Successful response
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/enterprise/{enterpriseNumber}/denominations
[
{
"Denomination": {
"entityNumber": "0417497106",
"entityNumberFormatted": "0417.497.106",
"entityType": "enterprise",
"language": "nl",
"value": "FaimMedia B.V.",
"type": "social",
"typeDescription": {
"nl": "Maatschappelijke naam",
"en": "Primary name",
"fr": "Dénomination sociale",
"de": "Primärname"
}
}
},
{
"…": "…"
}
]
HTTP/1.1 200 OK
404
Enterprise not found
{
"error": "The `enterprise` item specified could not be found",
"type": "RequestException",
"code": -2
}
enterpriseNumber
integer
0417497106
language
string
unknown value in this case.unknown
nl
en
fr
de
nl
type
string
social
abbreviation
commercial
commercial
Successful response | The denomination has been found.
Denomination
object
entityNumber
string
0417497106
entityNumberFormatted
string
0417.497.106
entityType
string
enterprise
establishment
enterprise
language
string
unknown
nl
en
fr
de
nl
value
string
FaimMedia B.V.
type
string
social
abbreviation
commercial
social
typeDescription
object
nl
string
Maatschappelijke naam
en
string
Primary name
fr
string
Dénomination sociale
de
string
Primärname
200
Successful response
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/enterprise/{enterpriseNumber}/denomination/{language}/{type}
{
"Denomination": {
"entityNumber": "0417497106",
"entityNumberFormatted": "0417.497.106",
"entityType": "enterprise",
"language": "nl",
"value": "FaimMedia B.V.",
"type": "social",
"typeDescription": {
"nl": "Maatschappelijke naam",
"en": "Primary name",
"fr": "Dénomination sociale",
"de": "Primärname"
}
}
}
HTTP/1.1 200 OK
404
Enterprise not found
{
"error": "The `enterprise` item specified could not be found",
"type": "RequestException",
"code": -2
}
enterpriseNumber
integer
0417497106
active
Large plan
string
active
inactive
all
active
Successful response | All establishments from the enterprise.
[]array
Establishment
object
enterpriseNumber
string
0417497106
enterpriseNumberFormatted
string
0417.497.106
establishmentNumber
string
2102217157
establishmentNumberFormatted
string
2102.217.157
active
boolean
false if the establishment is in a pre-registration state.1
dateStart
string
2020-01-01
200
Successful response
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/enterprise/{enterpriseNumber}/establishments
[
{
"Establishment": {
"enterpriseNumber": "0417497106",
"enterpriseNumberFormatted": "0417.497.106",
"establishmentNumber": "2102217157",
"establishmentNumberFormatted": "2102.217.157",
"active": true,
"dateStart": "2020-01-01"
}
},
{
"…": "…"
}
]
HTTP/1.1 200 OK
402
Larger plan required for this parameter
{
"error": "Your active plan doesn't meet the requirements for this endpoint",
"type": "PlanScopeException",
"parameter": "active",
"code": -31
}
404
Enterprise not found
{
"error": "The `enterprise` item specified could not be found",
"type": "RequestException",
"code": -2
}
enterpriseNumber
integer
0417497106
Successful response | Financial information from the enterprise.
EnterpriseFinancial
object
enterpriseNumber
string
0417497106
enterpriseNumberFormatted
string
0417.497.106
capitalValue
integer
100000
capitalValuta
string
EUR is the most common, this value can be any ISO-4217 code. It's also common for companies founded before the introduction of the Euro to have historical valuta, in example: BEF, FRF and NLG. Most foreign companies have foreign valuta present.
Please visit wikipedia for an up-to-date ISO-4217 list of: - Active currency codes - Historic currency codesEUR
annualAssembly
integer
6
annualAssemblyMonth
string
June
fiscalEnd
string
0000.0000-12-21
fiscalSpecialStart
string
2021-03-01
fiscalSpecialEnd
string
2022-02-28
200
Successful response
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/enterprise/{enterpriseNumber}/financial
{
"EnterpriseFinancial": {
"enterpriseNumber": "0417497106",
"enterpriseNumberFormatted": "0417.497.106",
"capitalValue": 100000,
"capitalValuta": "EUR",
"annualAssembly": 6,
"annualAssemblyMonth": "June",
"fiscalEnd": "0000-12-21",
"fiscalSpecialStart": "2021-03-01",
"fiscalSpecialEnd": "2022-02-28"
}
}
HTTP/1.1 200 OK
enterpriseNumber
integer
0417497106
Successful response | NSSO information from the enterprise.
EnterpriseNsso
object
enterpriseNumber
string
0417497106
enterpriseNumberFormatted
string
0417.497.106
nssoNumber
integer
154857201
nssoNumberFormatted
string
1548572-01
nssoNumberProvisional
integer
1234567890
sectors
array
code
string
private
publicFedReg
publicPla
private
codeDescription
object
nl
string
Privé
fr
string
Privé
de
string
Privat
en
string
Private
dateStart
string
1706745600
periods
array
dateStart
string
1709337600
importanceCodes
array
dateStart
string
1712016000
code
object
1
2
3
4
5
6
7
8
9
1
codeDescription
object
nl
string
1 tot 4 werknemers
fr
string
1 à 4 travailleurs
de
string
1 bis 4 Arbeitnehmer
en
string
1 until 4 employees
200
Successful response
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/enterprise/{enterpriseNumber}/nsso
{
"EnterpriseNsso": {
"enterpriseNumber": "0417497106",
"enterpriseNumberFormatted": "0417.497.106",
"nssoNumber": 154857201,
"nssoNumberFormatted": "1548572-01",
"nssoNumberProvisional": 1234567890,
"sectors": [
{
"code": "private",
"codeDescription": {
"nl": "Privé",
"fr": "Privé",
"de": "Privat",
"en": "Private"
},
"dateStart": 1706745600
},
{
"…": "…"
}
],
"periods": [
{
"dateStart": 1709337600,
"importanceCodes": [
{
"dateStart": 1712016000,
"code": [],
"codeDescription": {
"nl": "1 tot 4 werknemers",
"fr": "1 à 4 travailleurs",
"de": "1 bis 4 Arbeitnehmer",
"en": "1 until 4 employees"
}
},
{
"…": "…"
}
]
},
{
"…": "…"
}
]
}
}
HTTP/1.1 200 OK
402
Larger plan required
{
"error": "Your active plan doesn't meet the requirements for this endpoint",
"type": "PlanScopeException",
"code": -31
}
404
The provided enterprise could not be found, or does not have any NSSO information available.
503
Service unavailable, please try again later.
enterpriseNumber
integer
0417497106
Successful response | All functions from the enterprise.
[]array
EnterpriseRole
object
enterpriseNumber
string
0417497106
enterpriseNumberFormatted
string
0417.497.106
nameFirst
string
Frans
nameLast
string
Vanderbeek
parentEnterpriseNumber
string
nameLast and nameFirst fields are both empty, the legal entity of the parent enterprise fulfills this role.0417497105
parentEnterpriseNumberFormatted
string
0417.497.106
dateInOffice
string
2021-01-01
Role
object
roleCode
integer
5
title
object
nl
string
Zaakvoerder
en
string
Manager
fr
string
Gérant
de
string
Geschäftsführer
note
object
nl
string
Overeenkomstig het Wetboek van Vennootschappen en Verenigingen moet de term "Zaakvoerder" vanaf 1 januari 2020 gelezen worden als "Bestuurder"
en
string
Pursuant to the Code of Companies and Associations, the term "Manager" must, since January 1, 2020, be read as "Board member".
fr
string
En application du Code des sociétés et des associations, le terme "Gérant" doit, depuis le 1er janvier 2020, être lu comme étant "Administrateur".
de
string
Gemäß dem Gesellschafts- und Vereinigungsgesetzbuch ist der Begriff "Geschäftsführer" seit dem 1. Januar 2020 als "Verwalter" zu lesen.
200
Successful response
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/enterprise/{enterpriseNumber}/roles
[
{
"EnterpriseRole": {
"enterpriseNumber": "0417497106",
"enterpriseNumberFormatted": "0417.497.106",
"nameFirst": "Frans",
"nameLast": "Vanderbeek",
"parentEnterpriseNumber": "0417497105",
"parentEnterpriseNumberFormatted": "0417.497.106",
"dateInOffice": "2021-01-01",
"Role": {
"roleCode": 5,
"title": {
"nl": "Zaakvoerder",
"en": "Manager",
"fr": "Gérant",
"de": "Geschäftsführer"
},
"note": {
"nl": "Overeenkomstig het Wetboek van Vennootschappen en Verenigingen moet de term \"Zaakvoerder\" vanaf 1 januari 2020 gelezen worden als \"Bestuurder\"\n",
"en": "Pursuant to the Code of Companies and Associations, the term \"Manager\" must, since January 1, 2020, be read as \"Board member\".\n",
"fr": "En application du Code des sociétés et des associations, le terme \"Gérant\" doit, depuis le 1er janvier 2020, être lu comme étant \"Administrateur\".\n",
"de": "Gemäß dem Gesellschafts- und Vereinigungsgesetzbuch ist der Begriff \"Geschäftsführer\" seit dem 1. Januar 2020 als \"Verwalter\" zu lesen.\n"
}
}
}
},
{
"…": "…"
}
]
HTTP/1.1 200 OK
404
Enterprise not found
{
"error": "The `enterprise` item specified could not be found",
"type": "RequestException",
"code": -2
}
402
Larger plan required
{
"error": "Your active plan doesn't meet the requirements for this endpoint",
"type": "PlanScopeException",
"code": -31
}
establishmentNumber
integer
2147197839
Successful response | The establishment has been found.
Establishment
object
enterpriseNumber
string
0417497106
enterpriseNumberFormatted
string
0417.497.106
establishmentNumber
string
2102217157
establishmentNumberFormatted
string
2102.217.157
active
boolean
false if the establishment is in a pre-registration state.1
dateStart
string
2020-01-01
200
Successful response
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/establishment/{establishmentNumber}
{
"Establishment": {
"enterpriseNumber": "0417497106",
"enterpriseNumberFormatted": "0417.497.106",
"establishmentNumber": "2102217157",
"establishmentNumberFormatted": "2102.217.157",
"active": true,
"dateStart": "2020-01-01"
}
}
HTTP/1.1 200 OK
404
Establishment not found
{
"error": "The `establishment` item specified could not be found",
"type": "RequestException",
"code": -2
}
establishmentNumber
integer
2147197839
filter.naceVersion
integer
2008
2025
Successful response | All activities from the establishment.
[]array
Activity
object
activityGroup
string
BTW001
EDR001
OLK001
POR001
PPO001
RSZ001
SCO001
BTW001
activityGroupDescription
object
nl
string
BTW-activiteiten
fr
string
Activités TVA
en
string
VAT activities
de
string
MwSt.-Aktivitäten
classification
string
ANCI
MAIN
SECO
MAIN
classificationDescription
object
nl
string
Hoofdactiviteit
fr
string
Activité principale
en
string
Main activity
de
string
Hauptaktivität
Nace
object
naceVersion
integer
2008
naceCode
string
474
description
object
nl
string
Detailhandel in ICT-apparatuur in gespecialiseerde winkels
fr
string
Commerce de détail d'équipements de l'information et de la communication en magasin spécialisé
de
string
Einzelhandel mit Geräten der Informations- und Kommunikationstechnik (in Verkaufsräumen)
en
string
Retail sale of information and communication equipment in specialised stores
200
Successful response
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/establishment/{establishmentNumber}/activities
[
{
"Activity": {
"activityGroup": "BTW001",
"activityGroupDescription": {
"nl": "BTW-activiteiten",
"fr": "Activités TVA",
"en": "VAT activities",
"de": "MwSt.-Aktivitäten"
},
"classification": "MAIN",
"classificationDescription": {
"nl": "Hoofdactiviteit",
"fr": "Activité principale",
"en": "Main activity",
"de": "Hauptaktivität"
},
"Nace": {
"naceVersion": 2008,
"naceCode": "474",
"description": {
"nl": "Detailhandel in ICT-apparatuur in gespecialiseerde winkels",
"fr": "Commerce de détail d'équipements de l'information et de la communication en magasin spécialisé",
"de": "Einzelhandel mit Geräten der Informations- und Kommunikationstechnik (in Verkaufsräumen)",
"en": "Retail sale of information and communication equipment in specialised stores"
}
}
}
},
{
"…": "…"
}
]
HTTP/1.1 200 OK
404
Establishment not found
{
"error": "The `establishment` item specified could not be found",
"type": "RequestException",
"code": -2
}
establishmentNumber
integer
2147197839
Successful response | The specific address has been found.
Address
object
entityNumber
string
0417497106
entityNumberFormatted
string
0417.497.106
entityType
string
enterprise
establishment
enterprise
type
string
branch
establishment
active-establishment
legal-entity
branch
typeDescription
object
street
object
nl
string
Kerkstraat
fr
string
Rue de l'Église
addressNumber
string
1
addressAdditional
string
Unit 12, Floor 5
postOfficeBox
string
Box 5
zipcode
string
2000
city
object
nl
string
Brussel
fr
string
Bruxelles
countryCode
string
fr
country
object
nl
string
Frankrijk
fr
string
France
en
string
France
de
string
dateRevoke
string
dateStart
string
2020-01-01
200
Successful response
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/establishment/{establishmentNumber}/address
{
"Address": {
"entityNumber": "0417497106",
"entityNumberFormatted": "0417.497.106",
"entityType": "enterprise",
"type": "branch",
"typeDescription": {
"nl": "Maatschappelijke zetel",
"en": "Head office",
"fr": "Siège social",
"de": "Sitzes Adresse"
},
"street": {
"nl": "Kerkstraat",
"fr": "Rue de l'Église"
},
"addressNumber": 1,
"addressAdditional": "Unit 12, Floor 5",
"postOfficeBox": "Box 5",
"zipcode": 2000,
"city": {
"nl": "Brussel",
"fr": "Bruxelles"
},
"countryCode": "fr",
"country": {
"nl": "Frankrijk",
"fr": "France",
"en": "France",
"de": "string"
},
"dateRevoke": "string",
"dateStart": "2020-01-01"
}
}
HTTP/1.1 200 OK
404
Establishment not found
{
"error": "The `establishment` item specified could not be found",
"type": "RequestException",
"code": -2
}
establishmentNumber
integer
2147197839
Successful response | All contact information of the establishment.
[]array
Contact
object
enterpriseNumber
string
0417497106
enterpriseNumberFormatted
string
0417.497.106
typeCode
string
phone
email
website
phone
value
string
typeCode.0032123456789
200
Successful response
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/establishment/{establishmentNumber}/contact
[
{
"Contact": {
"enterpriseNumber": "0417497106",
"enterpriseNumberFormatted": "0417.497.106",
"typeCode": "phone",
"value": "0032123456789"
}
},
{
"…": "…"
}
]
HTTP/1.1 200 OK
404
Establishment not found
{
"error": "The `establishment` item specified could not be found",
"type": "RequestException",
"code": -2
}
402
Larger plan required
{
"error": "Your active plan doesn't meet the requirements for this endpoint",
"type": "PlanScopeException",
"code": -31
}
establishmentNumber
integer
2147197839
Successful response | All denominations from the establishment.
[]array
Denomination
object
entityNumber
string
0417497106
entityNumberFormatted
string
0417.497.106
entityType
string
enterprise
establishment
enterprise
language
string
unknown
nl
en
fr
de
nl
value
string
FaimMedia B.V.
type
string
social
abbreviation
commercial
social
typeDescription
object
nl
string
Maatschappelijke naam
en
string
Primary name
fr
string
Dénomination sociale
de
string
Primärname
200
Successful response
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/establishment/{establishmentNumber}/denominations
[
{
"Denomination": {
"entityNumber": "0417497106",
"entityNumberFormatted": "0417.497.106",
"entityType": "enterprise",
"language": "nl",
"value": "FaimMedia B.V.",
"type": "social",
"typeDescription": {
"nl": "Maatschappelijke naam",
"en": "Primary name",
"fr": "Dénomination sociale",
"de": "Primärname"
}
}
},
{
"…": "…"
}
]
HTTP/1.1 200 OK
404
Establishment not found
{
"error": "The `establishment` item specified could not be found",
"type": "RequestException",
"code": -2
}
establishmentNumber
integer
2147197839
language
string
unknown value in this case.unknown
nl
en
fr
de
nl
Successful response | The denomination has been found.
Denomination
object
entityNumber
string
0417497106
entityNumberFormatted
string
0417.497.106
entityType
string
enterprise
establishment
enterprise
language
string
unknown
nl
en
fr
de
nl
value
string
FaimMedia B.V.
type
string
social
abbreviation
commercial
social
typeDescription
object
nl
string
Maatschappelijke naam
en
string
Primary name
fr
string
Dénomination sociale
de
string
Primärname
200
Successful response
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/establishment/{establishmentNumber}/denomination/{language}
{
"Denomination": {
"entityNumber": "0417497106",
"entityNumberFormatted": "0417.497.106",
"entityType": "enterprise",
"language": "nl",
"value": "FaimMedia B.V.",
"type": "social",
"typeDescription": {
"nl": "Maatschappelijke naam",
"en": "Primary name",
"fr": "Dénomination sociale",
"de": "Primärname"
}
}
}
HTTP/1.1 200 OK
404
Item or resource not found
{
"type": "RequestException",
"error": "The item specified could not be found",
"code": -2
}
query
string
AB Inbev
entityType
string
enterprise
establishment
enterprise
type
string
social
abbreviation
commercial
commercial
active
Large plan
string
active
inactive
all
active
language
string
nl
fr
en
de
nl
page
integer
2
limit
integer
30
Successful response | All denominations matching the provided search criteria.
Denominations
array
Denomination
object
entityNumber
string
0417497106
entityNumberFormatted
string
0417.497.106
entityType
string
enterprise
establishment
enterprise
language
string
unknown
nl
en
fr
de
nl
value
string
FaimMedia B.V.
type
string
social
abbreviation
commercial
social
typeDescription
object
nl
string
Maatschappelijke naam
en
string
Primary name
fr
string
Dénomination sociale
de
string
Primärname
Pagination
object
limit
integer
10
page
integer
1
totalPages
integer
99
totalItems
integer
1234
countItems
integer
8
estimate
boolean
1
200
Successful response
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \ https://api.kbodata.app/v2/denominations
{
"Denominations": [
{
"Denomination": {
"entityNumber": "0417497106",
"entityNumberFormatted": "0417.497.106",
"entityType": "enterprise",
"language": "nl",
"value": "FaimMedia B.V.",
"type": "social",
"typeDescription": {
"nl": "Maatschappelijke naam",
"en": "Primary name",
"fr": "Dénomination sociale",
"de": "Primärname"
}
}
},
{
"…": "…"
}
],
"Pagination": {
"limit": 10,
"page": 1,
"totalPages": 99,
"totalItems": 1234,
"countItems": 8,
"estimate": true
}
}
HTTP/1.1 200 OK
422
Invalid response, missing or incorrect parameter
{
"type": "RequestException",
"error": "Missing `query` parameter",
"code": -3
}
402
Larger plan required for this parameter
{
"error": "Your active plan doesn't meet the requirements for this endpoint",
"type": "PlanScopeException",
"parameter": "active",
"code": -31
}
query
string
Grote Markt
entityType
string
enterprise
establishment
enterprise
active
Large plan
string
active
inactive
all
active
fields[]
array
street: Search in the street fieldzipcode: Search in the zipcode fieldcity: Search in the city fieldcountry: Search in the country fieldfilter.zipCodeExact
Large plan
string
2040
filter.addressNumberExact
Large plan
string
24A
filter.countryCode
Large plan
string
be
page
integer
2
limit
integer
30
Successful response | All addresses matching the provided search criteria.
Addresses
array
Address
object
entityNumber
string
0417497106
entityNumberFormatted
string
0417.497.106
entityType
string
enterprise
establishment
enterprise
type
string
branch
establishment
active-establishment
legal-entity
branch
typeDescription
object
street
object
nl
string
Kerkstraat
fr
string
Rue de l'Église
addressNumber
string
1
addressAdditional
string
Unit 12, Floor 5
postOfficeBox
string
Box 5
zipcode
string
2000
city
object
nl
string
Brussel
fr
string
Bruxelles
countryCode
string
fr
country
object
nl
string
Frankrijk
fr
string
France
en
string
France
de
string
dateRevoke
string
dateStart
string
2020-01-01
Pagination
object
limit
integer
10
page
integer
1
totalPages
integer
99
totalItems
integer
1234
countItems
integer
8
estimate
boolean
1
200
Successful response
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \ https://api.kbodata.app/v2/addresses
{
"Addresses": [
{
"Address": {
"entityNumber": "0417497106",
"entityNumberFormatted": "0417.497.106",
"entityType": "enterprise",
"type": "branch",
"typeDescription": {
"nl": "Maatschappelijke zetel",
"en": "Head office",
"fr": "Siège social",
"de": "Sitzes Adresse"
},
"street": {
"nl": "Kerkstraat",
"fr": "Rue de l'Église"
},
"addressNumber": 1,
"addressAdditional": "Unit 12, Floor 5",
"postOfficeBox": "Box 5",
"zipcode": 2000,
"city": {
"nl": "Brussel",
"fr": "Bruxelles"
},
"countryCode": "fr",
"country": {
"nl": "Frankrijk",
"fr": "France",
"en": "France",
"de": "string"
},
"dateRevoke": "string",
"dateStart": "2020-01-01"
}
},
{
"…": "…"
}
],
"Pagination": {
"limit": 10,
"page": 1,
"totalPages": 99,
"totalItems": 1234,
"countItems": 8,
"estimate": true
}
}
HTTP/1.1 200 OK
422
Invalid response, missing or incorrect parameter
{
"type": "RequestException",
"error": "Missing `query` parameter",
"code": -3
}
402
Larger plan required for this parameter
{
"error": "Your active plan doesn't meet the requirements for this endpoint",
"type": "PlanScopeException",
"parameter": "active",
"code": -31
}
query
string
ICT-apparatuur
language
string
nl
fr
de
en
nl
filter.naceVersion
integer
2008
2025
page
integer
2
limit
integer
30
Successful response | All NACEs matching the provided search criteria.
Naces
array
Nace
object
naceVersion
integer
2008
naceCode
string
474
description
object
nl
string
Detailhandel in ICT-apparatuur in gespecialiseerde winkels
fr
string
Commerce de détail d'équipements de l'information et de la communication en magasin spécialisé
de
string
Einzelhandel mit Geräten der Informations- und Kommunikationstechnik (in Verkaufsräumen)
en
string
Retail sale of information and communication equipment in specialised stores
Pagination
object
limit
integer
10
page
integer
1
totalPages
integer
99
totalItems
integer
1234
countItems
integer
8
estimate
boolean
1
200
Successful response
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \ https://api.kbodata.app/v2/naces
{
"Naces": [
{
"Nace": {
"naceVersion": 2008,
"naceCode": "474",
"description": {
"nl": "Detailhandel in ICT-apparatuur in gespecialiseerde winkels",
"fr": "Commerce de détail d'équipements de l'information et de la communication en magasin spécialisé",
"de": "Einzelhandel mit Geräten der Informations- und Kommunikationstechnik (in Verkaufsräumen)",
"en": "Retail sale of information and communication equipment in specialised stores"
}
}
},
{
"…": "…"
}
],
"Pagination": {
"limit": 10,
"page": 1,
"totalPages": 99,
"totalItems": 1234,
"countItems": 8,
"estimate": true
}
}
HTTP/1.1 200 OK
naceVersion
integer
2008
2025
2025
naceCode
string
01
Successful response, NACE is found.
Nace
object
naceVersion
integer
2008
naceCode
string
474
description
object
nl
string
Detailhandel in ICT-apparatuur in gespecialiseerde winkels
fr
string
Commerce de détail d'équipements de l'information et de la communication en magasin spécialisé
de
string
Einzelhandel mit Geräten der Informations- und Kommunikationstechnik (in Verkaufsräumen)
en
string
Retail sale of information and communication equipment in specialised stores
200
Successful response, NACE is found.
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/nace/{naceVersion}/{naceCode}
{
"Nace": {
"naceVersion": 2008,
"naceCode": "474",
"description": {
"nl": "Detailhandel in ICT-apparatuur in gespecialiseerde winkels",
"fr": "Commerce de détail d'équipements de l'information et de la communication en magasin spécialisé",
"de": "Einzelhandel mit Geräten der Informations- und Kommunikationstechnik (in Verkaufsräumen)",
"en": "Retail sale of information and communication equipment in specialised stores"
}
}
}
HTTP/1.1 200 OK
query
string
Manager
language
string
nl
en
fr
de
en
page
integer
2
limit
integer
30
Successful response | All function titles returned
Roles
array
Role
object
roleCode
integer
5
title
object
nl
string
Zaakvoerder
en
string
Manager
fr
string
Gérant
de
string
Geschäftsführer
note
object
nl
string
Overeenkomstig het Wetboek van Vennootschappen en Verenigingen moet de term "Zaakvoerder" vanaf 1 januari 2020 gelezen worden als "Bestuurder"
en
string
Pursuant to the Code of Companies and Associations, the term "Manager" must, since January 1, 2020, be read as "Board member".
fr
string
En application du Code des sociétés et des associations, le terme "Gérant" doit, depuis le 1er janvier 2020, être lu comme étant "Administrateur".
de
string
Gemäß dem Gesellschafts- und Vereinigungsgesetzbuch ist der Begriff "Geschäftsführer" seit dem 1. Januar 2020 als "Verwalter" zu lesen.
Pagination
object
limit
integer
10
page
integer
1
totalPages
integer
99
totalItems
integer
1234
countItems
integer
8
estimate
boolean
1
200
Successful response
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \ https://api.kbodata.app/v2/roles
{
"Roles": [
{
"Role": {
"roleCode": 5,
"title": {
"nl": "Zaakvoerder",
"en": "Manager",
"fr": "Gérant",
"de": "Geschäftsführer"
},
"note": {
"nl": "Overeenkomstig het Wetboek van Vennootschappen en Verenigingen moet de term \"Zaakvoerder\" vanaf 1 januari 2020 gelezen worden als \"Bestuurder\"\n",
"en": "Pursuant to the Code of Companies and Associations, the term \"Manager\" must, since January 1, 2020, be read as \"Board member\".\n",
"fr": "En application du Code des sociétés et des associations, le terme \"Gérant\" doit, depuis le 1er janvier 2020, être lu comme étant \"Administrateur\".\n",
"de": "Gemäß dem Gesellschafts- und Vereinigungsgesetzbuch ist der Begriff \"Geschäftsführer\" seit dem 1. Januar 2020 als \"Verwalter\" zu lesen.\n"
}
}
},
{
"…": "…"
}
],
"Pagination": {
"limit": 10,
"page": 1,
"totalPages": 99,
"totalItems": 1234,
"countItems": 8,
"estimate": true
}
}
HTTP/1.1 200 OK
402
Larger plan required
{
"error": "Your active plan doesn't meet the requirements for this endpoint",
"type": "PlanScopeException",
"code": -31
}
roleCode
integer
5
Successful response | Function title is returned
Role
object
roleCode
integer
5
title
object
nl
string
Zaakvoerder
en
string
Manager
fr
string
Gérant
de
string
Geschäftsführer
note
object
nl
string
Overeenkomstig het Wetboek van Vennootschappen en Verenigingen moet de term "Zaakvoerder" vanaf 1 januari 2020 gelezen worden als "Bestuurder"
en
string
Pursuant to the Code of Companies and Associations, the term "Manager" must, since January 1, 2020, be read as "Board member".
fr
string
En application du Code des sociétés et des associations, le terme "Gérant" doit, depuis le 1er janvier 2020, être lu comme étant "Administrateur".
de
string
Gemäß dem Gesellschafts- und Vereinigungsgesetzbuch ist der Begriff "Geschäftsführer" seit dem 1. Januar 2020 als "Verwalter" zu lesen.
200
Successful response
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/role/{roleCode}
{
"Role": {
"roleCode": 5,
"title": {
"nl": "Zaakvoerder",
"en": "Manager",
"fr": "Gérant",
"de": "Geschäftsführer"
},
"note": {
"nl": "Overeenkomstig het Wetboek van Vennootschappen en Verenigingen moet de term \"Zaakvoerder\" vanaf 1 januari 2020 gelezen worden als \"Bestuurder\"\n",
"en": "Pursuant to the Code of Companies and Associations, the term \"Manager\" must, since January 1, 2020, be read as \"Board member\".\n",
"fr": "En application du Code des sociétés et des associations, le terme \"Gérant\" doit, depuis le 1er janvier 2020, être lu comme étant \"Administrateur\".\n",
"de": "Gemäß dem Gesellschafts- und Vereinigungsgesetzbuch ist der Begriff \"Geschäftsführer\" seit dem 1. Januar 2020 als \"Verwalter\" zu lesen.\n"
}
}
}
HTTP/1.1 200 OK
402
Larger plan required
{
"error": "Your active plan doesn't meet the requirements for this endpoint",
"type": "PlanScopeException",
"code": -31
}
404
Item or resource not found
{
"type": "RequestException",
"error": "The item specified could not be found",
"code": -2
}
query
string
Vennoot
language
string
nl
fr
de
en
nl
page
integer
2
limit
integer
30
Successful response | All juridical forms matching your search criteria are returned.
JuridicalForms
array
JuridicalForm
object
juridicalFormCode
string
030
description
object
nl
string
Buitenlandse entiteit
en
string
Foreign entity
fr
string
Entité étrangère
de
string
Ausländische Einheit
abbreviation
object
nl
string
Buitenlandse entiteit
en
string
Foreign entity
fr
string
Entité étrangère
de
string
Ausländische Einheit
Pagination
object
limit
integer
10
page
integer
1
totalPages
integer
99
totalItems
integer
1234
countItems
integer
8
estimate
boolean
1
200
Successful response
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \ https://api.kbodata.app/v2/juridical-forms
{
"JuridicalForms": [
{
"JuridicalForm": {
"juridicalFormCode": "030",
"description": {
"nl": "Buitenlandse entiteit",
"en": "Foreign entity",
"fr": "Entité étrangère",
"de": "Ausländische Einheit"
},
"abbreviation": {
"nl": "Buitenlandse entiteit",
"en": "Foreign entity",
"fr": "Entité étrangère",
"de": "Ausländische Einheit"
}
}
},
{
"…": "…"
}
],
"Pagination": {
"limit": 10,
"page": 1,
"totalPages": 99,
"totalItems": 1234,
"countItems": 8,
"estimate": true
}
}
HTTP/1.1 200 OK
402
Larger plan required
{
"error": "Your active plan doesn't meet the requirements for this endpoint",
"type": "PlanScopeException",
"code": -31
}
query
string
Stop
language
string
nl
fr
de
en
nl
page
integer
2
limit
integer
30
Successful response | All juridical situations matching your search criteria are returned.
JuridicalSituations
array
JuridicalSituation
object
juridicalSituationCode
string
000
description
object
nl
string
Normale toestand
en
string
Foreign entity
fr
string
Situation normale
de
string
Gewöhnlicher Zustand
Pagination
object
limit
integer
10
page
integer
1
totalPages
integer
99
totalItems
integer
1234
countItems
integer
8
estimate
boolean
1
200
Successful response
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \ https://api.kbodata.app/v2/juridical-situations
{
"JuridicalSituations": [
{
"JuridicalSituation": {
"juridicalSituationCode": "000",
"description": {
"nl": "Normale toestand",
"en": "Foreign entity",
"fr": "Situation normale",
"de": "Gewöhnlicher Zustand"
}
}
},
{
"…": "…"
}
],
"Pagination": {
"limit": 10,
"page": 1,
"totalPages": 99,
"totalItems": 1234,
"countItems": 8,
"estimate": true
}
}
HTTP/1.1 200 OK
402
Larger plan required
{
"error": "Your active plan doesn't meet the requirements for this endpoint",
"type": "PlanScopeException",
"code": -31
}
/enterprise endpoints for that purpose. Even though the response may say the VAT-number is invalid, it may still be valid for domestic transactions.vatNumber
string
BE0417497106
Successful response | The VAT-number has been validated. Please note: this does not necessary mean the provided VAT-number is valid, check the `isValid` value of the response.
Vat
object
vatNumber
string
BE0417497106
isValid
boolean
1
details
object
name
string
NV BELFIUS BANK
address
string
Karel Rogierplein 11, 1210 Sint-Joost-ten-Node
enterpriseNumber
string
0417497106
enterpriseNumberFormatted
string
0417.497.106
200
Successful response
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/vat/{vatNumber}
{
"Vat": {
"vatNumber": "BE0417497106",
"isValid": true,
"details": {
"name": "NV BELFIUS BANK",
"address": "Karel Rogierplein 11, 1210 Sint-Joost-ten-Node"
},
"enterpriseNumber": "0417497106",
"enterpriseNumberFormatted": "0417.497.106"
}
}
HTTP/1.1 200 OK
404
Item or resource not found
{
"type": "RequestException",
"error": "The item specified could not be found",
"code": -2
}
500
Service for VAT-validation is not available.
Success response | List of all webhooks
[]array
name
string
My webhook
url
string
https://your-server.com/example-webhook
hmacSecret
string
gmuNr1obKyct6FOXj6TCHTinJthlbo44
disabled
boolean
createdAt
string
2025-10-01T20:00:00Z
lastTriggeredAt
string
2025-10-08T06:00:00Z
200
Success response
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \ https://api.kbodata.app/v2/webhooks
[
{
"name": "My webhook",
"url": "https://your-server.com/example-webhook",
"hmacSecret": "gmuNr1obKyct6FOXj6TCHTinJthlbo44",
"disabled": false,
"createdAt": "2025-10-01T20:00:00Z",
"lastTriggeredAt": "2025-10-08T06:00:00Z"
},
{
"…": "…"
}
]
HTTP/1.1 200 OK
name
string
My webhook
url
string
https://your-server.com/example-webhook
disabled
boolean
The webhook was successfully created.
name
string
My webhook
url
string
https://your-server.com/example-webhook
hmacSecret
string
gmuNr1obKyct6FOXj6TCHTinJthlbo44
disabled
boolean
createdAt
string
2025-10-01T20:00:00Z
lastTriggeredAt
string
2025-10-08T06:00:00Z
202
The webhook was successfully created.
{
"name": "My webhook",
"url": "https://your-server.com/example-webhook",
"disabled": false
}
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
-d "{\"name\":\"My webhook\",\"url\":\"https://your-server.com/example-webhook\",\"disabled\":false}"
https://api.kbodata.app/v2/webhook
{
"name": "My webhook",
"url": "https://your-server.com/example-webhook",
"hmacSecret": "gmuNr1obKyct6FOXj6TCHTinJthlbo44",
"disabled": false,
"createdAt": "2025-10-01T20:00:00Z",
"lastTriggeredAt": "2025-10-08T06:00:00Z"
}
HTTP/1.1 200 OK
Successful response
name
string
My webhook
url
string
https://your-server.com/example-webhook
hmacSecret
string
gmuNr1obKyct6FOXj6TCHTinJthlbo44
disabled
boolean
createdAt
string
2025-10-01T20:00:00Z
lastTriggeredAt
string
2025-10-08T06:00:00Z
200
Successful response
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/webhook/{webhookId}
{
"name": "My webhook",
"url": "https://your-server.com/example-webhook",
"hmacSecret": "gmuNr1obKyct6FOXj6TCHTinJthlbo44",
"disabled": false,
"createdAt": "2025-10-01T20:00:00Z",
"lastTriggeredAt": "2025-10-08T06:00:00Z"
}
HTTP/1.1 200 OK
404
Item or resource not found
{
"type": "RequestException",
"error": "The item specified could not be found",
"code": -2
}
name
string
My webhook
url
string
https://your-server.com/example-webhook
disabled
boolean
Successful response, the webhook is updated
name
string
My webhook
url
string
https://your-server.com/example-webhook
hmacSecret
string
gmuNr1obKyct6FOXj6TCHTinJthlbo44
disabled
boolean
createdAt
string
2025-10-01T20:00:00Z
lastTriggeredAt
string
2025-10-08T06:00:00Z
200
Successful response, the webhook is updated
{
"name": "My webhook",
"url": "https://your-server.com/example-webhook",
"disabled": false
}
curl -X PUT \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
-d "{\"name\":\"My webhook\",\"url\":\"https://your-server.com/example-webhook\",\"disabled\":false}"
https://api.kbodata.app/v2/webhook/{webhookId}
{
"name": "My webhook",
"url": "https://your-server.com/example-webhook",
"hmacSecret": "gmuNr1obKyct6FOXj6TCHTinJthlbo44",
"disabled": false,
"createdAt": "2025-10-01T20:00:00Z",
"lastTriggeredAt": "2025-10-08T06:00:00Z"
}
HTTP/1.1 200 OK
404
Item or resource not found
{
"type": "RequestException",
"error": "The item specified could not be found",
"code": -2
}
The webhook is successfully deleted
204
The webhook is successfully deleted
curl -X DELETE \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/webhook/{webhookId}
HTTP/1.1 200 OK
404
Item or resource not found
{
"type": "RequestException",
"error": "The item specified could not be found",
"code": -2
}
Webhook is scheduled to be triggered.
202
Webhook is scheduled to be triggered.
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/webhook/{webhookId}/trigger
HTTP/1.1 200 OK
404
Item or resource not found
{
"type": "RequestException",
"error": "The item specified could not be found",
"code": -2
}
Successful response | The HMAC secret has been regenerated.
name
string
My webhook
url
string
https://your-server.com/example-webhook
hmacSecret
string
gmuNr1obKyct6FOXj6TCHTinJthlbo44
disabled
boolean
createdAt
string
2025-10-01T20:00:00Z
lastTriggeredAt
string
2025-10-08T06:00:00Z
200
Successful response
curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/webhook/{webhookId}/hmac-secret
{
"name": "My webhook",
"url": "https://your-server.com/example-webhook",
"hmacSecret": "gmuNr1obKyct6FOXj6TCHTinJthlbo44",
"disabled": false,
"createdAt": "2025-10-01T20:00:00Z",
"lastTriggeredAt": "2025-10-08T06:00:00Z"
}
HTTP/1.1 200 OK
404
Item or resource not found
{
"type": "RequestException",
"error": "The item specified could not be found",
"code": -2
}
page
integer
1
Successful response | A paginated list of all webhook entity subscriptions
WebhookSubscriptions
array
entityNumber
string
0200065765
Pagination
object
limit
integer
10
page
integer
1
totalPages
integer
99
totalItems
integer
1234
countItems
integer
8
estimate
boolean
1
200
Successful response
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/webhook/{webhookId}/subscriptions
{
"WebhookSubscriptions": [
{
"entityNumber": "0200065765"
},
{
"…": "…"
}
],
"Pagination": {
"limit": 10,
"page": 1,
"totalPages": 99,
"totalItems": 1234,
"countItems": 8,
"estimate": true
}
}
HTTP/1.1 200 OK
404
Item or resource not found
{
"type": "RequestException",
"error": "The item specified could not be found",
"code": -2
}
entityNumbers
array
[]
string
0123456789
The webhook subscriptions have successfully been added.
204
The webhook subscriptions have successfully been added.
{
"entityNumbers": [
"0200065765",
"0200068636",
"0200171970",
"0200245711",
"0200305493"
]
}
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
-d "{\"entityNumbers\":[200065765,200068636,200171970,200245711,200305493]}"
https://api.kbodata.app/v2/webhook/{webhookId}/subscriptions
HTTP/1.1 200 OK
422
A validation error occurred
[
{
"message": "Invalid entity numbers has been provided",
"field": "entityNumber",
"type": "ValidationFailed",
"code": 422,
"metadata": {
"invalidIndexes": [
6
]
}
},
{
"…": "…"
}
]
404
Item or resource not found
{
"type": "RequestException",
"error": "The item specified could not be found",
"code": -2
}
entityNumbers
array
[]
string
0123456789
all
boolean
1
The webhook subscriptions have been successfully removed.
204
The provided entity numbers have been removed
{
"entityNumbers": [
"0200065765",
"0200068636",
"0200171970",
"0200245711",
"0200305493"
]
}
curl -X DELETE \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
-d "{\"entityNumbers\":[200065765,200068636,200171970,200245711,200305493]}"
https://api.kbodata.app/v2/webhook/{webhookId}/subscriptions
HTTP/1.1 200 OK
204
All subscriptions have been successfully removed
{
"all": true
}
curl -X DELETE \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
-d "{\"all\":true}"
https://api.kbodata.app/v2/webhook/{webhookId}/subscriptions
HTTP/1.1 200 OK
422
A validation error occurred
[
{
"message": "Invalid entity numbers has been provided",
"field": "entityNumber",
"type": "ValidationFailed",
"code": 422,
"metadata": {
"invalidIndexes": [
6
]
}
},
{
"…": "…"
}
]
404
Item or resource not found
{
"type": "RequestException",
"error": "The item specified could not be found",
"code": -2
}
Successful response | List of webhook log items
WebhookEvents
array
url
string
https://your-server.com/example-webhook
entityNumbers
object
retryCount
number
1
responseCode
integer
204
createdAt
string
2025-10-01T20:00:00Z
updatedAt
string
2025-10-08T06:00:00Z
Pagination
object
limit
integer
10
page
integer
1
totalPages
integer
99
totalItems
integer
1234
countItems
integer
8
estimate
boolean
1
200
Successful response
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \
https://api.kbodata.app/v2/webhook/{webhookId}/events
{
"WebhookEvents": [
{
"url": "https://your-server.com/example-webhook",
"entityNumbers": [],
"retryCount": 1,
"responseCode": 204,
"createdAt": "2025-10-01T20:00:00Z",
"updatedAt": "2025-10-08T06:00:00Z"
},
{
"…": "…"
}
],
"Pagination": {
"limit": 10,
"page": 1,
"totalPages": 99,
"totalItems": 1234,
"countItems": 8,
"estimate": true
}
}
HTTP/1.1 200 OK
404
Item or resource not found
{
"type": "RequestException",
"error": "The item specified could not be found",
"code": -2
}
429 response, and have to wait another 60 seconds before a valid response is returned.Success response | The provided authorization token is valid.
Customer
object
name
string
My Company Ltd.
planName
string
Plan.name field instead.Small
dateCreated
string
2020-02-02 02:02:02
webhookSubscriptionUsage
number
300
requestUsage
number
7800
requestSearchUsage
number
2400
Plan
object
name
string
Small
maxRequest
number
1500
maxRequestSearch
number
500
maxWebhookSubscriptions
number
400
maxPagination
number
25
ApiAccessToken
object
isDevelopment
boolean
isSandbox
boolean
description
string
My company token
dateCreated
string
2020-02-02 02:02:02
dateExpiration
string
2021-02-02 02:02:02
200
Success response
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \ https://api.kbodata.app/v2/me
{
"Customer": {
"name": "My Company Ltd.",
"planName": "Small",
"dateCreated": "2020-02-02 02:02:02",
"webhookSubscriptionUsage": 300,
"requestUsage": 7800,
"requestSearchUsage": 2400,
"Plan": {
"name": "Small",
"maxRequest": 1500,
"maxRequestSearch": 500,
"maxWebhookSubscriptions": 400,
"maxPagination": 25
}
},
"ApiAccessToken": {
"isDevelopment": false,
"isSandbox": false,
"description": "My company token",
"dateCreated": "2020-02-02 02:02:02",
"dateExpiration": "2021-02-02 02:02:02"
}
}
HTTP/1.1 200 OK
401
Invalid authorization token provided
{
"error": "The provided access token is invalid",
"type": "AuthorizationException",
"code": -2
}
429
Too many requests
{
"error": "You have exceeded the rate limit for this endpoint, try again in 60 seconds",
"type": "HttpTooManyRequestsException",
"code": 429
}
2xx status code should be considered healthy, and every 5xx status code should be considered unhealth. Please note that this endpoint is rate limited to once per 60 seconds, if this is exceeded you'll receive a 429 response, and have to wait another 60 seconds before a valid response is returned.Success response | The API is healthy
204
Success response
curl -X OPTIONS \ -H "Content-Type: application/json" \ -H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \ https://api.kbodata.app/v2/health
HTTP/1.1 200 OK
500
The API in unhealthy
503
The API is unhealthy
429
Too many requests
{
"error": "You have exceeded the rate limit for this endpoint, try again in 60 seconds",
"type": "HttpTooManyRequestsException",
"code": 429
}
405
Invalid method
2xx status code should be considered healthy, and every 5xx status code should be considered unhealth.
Please note that this endpoint is rate limited to once per 60 seconds, if this is exceeded you'll receive a 429 response, and have to wait another 60 seconds before a valid response is returned.
Endpoints include:Success response | The VAT endpoints are healthy.
204
Success response
curl -X OPTIONS \ -H "Content-Type: application/json" \ -H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \ https://api.kbodata.app/v2/health/vat
HTTP/1.1 200 OK
500
The VAT service in unhealthy
503
The VAT service is unhealthy
429
Too many requests
{
"error": "You have exceeded the rate limit for this endpoint, try again in 60 seconds",
"type": "HttpTooManyRequestsException",
"code": 429
}
405
Invalid method
2xx status code should be considered healthy, and every 5xx status code should be considered unhealth.
Please note that this endpoint is rate limited to once per 60 seconds, if this is exceeded you'll receive a 429 response, and have to wait another 60 seconds before a valid response is returned.
Endpoints include:Success response | The NSSO endpoints are healthy
204
Success response
curl -X OPTIONS \ -H "Content-Type: application/json" \ -H "Authorization: Bearer tk9xkS0PrDpa1yxIT6WWwD204c3pgOe8fIpguPCeGGzZ2ufRU5F74lMW1ap111g7" \ https://api.kbodata.app/v2/health/nsso
HTTP/1.1 200 OK
500
The NSSO service is unhealthy.
503
The NSSO service is unhealthy.
429
Too many requests
{
"error": "You have exceeded the rate limit for this endpoint, try again in 60 seconds",
"type": "HttpTooManyRequestsException",
"code": 429
}
405
Invalid method
Webhooks allow you to receive real-time HTTP notifications of changes to your data. When an event is triggered, we send an HTTP POST request to the URL you have specified for your webhook. This request contains a payload with information about the event.
You can use webhooks to automate workflows, update your database, or notify users of important events.
Webooks are available since version 2.6 for customers using the Medium plan and up.
To start receiving webhooks, you need to create a webhook subscription. You can do this by sending a POST request to the /webhooks/subscriptions endpoint.
This must be either be a valid enterprise or establishment number, and it must be active. It's not possible to subscribe to inactive enterprises or establishments.
Depending on your plan, there might be a limit on the number of webhook subscriptions you can create.
When an enterprise or establishment has changes, and you are subscribed to it, we will trigger a webhook event the next day.
You cannot subscribe to an inactive enterprise or establishment, entities that will change its status from active to inactive will receive an event, but after that the subscription will become invalid.
We currently do not provide which information has been changed, this maybe anything of the following information: entity details, status, juridical- situation and form, financial information, addresses, denominations, contact information, dates, NACE activities, function and roles. In case any information about an establishment changes, this will also trigger a webhook on the enterprise.
You will receive the changed entity numbers in the payload of the request, based on these numbers you can request the new information and update your data.
Note: These information changes will not trigger a webhook: VAT-number validity changes and NSSO information. If these records are important for you to be up-to-date, you should still check them periodically.
It may happen that a webhook delivery fails, in example when your server or network is down and we could not reach is.
In such cases, we will retry sending the webhook according to the following schedule:
| Retry attempt | Delay before next attempt |
|---|---|
| 1 | 10 minutes |
| 2 | 60 minutes |
| 3 | 2 hours |
| 4 | 4 hours |
| 5 | 8 hours |
| 6 | 24 hours |
| 7 | 48 hours |
| 8 | 72 hours |
Note that after 8 failed attempts (so 72 hours or 3 days), we will stop trying to re-execute the webhook event and it's payload. The webhook will be disabled completely, and not triggering any new entity changes.
If necessary, you can always change the webhook URL and re-enable the webhook, without losing any existing subscriptions.
Content-Length
integer
4345
Content-Type
string
application/json.application/json
Content-Digest
string
sha-256=:f9a4ecea08365468226ab7584e6ca1a981b25660fd31eddffe209764cc413af8:
Date
string
Tue, 16 Dec 2025 16:56:32 GMT
X-Webhook-Id
number
342424
X-Webhook-Event-Id
number
432433
X-Webhook-Created-At
string
2025-12-16T16:56:32+00:00
X-Webhook-Signature
string
HMAC-SHA256 YTIzZDgwYjM0ZjE2NjFiZjk2ODQ5NDJhNDg5NTlkZWY=
X-Attempt-Count
number
1.1
X-Attempt-Count-Max
number
9
Enterprises and establishment that have changes. The meta data will be an empty object `{}` for now, in the future we might use this to provide more details information about what has been changed at the entity.
enterprises
object
establishments
object
{
"enterprises": {
"0200245711": [],
"0202395745": [],
"0206621678": [],
"0207087872": [],
"0200171970": []
},
"establishments": {
"2543435223": [],
"2543435220": [],
"2543435221": []
}
}
The sandbox environment replaces the old limited development environment. It's indented for a test- or development-environment and provides fictional data for various scenarios.
This does not require an active subscription, so it can be used to test before going live. However, if you don't have a subscription the validity of a token will be limited to one month, for subscribers you can create a token for one year.
All functionalities, except for webhooks, from all plans are available, so keep this in mind when you are aiming for a specific subscription.
In the sections below you'll find enterprises, establishment and search terms you can use the sandbox-requests.
Make sure you use a sandbox-token and the url of the sandbox environment (kbodata.io, not kbodata.app).
https://api.kbodata.io/v2/
The sandbox environment is limited to 30 requests per second and 1.000 per day, this limit cannot be reset by our team, so choose your requests wisely.
The headers below will be returned in every request to check your current usage. This only applies to the sandbox environment, the production environment will use different headers.
X-RateLimit-Minute-RemainingintX-RateLimit-Minute-ResettimestampX-RateLimit-Day-RemainingintX-RateLimit-Day-ResettimestampFor the enterprises fictional numbers will be used between 7.000.000.000 and 7.999.999.999 so they don't conflict with real enterprise numbers.
The VAT validation endpoint will also return a fictional validity result based on the VAT-status below.
For the establishments fictional numbers will be used between 8.000.000.000 and 8.999.999.999 so they don't conflict with real establishment numbers.
| Keyword | Description |
|---|---|
| Solar | |
| Tech | |
| Bouw | |
| Consulting | |
| Food | |
| Transport |
| Keyword | Description |
|---|---|
| Laan | Avenue/Lane, common in Dutch street names |
| Straat | Street, very common in Dutch street names |
| Weg | Road or way, common in Dutch street names |
| Rue | Street, common in French |
| Plein | Square/Plaza in Dutch |
| Avenue | Also avenue in English, common for French streets |
These NACE codes are available in the sandbox environment:
| Code | Name |
|---|---|
| 1 | Director |
| 2 | Person in charge of daily management |
| 5 | Manager |
| 6 | Managing Director |
| 11 | Secretary / Managing director |
| 12 | Founder registered entity natural person |
| 15 | Curator (designated by court) |
| 16 | Property manager |
| Code | Name |
|---|---|
| 000 | Natural person |
| 008 | Cooperative society with limited liability |
| 011 | General partnership |
| 014 | Public limited company |
| 015 | Private limited liability company |
| 017 | Non-profit organisation |
| 026 | Private foundation |
| 030 | Foreign entity |
| Code | Name |
|---|---|
| 000 | Normal situation |
| 001 | Legal incorporation |
| 010 | Ex officio dissolution |
| 014 | Closure of liquidation |
| 050 | Opening of bankruptcy procedure |
| 053 | Closing of bankruptcy procedure |
| 100 | Entity identification |
By looking at the HTTP response code, you can see if the request was successful or not. If the request was unsuccessful, you can usually use the HTTP response code and the error message in the JSON-response to find out what went wrong. You probably need change something in the request parameters.
Below is a list of common HTTP response codes, used in our API:
200 OK
401 Unauthorized
402 Payment Required
404 Not Found
405 Method Not Allowed
POST, but should be a GET.
409 Conflict
422 Unprocessable Entity
429 Too Many Requests
Wij en geselecteerde partners gebruiken cookies of vergelijkbare technologie als aangegeven in het cookiebeleid. U kunt toestemming geven voor het gebruik van deze technologie door deze kennisgeving te sluiten.
Kruispuntdatabank