openapi: 3.2.0 info: title: KU Leuven ICTS Data Services Curriculum API description: Institution-operated read API for KU Leuven's public reference data, run by KU Leuven ICTS and documented at https://admin.kuleuven.be/icts/services/dataservices. The gateway at dataservice.kuleuven.be exposes an OpenSearch/Elasticsearch query surface over eight public indices — staff directory (wie-is-wie), academic CVs, organisational chart, educational offering (programme guide), research projects, research teams, research infrastructure and job vacancies — each published in a Dutch and an English index. Reads are unauthenticated and were confirmed live on 2026-08-19; the underlying data is governed by the KU Leuven Data Service terms of use. version: '2026-08-19' contact: name: KU Leuven ICTS Data Services url: https://admin.kuleuven.be/icts/services/dataservices/data-service-vraag termsOfService: https://admin.kuleuven.be/icts/services/dataservices/gebruiksvoorwaarden.html x-operator: institution x-provenance: generated: '2026-08-19' method: derived source: Derived from KU Leuven ICTS Data Services documentation pages (admin.kuleuven.be/icts/services/dataservices/*) and confirmed against live unauthenticated responses from https://dataservice.kuleuven.be on 2026-08-19. No endpoint, parameter or field appears here that is not documented by KU Leuven or observed in a live response. servers: - url: https://dataservice.kuleuven.be description: KU Leuven ICTS Data Services production query gateway tags: - name: Curriculum description: Academic curriculum and CV information, including ORCID identifiers. paths: /cv/_search: get: summary: Search the Dutch-language curriculum index operationId: cv_search_get requestBody: required: false content: application/json: schema: $ref: '#/components/schemas/SearchRequest' responses: '200': description: Search hits content: application/json: schema: $ref: '#/components/schemas/SearchResponse' tags: - Curriculum x-verified: '2026-08-19' /cv-en/_search: get: summary: Search the English-language curriculum index operationId: cv_en_search_get responses: '200': description: Search hits content: application/json: schema: $ref: '#/components/schemas/SearchResponse' tags: - Curriculum components: schemas: SearchRequest: type: object description: OpenSearch query document as documented by KU Leuven ICTS. properties: query: type: object description: Query clause, e.g. `match_all` or `query_string`. aggs: type: object description: Aggregations, previously described by ICTS as filters or facets. _source: type: array description: Field list to return (ICTS documents this as returnFields). items: type: string from: type: integer description: Start position for pagination. size: type: integer description: Number of hits to return. Default 10. default: 10 SearchResponse: type: object description: Standard OpenSearch search response envelope, as returned live on 2026-08-19. properties: took: type: integer timed_out: type: boolean _shards: type: object properties: total: type: integer successful: type: integer skipped: type: integer failed: type: integer hits: type: object properties: total: type: object properties: value: type: integer relation: type: string enum: - eq - gte max_score: type: - number - 'null' hits: type: array items: $ref: '#/components/schemas/Hit' aggregations: type: object description: Present when the request supplied `aggs`. Hit: type: object properties: _index: type: string description: Physical index name. Snapshot indices carry a build timestamp, e.g. `employee_2026-07-08_12h33m04s211`, which reveals the refresh date of the data. _id: type: string _score: type: - number - 'null' _source: type: object description: The document. Field sets differ per index.