> ## Documentation Index
> Fetch the complete documentation index at: https://docs.otbstudio.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# De REST API

> Vijf JSON-endpoints, alleen lezen, voor Belgische ondernemingen: zoeken, profiel, eigendom, jaarrekeningen en personen. API-sleutel als bearer token, OpenAPI 3.0-specificatie.

| Route | Vereist | Geeft |
| - | - | - |
| `GET /v1/companies?q=&limit=` | sleutel | Tot 25 resultaten |
| `GET /v1/companies/{id}` | sleutel | Eén profiel, of `404` |
| `GET /v1/companies/{id}/ownership` | sleutel | Aandeelhouders en participaties |
| `GET /v1/companies/{id}/financials?years=&detail=` | sleutel | De neergelegde cijfers, één rij per periode |
| `GET /v1/companies/{id}/people?limit=` | sleutel | Bestuurders en andere mandaten, de huidige eerst |
| `POST /mcp` | sleutel | De [MCP-server](https://docs.otbstudio.ai/nl/mcp.md), ook op `https://mcp.otbstudio.ai/mcp` |
| `GET /v1/pricing` | geen | De actuele [prijslijst](https://docs.otbstudio.ai/nl/pricing.md) |
| `GET /openapi.json` | geen | De OpenAPI 3.0-specificatie. `/openapi.nl.json` en `/openapi.fr.json` zijn de Nederlandse en Franse versie |
| `GET /health` | geen | Beschikbaarheidscontrole |

`{id}` is het ondernemingsnummer in elke gangbare vorm: `BE0712345630`, `0712.345.630` of `0712345630`. Elk geleverd antwoord draagt `X-Credits-Cost` en `X-Credits-Remaining` ([Limieten](https://docs.otbstudio.ai/nl/limits.md)). Velden die voor een onderneming leeg zijn, blijven weg en worden nooit als `null` verstuurd.

Er is geen paginering: een antwoord bevat hoogstens de `limit` van de route. Er is geen officiële SDK; de [OpenAPI-specificatie](https://api.otbstudio.ai/openapi.nl.json) is het contract, en u kunt er een client mee genereren.

De versie staat in het pad, `/v1/`. Binnen die versie voegen wijzigingen alleen iets toe: een route, een parameter of een veld. Schrijf clients dus zo dat ze onbekende velden negeren.

## Zoeken

```bash theme={null}
curl -s "https://api.otbstudio.ai/v1/companies?q=noordkaap&limit=2" \
  -H "Authorization: Bearer $OTB_KEY"
```

> **Voorbeeldantwoord**
>
> ```json theme={null}
> {
>   "companies": [
>     { "enterpriseNumber": "BE0734567835", "name": "Noordkaap Warehousing", "employees": 214, "statusCode": "AC" },
>     { "enterpriseNumber": "BE0712345630", "name": "Noordkaap Logistics", "employees": 187, "statusCode": "AC" }
>   ]
> }
> ```

`limit` wordt nooit geweigerd: een ontbrekende waarde of een waarde buiten het bereik (onder 1 of boven 25) wordt de standaardwaarde 10. `q` is verplicht: zonder die parameter is het antwoord `400 query_required`. Er wordt op hele woorden gezocht en tikfouten worden niet verbeterd. Ondernemingen met de vlag `deleted` blijven weg uit de zoekresultaten, maar kunnen nog altijd op nummer worden opgehaald. Zoeken kost geen credits.

`name` is de naam die overeenkwam. `employees` is hier het cijfer van het register zelf en kan verschillen van `financials.employees` in het profiel, dat uit de laatste neerlegging komt.

## Profiel

```bash theme={null}
curl -s "https://api.otbstudio.ai/v1/companies/0712.345.630" \
  -H "Authorization: Bearer $OTB_KEY"
```

> **Voorbeeldantwoord**
>
> ```json theme={null}
> {
>   "enterpriseNumber": "BE0712345630",
>   "nameNl": "Noordkaap Logistics",
>   "statusCode": "AC",
>   "juridicalFormCode": "014",
>   "juridicalSituationCode": "000",
>   "typeOfEnterpriseCode": "2",
>   "deleted": false,
>   "startDate": "1998-06-15",
>   "street": "Kaaiweg 14",
>   "zipCode": "9000",
>   "city": "Gent",
>   "website": "noordkaap.example",
>   "activities": "MAIN :: 006 :: 2025 :: 49410;MAIN :: 001 :: 2025 :: 52100",
>   "financials": {
>     "closingDate": "2025-03-31",
>     "reference": "2025-00184417",
>     "schemaType": "full",
>     "employees": 186.4,
>     "equity": 12480310.52,
>     "operatingIncome": 3912774.18,
>     "ebitda": 5240118.66,
>     "resultForPeriod": 2731905.07,
>     "healthIndicator": 10
>   },
>   "has": {
>     "annualAccounts": true,
>     "participations": true,
>     "accountants": true,
>     "valuations": false,
>     "socialBalances": true
>   },
>   "snapshotDate": "2026-04-29"
> }
> ```

`financials` is de recentste neerlegging. Het is hetzelfde record dat de route voor financiële gegevens als eerste teruggeeft, dus de twee kunnen elkaar niet tegenspreken.

## Eigendom

```bash theme={null}
curl -s "https://api.otbstudio.ai/v1/companies/BE0712345630/ownership" \
  -H "Authorization: Bearer $OTB_KEY"
```

> **Voorbeeldantwoord**
>
> ```json theme={null}
> {
>   "enterpriseNumber": "BE0712345630",
>   "shareholders": [
>     {
>       "name": "Noordkaap Holding NV",
>       "enterpriseNumber": "BE0723456781",
>       "stakePercent": 72.5,
>       "shareClass": "Gewone aandelen",
>       "asOf": "2025-03-31",
>       "sourceReference": "2025-00184417",
>       "sourceSystem": "NBB",
>       "exact": true
>     }
>   ],
>   "participations": [
>     {
>       "name": "Noordkaap Warehousing",
>       "enterpriseNumber": "BE0734567835",
>       "stakePercent": 100,
>       "asOf": "2025-03-31",
>       "sourceReference": "2025-00184417",
>       "sourceSystem": "NBB",
>       "exact": true
>     }
>   ]
> }
> ```

Beide richtingen gebruiken dezelfde vorm. `shareholders` hebben een belang in deze onderneming; `participations` zijn de belangen die zij in andere heeft. Elk `enterpriseNumber` kan rechtstreeks terug in deze route, zodat u een keten kunt aflopen. Elk van beide lijsten kan leeg zijn.

## Financiële gegevens

```bash theme={null}
curl -s "https://api.otbstudio.ai/v1/companies/BE0712345630/financials?years=1&detail=true" \
  -H "Authorization: Bearer $OTB_KEY"
```

> **Voorbeeldantwoord**
>
> ```json theme={null}
> {
>   "periods": [
>     {
>       "closingDate": "2025-03-31",
>       "reference": "2025-00184417",
>       "schemaType": "full",
>       "employees": 186.4,
>       "equity": 12480310.52,
>       "operatingIncome": 3912774.18,
>       "ebitda": 5240118.66,
>       "resultForPeriod": 2731905.07,
>       "healthIndicator": 10,
>       "cashFlow": {
>         "operating": 4410228.35,
>         "investing": -1876340.12,
>         "financing": -1504377.8,
>         "free": 2533888.23,
>         "cashAtPeriodEnd": 1388902.41,
>         "distributionsToOwners": 600000
>       },
>       "balanceSheet": {
>         "operatingProfit": 3480112.9,
>         "depreciation": 1328006.48,
>         "staffCosts": 9876540.21,
>         "totalAssets": 31902554.7,
>         "totalDebt": 8044120.33,
>         "interestPaid": 288410.12
>       }
>     }
>   ]
> }
> ```

Eén rij per boekjaar, het recentste eerst. `years` gaat van 1 tot 20; een ontbrekende waarde of een waarde buiten het bereik wordt de standaardwaarde 10. Zonder `detail=true` bevat elke rij alleen de zes kerncijfers. Elke periode wordt aangerekend, dus tien jaar kost ongeveer tien keer zoveel als één jaar.

## Personen

```bash theme={null}
curl -s "https://api.otbstudio.ai/v1/companies/BE0712345630/people?limit=2" \
  -H "Authorization: Bearer $OTB_KEY"
```

> **Voorbeeldantwoord**
>
> ```json theme={null}
> {
>   "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"
>     }
>   ]
> }
> ```
>
> De namen in dit voorbeeld zijn fictief.

Eerst de huidige mandaten, dan de historiek. `limit` gaat van 1 tot 200; een ontbrekende waarde of een waarde buiten het bereik wordt de standaardwaarde 50. Mandaten voorbij de eerste 200 zijn niet op te vragen. Politieke partij, bezoldiging en woonadres worden nooit teruggegeven, en personen die de bron als verborgen markeert, blijven weg.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.