> ## 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.

# Get ownership

> Who holds a stake in this company, and the stakes it holds in others. Both directions use one shape, and every other party's enterprise number can go straight back into this route, so a chain can be walked.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/companies/{id}/ownership
openapi: 3.0.3
info:
  title: OTB Studio API
  version: 1.0.0
  description: >-
    The Belgian company register over REST: search, profiles, ownership, filed
    financials and mandates. Every route needs an `otb_live_` token, and every
    served reply is charged in credits for the datapoints it carries.
servers:
  - url: https://api.otbstudio.ai
security:
  - token: []
tags:
  - name: Companies
    description: One company register, read five ways.
paths:
  /v1/companies/{id}/ownership:
    get:
      tags:
        - Companies
      summary: Get ownership
      description: >-
        Who holds a stake in this company, and the stakes it holds in others.
        Both directions use one shape, and every other party's enterprise number
        can go straight back into this route, so a chain can be walked.
      operationId: getCompanyOwnership
      parameters:
        - $ref: '#/components/parameters/id'
      responses:
        '200':
          description: Both directions. Either list may be empty.
          headers:
            X-Credits-Cost:
              $ref: '#/components/headers/X-Credits-Cost'
            X-Credits-Remaining:
              $ref: '#/components/headers/X-Credits-Remaining'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ownership'
              example:
                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
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/Internal'
        '503':
          $ref: '#/components/responses/Busy'
components:
  parameters:
    id:
      name: id
      in: path
      required: true
      description: >-
        The enterprise number. `0712.345.630`, `BE 0712 345 630` and
        `BE0712345630` are all accepted.
      schema:
        type: string
      example: BE0712345630
  headers:
    X-Credits-Cost:
      description: What this reply cost, in credits.
      schema:
        type: integer
    X-Credits-Remaining:
      description: The balance after this reply.
      schema:
        type: integer
    Retry-After:
      description: Seconds to wait before trying again.
      schema:
        type: integer
  schemas:
    Ownership:
      type: object
      additionalProperties: false
      required:
        - enterpriseNumber
        - shareholders
        - participations
      properties:
        enterpriseNumber:
          type: string
        shareholders:
          type: array
          description: Stakes held in this company.
          items:
            $ref: '#/components/schemas/Stake'
        participations:
          type: array
          description: Stakes this company holds in others.
          items:
            $ref: '#/components/schemas/Stake'
    Stake:
      type: object
      additionalProperties: false
      description: One ownership link, read from either end.
      required:
        - exact
      properties:
        name:
          type: string
          description: The other party.
        enterpriseNumber:
          type: string
          description: The other party's number. Not always Belgian.
        stakePercent:
          type: number
          description: The direct stake, 50 for half.
        indirectPercent:
          type: number
          description: A stake held through another entity, on the same scale.
        shareClass:
          type: string
          description: The share class as filed, in the language it was filed in.
        asOf:
          type: string
          format: date
          description: The end of the period the filing covers.
        sourceReference:
          type: string
          description: The filing the stake was read from.
        sourceSystem:
          type: string
          description: '`NBB` for National Bank filings, whose references can be looked up.'
        exact:
          type: boolean
          description: >-
            The source's own confidence that this link is precisely sourced.
            False is the sign of a stale or inferred entry.
    Unauthorized:
      type: object
      additionalProperties: false
      required:
        - code
      properties:
        code:
          type: string
          enum:
            - missing_token
            - invalid_token
    PaymentRequired:
      type: object
      additionalProperties: false
      required:
        - code
      properties:
        code:
          type: string
          enum:
            - insufficient_credits
    NotFound:
      type: object
      additionalProperties: false
      required:
        - code
      properties:
        code:
          type: string
          enum:
            - not_found
    RateLimited:
      type: object
      additionalProperties: false
      required:
        - code
      properties:
        code:
          type: string
          enum:
            - rate_limited
    Internal:
      type: object
      additionalProperties: false
      required:
        - code
      properties:
        code:
          type: string
          enum:
            - internal
    Busy:
      type: object
      additionalProperties: false
      required:
        - code
      properties:
        code:
          type: string
          enum:
            - busy
  responses:
    Unauthorized:
      description: >-
        No token, or a token that is not valid. `missing_token` when there is no
        `Authorization: Bearer` header, `invalid_token` when the token is
        unknown, revoked or of the wrong kind.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Unauthorized'
    PaymentRequired:
      description: >-
        The organisation has no plan, its balance is empty, or the balance does
        not cover this reply. When the reply was too expensive, the headers say
        what it would have cost and what is left.
      headers:
        X-Credits-Cost:
          $ref: '#/components/headers/X-Credits-Cost'
        X-Credits-Remaining:
          $ref: '#/components/headers/X-Credits-Remaining'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PaymentRequired'
    NotFound:
      description: No company has this enterprise number.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NotFound'
    RateLimited:
      description: >-
        The organisation is over its rate (10 calls a second, bursts of 20) or
        has 4 calls running. Retry after `Retry-After`.
      headers:
        Retry-After:
          $ref: '#/components/headers/Retry-After'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RateLimited'
    Internal:
      description: Something failed on our side.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Internal'
    Busy:
      description: The data could not be read within 15 seconds. Retry after `Retry-After`.
      headers:
        Retry-After:
          $ref: '#/components/headers/Retry-After'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Busy'
  securitySchemes:
    token:
      type: http
      scheme: bearer
      description: An `otb_live_` token, minted in the OTB Studio dashboard.

````

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