Get people
curl --request GET \
--url https://api.otbstudio.ai/v1/companies/{id}/people \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.otbstudio.ai/v1/companies/{id}/people"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.otbstudio.ai/v1/companies/{id}/people', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.otbstudio.ai/v1/companies/{id}/people",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.otbstudio.ai/v1/companies/{id}/people"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.otbstudio.ai/v1/companies/{id}/people")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.otbstudio.ai/v1/companies/{id}/people")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"people": [
{
"lastName": "Verhaegen",
"firstName": "Lotte",
"category": "ADMINISTER",
"role": "13",
"profession": "Gedelegeerd bestuurder",
"startDate": "2024-09-25",
"endDate": "2028-09-27",
"current": true,
"viaCompany": "Verhaegen Consult BV",
"viaEnterpriseNumber": "BE1023456797",
"sourceSystem": "NBB",
"sourceReference": "2025-00184417"
},
{
"lastName": "Peeters",
"firstName": "Luc",
"category": "OTHERMANDATE",
"role": "Aankoper",
"current": true,
"sourceSystem": "BSDM"
}
]
}{
"code": "missing_token"
}{
"code": "insufficient_credits"
}{
"code": "not_found"
}{
"code": "rate_limited"
}{
"code": "internal"
}{
"code": "busy"
}Companies
Get people
Directors and other mandates filed against this company, current ones first, then the history. Political party, remuneration and home addresses are never returned, and people the source marks as hidden are left out.
GET
/
v1
/
companies
/
{id}
/
people
Get people
curl --request GET \
--url https://api.otbstudio.ai/v1/companies/{id}/people \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.otbstudio.ai/v1/companies/{id}/people"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.otbstudio.ai/v1/companies/{id}/people', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.otbstudio.ai/v1/companies/{id}/people",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.otbstudio.ai/v1/companies/{id}/people"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.otbstudio.ai/v1/companies/{id}/people")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.otbstudio.ai/v1/companies/{id}/people")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"people": [
{
"lastName": "Verhaegen",
"firstName": "Lotte",
"category": "ADMINISTER",
"role": "13",
"profession": "Gedelegeerd bestuurder",
"startDate": "2024-09-25",
"endDate": "2028-09-27",
"current": true,
"viaCompany": "Verhaegen Consult BV",
"viaEnterpriseNumber": "BE1023456797",
"sourceSystem": "NBB",
"sourceReference": "2025-00184417"
},
{
"lastName": "Peeters",
"firstName": "Luc",
"category": "OTHERMANDATE",
"role": "Aankoper",
"current": true,
"sourceSystem": "BSDM"
}
]
}{
"code": "missing_token"
}{
"code": "insufficient_credits"
}{
"code": "not_found"
}{
"code": "rate_limited"
}{
"code": "internal"
}{
"code": "busy"
}Authorizations
An otb_live_ token, minted in the OTB Studio dashboard.
Path Parameters
The enterprise number. 0712.345.630, BE 0712 345 630 and BE0712345630 are all accepted.
Query Parameters
How many mandates to return, 1 to 200. A missing, zero, negative or larger value gives 50.
Response
The mandates. An empty list when none are filed.
Show child attributes
Show child attributes