Open Education API · OpenAPI Overlay 1.0.0
API Evangelist overlay for Open Education API 5.0.0
53 actions
53 updates
documentation
extends
../openapi/_original/open-education-api-v5-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Open Education API's API. It is a proposal applied on top of the contract, not a document Open Education API publishes.
What the actions change
operationIdx-agent-hints
Targets 53 · first 16 shown; the file carries all of them
$.servers
$.paths['/'].get
$.paths['/persons'].get
$.paths['/persons'].post
$.paths['/persons/me'].get
$.paths['/persons/{personId}'].get
$.paths['/persons/{personId}/associations'].get
$.paths['/persons/{personId}/groups'].get
$.paths['/organizations'].get
$.paths['/organizations/{organizationId}'].get
$.paths['/organizations/{organizationId}/programs'].get
$.paths['/organizations/{organizationId}/courses'].get
$.paths['/organizations/{organizationId}/components'].get
$.paths['/organizations/{organizationId}/offerings'].get
$.paths['/organizations/{organizationId}/groups'].get
$.paths['/organizations/{organizationId}/education-specifications'].get
OpenAPI Overlay
overlay: 1.0.0
info:
title: API Evangelist overlay for Open Education API 5.0.0
version: 1.0.0
extends: ../openapi/_original/open-education-api-v5-openapi.yml
x-generated: '2026-10-09'
x-method: generated
x-source: openapi/open-education-api-v5-openapi.yml
x-rationale: The OOAPI 5.0.0 contract defines no operationIds, so tools and skills cannot reference its operations. This overlay
adds mechanically derived operationIds (method + path segments) and agent read/write hints, plus a templated implementer
server. The original openapi file is not mutated.
actions:
- target: $.servers
description: Add a templated server for an institution's own OOAPI v5 implementation.
update:
- url: https://{host}/v5
description: An institution's own OOAPI v5 implementation.
variables:
host:
default: demo01.eduapi.nl
- target: $.paths['/'].get
description: Derived operationId for GET /.
update:
operationId: getServiceMetadata
x-agent-hints:
readOnly: true
- target: $.paths['/persons'].get
description: Derived operationId for GET /persons.
update:
operationId: getPersons
x-agent-hints:
readOnly: true
- target: $.paths['/persons'].post
description: Derived operationId for POST /persons.
update:
operationId: postPersons
x-agent-hints:
readOnly: false
- target: $.paths['/persons/me'].get
description: Derived operationId for GET /persons/me.
update:
operationId: getPersonsMe
x-agent-hints:
readOnly: true
- target: $.paths['/persons/{personId}'].get
description: Derived operationId for GET /persons/{personId}.
update:
operationId: getPersonsByPersonId
x-agent-hints:
readOnly: true
- target: $.paths['/persons/{personId}/associations'].get
description: Derived operationId for GET /persons/{personId}/associations.
update:
operationId: getPersonsByPersonIdAssociations
x-agent-hints:
readOnly: true
- target: $.paths['/persons/{personId}/groups'].get
description: Derived operationId for GET /persons/{personId}/groups.
update:
operationId: getPersonsByPersonIdGroups
x-agent-hints:
readOnly: true
- target: $.paths['/organizations'].get
description: Derived operationId for GET /organizations.
update:
operationId: getOrganizations
x-agent-hints:
readOnly: true
- target: $.paths['/organizations/{organizationId}'].get
description: Derived operationId for GET /organizations/{organizationId}.
update:
operationId: getOrganizationsByOrganizationId
x-agent-hints:
readOnly: true
- target: $.paths['/organizations/{organizationId}/programs'].get
description: Derived operationId for GET /organizations/{organizationId}/programs.
update:
operationId: getOrganizationsByOrganizationIdPrograms
x-agent-hints:
readOnly: true
- target: $.paths['/organizations/{organizationId}/courses'].get
description: Derived operationId for GET /organizations/{organizationId}/courses.
update:
operationId: getOrganizationsByOrganizationIdCourses
x-agent-hints:
readOnly: true
- target: $.paths['/organizations/{organizationId}/components'].get
description: Derived operationId for GET /organizations/{organizationId}/components.
update:
operationId: getOrganizationsByOrganizationIdComponents
x-agent-hints:
readOnly: true
- target: $.paths['/organizations/{organizationId}/offerings'].get
description: Derived operationId for GET /organizations/{organizationId}/offerings.
update:
operationId: getOrganizationsByOrganizationIdOfferings
x-agent-hints:
readOnly: true
- target: $.paths['/organizations/{organizationId}/groups'].get
description: Derived operationId for GET /organizations/{organizationId}/groups.
update:
operationId: getOrganizationsByOrganizationIdGroups
x-agent-hints:
readOnly: true
- target: $.paths['/organizations/{organizationId}/education-specifications'].get
description: Derived operationId for GET /organizations/{organizationId}/education-specifications.
update:
operationId: getOrganizationsByOrganizationIdEducationSpecifications
x-agent-hints:
readOnly: true
- target: $.paths['/academic-sessions'].get
description: Derived operationId for GET /academic-sessions.
update:
operationId: getAcademicSessions
x-agent-hints:
readOnly: true
- target: $.paths['/academic-sessions/{academicSessionId}'].get
description: Derived operationId for GET /academic-sessions/{academicSessionId}.
update:
operationId: getAcademicSessionsByAcademicSessionId
x-agent-hints:
readOnly: true
- target: $.paths['/academic-sessions/{academicSessionId}/offerings'].get
description: Derived operationId for GET /academic-sessions/{academicSessionId}/offerings.
update:
operationId: getAcademicSessionsByAcademicSessionIdOfferings
x-agent-hints:
readOnly: true
- target: $.paths['/programs'].get
description: Derived operationId for GET /programs.
update:
operationId: getPrograms
x-agent-hints:
readOnly: true
- target: $.paths['/programs/{programId}'].get
description: Derived operationId for GET /programs/{programId}.
update:
operationId: getProgramsByProgramId
x-agent-hints:
readOnly: true
- target: $.paths['/programs/{programId}/programs'].get
description: Derived operationId for GET /programs/{programId}/programs.
update:
operationId: getProgramsByProgramIdPrograms
x-agent-hints:
readOnly: true
- target: $.paths['/programs/{programId}/courses'].get
description: Derived operationId for GET /programs/{programId}/courses.
update:
operationId: getProgramsByProgramIdCourses
x-agent-hints:
readOnly: true
- target: $.paths['/programs/{programId}/offerings'].get
description: Derived operationId for GET /programs/{programId}/offerings.
update:
operationId: getProgramsByProgramIdOfferings
x-agent-hints:
readOnly: true
- target: $.paths['/courses'].get
description: Derived operationId for GET /courses.
update:
operationId: getCourses
x-agent-hints:
readOnly: true
- target: $.paths['/courses/{courseId}'].get
description: Derived operationId for GET /courses/{courseId}.
update:
operationId: getCoursesByCourseId
x-agent-hints:
readOnly: true
- target: $.paths['/courses/{courseId}/components'].get
description: Derived operationId for GET /courses/{courseId}/components.
update:
operationId: getCoursesByCourseIdComponents
x-agent-hints:
readOnly: true
- target: $.paths['/courses/{courseId}/offerings'].get
description: Derived operationId for GET /courses/{courseId}/offerings.
update:
operationId: getCoursesByCourseIdOfferings
x-agent-hints:
readOnly: true
- target: $.paths['/components/{componentId}'].get
description: Derived operationId for GET /components/{componentId}.
update:
operationId: getComponentsByComponentId
x-agent-hints:
readOnly: true
- target: $.paths['/components/{componentId}/offerings'].get
description: Derived operationId for GET /components/{componentId}/offerings.
update:
operationId: getComponentsByComponentIdOfferings
x-agent-hints:
readOnly: true
- target: $.paths['/offerings/{offeringId}'].get
description: Derived operationId for GET /offerings/{offeringId}.
update:
operationId: getOfferingsByOfferingId
x-agent-hints:
readOnly: true
- target: $.paths['/offerings/{offeringId}/associations'].get
description: Derived operationId for GET /offerings/{offeringId}/associations.
update:
operationId: getOfferingsByOfferingIdAssociations
x-agent-hints:
readOnly: true
- target: $.paths['/offerings/{offeringId}/groups'].get
description: Derived operationId for GET /offerings/{offeringId}/groups.
update:
operationId: getOfferingsByOfferingIdGroups
x-agent-hints:
readOnly: true
- target: $.paths['/associations/{associationId}'].get
description: Derived operationId for GET /associations/{associationId}.
update:
operationId: getAssociationsByAssociationId
x-agent-hints:
readOnly: true
- target: $.paths['/associations/{associationId}'].patch
description: Derived operationId for PATCH /associations/{associationId}.
update:
operationId: patchAssociationsByAssociationId
x-agent-hints:
readOnly: false
- target: $.paths['/associations/external/me'].post
description: Derived operationId for POST /associations/external/me.
update:
operationId: postAssociationsExternalMe
x-agent-hints:
readOnly: false
- target: $.paths['/buildings'].get
description: Derived operationId for GET /buildings.
update:
operationId: getBuildings
x-agent-hints:
readOnly: true
- target: $.paths['/buildings/{buildingId}'].get
description: Derived operationId for GET /buildings/{buildingId}.
update:
operationId: getBuildingsByBuildingId
x-agent-hints:
readOnly: true
- target: $.paths['/buildings/{buildingId}/rooms'].get
description: Derived operationId for GET /buildings/{buildingId}/rooms.
update:
operationId: getBuildingsByBuildingIdRooms
x-agent-hints:
readOnly: true
- target: $.paths['/rooms'].get
description: Derived operationId for GET /rooms.
update:
operationId: getRooms
x-agent-hints:
readOnly: true
- target: $.paths['/rooms/{roomId}'].get
description: Derived operationId for GET /rooms/{roomId}.
update:
operationId: getRoomsByRoomId
x-agent-hints:
readOnly: true
- target: $.paths['/news-feeds'].get
description: Derived operationId for GET /news-feeds.
update:
operationId: getNewsFeeds
x-agent-hints:
readOnly: true
- target: $.paths['/news-feeds/{newsFeedId}'].get
description: Derived operationId for GET /news-feeds/{newsFeedId}.
update:
operationId: getNewsFeedsByNewsFeedId
x-agent-hints:
readOnly: true
- target: $.paths['/news-feeds/{newsFeedId}/news-items'].get
description: Derived operationId for GET /news-feeds/{newsFeedId}/news-items.
update:
operationId: getNewsFeedsByNewsFeedIdNewsItems
x-agent-hints:
readOnly: true
- target: $.paths['/news-items/{newsItemId}'].get
description: Derived operationId for GET /news-items/{newsItemId}.
update:
operationId: getNewsItemsByNewsItemId
x-agent-hints:
readOnly: true
- target: $.paths['/education-specifications'].get
description: Derived operationId for GET /education-specifications.
update:
operationId: getEducationSpecifications
x-agent-hints:
readOnly: true
- target: $.paths['/education-specifications/{educationSpecificationId}'].get
description: Derived operationId for GET /education-specifications/{educationSpecificationId}.
update:
operationId: getEducationSpecificationsByEducationSpecificationId
x-agent-hints:
readOnly: true
- target: $.paths['/education-specifications/{educationSpecificationId}/education-specifications'].get
description: Derived operationId for GET /education-specifications/{educationSpecificationId}/education-specifications.
update:
operationId: getEducationSpecificationsByEducationSpecificationIdEducationSpecifications
x-agent-hints:
readOnly: true
- target: $.paths['/education-specifications/{educationSpecificationId}/courses'].get
description: Derived operationId for GET /education-specifications/{educationSpecificationId}/courses.
update:
operationId: getEducationSpecificationsByEducationSpecificationIdCourses
x-agent-hints:
readOnly: true
- target: $.paths['/education-specifications/{educationSpecificationId}/programs'].get
description: Derived operationId for GET /education-specifications/{educationSpecificationId}/programs.
update:
operationId: getEducationSpecificationsByEducationSpecificationIdPrograms
x-agent-hints:
readOnly: true
- target: $.paths['/groups'].get
description: Derived operationId for GET /groups.
update:
operationId: getGroups
x-agent-hints:
readOnly: true
- target: $.paths['/groups/{groupId}'].get
description: Derived operationId for GET /groups/{groupId}.
update:
operationId: getGroupsByGroupId
x-agent-hints:
readOnly: true
- target: $.paths['/groups/{groupId}/persons'].get
description: Derived operationId for GET /groups/{groupId}/persons.
update:
operationId: getGroupsByGroupIdPersons
x-agent-hints:
readOnly: true