openapi: 3.2.0 info: title: Open Education education specifications API version: 5.0.0 x-logo: url: ../logo.png description: 'Operations tagged education specifications across 2 of this provider''s published API definitions: ooapi-v5.yaml, open-education-api-v5-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: http://demo01.eduapi.nl/v5 description: SURF demo implementation tags: - name: education specifications description: 'The education specification API provides information on the specification of an education object. This specification allows for other education objects to be derived from it. It is used to aggregate education objects from a supplying institution. It clusters programs to a main educationSpecification that is used in registries such as RIO.' paths: /education-specifications: get: summary: GET /education-specifications description: Get a list of all education specifications, ordered by name (ascending). tags: - education specifications parameters: - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/pageNumber' - $ref: '#/components/parameters/consumer' - $ref: '#/components/parameters/search' - name: educationSpecificationType in: query description: Filter by type of education specification required: false schema: $ref: '#/components/schemas/educationSpecificationType' - name: primaryCode in: query description: Filter by primary code of education specification required: false schema: type: string - name: sort in: query explode: false description: 'Sort by one or more attributes, the default is ascending. Prefixing the attribute with a minus sign `-` allows for descending sort. Examples: [ATTR | -ATTR | ATTR1,-ATTR2]' required: false schema: type: array items: type: string enum: - educationSpecificationType - name - primaryCode - -educationSpecificationType - -name - -primaryCode default: - - name example: - educationSpecificationType - -primaryCode responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Pagination' - type: object required: - items properties: items: type: array items: $ref: '#/components/schemas/EducationSpecification' ext: $ref: '#/components/schemas/Ext' '400': $ref: '#/components/responses/ErrorBadRequest' '401': $ref: '#/components/responses/ErrorUnauthorized' '403': $ref: '#/components/responses/ErrorForbidden' '404': $ref: '#/components/responses/ErrorNotFound' '405': $ref: '#/components/responses/ErrorMethodNotAllowed' '429': $ref: '#/components/responses/ErrorTooManyRequests' '500': $ref: '#/components/responses/ErrorInternalServerError' operationId: getEducationSpecifications x-operation-id-source: derived servers: - url: http://demo01.eduapi.nl/v5 description: SURF demo implementation /education-specifications/{educationSpecificationId}: get: summary: GET /education-specifications/{educationSpecificationId} description: Get a single education specification. tags: - education specifications parameters: - name: educationSpecificationId in: path description: Education specification ID required: true schema: type: string format: uuid - $ref: '#/components/parameters/returnTimelineOverrides' - name: expand in: query explode: false description: Optional properties to include, separated by a comma required: false schema: type: array items: type: string enum: - parent - children - organization responses: '200': description: OK content: application/json: schema: oneOf: - title: Without timelineOverrides (default) $ref: '#/components/schemas/EducationSpecification' - title: With timelineOverrides $ref: '#/components/schemas/EducationSpecificationExpanded' '400': $ref: '#/components/responses/ErrorBadRequest' '401': $ref: '#/components/responses/ErrorUnauthorized' '403': $ref: '#/components/responses/ErrorForbidden' '404': $ref: '#/components/responses/ErrorNotFound' '405': $ref: '#/components/responses/ErrorMethodNotAllowed' '429': $ref: '#/components/responses/ErrorTooManyRequests' '500': $ref: '#/components/responses/ErrorInternalServerError' operationId: getEducationSpecificationsByEducationSpecificationId x-operation-id-source: derived servers: - url: http://demo01.eduapi.nl/v5 description: SURF demo implementation /education-specifications/{educationSpecificationId}/education-specifications: get: summary: GET /education-specifications/{educationSpecificationId}/education-specification… description: Get an ordered list of all education-specifications given through this educationspecification. tags: - education specifications parameters: - name: educationSpecificationId in: path description: Education Specification ID required: true schema: type: string format: uuid - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/pageNumber' - $ref: '#/components/parameters/consumer' - $ref: '#/components/parameters/search' - name: sort in: query explode: false description: 'Sort by one or more attributes, the default is ascending. Prefixing the attribute with a minus sign `-` allows for descending sort. Examples: [ATTR | -ATTR | ATTR1,-ATTR2]' required: false schema: type: array items: type: string enum: - educationSpecificationId - name - educationSpecificationType - -educationSpecificationId - -name - -educationSpecificationType default: - educationSpecificationId example: - educationSpecificationId - -name responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Pagination' - type: object required: - items properties: items: type: array items: $ref: '#/components/schemas/Course' ext: $ref: '#/components/schemas/Ext' '400': $ref: '#/components/responses/ErrorBadRequest' '401': $ref: '#/components/responses/ErrorUnauthorized' '403': $ref: '#/components/responses/ErrorForbidden' '404': $ref: '#/components/responses/ErrorNotFound' '405': $ref: '#/components/responses/ErrorMethodNotAllowed' '429': $ref: '#/components/responses/ErrorTooManyRequests' '500': $ref: '#/components/responses/ErrorInternalServerError' operationId: getEducationSpecificationsByEducationSpecificationIdEducationSpecifications x-operation-id-source: derived servers: - url: http://demo01.eduapi.nl/v5 description: SURF demo implementation /education-specifications/{educationSpecificationId}/courses: get: summary: GET /education-specifications/{educationSpecificationId}/courses description: Get an ordered list of all courses given through this EducationSpecification. tags: - education specifications parameters: - name: educationSpecificationId in: path description: Education Specification ID required: true schema: type: string format: uuid - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/pageNumber' - $ref: '#/components/parameters/consumer' - $ref: '#/components/parameters/search' - $ref: '#/components/parameters/teachingLanguage' - name: level in: query description: Filter by level required: false schema: $ref: '#/components/schemas/level' - name: modeOfDelivery in: query description: Filter by modeOfDelivery required: false schema: $ref: '#/components/schemas/modesOfDelivery' - name: sort in: query explode: false description: 'Sort by one or more attributes, the default is ascending. Prefixing the attribute with a minus sign `-` allows for descending sort. Examples: [ATTR | -ATTR | ATTR1,-ATTR2]' required: false schema: type: array items: type: string enum: - courseId - name - -courseId - -name default: - courseId example: - courseId - -name responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Pagination' - type: object required: - items properties: items: type: array items: $ref: '#/components/schemas/Course' ext: $ref: '#/components/schemas/Ext' '400': $ref: '#/components/responses/ErrorBadRequest' '401': $ref: '#/components/responses/ErrorUnauthorized' '403': $ref: '#/components/responses/ErrorForbidden' '404': $ref: '#/components/responses/ErrorNotFound' '405': $ref: '#/components/responses/ErrorMethodNotAllowed' '429': $ref: '#/components/responses/ErrorTooManyRequests' '500': $ref: '#/components/responses/ErrorInternalServerError' operationId: getEducationSpecificationsByEducationSpecificationIdCourses x-operation-id-source: derived servers: - url: http://demo01.eduapi.nl/v5 description: SURF demo implementation /education-specifications/{educationSpecificationId}/programs: get: summary: GET /education-specifications/{educationSpecificationId}/programs description: Get an ordered list of all programs for a given education specification, ordered by name. tags: - education specifications parameters: - name: educationSpecificationId in: path description: Education Specification ID required: true schema: type: string format: uuid - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/pageNumber' - $ref: '#/components/parameters/consumer' - $ref: '#/components/parameters/search' - $ref: '#/components/parameters/teachingLanguage' - name: programType in: query description: Filter by program type required: false schema: $ref: '#/components/schemas/programType' - name: qualificationAwarded in: query description: Filter by qualificationAwarded required: false schema: $ref: '#/components/schemas/qualificationAwarded' - name: levelOfQualification in: query description: Filter by levelOfQualification required: false schema: $ref: '#/components/schemas/levelOfQualification' - name: sector in: query description: Filter by sector required: false schema: $ref: '#/components/schemas/sector' - name: fieldsOfStudy in: query description: Filter by fieldsOfStudy required: false schema: type: string - name: croho-creboCode in: query description: Filter by croho-creboCode required: false schema: type: string - name: sort in: query explode: false description: 'Sort by one or more attributes, the default is ascending. Prefixing the attribute with a minus sign `-` allows for descending sort. Examples: [ATTR | -ATTR | ATTR1,-ATTR2]' required: false schema: type: array items: type: string enum: - programId - name - -programId - -name default: - name example: - programId - -name responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Pagination' - type: object required: - items properties: items: type: array items: $ref: '#/components/schemas/Program' ext: $ref: '#/components/schemas/Ext' '400': $ref: '#/components/responses/ErrorBadRequest' '401': $ref: '#/components/responses/ErrorUnauthorized' '403': $ref: '#/components/responses/ErrorForbidden' '404': $ref: '#/components/responses/ErrorNotFound' '405': $ref: '#/components/responses/ErrorMethodNotAllowed' '429': $ref: '#/components/responses/ErrorTooManyRequests' '500': $ref: '#/components/responses/ErrorInternalServerError' operationId: getEducationSpecificationsByEducationSpecificationIdPrograms x-operation-id-source: derived servers: - url: http://demo01.eduapi.nl/v5 description: SURF demo implementation components: parameters: consumer: name: consumer in: query description: Request entities meant for a specific consumer. This query parameter is independent from the `consumers` attribute. See the [documentation on support for specific consumers](https://openonderwijsapi.nl/v5/#/technical/consumers-and-profiles/) for more information about this mechanism. required: false schema: type: string teachingLanguage: name: teachingLanguage in: query description: Filter by teachingLanguage, which is a string describing the main teaching language, should be a three-letter language code as specified by ISO 639-2. required: false schema: type: string pattern: ^[a-z]{3}$ minLength: 3 maxLength: 3 example: nld pageSize: name: pageSize in: query description: The number of items per page required: false schema: type: integer format: int32 default: 10 enum: - 10 - 20 - 50 - 100 - 250 search: name: q in: query description: Filter by items having a name, abbreviation or description containing the given search term (exact partial match, case insensitive) required: false schema: type: string pageNumber: name: pageNumber in: query description: The page number to get. Page numbers start at 1. required: false schema: type: integer format: int32 example: 1 minimum: 1 returnTimelineOverrides: name: returnTimelineOverrides in: query description: Controls whether the attribute `timelineOverrides` is returned or not. The default is `false`, so this has to explicitly set to `true` if a client needs the timeline overrides. See [GET /education-specifications/{educationSpecificationId}](#tag/education-specifications/paths/~1education-specifications~1{educationSpecificationId}/get) for an example. required: false schema: type: boolean default: false schemas: sector: type: string description: 'The sector for this program - secondary vocational education: middelbaar beroepsonderwijs - higher professional education: hoger beroepsonderwijs - university education: universitair onderwijs ' enum: - secondary vocational education - higher professional education - university education example: university education programType: type: string description: 'The type of this program - program: opleiding - minor: minor - honours: honours - specialization: specialisatie - track: track ' enum: - program - minor - honours - specialization - track example: program Consumer: type: object description: Object for communicating data to a specific consumer (destination). This object has no relationship with the `consumer` query parameter. required: - consumerKey properties: consumerKey: description: The key of the consumer (destination) for which this information is intended. See the [consumer registry](https://openonderwijsapi.nl/v5/#/technical/consumers-and-profiles/) for more information. type: string additionalProperties: true personAffiliations: type: array description: 'The affiliations of this person, the relations a person has with the organization providing this endpoint - student: student - employee: medewerker - guest: gast ' items: type: string enum: - student - employee - guest example: student codeType: type: string description: "The code/identifier type. \n\nThis is an *extensible enumeration*. Use `x-` to prefix custom values\n\nThe predefined values are:\n - `brin`: The registration number for a Dutch educational institution that is issued by the Dutch Ministry of Education, Culture and Science\n - `crohoCreboCode`: programs with a CREBO and CROHO number are accredited by the Dutch Ministry of Education, Culture and Science (OCW)\n - `programCode`: Identifier for the program (collection of courses)\n - `componentCode`: The code for a component (part of a course)\n - `offeringCode`: The code to identify a specific offering (program, course or component offering)\n - `organizationId`: The identifier for the organization\n - `buildingId`: The number or code to identify a building\n - `bagId`: The identification of a building as it is known in the Dutch Building Administration (BAG)\n - `roomCode`: The code for a room\n - `systemId`: Identifier assigned to an entity in context of a specific system\n - `productId`: Identifier assigned to a specific product\n - `nationalIdentityNumber`: Identifier assigned by the governement of the person. e.g. a social security number in the USA\n - `studentNumber`: Identifier for the student\n - `studielinkNumber`: Identifier for the person as determined by Studielink\n - `esi`: European Student Identifier\n - `userName`: The name of a user\n - `accountId`: Identifier assigned to a specific account\n - `emailAdress`: An email address\n - `groupCode`: The identifier for a group (of persons)\n - `isbn`: International Standard Book Number that serve as product identifiers for Books\n - `issn`: International Standard Book Number that serve as product identifiers for periodicals\n - `orcId`: Open Researcher and Contributor ID\n - `uuid`: A universally unique identifier\n - `schacHome`: Home organization using the domain name of the organization\n - `identifier`: Generic Identifier\n" x-ooapi-extensible-enum: - brin - crohoCreboCode - programCode - componentCode - offeringCode - organizationId - buildingId - bagId - roomCode - systemId - productId - nationalIdentityNumber - studentNumber - studielinkNumber - esi - userName - accountId - emailAdress - groupCode - isbn - issn - orcId - uuid - schacHome - identifier example: identifier CourseId: type: object description: An object describing the metadata of a course required: - courseId properties: courseId: type: string description: Unique id of this course format: uuid example: 123e4567-e89b-12d3-a456-426614174000 readOnly: true Problem: type: object description: A system message including the error code and an explanation required: - status - title properties: status: type: string description: The HTTP status code example: '404' title: type: string description: A short, human-readable summary of the problem type example: Resource not found detail: type: string description: A human-readable explanation specific to this occurrence of the problem EducationSpecificationProperties: type: object description: "The specification of an education object. This specification allows for other education objects to be derived from it.\nIt is used to aggregate education objects from a supplying institution.\nIt clusters programs to a main educationSpecification that is used in registries such as RIO. \n" required: - primaryCode - educationSpecificationType - name properties: primaryCode: description: "The primary human readable identifier for the entity. \nThis will often take the form of a human readable code as defined by the institution or region\n" $ref: '#/components/schemas/IdentifierEntry' otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry' example: - codeType: crohoCreboCode code: '1234123' educationSpecificationType: $ref: '#/components/schemas/educationSpecificationType' name: type: array items: $ref: '#/components/schemas/LanguageTypedString' description: The name of this education specification example: - language: en-GB value: Bachelor Chemical technology abbreviation: type: string description: The abbreviation of this program maxLength: 256 example: B Scheikundige Technologie description: type: array items: $ref: '#/components/schemas/LanguageTypedString' description: The description of this program. [The limited implementation of Git Hub Markdown syntax](#tag/formatting-and-displaying-results-from-API) MAY be used for rich text representation. example: - language: en-GB value: program that is a place holder for all courses that are made available for student mobility formalDocument: $ref: '#/components/schemas/formalDocument' level: $ref: '#/components/schemas/level' sector: $ref: '#/components/schemas/sector' levelOfQualification: $ref: '#/components/schemas/levelOfQualification' fieldsOfStudy: type: string description: Field(s) of study (e.g. ISCED-F) (https://unesdoc.unesco.org/ark:/48223/pf0000228085.locale=en). maxLength: 4 example: '0732' studyLoad: $ref: '#/components/schemas/StudyLoadDescriptor' learningOutcomes: type: array description: Statements that describe the knowledge or skills students should acquire by the end of a particular course or program (ECTS-learningoutcome). items: type: array minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: 'Executable knowledge of Chemical technology, including: Acquire knowledge of research paradigms.' link: type: string description: URL of the program's website format: uri maxLength: 2048 example: https://bijvak.nl parent: description: The educationSpecification that is the parent of this educationSpecification if it exists. [`expandable`](#tag/education_specification_model) oneOf: - $ref: '#/components/schemas/Identifier' title: educationSpecificationId - $ref: '#/components/schemas/EducationSpecification' title: EducationSpecification children: type: array description: The EducationSpecifications that have this EducationSpecification as their parent. [`expandable`](#tag/education_specification_model) items: oneOf: - $ref: '#/components/schemas/Identifier' title: educationSpecificationId - $ref: '#/components/schemas/EducationSpecification' title: EducationSpecification organization: description: 'The organization that manages this group. [`expandable`](#tag/organization_model) By default only the `organizationId` (a string) is returned. If the client requested an expansion of `organization` the full organization object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier' title: organizationId - $ref: '#/components/schemas/Organization' title: Organization object consumers: description: The additional consumer elements that can be provided, see the [documentation on support for specific consumers](https://openonderwijsapi.nl/v5/#/technical/consumers-and-profiles/) for more information about this mechanism. type: array items: $ref: '#/components/schemas/Consumer' example: - consumerKey: rio educationSpecificationSubType: variant category: - business_and_project_support - economy ext: $ref: '#/components/schemas/Ext' modesOfDelivery: type: array description: 'The mode of delivery of the component (ECTS-mode of delivery) - distance-learning: afstandsleren - on campus: op de campus - online: online - hybrid: hybride - situated: op locatie ' items: type: string enum: - distance-learning - on campus - online - hybrid - situated example: situated EducationSpecification: allOf: - $ref: '#/components/schemas/EducationSpecificationId' - $ref: '#/components/schemas/EducationSpecificationProperties' - properties: validFrom: description: The first day this EducationSpecification is valid (inclusive). type: string format: date validTo: description: The day this EducationSpecification ceases to be valid (e.g. exclusive). type: string format: date ProgramId: type: object description: A collection of courses that lead to a certifiable learning outcome required: - programId properties: programId: type: string description: Unique id for this program format: uuid example: 123e4567-e89b-12d3-a456-426614174000 readOnly: true Ext: type: object description: Object for additional non-standard attributes levelOfQualification: type: string description: Level of qualification according to the Dutch National Qualification Framework and the European Qualifications Framework, see [this overview](https://nlqf.nl/images/downloads/English2018/Schematic_overview_NLQF_2020.pdf) for more information. enum: - '1' - '2' - '3' - '4' - 4+ - '5' - '6' - '7' - '8' example: '6' formalDocument: type: string description: "The type of formal document obtained after completion of this education\n - diploma: DIPLOMA\n - certificate: CERTIFICAAT\n - no official document: GEEN OFFICIEEL DOCUMENT\n - testimonial: GETUIGSCHRIFT\n - school advice: SCHOOLADVIES\n" enum: - diploma - certificate - no official document - testimonial - school advice example: diploma PersonProperties: type: object description: A person that has a relationship with this institution required: - givenName - surname - displayName - affiliations - mail - primaryCode - activeEnrollment properties: primaryCode: description: The primary human readable identifier for the person. This is often the source identifier as defined by the institution. $ref: '#/components/schemas/IdentifierEntry' example: codeType: studentNumber code: 0 readOnly: true givenName: type: string description: The first name of this person maxLength: 256 example: Maartje surnamePrefix: type: string description: The prefix of the family name of this person example: van surname: type: string description: The family name of this person maxLength: 256 example: Damme displayName: type: string description: The name of this person which will be displayed maxLength: 256 example: Maartje van Damme initials: type: string description: The initials of this person example: MCW activeEnrollment: type: boolean description: Whether this person has an active enrollment. example: false dateOfBirth: type: string description: The date of birth of this person, RFC3339 (full-date) format: date example: '2003-09-30' cityOfBirth: type: string description: The city of birth of this person example: Utrecht countryOfBirth: type: string description: The country of birth of this person the country code according to [iso-3166-1-alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) example: NL nationality: type: string description: The nationality of this person the nationality according to https://gist.github.com/zspine/2365808 example: Dutch dateOfNationality: type: string description: The date of nationality of this person, RFC3339 (full-date) format: date example: '2003-09-30' affiliations: $ref: '#/components/schemas/personAffiliations' mail: type: string description: The primary e-mailaddress of this person format: email maxLength: 256 example: vandamme.mcw@universiteitvanharderwijk.nl secondaryMail: type: string description: The secondary e-mailaddress of this person format: email maxLength: 256 example: poekie@xyz.nl telephoneNumber: type: string description: The telephone number of this person maxLength: 256 example: +31 123 456 789 mobileNumber: type: string description: The mobile number of this person maxLength: 256 example: +31 612 345 678 photoSocial: type: string description: The url of the informal picture of this person format: uri maxLength: 2048 example: https://upload.wikimedia.org/wikipedia/commons/thumb/d/d5/Placeholder_female_superhero_c.png/203px-Placeholder_female_superhero_c.png photoOfficial: type: string description: The url of the official picture of this person format: uri maxLength: 2048 example: https://upload.wikimedia.org/wikipedia/commons/6/66/Johannes_Vermeer_%281632-1675%29_-_The_Girl_With_The_Pearl_Earring_%281665%29.jpg gender: $ref: '#/components/schemas/gender' titlePrefix: type: string description: A title prefix to be used for this person example: drs titleSuffix: type: string description: A title suffix to be used for this person example: BSc office: type: string description: The name of the office where this person is located address: $ref: '#/components/schemas/Address' ICEName: type: string description: Full name of In Case of Emergency contact maxLength: 256 example: Janne ICEPhoneNumber: type: string description: Phone number of In Case of Emergency contact maxLength: 256 example: +31 623 456 789 ICERelation: $ref: '#/components/schemas/ICERelationType' languageOfChoice: type: array description: The language(s) of choice for this person, RFC3066 items: type: string example: nl-NL otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry' example: - codeType: nationalIdentityNumber code: '00000' consumers: description: The additional consumer elements that can be provided, see the [documentation on support for specific consumers](https://openonderwijsapi.nl/v5/#/technical/consumers-and-profiles/) for more information about this mechanism. type: array items: $ref: '#/components/schemas/Consumer' example: - consumerKey: x-test-consumer additional: custom attributes: here ext: $ref: '#/components/schemas/Ext' LanguageTypedString: type: object description: A String with an associated language code. properties: language: description: The language used in the described entity. A string formatted according to RFC3066. type: string pattern: ^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$ value: description: String to describe the entity. type: string example: language: en-GB value: program that is a place holder for all courses that are made available for student mobility organizationType: type: string description: 'The type of this organization. Each OOAPI endpoint should have a single organization with type `root`, describing the root organization. - root: the root of this organization, representing the Educational Institution itself - institute: instituut - department: departement - faculty: faculteit - branch: vestiging - academy: academie - school: school ' enum: - root - institute - department - faculty - branch - academy - school example: root ICERelationType: type: string description: Type of relation between person and In Case of Emergency contact enum: - partner - parent - other example: partner level: type: string description: 'The level of this course (ECTS-year of study if applicable) - secondary vocational education: mbo - secondary vocational education 1: mbo 1, corresponds to levelOfQualification 1 - secondary vocational education 2: mbo 2, corresponds to levelOfQualification 2 - secondary vocational education 3: mbo 3, corresponds to levelOfQualification 3 - secondary vocational education 4: mbo 4, corresponds to levelOfQualification 4 - associate degree: associate degree, corresponds to levelOfQualification 5 - bachelor: bachelor, corresponds to levelOfQualification 6 - master: master, corresponds to levelOfQualification 7 - doctoral: doctoraal, corresponds to levelOfQualification 8 - undefined: onbepaald - undivided: ongedeeld - nt2-1: NT2 niveau 1 - nt2-2: NT2 niveau 2 ' enum: - secondary vocational education - secondary vocational education 1 - secondary vocational education 2 - secondary vocational education 3 - secondary vocational education 4 - associate degree - bachelor - master - doctoral - undefined - undivided - nt2-1 - nt2-2 example: master EducationSpecificationId: type: object properties: educationSpecificationId: type: string description: Unique id for this education specification format: uuid example: 123e4567-e89b-12d3-a456-426614174000 required: - educationSpecificationId addressType: type: string description: 'Address type - postal: post - visit: bezoek - deliveries: bezorg - billing: factuur - teaching: the address where education takes place ' enum: - postal - visit - deliveries - billing - teaching ProgramProperties: type: object description: A collection of courses that lead to a certifiable learning outcome required: - programType - name - abbreviation - description - primaryCode - teachingLanguage properties: primaryCode: description: The primary human readable identifier for the program. This is often the source identifier as defined by the institution. $ref: '#/components/schemas/IdentifierEntry' example: codeType: programCode code: BIO readOnly: true programType: $ref: '#/components/schemas/programType' name: description: The name of this program type: array minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: Biology abbreviation: type: string description: The abbreviation of this program maxLength: 256 example: BIO description: type: array description: The description of this program minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: The study of life teachingLanguage: type: string description: The (primary) teaching language in which this program is given, should be a three-letter language code as specified by ISO 639-2. minLength: 3 maxLength: 3 pattern: ^[a-z]{3}$ example: nld studyLoad: $ref: '#/components/schemas/StudyLoadDescriptor' qualificationAwarded: $ref: '#/components/schemas/qualificationAwarded' modeOfStudy: $ref: '#/components/schemas/modeOfStudy' modeOfDelivery: $ref: '#/components/schemas/modesOfDelivery' duration: type: string description: The duration of this program. The duration format is from the ISO 8601 ABNF as given in Appendix A of RFC 3339. pattern: ^(-?)P(?=\d|T\d)(?:(\d+)Y)?(?:(\d+)M)?(?:(\d+)([DW]))?(?:T(?:(\d+)H)?(?:(\d+)M)?(?:(\d+(?:\.\d+)?)S)?)?$ example: P1DT30H4S firstStartDate: type: string description: The date when participants can follow this program for the first time. format: date levelOfQualification: $ref: '#/components/schemas/levelOfQualification' level: $ref: '#/components/schemas/level' sector: $ref: '#/components/schemas/sector' fieldsOfStudy: type: string description: Field(s) of study (e.g. ISCED-F) (https://unesdoc.unesco.org/ark:/48223/pf0000228085.locale=en). maxLength: 4 example: '0732' enrollment: type: array items: $ref: '#/components/schemas/LanguageTypedString' description: The extra information that is provided for enrollment example: - language: en-GB value: enrollment through SIS. [The limited implementation of Git Hub Markdown syntax](#tag/formatting-and-displaying-results-from-API) MAY be used for rich text representation. resources: type: array description: An overview of the literature and other resources that is used in this course (ECTS-recommended reading and other sources) items: type: string example: - book to be announced - on-line resource x learningOutcomes: type: array description: List of learning outcomes at program level. It is advisable to limit the number of learning outcomes to approximately 20. It is also advisable to make sure that the program learning outcomes in the course catalogue correspond with those on the Diploma Supplement. items: type: array minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: 'Executable knowledge of research methods, including: Acquire knowledge of HCI research paradigms.' assessment: type: array description: A description of the way exams for this course are taken (ECTS-assessment method and criteria). minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: Exam on campus admissionRequirements: type: array description: This information may be given at an institutional level and/or at the level of individual programmes. Make sure that it is clear whether the information applies to fee-paying students (national and/or international) or to exchange students. example: - language: en-GB value: Students need to be enrolled at qualifying institutions of higher education that participate in this alliance minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' qualificationRequirements: type: array description: Normally, students will receive a diploma when they have completed the (official) study program and have obtained the required number of credits. If there are any other specific requirements that students need to have fulfilled, mention them here. minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' link: type: string description: URL of the program's website format: uri maxLength: 2048 example: https://bijvak.nl educationSpecification: description: The educationSpecification of which this program is a more concrete implementation. [`expandable`](#tag/education_specification_model) oneOf: - $ref: '#/components/schemas/Identifier' title: educationSpecificationId - $ref: '#/components/schemas/EducationSpecification' title: EducationSpecification otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry' example: - codeType: crohoCreboCode code: '59312' addresses: type: array description: Addresses for this program items: $ref: '#/components/schemas/Address' parent: description: Parent program of which the current program is a child. This object is [`expandable`](#tag/program_model) oneOf: - $ref: '#/components/schemas/Identifier' title: programId - $ref: '#/components/schemas/Program' title: Expanded Program children: type: array description: Programs which are a part of this program (e.g specializations). This object is [`expandable`](#tag/program_model) items: oneOf: - $ref: '#/components/schemas/Identifier' title: programId - $ref: '#/components/schemas/Program' title: Expanded Program coordinators: description: The person(s) responsible for this program. This object is [`expandable`](#tag/person_model) type: array items: oneOf: - $ref: '#/components/schemas/Identifier' title: personId - $ref: '#/components/schemas/Person' title: Person object organization: description: 'The organization providing this program. [`expandable`](#tag/organization_model) By default only the `organizationId` (a string) is returned. If the client requested an expansion of `organization` the full organization object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier' title: organizationId - $ref: '#/components/schemas/Organization' title: Organization object consumers: description: The additional consumer elements that can be provided, see the [documentation on support for specific consumers](https://openonderwijsapi.nl/v5/#/technical/consumers-and-profiles/) for more information about this mechanism. type: array items: $ref: '#/components/schemas/Consumer' example: - consumerKey: rio educationOffererCode: 122A112 educationLocationCode: 123X122 jointPartnerCodes: - 122A113 foreignPartners: - Harvard University deficiency: deficiencies requirementsActivities: requirements propaedeuticPhase: no_propaedeutic_phase studyChoiceCheck: no_study_choice_check acceleratedRoute: accelerated_route lastStartDate: 01-09-2025 teachingLanguages: - nld - eng ext: $ref: '#/components/schemas/Ext' PersonId: type: object properties: personId: type: string description: Unique id of this person format: uuid example: 123e4567-e89b-12d3-a456-426614174000 required: - personId educationSpecificationType: type: string description: "The type of education specification\n - program: HOOPLEIDING\n - privateProgram: PARTICULIEREOPLEIDING\n - programCluster: HOONDERWIJSEENHEDENCLUSTER\n - course: HOONDERWIJSEENHEID\n" enum: - program - privateProgram - cluster - course example: program gender: type: string description: The gender of this person enum: - M - F - U - X example: F Address: type: object description: The full street address required: - addressType properties: addressType: $ref: '#/components/schemas/addressType' street: type: string description: The street name example: Moreelsepark streetNumber: type: string description: The street number example: '48' additional: type: array description: Further details like building name, suite, apartment number, etc. minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: On the other side of the road postalCode: type: string description: Postal code example: 3511 EP city: type: string description: name of the city / locality example: Utrecht countryCode: type: string description: the country code according to [iso-3166-1-alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) example: NL geolocation: type: object description: Geolocation of the entrance of this address (WGS84 coordinate reference system) required: - latitude - longitude properties: latitude: type: number format: double example: 52.089123 longitude: type: number format: double example: 5.113337 ext: $ref: '#/components/schemas/Ext' Program: allOf: - $ref: '#/components/schemas/ProgramId' - $ref: '#/components/schemas/ProgramProperties' - properties: validFrom: description: The first day this program is valid (inclusive). type: string format: date validTo: description: The day this program ceases to be valid (e.g. exclusive). type: string format: date EducationSpecificationExpanded: allOf: - $ref: '#/components/schemas/EducationSpecification' - type: object title: With timelineOverrides properties: timelineOverrides: description: Timeline overrides allow an implementation to provide versions of entities that will be valid in the future or have been in the past. type: array items: $ref: '#/components/schemas/TimelineOverrideEducationSpecification' modeOfStudy: type: string description: "Indicates whether the education is full-time, part-time, dual or self-paced.\n - full-time: fulltime\n - part-time: parttime\n - dual training: duaal\n - self-paced: eigen tempo\n" enum: - full-time - part-time - dual training - self-paced Course: allOf: - $ref: '#/components/schemas/CourseId' - $ref: '#/components/schemas/CourseProperties' - properties: validFrom: description: The first day this course is valid (inclusive). type: string format: date validTo: description: The day this course ceases to be valid (e.g. exclusive). type: string format: date IdentifierEntry: type: object properties: codeType: $ref: '#/components/schemas/codeType' code: description: Human readable value for the code/identifier type: string required: - codeType - code additionalProperties: false example: codeType: identifier code: 1234qwe12 StudyLoadDescriptor: type: object description: The amount of effort to complete this education in the specified unit. properties: studyLoadUnit: description: "The unit in which the studyload is specfied\n- contacttime: CONTACTUUR\tamount of time spent in classes\n- ects: ECTS_PUNT\tEuropean Credit Transfer System\n- sbu: SBU\tstudentloadhours\n- sp: STUDIEPUNT studentpoints\n- hour: UUR\thours\n" type: string enum: - contacttime - ects - sbu - sp - hour example: ects value: description: The amount of load depicted in numbers type: number example: 3 example: studyLoadUnit: ects value: 3 CourseProperties: type: object description: An object describing the metadata of a course required: - name - abbreviation - description - teachingLanguage - level - primaryCode properties: primaryCode: description: The primary human readable identifier for this course. This is often the source identifier as defined by the institution. $ref: '#/components/schemas/IdentifierEntry' readOnly: true name: type: array description: The name of this course (ECTS-title) minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: Academic and Professional Writing abbreviation: type: string description: The abbreviation or internal code used to identify this course (ECTS-code) maxLength: 256 example: INFOMQNM studyLoad: $ref: '#/components/schemas/StudyLoadDescriptor' modeOfDelivery: $ref: '#/components/schemas/modesOfDelivery' duration: type: string description: The duration of this course. The duration format is from the ISO 8601 ABNF as given in Appendix A of RFC 3339. pattern: ^(-?)P(?=\d|T\d)(?:(\d+)Y)?(?:(\d+)M)?(?:(\d+)([DW]))?(?:T(?:(\d+)H)?(?:(\d+)M)?(?:(\d+(?:\.\d+)?)S)?)?$ example: P1DT30H4S firstStartDate: type: string description: The date when participants can follow this course for the first time. format: date description: type: array description: The description of this course (ECTS-description). minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: As with all empirical sciences, to assure valid outcomes, HCI studies heavily rely on research methods and statistics. This holds for the design of user interfaces, personalized recommender systems, and interaction paradigms for the internet of things. This course prepares you to do so by learning you to collect data, design experiments, and analyze the results. By the end of the course, you will have a detailed understanding of how to select and apply quantitative research methods and analysis to address virtually all HCI challenges. Quantitative research and data analysis will be taught in the context of state-of-the-art HCI challenges. Lectures will be alternated with hands-on learning, including work with predefined datasets (e.g., addressing facial features, cognitive load, and emotion). Additionally, students will set up their own research (e.g., using eye tracking). Data processing and analysis will be executed using R. teachingLanguage: type: string description: The (primary) teaching language in which this course is given, should be a three-letter language code as specified by ISO 639-2. minLength: 3 maxLength: 3 pattern: ^[a-z]{3}$ example: nld fieldsOfStudy: type: string description: Field(s) of study (e.g. ISCED-F) (https://unesdoc.unesco.org/ark:/48223/pf0000228085.locale=en). maxLength: 4 example: '0732' learningOutcomes: type: array description: Statements that describe the knowledge or skills students should acquire by the end of a particular course (ECTS-learningoutcome). items: type: array minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: 'Executable knowledge of research methods, including: Acquire knowledge of HCI research paradigms.' admissionRequirements: type: array description: This information may be given at an institutional level and/or at the level of individual programmes. Make sure that it is clear whether the information applies to fee-paying students (national and/or international) or to exchange students. example: - language: en-GB value: Students need to be enrolled at qualifying institutions of higher education that participate in this alliance minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' qualificationRequirements: type: array description: Normally, students will receive a diploma when they have completed the (official) study program and have obtained the required number of credits. If there are any other specific requirements that students need to have fulfilled, mention them here. minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' level: $ref: '#/components/schemas/level' enrollment: type: array items: $ref: '#/components/schemas/LanguageTypedString' description: The extra information that is provided for enrollment example: - language: en-GB value: enrollment through SIS. [The limited implementation of Git Hub Markdown syntax](#tag/formatting-and-displaying-results-from-API) MAY be used for rich text representation. resources: type: array description: An overview of the literature and other resources that is used in this course (ECTS-recommended reading and other sources) items: type: string example: - book to be announced - on-line resource x assessment: type: array description: A description of the way exams for this course are taken (ECTS-assessment method and criteria). minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: Exam on campus link: type: string description: URL of the course's website format: uri maxLength: 2048 example: https://osiris.uu.nl/osiris_student_uuprd/OnderwijsCatalogusZoekCursus.do#submitForm?cursuscode=INFOMQNM educationSpecification: description: The educationSpecification of which this course is a more concrete implementation. [`expandable`](#tag/education_specification_model) oneOf: - $ref: '#/components/schemas/Identifier' title: educationSpecificationId - $ref: '#/components/schemas/EducationSpecification' title: EducationSpecification addresses: type: array description: Addresses for this course items: $ref: '#/components/schemas/Address' otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry' consumers: description: The additional consumer elements that can be provided, see the [documentation on support for specific consumers](https://openonderwijsapi.nl/v5/#/technical/consumers-and-profiles/) for more information about this mechanism. type: array items: $ref: '#/components/schemas/Consumer' example: - consumerKey: rio educationOffererCode: 123A321 educationLocationCode: 334X123 jointPartnerCodes: - 123A123 foreignPartners: - Harvard University lastStartDate: 01-09-2025 teachingLanguages: - nld - eng ext: $ref: '#/components/schemas/Ext' programs: description: The program of which this course is a part of. This object is [`expandable`](#tag/program_model) type: array items: oneOf: - $ref: '#/components/schemas/Identifier' title: programId - $ref: '#/components/schemas/Program' title: Program object coordinators: description: The person(s) responsible for this course. This object is [`expandable`](#tag/person_model) type: array items: oneOf: - $ref: '#/components/schemas/Identifier' title: personId - $ref: '#/components/schemas/Person' title: Person object organization: description: 'The organization that manages this group. [`expandable`](#tag/organization_model) By default only the `organizationId` (a string) is returned. If the client requested an expansion of `organization` the full organization object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier' title: organizationId - $ref: '#/components/schemas/Organization' title: Organization object Organization: type: object description: A description of a group of people working together to achieve a goal required: - organizationId - organizationType - name - shortName - primaryCode properties: organizationId: type: string description: Unique id of this organization format: uuid example: 123e4567-e89b-12d3-a456-123514174000 readOnly: true primaryCode: description: The primary human readable identifier for the organization. This is often the source identifier as defined by the institution. $ref: '#/components/schemas/IdentifierEntry' example: codeType: orgId code: Org01-Root readOnly: true organizationType: $ref: '#/components/schemas/organizationType' name: type: array description: The name of the organization minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: nl-NL value: Coöperatie SURF U.A. shortName: type: string description: Short name of the organization maxLength: 256 example: SURF description: type: array description: Any general description of the organization should clearly mention the type of higher education organization, especially in the case of a binary system. In Dutch; universiteit (university) or hogeschool (university of applied sciences). minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: nl-NL value: SURF is een coöperatieve vereniging van Nederlandse onderwijs- en onderzoeksinstellingen waarin de leden hun krachten bundelen. De leden zijn eigenaar van SURF. addresses: type: array description: Addresses of this organization items: $ref: '#/components/schemas/Address' link: type: string description: URL of the organization's website format: uri maxLength: 2048 example: https://surf.nl logo: type: string description: Logo of this organization format: uri maxLength: 2048 example: https://www.surf.nl/themes/surf/logo.svg otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. minItems: 1 items: $ref: '#/components/schemas/IdentifierEntry' example: - codeType: brin code: 00AA - codeType: kvk code: '12345678' parent: description: 'The organizational unit which is the parent of this organization. [`expandable`](#tag/organization_model) By default only the `organizationId` (a string) is returned. If the client requested an expansion of `organization` the full organization object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier' title: organizationId - $ref: '#/components/schemas/Organization' title: Organization object children: type: array description: 'All the organizational units for which this organization is the parent. [`expandable`](#tag/organization_model) By default only the `organizationId` (a string) is returned. If the client requested an expansion of `organization` the full organization object should be returned. ' items: oneOf: - $ref: '#/components/schemas/Identifier' title: organizationId - $ref: '#/components/schemas/Organization' title: Organization object consumers: description: The additional consumer elements that can be provided, see the [documentation on support for specific consumers](https://openonderwijsapi.nl/v5/#/technical/consumers-and-profiles/) for more information about this mechanism. type: array items: $ref: '#/components/schemas/Consumer' example: - consumerKey: x-test-consumer additional: custom attributes: here ext: $ref: '#/components/schemas/Ext' Pagination: type: object required: - pageSize - pageNumber - hasPreviousPage - hasNextPage - items properties: pageSize: type: integer format: int32 description: The number of items per page example: 10 pageNumber: type: integer format: int32 description: The current page number example: 1 minimum: 1 hasPreviousPage: type: boolean description: Whether there is a previous page example: false hasNextPage: type: boolean description: Whether there is a previous page example: true totalPages: type: integer format: int32 description: Total number of pages example: 8 Person: allOf: - $ref: '#/components/schemas/PersonId' - $ref: '#/components/schemas/PersonProperties' Identifier: type: string description: An identifier of another resource. format: uuid TimelineOverrideEducationSpecification: type: object description: A timeline override of the EducationSpecification. required: - validFrom - educationSpecification properties: validFrom: type: string description: The day on which this timelineOverride starts (inclusive), RFC3339 (date) format: date example: '2021-09-01' validTo: type: string description: The day on which this timelineOverride ends (exclusive), RFC3339 (date) format: date example: '2022-08-31' educationSpecification: $ref: '#/components/schemas/EducationSpecificationProperties' qualificationAwarded: type: string description: Type of qualificaton that can be obtained on finishing the program enum: - AD - BA - BSc - LLB - MA - MSc - LLM - Phd - None example: None responses: ErrorMethodNotAllowed: description: Method not allowed content: application/problem+json: schema: $ref: '#/components/schemas/Problem' ErrorNotFound: description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/Problem' ErrorUnauthorized: description: Unauthorized content: application/problem+json: schema: $ref: '#/components/schemas/Problem' ErrorTooManyRequests: description: Too many requests content: application/problem+json: schema: $ref: '#/components/schemas/Problem' ErrorForbidden: description: Forbidden content: application/problem+json: schema: $ref: '#/components/schemas/Problem' ErrorInternalServerError: description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' ErrorBadRequest: description: Bad request content: application/problem+json: schema: $ref: '#/components/schemas/Problem' securitySchemes: bearerAuth: type: http scheme: bearer openId: type: openIdConnect openIdConnectUrl: https://example.nl/.well-known/openid-configuration x-refined-from: - ooapi-v5.yaml - open-education-api-v5-openapi.yml x-tagGroups: - name: Requests and responses tags: - security - service metadata - academic sessions - associations - buildings - courses - course offerings - course offering associations - components - documents - groups - learning components - learning component offerings - learning component offering associations - learning outcomes - news - organisations - persons - programmes - programme offerings - programme offering associations - rooms - test components - test component offerings - test component offering associations - test component offering association attempts - name: Models tags: - data_model - service_model - learning_outcome_model - academic_session_model - building_model - course_model - course_offering_model - course_offering_association_model - document_model - learning_component_model - learning_component_offering_model - learning_component_offering_association_model - test_component_model - test_component_offering_model - test_component_offering_association_model - test_component_offering_association_attempt_model - group_model - membership_model - organisation_model - person_model - programme_model - programme_offering_model - programme_offering_association_model - room_model