KU Leuven Research Projects API

Research projects from the KU Leuven research database (onderzoeksdatabank).

Operations 3

GET /onderzoeksproject/_search Search the Dutch-language research project index #
GET /onderzoeksproject-en/_search Search the English-language research project index #
POST /onderzoeksproject/_search/template Run a stored search template against the research project index #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ku-leuven-researchprojects-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ku-leuven-researchprojects-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: KU Leuven ICTS Data Services Research Projects 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: ResearchProjects
  description: Research projects from the KU Leuven research database (onderzoeksdatabank).
paths:
  /onderzoeksproject/_search:
    get:
      summary: Search the Dutch-language research project index
      operationId: onderzoeksproject_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:
      - ResearchProjects
      x-verified: '2026-08-19'
  /onderzoeksproject-en/_search:
    get:
      summary: Search the English-language research project index
      operationId: onderzoeksproject_en_search_get
      responses:
        '200':
          description: Search hits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResponse'
      tags:
      - ResearchProjects
  /onderzoeksproject/_search/template:
    post:
      summary: Run a stored search template against the research project index
      description: 'KU Leuven publishes three stored templates: `projectsbyou` (all projects of an organisational unit, parameter `ou`), `projectsbyuid` (all projects of one or more persons, parameter `uid`, comma-separated) and `projectsbyquery` (free-text, parameter `query`). Optional parameters documented by ICTS: `from`, `size`, `startDate`, `endDate`, `sortstartdate`, `sortenddate`, `sortstartandenddate`, `all`.'
      operationId: onderzoeksproject_search_template
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchTemplateRequest'
      responses:
        '200':
          description: Search hits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResponse'
      tags:
      - ResearchProjects
components:
  schemas:
    SearchTemplateRequest:
      type: object
      required:
      - id
      properties:
        id:
          type: string
          description: Stored template identifier.
          enum:
          - projectsbyou
          - projectsbyuid
          - projectsbyquery
        params:
          type: object
          description: Template parameters plus the documented optional parameters.
          properties:
            ou:
              type: string
              description: Organisational unit code from the organigram index.
            uid:
              type: string
              description: One or more KU Leuven u-numbers, comma-separated.
            query:
              type: string
            from:
              type: integer
            size:
              type: integer
            startDate:
              type: string
              description: Lower bound, formatted dd/MM/yyyy or yyyy.
            endDate:
              type: string
              description: Upper bound, formatted dd/MM/yyyy or yyyy.
            sortstartdate:
              type: boolean
            sortenddate:
              type: boolean
            sortstartandenddate:
              type: boolean
            all:
              type: boolean
              description: Return every available attribute rather than the default subset.
    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`.
    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
    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.