KU Leuven Access API
The Access API from KU Leuven — 23 operation(s) for access.
The Access API from KU Leuven — 23 operation(s) for access.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/ku-leuven-access-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: KU Leuven Research Data Repository (RDR) Access API
description: Dataverse-based institutional research data repository API for KU Leuven (rdr.kuleuven.be), running Dataverse 6.7.1. Public info endpoints are reachable without authentication; write operations require an API token, a registered ORCID, and the Dataset Creator role.
version: 6.7.1
servers:
- url: https://rdr.kuleuven.be/api
description: KU Leuven Research Data Repository (RDR) production API
tags:
- name: Access
paths:
/access/datafile/bundle/{fileId}:
get:
operationId: Access_datafileBundle
parameters:
- name: fileId
in: path
required: true
schema:
type: string
- name: fileMetadataId
in: query
schema:
format: int64
type: integer
- name: gbrecs
in: query
schema:
type: boolean
responses:
'200':
description: OK
content:
application/zip:
schema:
$ref: '#/components/schemas/BundleDownloadInstance'
tags:
- Access
/access/datafile/{fileId}:
get:
operationId: Access_datafile
parameters:
- name: fileId
in: path
required: true
schema:
pattern: .+
type: string
- name: gbrecs
in: query
schema:
type: boolean
responses:
'200':
description: OK
tags:
- Access
/access/datafile/{fileId}/auxiliary:
get:
operationId: Access_listDatafileMetadataAux
parameters:
- name: fileId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
tags:
- Access
/access/datafile/{fileId}/auxiliary/{formatTag}/{formatVersion}:
get:
operationId: Access_downloadAuxiliaryFile
parameters:
- name: fileId
in: path
required: true
schema:
type: string
- name: formatTag
in: path
required: true
schema:
type: string
- name: formatVersion
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/DownloadInstance'
tags:
- Access
delete:
operationId: Access_deleteAuxiliaryFileWithVersion
parameters:
- name: fileId
in: path
required: true
schema:
format: int64
type: integer
- name: formatTag
in: path
required: true
schema:
type: string
- name: formatVersion
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
tags:
- Access
/access/datafile/{fileId}/auxiliary/{origin}:
get:
operationId: Access_listDatafileMetadataAuxByOrigin
parameters:
- name: fileId
in: path
required: true
schema:
type: string
- name: origin
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
tags:
- Access
/access/datafile/{fileId}/metadata:
get:
operationId: Access_tabularDatafileMetadata
parameters:
- name: fileId
in: path
required: true
schema:
type: string
- name: exclude
in: query
schema:
type: string
- name: fileMetadataId
in: query
schema:
format: int64
type: integer
- name: include
in: query
schema:
type: string
responses:
'200':
description: OK
content:
text/xml:
schema:
type: string
tags:
- Access
/access/datafile/{fileId}/metadata/ddi:
get:
operationId: Access_tabularDatafileMetadataDDI
parameters:
- name: fileId
in: path
required: true
schema:
type: string
- name: exclude
in: query
schema:
type: string
- name: fileMetadataId
in: query
schema:
format: int64
type: integer
- name: include
in: query
schema:
type: string
responses:
'200':
description: OK
content:
text/xml:
schema:
type: string
tags:
- Access
/access/datafile/{id}/grantAccess/{identifier}:
put:
operationId: Access_grantFileAccess
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: identifier
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
tags:
- Access
/access/datafile/{id}/listRequests:
get:
operationId: Access_listFileAccessRequests
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
tags:
- Access
/access/datafile/{id}/rejectAccess/{identifier}:
put:
operationId: Access_rejectFileAccess
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: identifier
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
tags:
- Access
/access/datafile/{id}/requestAccess:
put:
operationId: Access_requestFileAccess
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
tags:
- Access
/access/datafile/{id}/revokeAccess/{identifier}:
delete:
operationId: Access_revokeFileAccess
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: identifier
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
tags:
- Access
/access/datafile/{id}/userFileAccessRequested:
get:
operationId: Access_getUserFileAccessRequested
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
tags:
- Access
/access/datafile/{id}/userPermissions:
get:
operationId: Access_getUserPermissionsOnFile
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
tags:
- Access
/access/datafiles:
post:
operationId: Access_postDownloadDatafiles
parameters:
- name: gbrecs
in: query
schema:
type: boolean
requestBody:
content:
text/plain:
schema:
type: string
responses:
'200':
description: OK
tags:
- Access
/access/datafiles/{fileIds}:
get:
operationId: Access_datafiles
parameters:
- name: fileIds
in: path
required: true
schema:
type: string
- name: gbrecs
in: query
schema:
type: boolean
responses:
'200':
description: OK
tags:
- Access
/access/dataset/{id}:
get:
operationId: Access_downloadAllFromLatest
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: gbrecs
in: query
schema:
type: boolean
responses:
'200':
description: OK
tags:
- Access
/access/dataset/{id}/versions/{versionId}:
get:
operationId: Access_downloadAllFromVersion
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: versionId
in: path
required: true
schema:
type: string
- name: gbrecs
in: query
schema:
type: boolean
- name: key
in: query
schema:
type: string
responses:
'200':
description: OK
tags:
- Access
/access/dataverseFeaturedItemImage/{itemId}:
get:
operationId: Access_getDataverseFeatureItemImage
parameters:
- name: itemId
in: path
required: true
schema:
format: int64
type: integer
responses:
'200':
description: OK
content:
image/png:
schema:
format: binary
type: string
tags:
- Access
/access/dsCardImage/{versionId}:
get:
operationId: Access_dsCardImage
parameters:
- name: versionId
in: path
required: true
schema:
format: int64
type: integer
responses:
'200':
description: OK
content:
image/png:
schema:
format: binary
type: string
tags:
- Access
/access/dvCardImage/{dataverseId}:
get:
operationId: Access_dvCardImage
parameters:
- name: dataverseId
in: path
required: true
schema:
format: int64
type: integer
responses:
'200':
description: OK
content:
image/png:
schema:
format: binary
type: string
tags:
- Access
/access/fileCardImage/{fileId}:
get:
operationId: Access_fileCardImage
parameters:
- name: fileId
in: path
required: true
schema:
format: int64
type: integer
responses:
'200':
description: OK
content:
image/png:
schema:
format: binary
type: string
tags:
- Access
/access/{id}/allowAccessRequest:
put:
operationId: Access_allowAccessRequest
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
tags:
- Access
components:
schemas:
DatasetFieldServiceBean:
type: object
properties:
em:
type: object
settingsService:
$ref: '#/components/schemas/SettingsServiceBean'
cvocMap:
type: object
additionalProperties: {}
cvocMapByTermUri:
type: object
additionalProperties: {}
cvocFieldSet:
uniqueItems: true
type: array
items:
format: int64
type: integer
oldHash:
type: string
GroupProvider:
type: object
properties:
groupProviderAlias:
type: string
groupProviderInfo:
type: string
AuthenticatedUser:
required:
- userIdentifier
- email
- lastName
- firstName
type: object
properties:
id:
format: int64
type: integer
userIdentifier:
type: string
email:
type: string
affiliation:
type: string
position:
type: string
lastName:
pattern: \S
type: string
firstName:
pattern: \S
type: string
emailConfirmed:
type: object
createdTime:
type: object
lastLoginTime:
type: object
lastApiUseTime:
type: object
cart:
$ref: '#/components/schemas/Cart'
superuser:
type: boolean
deactivated:
type: boolean
deactivatedTime:
type: object
mutedEmails:
type: string
mutedNotifications:
type: string
mutedEmailsSet:
uniqueItems: true
type: array
items:
$ref: '#/components/schemas/Type'
mutedNotificationsSet:
uniqueItems: true
type: array
items:
$ref: '#/components/schemas/Type'
rateLimitTier:
format: int32
minimum: 1
type: integer
authenticatedOrcid:
type: string
shibIdentityProvider:
type: string
notifications:
type: array
items:
$ref: '#/components/schemas/UserNotification'
requests:
type: array
items:
$ref: '#/components/schemas/UserNotification'
datasetLocks:
type: array
items:
$ref: '#/components/schemas/DatasetLock'
oAuth2TokenDatas:
type: array
items:
$ref: '#/components/schemas/OAuth2TokenData'
fileAccessRequests:
type: array
items:
$ref: '#/components/schemas/FileAccessRequest'
roles:
type: string
authProviderId:
type: string
authProviderFactoryAlias:
type: string
authenticatedUserLookup:
$ref: '#/components/schemas/AuthenticatedUserLookup'
identifier:
type: string
userNotifications:
type: array
items:
$ref: '#/components/schemas/UserNotification'
userRequests:
type: array
items:
$ref: '#/components/schemas/UserNotification'
userRequestss:
type: array
items:
$ref: '#/components/schemas/UserNotification'
requestedDataFiles:
type: array
items:
$ref: '#/components/schemas/DataFile'
displayInfo:
$ref: '#/components/schemas/AuthenticatedUserDisplayInfo'
authenticated:
type: boolean
name:
type: string
sortByString:
type: string
FileAccessRequest:
type: object
properties:
id:
format: int64
type: integer
dataFile:
$ref: '#/components/schemas/DataFile'
user:
$ref: '#/components/schemas/AuthenticatedUser'
guestbookResponse:
$ref: '#/components/schemas/GuestbookResponse'
requestState:
$ref: '#/components/schemas/RequestState'
creationTime:
format: date
type: string
example: 2022-03-10
requester:
$ref: '#/components/schemas/AuthenticatedUser'
state:
$ref: '#/components/schemas/RequestState'
stateLabel:
type: string
stateCreated:
type: boolean
stateGranted:
type: boolean
stateRejected:
type: boolean
SavedSearch:
type: object
properties:
id:
format: int64
type: integer
query:
type: string
savedSearchFilterQueries:
type: array
items:
$ref: '#/components/schemas/SavedSearchFilterQuery'
definitionPoint:
$ref: '#/components/schemas/Dataverse'
creator:
$ref: '#/components/schemas/AuthenticatedUser'
filterQueriesAsStrings:
type: array
items:
type: string
CacheFactoryBean:
type: object
properties:
rateLimitCache:
type: array
items:
type: string
systemConfig:
$ref: '#/components/schemas/SystemConfig'
manager:
type: object
HarvestingClient:
type: object
properties:
id:
format: int64
type: integer
dataverse:
$ref: '#/components/schemas/Dataverse'
harvestedDatasets:
type: array
items:
$ref: '#/components/schemas/Dataset'
name:
maxLength: 30
type: string
harvestType:
type: string
harvestStyle:
type: string
harvestingUrl:
type: string
sourceName:
type: string
archiveUrl:
type: string
archiveDescription:
type: string
harvestingSet:
type: string
metadataPrefix:
type: string
customHttpHeaders:
type: string
allowHarvestingMissingCVV:
type: boolean
useListRecords:
type: boolean
useOaiIdAsPid:
type: boolean
harvestHistory:
type: array
items:
$ref: '#/components/schemas/ClientHarvestRun'
scheduled:
type: boolean
schedulePeriod:
type: string
scheduleHourOfDay:
format: int32
type: integer
scheduleDayOfWeek:
format: int32
type: integer
harvestingNow:
type: boolean
deleted:
type: boolean
oai:
type: boolean
metadataSource:
type: string
useListrecords:
type: boolean
useOaiIdentifiersAsPids:
type: boolean
runHistory:
type: array
items:
$ref: '#/components/schemas/ClientHarvestRun'
lastResult:
type: string
lastRun:
$ref: '#/components/schemas/ClientHarvestRun'
lastSuccessfulRun:
$ref: '#/components/schemas/ClientHarvestRun'
lastNonEmptyRun:
$ref: '#/components/schemas/ClientHarvestRun'
lastHarvestTime:
format: date
type: string
example: 2022-03-10
lastSuccessfulHarvestTime:
format: date
type: string
example: 2022-03-10
lastNonEmptyHarvestTime:
format: date
type: string
example: 2022-03-10
lastHarvestedDatasetCount:
format: int64
type: integer
lastFailedDatasetCount:
format: int64
type: integer
lastDeletedDatasetCount:
format: int64
type: integer
scheduleDescription:
type: string
deleteInProgress:
type: boolean
DatasetFieldValue:
type: object
properties:
id:
format: int64
type: integer
value:
type: string
displayOrder:
format: int32
type: integer
datasetField:
$ref: '#/components/schemas/DatasetField'
validationMessage:
type: string
valueForEdit:
type: string
displayValue:
type: string
unsanitizedDisplayValue:
type: string
SearchServiceFactory:
type: object
properties:
beanManager:
type: object
settingsService:
$ref: '#/components/schemas/SettingsServiceBean'
solrSearchService:
$ref: '#/components/schemas/SearchService'
serviceMap:
type: object
additionalProperties:
$ref: '#/components/schemas/SearchService'
defaultSearchService:
$ref: '#/components/schemas/SearchService'
availableServices:
type: object
additionalProperties:
$ref: '#/components/schemas/SearchService'
DataFileCategory:
type: object
properties:
id:
format: int64
type: integer
dataset:
$ref: '#/components/schemas/Dataset'
name:
type: string
fileMetadatas:
type: array
items:
$ref: '#/components/schemas/FileMetadata'
SolrField:
type: object
properties:
nameSearchable:
type: string
nameFacetable:
type: string
solrType:
$ref: '#/components/schemas/SolrType'
allowedToBeMultivalued:
type: boolean
facetable:
type: boolean
TemplateServiceBean:
type: object
properties:
indexService:
$ref: '#/components/schemas/IndexServiceBean'
em:
type: object
Template:
type: object
properties:
id:
format: int64
type: integer
name:
maxLength: 255
type: string
usageCount:
format: int64
type: integer
createTime:
format: date
type: string
example: 2022-03-10
termsOfUseAndAccess:
$ref: '#/components/schemas/TermsOfUseAndAccess'
datasetFields:
type: array
items:
$ref: '#/components/schemas/DatasetField'
instructions:
type: string
instructionsMap:
type: object
additionalProperties:
type: string
metadataBlocksForView:
type: object
additionalProperties:
type: array
items:
$ref: '#/components/schemas/DatasetField'
metadataBlocksForEdit:
type: object
additionalProperties:
type: array
items:
$ref: '#/components/schemas/DatasetField'
isDefaultForDataverse:
type: boolean
dataversesHasAsDefault:
type: array
items:
$ref: '#/components/schemas/Dataverse'
dataverse:
$ref: '#/components/schemas/Dataverse'
createDate:
type: string
metadataValueBlocks:
type: array
items:
$ref: '#/components/schemas/MetadataBlock'
flatDatasetFields:
type: array
items:
$ref: '#/components/schemas/DatasetField'
DatasetField:
type: object
properties:
id:
format: int64
type: integer
datasetFieldType:
$ref: '#/components/schemas/DatasetFieldType'
datasetVersion:
$ref: '#/components/schemas/DatasetVersion'
template:
$ref: '#/components/schemas/Template'
parentDatasetFieldCompoundValue:
$ref: '#/components/schemas/DatasetFieldCompoundValue'
datasetFieldCompoundValues:
type: array
items:
$ref: '#/components/schemas/DatasetFieldCompoundValue'
datasetFieldValues:
type: array
items:
$ref: '#/components/schemas/DatasetFieldValue'
controlledVocabularyValues:
type: array
items:
$ref: '#/components/schemas/ControlledVocabularyValue'
validationMessage:
type: string
required:
type: boolean
hasRequiredChildren:
type: boolean
include:
type: boolean
singleValue:
$ref: '#/components/schemas/DatasetFieldValue'
singleControlledVocabularyValue:
$ref: '#/components/schemas/ControlledVocabularyValue'
value:
type: string
displayValue:
type: string
rawValue:
type: string
compoundDisplayValue:
type: string
compoundRawValue:
type: string
values:
type: array
items:
type: string
rawValuesList:
type: array
items:
type: string
values_nondisplay:
type: array
items:
type: string
valuesWithoutNaValues:
type: array
items:
type: string
empty:
type: boolean
emptyForDisplay:
type: boolean
hasRequiredChildrenDV:
type: boolean
dataverse:
$ref: '#/components/schemas/Dataverse'
SystemConfig:
type: object
properties:
settingsService:
$ref: '#/components/schemas/SettingsServiceBean'
dataverseService:
$ref: '#/components/schemas/DataverseServiceBean'
authenticationService:
$ref: '#/components/schemas/AuthenticationServiceBean'
buildNumber:
type: string
version:
type: string
solrHostColonPort:
type: string
provCollectionEnabled:
type: boolean
metricsCacheTimeoutMinutes:
format: int32
type: integer
minutesUntilConfirmEmailTokenExpires:
format: int32
type: integer
dataverseSiteUrl:
type: string
pageURLWithQueryString:
type: string
guidesBaseUrl:
type: string
guidesLanguage:
type: string
guidesVersion:
type: string
metricsUrl:
type: string
zipDownloadLimit:
format: int64
type: integer
zipUploadFilesLimit:
format: int32
type: integer
loginSessionTimeout:
format: int32
type: integer
multipleUploadFilesLimit:
format: int32
type: integer
guestbookResponsesPageDisplayLimit:
format: int64
type: integer
uploadLogoSizeLimit:
format: int64
type: integer
thumbnailSizeLimitImage:
format: int64
type: integer
thumbnailSizeLimitPDF:
format: int64
type: integer
thumbnailGenerationDisabledForImages:
type: boolean
thumbnailGenerationDisabledForPDF:
type: boolean
applicationTermsOfUse:
type: string
apiTermsOfUse:
type: string
applicationPrivacyPolicyUrl:
type: string
filesOnDatasetPageFromSolr:
type: boolean
searchHighlightFragmentSize:
format: int32
type: integer
tabularIngestSizeLimit:
format: int64
type: integer
oAIServerEnabled:
type: boolean
timerServer:
type: boolean
footerCopyrightAndYear:
type: string
fileFixityChecksumAlgorithm:
$ref: '#/components/schemas/ChecksumType'
defaultAuthProvider:
type: string
nameOfInstallation:
type: string
devOAuthAccountType:
$ref: '#/components/schemas/DevOAuthAccountType'
oAuth2CallbackUrl:
type: string
shibPassiveLoginEnabled:
type: boolean
shibAttributeCharacterSetConversionEnabled:
type: boolean
pVDictionaries:
type: string
pVGoodStrength:
format: int32
type: integer
pVMinLength:
format: int32
type: integer
pVMaxLength:
format: int32
type: integer
pVCharacterRules:
type: array
items: {}
pVNumberOfCharacteristics:
format: int32
type: integer
pVNumberOfConsecutiveDigitsAllowed:
format: int32
type: integer
publicInstall:
type: boolean
rsyncUpload:
type: boolean
deprecated: true
globusUpload:
type: boolean
webloaderUpload:
type: boolean
hTTPUpload:
type: boolean
rsyncOnly:
type: boolean
deprecated: true
rsyncDownload:
type: boolean
deprecated: true
hTTPDownload:
type: boolean
globusDownload:
type: boolean
globusFileDownload:
type: boolean
globusBatchLookupSize:
format: int32
type: integer
uploadMethodCount:
format: int32
type: integer
allowCustomTerms:
type: boolean
mDCLogPath:
type: string
datafileValidationOnPublishEnabled:
type: boolean
externalDataverseValidationEnabled:
type: boolean
externalDatasetValidationEnabled:
type: boolean
dataverseValidationExecutable:
type: string
datasetValidationExecutable:
type: string
dataverseValidationFailureMsg:
type: string
dataverseUpdateValidationFailureMsg:
type: string
datasetValidationFailureMsg:
type: string
externalValidationAdminOverrideEnabled:
type: boolean
datasetValidationSizeLimit:
format: int64
type: integer
fileValidationSizeLimit:
format: int64
type: integer
curationLabels:
type: object
additionalProperties: {}
storageQuotasEnforced:
type: boolean
testStorageQuotaLimit:
format: int64
type: integer
storingIngestedFilesWithHeaders:
type: boolean
rateLimitsJson:
type: string
rateLimitingDefaultCapacityTiers:
type: string
contactFeedbackMessageSizeLimit:
format: int64
type: integer
DatasetFieldsValidator:
type: object
properties:
datasetFieldService:
$ref: '#/components/schemas/DatasetFieldServiceBean'
WorkflowComment:
type: object
properties:
id:
format: int64
type: integer
datasetVersion:
$ref: '#/components/schemas/DatasetVersion'
type:
$ref: '#/components/schemas/Type1'
message:
type: string
authenticatedUser:
$ref: '#/components/schemas/AuthenticatedUser'
created:
type: object
toBeShown:
type: boolean
DataverseFeaturedItem:
required:
- type
type: object
properties:
id:
format: int64
type: integer
dataverse:
$ref: '#/components/schemas/Dataverse'
dvobject:
$ref: '#/components/schemas/DvObject'
content:
maxLength: 15000
type: string
displayOrder:
format: int32
minimum: 0
type: integer
type:
pattern: \S
type: string
imageFileName:
type: string
imageFileUrl:
type: string
dvObject:
$ref: '#/components/schemas/DvObject'
ChecksumType:
enum:
- MD5
- SHA1
- SHA256
- SHA512
type: string
IndexBatchServiceBean:
type: object
properties:
em:
type: object
indexService:
$ref: '#/components/schemas/IndexServiceBean'
solrIndexService:
$ref: '#/components/schemas/SolrIndexServiceBean'
dataverseService:
$ref: '#/components/schemas/DataverseServiceBean'
datasetService:
$ref: '#/components/schemas/DatasetServiceBean'
dvObjectService:
$ref: '#/components/schemas/DvObjectServiceBean'
systemConfig:
$ref: '#/components/schemas/SystemConfig'
contentInDatabaseButStaleInOrMissingFromSolr:
type: object
contentInSolrButNotDatabase:
type: object
permissionsInDatabaseButStaleInOrMissingFromSolr:
type: object
permissionsInSolrButNotDatabase:
type: object
FileDownloadHelper:
type: object
properties:
session:
$ref: '#/components/schemas/DataverseSession'
dvRequestService:
$ref: '#/components/schemas/DataverseRequestServiceBean'
permissionService:
$ref: '#/components/schemas/PermissionServiceBean'
fileDownloadService:
$ref: '#/components/schemas/FileDownloadServiceBean'
guestbookResponseService:
$ref: '#/components/schemas/GuestbookResponseServiceBean'
datafileService:
$ref: '#/components/schemas/DataFileServiceBean'
globusService:
$ref: '#/components/schemas/GlobusServiceBean'
fileDownloadPermissionMap:
type: object
additionalProperties:
type: boolean
filesForRequestAccess:
typ
# --- truncated at 32 KB (169 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ku-leuven/refs/heads/main/openapi/ku-leuven-access-api-openapi.yml