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



## OpenAPI

````yaml /api-reference/openapi.json get /v1/companies/{id}/people
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}/people:
    get:
      tags:
        - Companies
      summary: Get people
      description: >-
        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.
      operationId: getCompanyPeople
      parameters:
        - $ref: '#/components/parameters/id'
        - name: limit
          in: query
          required: false
          description: >-
            How many mandates to return, 1 to 200. A missing, zero, negative or
            larger value gives 50.
          schema:
            type: integer
            default: 50
      responses:
        '200':
          description: The mandates. An empty list when none are filed.
          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/PeopleReply'
              example:
                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
        '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:
    PeopleReply:
      type: object
      additionalProperties: false
      required:
        - people
      properties:
        people:
          type: array
          items:
            $ref: '#/components/schemas/Mandate'
    Mandate:
      type: object
      additionalProperties: false
      description: One role a person holds, or held, at this company.
      required:
        - current
      properties:
        lastName:
          type: string
        firstName:
          type: string
        category:
          type: string
          description: >-
            `ADMINISTER`, `SHAREHOLDER`, `LOCALPOLITICALMANDATE` or
            `OTHERMANDATE`.
        role:
          type: string
          description: >-
            For `ADMINISTER`, an unlabelled source code such as `13`. For the
            other categories, the role in words, in the language it was filed
            in.
        profession:
          type: string
        startDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
          description: Usually the end of the term, not the day the person left.
        current:
          type: boolean
          description: Whether the mandate is held today. Read this rather than the dates.
        viaCompany:
          type: string
          description: >-
            Set when the mandate is held through a company, with this person as
            its permanent representative.
        viaEnterpriseNumber:
          type: string
        sourceSystem:
          type: string
        sourceReference:
          type: string
    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.