Skip to content
We regularly add fields and features to the Belscope API. This documentation always shows the current version.

Shareholders

Who owns the company, from its newest annual account.

ShareholdersEvery shareholder, person or company, with name and address.
HoldingsThe kind of share, the percentage and the voting rights.

Request

GEThttps://api.belscope.be/v1/companies/{number}/shareholders
curl https://api.belscope.be/v1/companies/0400378485/shareholders \
-H "Authorization: Bearer YOUR_KEY"
const response = await fetch('https://api.belscope.be/v1/companies/0400378485/shareholders', {
headers: { Authorization: 'Bearer YOUR_KEY' },
});
const data = await response.json();
import requests
response = requests.get(
'https://api.belscope.be/v1/companies/0400378485/shareholders',
headers={'Authorization': 'Bearer YOUR_KEY'},
)
data = response.json()
$context = stream_context_create([
'http' => ['header' => 'Authorization: Bearer YOUR_KEY', 'ignore_errors' => true],
]);
$response = file_get_contents('https://api.belscope.be/v1/companies/0400378485/shareholders', false, $context);
$data = json_decode($response, true);
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_KEY");
var response = await client.GetAsync("https://api.belscope.be/v1/companies/0400378485/shareholders");
var data = await response.Content.ReadAsStringAsync();

Answer

Counts as 1 requestJSON
{
"enterprise_number": "0123.456.749",
"year_end": "2025-12-31",
"shareholders": [
{
"entity_type": "Rechtspersoon",
"name": "Belscope Holding",
"first_name": null,
"last_name": null,
"enterprise_number": "0123.456.848",
"other_number": null,
"address": {
"full": "Voorbeeldlaan 5, 2000 Antwerpen",
"street": "Voorbeeldlaan",
"house_number": "5",
"box": null,
"postal_code": "2000",
"municipality": "Antwerpen",
"country": "België"
},
"holdings": [
{
"nature": "Aandelen",
"percentage": 75,
"voting_rights_with_securities": 750,
"voting_rights_without_securities": 0
}
]
},
{
"entity_type": "Natuurlijk Persoon",
"name": "Jan Peeters",
"first_name": "Jan",
"last_name": "Peeters",
"enterprise_number": null,
"other_number": null,
"address": {
"full": "Kerkstraat 3, 9000 Gent",
"street": "Kerkstraat",
"house_number": "3",
"box": null,
"postal_code": "9000",
"municipality": "Gent",
"country": "België"
},
"holdings": [
{
"nature": "Aandelen",
"percentage": 25,
"voting_rights_with_securities": 250,
"voting_rights_without_securities": 0
}
]
}
]
}
Fields 22What every field in the answer means
FieldTypeDescriptionNullable
enterprise_numbertextThe enterprise number, always as 0123.456.749.
year_enddateThe last day of the financial year these numbers come from: the newest annual account with figures (a year filed only as a PDF has none). Check it to know how recent the numbers are.Null when the company has no annual account with figures.
shareholderslistThe shareholders the annual account lists: first the companies, then the people, each in the order of the annual account.Empty list when it lists none. The shortest annual accounts (micro model) never list shareholders.
entity_typetextNatuurlijk Persoon for a person, Rechtspersoon for a company.
nametextThe full name of the person, or the name of the company, as written in the annual account.
first_nametextThe first name.Null for a company.
last_nametextThe last name.Null for a company.
enterprise_numbertextThe Belgian enterprise number of a company shareholder, as 0123.456.749.Null for a person, or for a company without a valid Belgian number.
other_numbertextA number that is not a valid Belgian enterprise number, such as a foreign registration number, as written.Null when there is none.
addressblockThe address of the shareholder, as written in the annual account.Null when the annual account gives none.
fulltextThe whole address on one line, ready to show. The country is only added abroad.Null when the annual account gives too little of the address to write it.
streettextThe street.Null when it is not given.
house_numbertextThe house number.Null when there is none.
boxtextThe box number.Null when there is none.
postal_codetextThe postal code.Null when it is not given.
municipalitytextThe municipality.Null when it is not given.
countrytextThe country, such as België.Null when it is not given.
holdingslistWhat this shareholder holds: one entry per line of the annual account, usually one per kind of share.Empty list when the annual account gives no details.
naturetextThe kind of share, as written, such as Aandelen or Aandelen op naam.Null when it is not given.
percentagenumberThe share of the company held, as written in the annual account, such as 75 for 75%. Never worked out by Belscope.Null when the annual account does not give it.
voting_rights_with_securitiesnumberThe number of voting rights attached to securities.Null when it is not given.
voting_rights_without_securitiesnumberThe number of voting rights not attached to securities.Null when it is not given.