openapi: 3.2.0 info: title: Open Education Courses API x-refined-note: - x-logo differs across the merged source definitions and was not carried version: '1.0' description: 'Operations tagged courses across 3 of this provider''s published API definitions: oeapi-6.0-rc.3.yaml, ooapi-v5.yaml, open-education-api-v5-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://demo01.eduapi.nl/v6 description: SURF demo implementation - url: http://demo01.eduapi.nl/v5 description: SURF demo implementation tags: - name: Courses description: 'The courses API provides a self-contained and formally structured learning experience, aimed at delivering defined learning outcomes to students, usually within the context of a programme.' paths: /courses: get: summary: GET /courses operationId: listCourses description: Get a list of all courses, ordered by name (ascending). tags: - Courses parameters: - $ref: '#/components/parameters/primaryCode' - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/pageNumber' - $ref: '#/components/parameters/consumer' - $ref: '#/components/parameters/filterQuery' - $ref: '#/components/parameters/fields' - $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/modeOfDelivery' responses: '200': description: OK content: application/vnd.oeapi+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' '406': $ref: '#/components/responses/ErrorNotAcceptable' '429': $ref: '#/components/responses/ErrorTooManyRequests' '500': $ref: '#/components/responses/ErrorInternalServerError' servers: - url: https://demo01.eduapi.nl/v6 description: SURF demo implementation /courses/{courseId}: get: summary: GET /courses/{courseId} operationId: listCourseById description: Get a single course. tags: - Courses parameters: - name: courseId in: path description: Course ID required: true schema: type: string format: uuid - name: expand in: query explode: false description: Optional properties to include, separated by a comma required: false style: form schema: type: array items: type: string enum: - programmes - coordinators - instructors - organisation - $ref: '#/components/parameters/fields' - $ref: '#/components/parameters/consumer' - $ref: '#/components/parameters/returnTimelineOverrides' responses: '200': description: OK content: application/vnd.oeapi+json: schema: $ref: '#/components/schemas/CourseExpanded' '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' '406': $ref: '#/components/responses/ErrorNotAcceptable' '429': $ref: '#/components/responses/ErrorTooManyRequests' '500': $ref: '#/components/responses/ErrorInternalServerError' servers: - url: https://demo01.eduapi.nl/v6 description: SURF demo implementation /organisations/{organisationId}/courses: get: summary: GET /organisations/{organisationId}/courses operationId: listCoursesByOrganisationId description: Get an ordered list of all courses for a given organisation, ordered by name. tags: - Courses parameters: - name: organisationId in: path description: Organisation ID required: true schema: type: string format: uuid - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/pageNumber' - $ref: '#/components/parameters/fields' - $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/modeOfDelivery' responses: '200': description: OK content: application/vnd.oeapi+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' '406': $ref: '#/components/responses/ErrorNotAcceptable' '429': $ref: '#/components/responses/ErrorTooManyRequests' '500': $ref: '#/components/responses/ErrorInternalServerError' servers: - url: https://demo01.eduapi.nl/v6 description: SURF demo implementation /programmes/{programmeId}/courses: get: summary: GET /programmes/{programmeId}/courses operationId: listCoursesByProgrammeId description: Get an ordered list of all courses given through this programme. tags: - Courses parameters: - name: programmeId in: path description: Programme ID required: true schema: type: string format: uuid - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/pageNumber' - $ref: '#/components/parameters/consumer' - $ref: '#/components/parameters/filterQuery' - $ref: '#/components/parameters/fields' - $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/modeOfDelivery' responses: '200': description: OK content: application/vnd.oeapi+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' '406': $ref: '#/components/responses/ErrorNotAcceptable' '429': $ref: '#/components/responses/ErrorTooManyRequests' '500': $ref: '#/components/responses/ErrorInternalServerError' servers: - url: https://demo01.eduapi.nl/v6 description: SURF demo implementation /courses/{courseId}/components: get: summary: GET /courses/{courseId}/components description: Get an ordered list of all course components. tags: - Courses parameters: - name: courseId in: path description: Course ID required: true schema: type: string format: uuid - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/pageNumber' - $ref: '#/components/parameters/consumer_2' - $ref: '#/components/parameters/search' - $ref: '#/components/parameters/teachingLanguage_2' - name: componentType in: query description: Filter by component type required: false schema: $ref: '#/components/schemas/componentType' - 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: - componentId - name - -componentId - -name default: - componentId example: - name - -componentId responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Pagination_2' - type: object required: - items properties: items: type: array items: $ref: '#/components/schemas/Component' ext: $ref: '#/components/schemas/Ext' '400': $ref: '#/components/responses/ErrorBadRequest_2' '401': $ref: '#/components/responses/ErrorUnauthorized_2' '403': $ref: '#/components/responses/ErrorForbidden_2' '404': $ref: '#/components/responses/ErrorNotFound_2' '405': $ref: '#/components/responses/ErrorMethodNotAllowed_2' '429': $ref: '#/components/responses/ErrorTooManyRequests_2' '500': $ref: '#/components/responses/ErrorInternalServerError_2' operationId: getCoursesByCourseIdComponents x-operation-id-source: derived servers: - url: http://demo01.eduapi.nl/v5 description: SURF demo implementation /courses/{courseId}/offerings: get: summary: GET /courses/{courseId}/offerings description: Get a list of all offerings for this course, ordered chronologically. tags: - Courses parameters: - name: courseId in: path description: Course ID required: true schema: type: string format: uuid - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/pageNumber' - $ref: '#/components/parameters/consumer_2' - $ref: '#/components/parameters/search' - $ref: '#/components/parameters/teachingLanguage_2' - name: modeOfDelivery in: query description: Filter by modeOfDelivery required: false schema: $ref: '#/components/schemas/modesOfDelivery' - name: resultExpected in: query description: Filter by resultExpected required: false schema: type: boolean - name: since in: query description: Filter all offerings by providing a minimum start date for the corresponding academic session, RFC3339 (full-date). By default only future offerings are shown (equal to `?since=`). required: false schema: type: string format: date - name: until in: query description: Filter all offerings by providing a maximum end date for the corresponding academic session, RFC3339 (full-date). required: false schema: type: string format: date - 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: - offeringId - name - startDate - endDate - -offeringId - -name - -startDate - -endDate default: - startDate example: - offeringId - -endDate responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Pagination_2' - type: object required: - items properties: items: type: array items: $ref: '#/components/schemas/CourseOffering' ext: $ref: '#/components/schemas/Ext' '400': $ref: '#/components/responses/ErrorBadRequest_2' '401': $ref: '#/components/responses/ErrorUnauthorized_2' '403': $ref: '#/components/responses/ErrorForbidden_2' '404': $ref: '#/components/responses/ErrorNotFound_2' '405': $ref: '#/components/responses/ErrorMethodNotAllowed_2' '429': $ref: '#/components/responses/ErrorTooManyRequests_2' '500': $ref: '#/components/responses/ErrorInternalServerError_2' operationId: getCoursesByCourseIdOfferings 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 intended for a specific consumer. The `consumer` profile allows for adding additional data, or specific rules concerning the presentation of the data. A consumer can be selected based on the key of the consumer profile. An implementation of the OEAPI SHOULD always return the consumer information inside the consumer property of the object(s) that are requested. Further information regarding the use of consumers can be found in the [documentation](https://oeapi.eu/v6.0/#/technical/consumers-and-profiles/) 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 at least a two-letter language code as specified by ISO 6467. required: false schema: type: string pattern: ^([a-z]{2,3})(-([A-Z]{2}|[0-9]{3}))?(-([a-z]{4}))?(-([a-z]{2}|[0-9]{3}))*(-[a-z0-9]{2,8})*(-x(-[a-z0-9]{1,8})+)?$ minLength: 2 example: nl primaryCode: name: primaryCode in: query description: The primaryCode of the requested item. This is often the source identifier as defined by the institution. required: false schema: type: string 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 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 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 filterQuery: name: filter_query in: query required: false x-lint-ignore: - camel-case-properties style: deepObject explode: true description: "Filter object serialised as `filter_query[field][operation]=value`.\nMultiple top-level fields are combined with AND. CSV is accepted where noted.\n\nOR blocks. Provide an array of single-field filter objects, each combined with OR.\nSerialises as `filter_query[__or][][field][operation]=value`.\n\nInspired by Storyblok (https://www.storyblok.com/docs/api/content-delivery/v2/filter-queries)\n\nWildcards:\n- Prefer using only the asterisk `*` as a wildcard for partial matches (e.g., like and not_like).\n\nImplementation note:\n- The availability and behaviour of this query functionality are entirely determined by the organisation hosting\n the API implementation. It is not mandatory for implementers to support this functionality, and it cannot be enforced \n upon organisations that provide or consume OEAPI endpoints.\n- It is up to each implementer to decide whether to support this feature. It is **not** a requirement of the OEAPI \n standard itself.\n- Consumers or working groups that wish to apply specific filtering mechanisms are encouraged to do so using \n this approach for the sake of consistency across implementations.\n\nExamples: \n- **Filter course offerings by programme, delivery, language and start date** \n `filter_query[programme.code][in]=B-IT-2025&filter_query[organisation.code][in]=RuG&filter_query[mode_of_delivery][in]=on_campus,hybrid&filter_query[language_of_instruction][in]=en-GB&filter_query[start_date][gt_date]=2025-09-01T00:00:00Z` \n \n- **Only offerings with email contact present** \n `filter_query[contacts.email][is]=not_empty`\n\n- **Provider is Org A or Org B, OR campus city contains “Utrecht”** \n `?filter_query[__or][][organisation.id][in]=org-uu,org-hku&filter_query[__or][][campus.city][like]=*Utrecht*` \n \n- **Start date after 1 Sept 2025 OR has evening/block_week tag** \n `?filter_query[__or][][start_date][gt_date]=2025-09-01T00:00:00Z&filter_query[__or][][tags][any_in_array]=evening,block_week` \n" schema: type: object properties: __or: type: array items: type: object additionalProperties: type: object properties: in: type: string description: Exact match; multiple values allowed as CSV. example: org-uu,org-hku like: type: string description: 'Partial match using wildcards. Prefer `*` as the wildcard. # Quotes are required here because YAML interprets unquoted * as an alias reference. ' example: '*Utrecht*' any_in_array: type: string description: Match if any of the CSV values occur. example: evening,block_week gt_date: type: string format: date-time description: ISO 8601 / RFC 3339 date-time. example: '2025-09-01T00:00:00Z' lt_date: type: string format: date-time description: ISO 8601 / RFC 3339 date-time. example: '2025-12-31T23:59:59Z' additionalProperties: type: object properties: is: $ref: '#/components/schemas/filterPresence' in: type: string description: Exact match; multiple values allowed as CSV. example: RuG not_in: type: string description: Negated inclusion; multiple values as CSV. example: UvA,VU like: type: string description: 'Partial match using wildcards. Prefer `*` as the wildcard. ' example: '*Amsterdam*' not_like: type: string description: 'Negated partial match using wildcards. Prefer `*` as the wildcard. ' example: '*deprecated*' any_in_array: type: string description: Match if any of the CSV values occur. example: evening,block_week all_in_array: type: string description: Match if all CSV values occur. example: evening,block_week gt_int: type: integer description: Greater than (integer). example: 5 lt_int: type: integer description: Less than (integer). example: 30 gt_float: type: number description: Greater than (float). example: 5.5 lt_float: type: number description: Less than (float). example: 12 gt_date: type: string format: date-time description: ISO 8601 date-time. example: '2025-09-01T00:00:00Z' lt_date: type: string format: date-time description: ISO 8601 date-time. example: '2025-12-31T23:59:59Z' fields: name: fields in: query required: false style: form explode: false description: "Allows clients to indicate which fields should be included in the response. \nThis parameter supports the principle of data minimisation and helps to optimise \ndata usage and performance by reducing unnecessary data transmission.\n\nThe `fields` parameter uses *nested field selection syntax* with parentheses for subfields, \nfor example: `programme(code)` or `campus(city)`. \nMultiple fields can be grouped within parentheses, for example: \n`fields=(id,title,ectsCredits,programme(code),campus(city))`.\n\nWhen omitted, the server returns all fields the client has access to. \nUnknown field names SHOULD be ignored. \nThe server MUST always include *mandatory fields* (e.g., identifiers such as `id`) \nthat are required for a valid or minimal response, even if not explicitly requested.\n\n*Important:* This is a **request hint**, not a **security feature**. \nThe server MAY disregard the request for a restricted set of fields, and the final response \nstructure MAY depend on server logic and the client’s access rights.\n\n\nIf a client requests unauthorised fields, these MUST be silently omitted or redacted.\n" schema: type: string example: (id,title,ectsCredits,programme(code),campus(city)) examples: minimal: summary: Return a minimal fieldset for course offerings value: (id,title,ectsCredits,languageOfInstruction) nested: summary: Include nested programme code and campus city value: (id,title,programme(code),campus(city)) combined: summary: Example using multiple nested fields value: (id,title,ectsCredits,programme(code,name),campus(city,country)) 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. required: false schema: type: boolean default: false consumer_2: 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_2: 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 returnTimelineOverrides_2: 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 consumer_3: 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_3: 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 returnTimelineOverrides_3: 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: TimelineOverrideCourse: type: object required: - validFrom - course description: A timeline override of the course. properties: validFrom: type: string description: The day on which this timelineOverride starts (inclusive), RFC3339 (date) format: date-time example: '2025-09-01T08:30:00+01:00' validTo: type: - string - 'null' description: The day on which this timelineOverride ends (exclusive), RFC3339 (date) format: date-time example: '2025-11-30T08:30:00+01:00' course: $ref: '#/components/schemas/CourseProperties' ProblemVersionNotAcceptable: allOf: - $ref: '#/components/schemas/Problem' - type: object required: - requestedVersion - supportedVersions properties: type: $ref: '#/components/schemas/type' title: $ref: '#/components/schemas/title' consumer: description: 'Indicates which party caused the version mismatch. When null, the 406 was triggered by an unsupported OEAPI version. If populated with a Consumer object, the 406 was caused by a consumer-specific version that did not match any supported version. This field MAY contain a full Consumer object or be null. ' oneOf: - $ref: '#/components/schemas/Consumer' - type: 'null' requestedVersion: type: string description: The version requested by the client. example: '5.0' supportedVersions: type: array description: Versions the server can serve, typically in descending order. items: type: string example: - '4.2' - '4.1' Language: description: 'The language used in the described entity. The value **must be a language tag that conforms to RFC 5646** (Tags for Identifying Languages, BCP 47): https://www.rfc-editor.org/rfc/rfc5646.html A tag consists of the following components, in this exact order: 1. **language** – two‑ to three‑letter codes (ISO 639‑1/‑2) **or** four‑letter codes (ISO 639‑5) **or** five‑ to eight‑letter registered language subtags. 2. **script** – optional, four letters in Title‑Case (e.g. `Latn`, `Hant`). 3. **region** – optional, either two uppercase letters (ISO 3166‑1) **or** three digits (UN M.49). 4. **variant** – zero or more subtags, each either five‑ to eight‑alphanumerics or a digit followed by three alphanumerics (e.g. `1901`, `oxendict`). 5. **extension** – zero or more extensions. Each extension starts with a *singleton* (a single alphanumeric character except `x`) followed by one or more subtags of two‑ to eight‑alphanumerics (e.g. `u‑co‑phonebk`). 6. **private‑use** – optional, the letter `x` followed by one or more subtags of one‑ to eight‑alphanumerics (e.g. `x‑private`). The most common form is a two‑letter language code (ISO 639‑1) optionally followed by a hyphen and a two‑letter country code (ISO 3166‑1), for example `en` or `en‑GB`. More specific tags are also valid, for instance `zh‑Hant‑TW` (Traditional Chinese as used in Taiwan). For sign languages two conventions are recognised: * `sgn` – e.g. `nl‑sgn‑NL` (Dutch Sign Language) * `s` – e.g. `nl‑s‑NL` (Dutch Sign Language) ' type: string minLength: 2 pattern: ^(?:(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,2}|[A-Za-z]{4}|[A-Za-z]{5,8})(?:-[A-Za-z]{4})?(?:-(?:[A-Z]{2}|[0-9]{3}))?(?:-(?:[A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*?(?:-(?:[A-WY-Za-wy-z0-9](?:-[A-Za-z0-9]{2,8})+))*?(?:-x(?:-[A-Za-z0-9]{1,8})+)?|x(?:-[A-Za-z0-9]{1,8})+)$ example: en-GB Consumer: type: object description: The additional elements of a consumer that may be provided, see the [documentation on support for specific consumers](https://oeapi.eu/v6.0/#/technical/consumers-and-profiles/) for further information about this mechanism. required: - consumerKey properties: consumerKey: description: The key of the consumer (destination) for which this information is intended. See the [consumer registry](https://oeapi.eu/v6.0/#/technical/consumers-and-profiles/). This key is used to select the additional data to be presented in the request. type: string example: test-consumer exampleProperty: description: An example of an additional property type: - string - 'null' example: value-of-example-property additionalProperties: true filterPresence: type: string description: "Presence check or special value for filter operations.\n\nInspired by Storyblok (https://www.storyblok.com/docs/api/content-delivery/v2/filter-queries)\n\nImplementation note:\n- The availability and behaviour of this query functionality are entirely determined by the organisation hosting\n the API implementation. It is not mandatory for implementers to support this functionality, and it cannot be enforced \n upon organisations that provide or consume OEAPI endpoints.\n- It is up to each implementer to decide whether to support this feature. It is **not** a requirement of the OEAPI \n standard itself.\n- Consumers or working groups that wish to apply specific filtering mechanisms are encouraged to do so using \n this approach for the sake of consistency across implementations.\n" enum: - empty - not_empty - empty_array - not_empty_array - 'true' - 'false' - 'null' - not_null example: not_empty codeType: type: string description: 'The type of code or identifier. The predefined values are: | Code | Description | |---------------------------|-------------------------------------------------------------------| | `account_id` | Identifier for an account. | | `bag_id` | Identifier for a building in the Dutch Building and Address | | | Registry (BAG). | | `building_id` | Identifier for a building. | | `component_code` | Identifier for a component (part of a course). | | `eckid` | Identifier assigned within the Dutch *Educatieve ContentKeten iD* | | | framework. It enables persistent identification and exchange of | | | digital learning resources within the Dutch educational sector for| | | EQF levels 1, 2, 3 and 4. Comparable international approaches | | | include LRMI, DOI and Handle | | | identifiers for learning resources. | | `email_address` | An email address. | | `esi` | European Student Identifier. | | `group_code` | Identifier for a group of people. | | `group_type_code` | Identifier for the type of group. | | `identifier` | Generic identifier. | | `institution_code` | Registration number of an educational institution. In the | | | Netherlands, the former BRIN code has been replaced by the | | | institution code, issued by the Ministry of Education, Culture | | | and Science (OCW). | | `isbn` | International Standard Book Number (for books). | | `issn` | International Standard Serial Number (for periodicals). | | `kvk_organisation_id` | Identifier for a KvK (Dutch Chamber of Commerce) registered | | | organisation. | | `kvk_establishment_id` | Identifier for a specific establishment of a KvK | | | (Dutch Chamber of Commerce) registered organisation. | | `leerbedrijf_id` | Dutch registration/accreditation id for organisations offering | | | internships for vocational education students. | | `national_identity_number`| Government-assigned personal identifier (e.g. NI number in the UK,| | | or *personnummer* in Sweden). | | `offering_code` | Identifier for a specific offering (programme, course or | | | component). | | `organisation_id` | Identifier for an organisation. | | `orcid` | Open Researcher and Contributor ID. | | `product_id` | Identifier for a product. | | `programme_code` | Identifier of a programme (a recognised collection of courses). | | | In the Netherlands, the former CREBO and CROHO codes have been | | | replaced by the programme code as registered in RIO, under the | | | authority of OCW. | | `room_code` | Identifier for a room. | | `schac_home` | Home organisation represented by its domain name. | | `student_number` | Identifier for a student. | | `studielink_number` | Identifier assigned to a student by Studielink (Dutch central | | | enrolment system). | | `system_id` | Identifier used within a specific system. | | `username` | User login name. | | `uuid` | Universally unique identifier. | This is an *extensible enumeration*. Use the prefix `x-` for custom values. ' x-ooapi-extensible-enum: - account_id - bag_id - building_id - component_code - eckid - email_address - esi - group_code - group_type_code - identifier - institution_code - isbn - issn - kvk_organisation_id - kvk_establishment_id - leerbedrijf_id - offering_code - organisation_id - orcid - product_id - programme_code - room_code - schac_home - student_number - studielink_number - system_id - username - uuid - national_identity_number 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 Problem: type: object description: 'A problem details object, conforming to RFC 7807 (Problem Details for HTTP APIs). See https://datatracker.ietf.org/doc/html/rfc7807. It provides a machine-readable format for error conditions, including a type URI, title, status code, and optional detail and instance fields. This ensures consistent handling of error responses across the API. ' required: - type - status - title properties: type: type: string format: uri maxLength: 2048 description: "An absolute URI that identifies the problem type. When dereferenced, \nit should provide human-readable documentation.\n" example: https://example.org/problems/bad-request title: type: string description: A short, human-readable summary of the problem type example: Resource not found status: type: integer format: int32 description: "The HTTP status code generated by the origin server for this occurrence \nof the problem.\n" example: 404 detail: type: - string - 'null' description: 'A human-readable explanation specific to this occurrence of the problem ' example: The course with id 'abc123' could not be found in the catalogue. instance: type: - string - 'null' format: uri maxLength: 2048 description: 'An absolute URI that identifies the specific occurrence of the problem. ' example: https://api.example.org/courses/abc123 type: type: string format: uri maxLength: 2048 description: "An absolute URI that identifies the problem type. When dereferenced, \nit should provide human-readable documentation.\n" example: https://example.org/problems/bad-request learningOutcomeLevel: type: string description: "The level of the learning outcome. This field supports multiple frameworks for\ndescribing cognitive complexity. Two common frameworks are provided below: **Bloom’s**\nand **SOLO**. These are intended as examples — additional levels or entirely\ndifferent frameworks MAY be added as needed.\n\n**Bloom’s taxonomy** ([https://en.wikipedia.org/wiki/Bloom's_taxonomy](https://en.wikipedia.org/wiki/Bloom's_taxonomy)):\n\n| Level | Label | Description |\n|---------|------------|---------------------------------------------------------------------|\n| bloom_1 | Remember | Recall facts and basic concepts (define, list, state). |\n| bloom_2 | Understand | Explain ideas or concepts (describe, discuss, explain). |\n| bloom_3 | Apply | Use knowledge in new situations (implement, solve, use). |\n| bloom_4 | Analyse | Draw connections among ideas (differentiate, compare, examine). |\n| bloom_5 | Evaluate | Justify a decision or course of action (critique, assess, argue). |\n| bloom_6 | Create | Produce new or original work (design, construct, develop). |\n\n**SOLO taxonomy** ([https://en.wikipedia.org/wiki/Structure_of_observed_learning_outcome](https://en.wikipedia.org/wiki/Structure_of_observed_learning_outcome)):\n\n| Level | Label | Description |\n|---------|-------------------|-----------------------------------------------------------------|\n| solo_0 | Prestructural | No understanding; the student misses the point. |\n| solo_1 | Unistructural | Identifies or carries out simple procedures; limited to one |\n| | | relevant aspect. |\n| solo_2 | Multistructural | Addresses several relevant aspects, but sees them as unrelated; |\n| | | knowledge is additive. |\n| solo_3 | Relational | Integrates aspects into a coherent whole, showing deeper |\n| | | understanding of relationships. |\n| solo_4 | Extended abstract | Generalises and applies learning to new domains, showing |\n| | | theoretical and abstract thinking. |\n\nThis is an *extensible enumeration*. Implementers MAY introduce other recognised\ntaxonomies, institutional or national frameworks. \n" x-ooapi-extensible-enum: - bloom_1 - bloom_2 - bloom_3 - bloom_4 - bloom_5 - bloom_6 - solo_0 - solo_1 - solo_2 - solo_3 - solo_4 example: bloom_1 Ext: type: object description: Object for additional non-standard attributes levelOfQualification: type: string description: "Level of qualification according to the European Qualifications Framework (EQF). \nSee: \n- https://europass.europa.eu/en/description-eight-eqf-levels \n- https://europass.europa.eu/en/europass-digital-tools/european-qualifications-framework \n- https://nlqf.nl/\n- https://database.nlqf.nl/assets/pdf/schema-en-print.pdf\n\nThis list is extended with:\n- eqf_0: Informal or pre-qualification learning, below EQF level 1, e.g. basic literacy or life skills\n- eqf_1: Basic general knowledge and skills to carry out simple tasks\n- eqf_2: Basic factual knowledge and practical skills in a field of work or study\n- eqf_3: Knowledge of facts, principles and processes, with basic problem-solving skills\n- eqf_4: Factual and theoretical knowledge in broad contexts within a field of work or study\n- nlqf_4plus: Dutch pre-university education (VWO), considered above EQF level 4 but not formally mapped to EQF level 5\n- eqf_5: Comprehensive, specialised knowledge and practical skills, typically short-cycle higher education (e.g. associate degree)\n- eqf_6: Advanced knowledge and skills for complex problem-solving, typically bachelor level\n- eqf_7: Highly specialised knowledge and critical awareness, typically master level\n- eqf_8: Knowledge at the most advanced frontier of a field, typically doctoral level\n\nThis is an *extensible enumeration*. Use the prefix `x-` for custom values.\n" x-ooapi-extensible-enum: - eqf_0 - eqf_1 - eqf_2 - eqf_3 - eqf_4 - nlqf_4plus - eqf_5 - eqf_6 - eqf_7 - eqf_8 example: eqf_6 formalDocument: type: string description: 'The type of formal document obtained upon completion of an educational programme: | Code | Description | |-----------------------------|------------------------------------------------| | `certificate` | A formal recognition of participation or | | | achievement | | `diploma` | An official qualification awarded upon | | | graduation | | `micro_credential_certificate` | Formal certification specifically | | | documenting the award of a micro-credential | | `school_advice` | Educational recommendation or guidance issued | | | by the school | | `testimonial` | A written statement confirming attendance or | | | performance | | `no_official_document` | No official document is issued | This is an *extensible enumeration*. Use the prefix `x-` for custom values. ' x-ooapi-extensible-enum: - certificate - diploma - micro_credential_certificate - school_advice - testimonial - no_official_document example: diploma PersonProperties: type: object description: A person that has a relationship with this institution anyOf: - required: - surname - primaryCode - activeEnrolment - title: With required given name required: - givenName - primaryCode - activeEnrolment - title: With required preferred name required: - preferredName - primaryCode - activeEnrolment 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 givenName: type: - string - 'null' description: The first name of this person maxLength: 256 example: Martina alternateName: type: - string - 'null' description: The Name a person chooses to use. this is part of a Self Sovereign name e.g. in the eduId process comparable to schema.org alternateName maxLength: 256 example: Marieke preferredName: type: - string - 'null' description: The name how the person would like to be called. Usually first name of this person. In line with ISO/IEC 24760 – Identity Management Vocabulary maxLength: 256 example: Maartje surnamePrefix: type: - string - 'null' 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 - 'null' description: The name of this person which will be displayed maxLength: 256 example: Maartje van Damme initials: type: - string - 'null' description: The initials of this person example: MCW idCheckName: type: - string - 'null' description: "The name of the person as printed on official identification documents\n(driving licence, passport or identity card). This MUST be formatted as\n\"surname prefix surname, given names\" (separating surnamePrefix and surname\nwith a single space, and surname and given names with a comma and space).\n\nIf the surname or given names are not available or are secret, the values\n\"secret\" and \"not_available\" are recommended. The surname prefix may be\nomitted. E.g. \"van der Graaf, Jacobus Adrianus\". \n\nOptionally, the value of\nthe student number can be added to this field by appending it at the end,\nseparated by a comma. E.g. \"van der Graaf, Jacobus Adrianus, s12345678\"\n" example: van der Graaf, Jacobus Adrianus, s12345678 activeEnrolment: type: boolean description: Whether this person has an active enrolment. example: false dateOfBirth: type: - string - 'null' description: "The date of birth of this person, using the `full-date` format as defined in \nRFC 3339 (section 5.6).\n" format: date example: '2003-09-30' cityOfBirth: type: - string - 'null' description: The city of birth of this person example: Utrecht countryOfBirth: oneOf: - $ref: '#/components/schemas/Country' - type: 'null' nationality: oneOf: - $ref: '#/components/schemas/Nationality' - type: 'null' dateOfNationality: type: - string - 'null' description: "The date of nationality of this person, using the `full-date` format as defined in \nRFC 3339 (section 5.6).\n" format: date example: '2003-09-30' affiliations: type: - array - 'null' items: $ref: '#/components/schemas/personAffiliation' email: type: - string - 'null' description: The primary email address of this person format: email maxLength: 256 example: vandamme.mcw@universiteitvanharderwijk.nl secondaryEmail: type: - string - 'null' description: The secondary email address of this person format: email maxLength: 256 example: poekie@xyz.nl telephoneNumber: type: - string - 'null' description: The telephone number of this person maxLength: 256 example: +31 123 456 789 mobileNumber: type: - string - 'null' description: The mobile number of this person maxLength: 256 example: +31 612 345 678 photoSocial: type: - string - 'null' 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 - 'null' 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: oneOf: - $ref: '#/components/schemas/gender' - type: 'null' titlePrefix: type: - string - 'null' description: A title prefix to be used for this person example: drs titleSuffix: type: - string - 'null' description: A title suffix to be used for this person example: BSc office: type: - string - 'null' description: The name of the office where this person is located example: Zernikecomplex address: oneOf: - $ref: '#/components/schemas/Address' - type: 'null' ICEName: type: - string - 'null' description: Full name of In Case of Emergency contact maxLength: 256 example: Janne ICEPhoneNumber: type: - string - 'null' description: Phone number of In Case of Emergency contact maxLength: 256 example: +31 623 456 789 ICERelation: oneOf: - $ref: '#/components/schemas/ICERelationType' - type: 'null' languageOfChoice: type: - array - 'null' description: The language(s) of choice for this person according to RFC4647. For details see the descriptions in the Language schema. items: $ref: '#/components/schemas/Language' otherCodes: type: - array - 'null' description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry' example: - codeType: nationalIdentityNumber code: '00000' assignedNeeds: description: "Assigned resources or time based on the needs of a person. \nThey describe which needs the student requires under which conditions e.g. 15% extra time for tests that requires maths skills.\nThese needs can later in the flows be mapped to a personalNeed for a specific association.\nExamples of such assignedNeeds: \"ExtraTimeOnlyMaths25%\", \"ExtraTimeOnlyMaths30Min\", \"ExtraTimeDigitalTests25%\"\n" type: - array - 'null' items: type: object properties: code: description: Human readable value for the code/identifier type: - string - 'null' example: ExtraTimeOnlyMaths25% description: type: - array - 'null' description: The description of this assignedNeed. minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: Extra time for Maths tests shown in a percentile of the overall time of a test startDateTime: type: - string - 'null' description: The moment on which this assigned need starts, RFC3339 (date-time) format: date-time example: '2025-05-30T20:00:00+01:00' endDateTime: type: - string - 'null' description: The moment on which this assigned need ends, RFC3339 (date-time) format: date-time example: '2025-07-30T20:00:00+01:00' minItems: 0 consumer: oneOf: - $ref: '#/components/schemas/Consumer' - type: 'null' ext: oneOf: - $ref: '#/components/schemas/Ext' - type: 'null' LanguageTypedString: type: object description: A String with an associated language code. IF this object is used both fields are mandatory. required: - language - value properties: language: $ref: '#/components/schemas/Language' value: description: String to describe the entity. type: string example: programme that is a place holder for all courses that are made available for student mobility example: language: en-GB value: programme that is a place holder for all courses that are made available for student mobility supplementaryType: type: string description: 'The fundamental media form of the supplementary content. The selected `type` determines how the associated `value` MUST be interpreted. It defines the technical representation of the content, independent of its semantic role. The `type` specifies the underlying media form, such as text_plain, text_md, text_http, image, video or uri. The `role` defines the semantic intent of the item and MUST NOT duplicate the technical media form defined by `type`. | Code | Description | |-------------|--------------------------------------------------------------------------| | `image` | Visual media referenced via a URI (for example photographs or artwork) | | `text_http` | HTTP-encoded textual content | | `text_md` | Markdown-formatted text content. | | `text_plain`| Plain text content. | | `uri` | A URI linking to an external resource | | `video` | Video media referenced via a URI (for example recordings or trailers) | This is an *extensible enumeration*. Use the prefix `x-` for custom values. ' x-ooapi-extensible-enum: - image - text_http - text_md - text_plain - uri - video example: text_plain studyloadUnit: type: string description: 'The unit in which the study load is specified: - contact_time: Amount of time spent in scheduled classroom or contact hours. - ects: European Credit Transfer and Accumulation System (ECTS credits), typically 1 ECTS = 28 study hours. - sbu: Student workload hours, representing the total estimated effort. - sp: Study points used in some national systems (e.g. studiepunt in Flanders or the Netherlands). - hour: Plain number of hours, regardless of context (e.g. used for informal or modular learning units). This is an *extensible enumeration*. Use the prefix `x-` for custom values. ' x-ooapi-extensible-enum: - contact_time - ects - sbu - sp - hour example: ects ICERelationType: type: string description: 'The type of relationship between the person and their In Case of Emergency (ICE) contact: - partner: Spouse or life partner - parent: Biological, adoptive, or legal parent - other: Any other type of relationship (e.g. sibling, friend, neighbour) This is an *extensible enumeration*. Use the prefix `x-` for custom values. ' x-ooapi-extensible-enum: - partner - parent - other example: partner modeOfDelivery: type: string description: "The mode of delivery of the component, based on the EU vocabulary: \nhttps://op.europa.eu/en/web/eu-vocabularies/dataset/-/resource?uri=http://publications.europa.eu/resource/dataset/learning-assessment\n\n| Code | Description |\n|----------------------|-----------------------------------------------------------|\n| `blended` | Structured combination of online and in-person learning |\n| `coil` | Collaborative Online International Learning; joint, cross-|\n| | institutional, online delivery (virtual exchange / |\n| | co-taught across institutions) |\n| `hybrid` | Delivery using different modes in a flexible and |\n| | interchangeable way |\n| `joint_delivery` | Programme delivered collaboratively by two or more |\n| | institutions (national or international), with shared |\n| | responsibility for curriculum and teaching |\n| `online` | Real-time learning delivered entirely via the internet |\n| `presential` | Learning that takes place in a physical classroom setting |\n| `project_based` | Learning or assessment conducted as part of a project team|\n| `research_lab_based` | Learning that occurs within a research environment |\n| `work_based` | Learning through practical work or workplace experience |\n\nThis is an *extensible enumeration*. Use the prefix `x-` for custom values.\n" x-ooapi-extensible-enum: - blended - coil - hybrid - joint_delivery - online - presential - project_based - research_lab_based - work_based example: blended level: type: string description: 'The level of this course (ECTS year of study if applicable): - pre_vocational: Pre-vocational education, preparatory stage prior to vocational training, typically before secondary vocational education (Dutch: mbo) level - secondary_vocational_education: Secondary vocational education (Dutch: mbo) - secondary_vocational_education_1: Secondary vocational education level 1, corresponds to levelOfQualification 1 (Dutch: mbo 1) - secondary_vocational_education_2: Secondary vocational education level 2, corresponds to levelOfQualification 2 (Dutch: mbo 2) - secondary_vocational_education_3: Secondary vocational education level 3, corresponds to levelOfQualification 3 (Dutch: mbo 3) - secondary_vocational_education_4: Secondary vocational education level 4, corresponds to levelOfQualification 4 (Dutch: mbo 4) - associate_degree: Associate degree, corresponds to levelOfQualification 5 - bachelor: Bachelor degree, corresponds to levelOfQualification 6 - master: Master degree, corresponds to levelOfQualification 7 - doctoral: Doctoral level, corresponds to levelOfQualification 8 - post_doctoral: Post-doctoral level, advanced academic or professional qualification beyond the doctoral level - undefined: The level is not specified - undivided: Integrated programme not divided into bachelor and master phases - nt2_1: Dutch as a second language, Programme I, intended for vocational training (CEFR level A2–B1) - nt2_2: Dutch as a second language, Programme II, intended for higher education or professional purposes (CEFR level B2) This is an *extensible enumeration*. Use the prefix `x-` for custom values. ' x-ooapi-extensible-enum: - pre_vocational - secondary_vocational_education - secondary_vocational_education_1 - secondary_vocational_education_2 - secondary_vocational_education_3 - secondary_vocational_education_4 - associate_degree - bachelor - master - doctoral - post_doctoral - undefined - undivided - nt2_1 - nt2_2 example: master addressType: type: string description: "The type of address, indicating its intended use:\n \n- postal: Used for receiving post\n- visit: Used for physical visits\n- deliveries: Used for deliveries\n- invoicing: Used for invoicing purposes\n- teaching: The location where educational activities take place\n\nThis is an *extensible enumeration*. Use the prefix `x-` for custom values.\n" x-ooapi-extensible-enum: - postal - visit - deliveries - invoicing - teaching example: postal Nationality: type: object description: 'An object indicating nationality based on at least one iso-3166 code. In situations where more than one iso-3166 code is provided the codes have address the same country. ' properties: iso3166-1-alpha2: type: - string - 'null' minLength: 2 maxLength: 2 description: A country code based on https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 example: NL iso3166-1-alpha3: type: - string - 'null' minLength: 3 maxLength: 3 description: A country code based on https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3 example: NLD iso3166-3: type: - string - 'null' minLength: 4 maxLength: 4 description: 'A nationality code for a country that no longer exists on https://en.wikipedia.org/wiki/ISO_3166-3 It is not advised to use the original iso3166-1 for such a country since country codes can get reassigned to new countries ones the original country code is officially obsolete. It is possible that a person has a nationality of a country that does not exist any more (after a country got split up like CZ and YU)\ and never applied for nationality of one of the new countries. ' example: ANHH ProgrammeProperties: type: object description: A collection of courses that lead to a certifiable learning outcome required: - programmeType - name - primaryCode properties: primaryCode: description: The primary human readable identifier for the programme. This is often the source identifier as defined by the institution. $ref: '#/components/schemas/IdentifierEntry' example: codeType: programmeCode code: BIO programmeType: $ref: '#/components/schemas/programmeType' name: description: The name of this programme type: array minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: Biology abbreviation: type: - string - 'null' description: The abbreviation of this programme maxLength: 256 example: BIO description: type: - array - 'null' description: The description of this programme minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: The study of life teachingLanguages: type: - array - 'null' description: The languages in which this programme is given, should be three-letter language codes as specified by ISO 639-2. A student should be reasonably proficient in each language to be able to follow the programme. minItems: 1 items: $ref: '#/components/schemas/Language' studyLoad: type: - array - 'null' items: $ref: '#/components/schemas/StudyLoadDescriptor' qualificationAwarded: oneOf: - $ref: '#/components/schemas/qualificationAwarded' - type: 'null' qualificationDesignations: type: array description: Academic field designations that specify the discipline area of the degree (e.g., "of Arts", "of Sciences", "of Engineering"). Multiple designations may apply to interdisciplinary programmes. items: type: string description: The designation suffix indicating the academic field or discipline (e.g., "of Arts" for humanities, "of Sciences" for natural sciences, "of Engineering" for engineering disciplines) modeOfStudy: oneOf: - $ref: '#/components/schemas/modeOfStudy' - type: 'null' modesOfDelivery: type: - array - 'null' items: $ref: '#/components/schemas/modeOfDelivery' duration: type: - string - 'null' description: The duration of this programme. The duration format is from the ISO 8601 ABNF as given in Appendix A of RFC 3339. pattern: ^-?P(?:\d+Y)?(?:\d+M)?(?:\d+(?:D|W))?(?:T(?:\d+H)?(?:\d+M)?(?:\d+(?:\.\d+)?S)?)?$ example: P1DT10H30M firstStartDateTime: type: - string - 'null' description: The moment when participants can follow this programme for the first time. format: date-time example: '2025-08-28T08:30:00+01:00' levelOfQualification: oneOf: - $ref: '#/components/schemas/levelOfQualification' - type: 'null' level: oneOf: - $ref: '#/components/schemas/level' - type: 'null' fieldsOfStudy: type: - string - 'null' description: "Field(s) of study (e.g. ISCED-F) (https://unesdoc.unesco.org/ark:/48223/pf0000228085.locale=en). \nISCED-F categorizes the fields of study 2 digits at root level and further subdivision as more digits are added.\nPreferably fieldsOfStudy contains at least 4 digits.\nISCEDF2013vSOI2021 currently allows for 6 digits max (https://www.cbs.nl/-/media/cbs/onze-diensten/methoden/classificaties/documents/2025/pubsoi2021_ed2425.pdf).\n07 Engineering, manufacturing and construction\n073 Architecture and construction\n0731 Architecture and town planning\n073101 Town planning\n" minLength: 2 maxLength: 6 example: '0732' enrolment: type: - array - 'null' items: $ref: '#/components/schemas/LanguageTypedString' description: The extra information that is provided for enrolment example: - language: en-GB value: enrolment through SIS. [The limited implementation of Git Hub Markdown syntax](https://oeapi.eu/v6.0/#/technical/formatting-text) MAY be used for rich text representation. resources: type: - array - 'null' 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 learningOutcomeIds: description: 'The identifiers of the learning outcomes related to this programme. When the client does not request expansion of `learningOutcomes`, only these identifiers are returned. This field is [`expandable`](https://oeapi.eu/v6.0/#/technical/expanding-responses). ' type: - array - 'null' items: $ref: '#/components/schemas/Identifier' learningOutcomes: description: 'The expanded learning outcome objects related to this programme. When the client requests expansion of `learningOutcomes`, the full expanded learning outcome objects MUST be returned here instead of only the identifiers. If no learning outcomes are defined, this value is `null`. ' type: - array - 'null' items: $ref: '#/components/schemas/LearningOutcome' assessment: type: - array - 'null' 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 - 'null' 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 - 'null' description: Normally, students will receive a diploma when they have completed the (official) study programme 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' formalDocument: oneOf: - $ref: '#/components/schemas/formalDocument' - type: 'null' link: type: - string - 'null' description: URL of the programme's website format: uri maxLength: 2048 example: https://bijvak.nl otherCodes: type: - array - 'null' 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 - 'null' description: Addresses for this programme items: $ref: '#/components/schemas/Address' parentId: description: 'The identifier of the parent programme of which the current programme is a child. When the client does not request expansion of `parent`, only this identifier is returned. This field is [`expandable`](https://oeapi.eu/v6.0/#/technical/expanding-responses). ' oneOf: - $ref: '#/components/schemas/Identifier' - type: 'null' parent: description: 'The expanded parent programme of which the current programme is a child. When the client requests expansion of `parent`, the full expanded programme object MUST be returned here instead of only the identifier. If no parent is defined, this value is `null`. ' oneOf: - $ref: '#/components/schemas/Programme' - type: 'null' childIds: description: "The identifiers of the programmes which are a part of this programme (e.g. specialisations).\nWhen the client does not request expansion of `children`, only these identifiers are returned.\nThis field is [`expandable`](https://oeapi.eu/v6.0/#/technical/expanding-responses).\n\nAlthough `childIds` and `children` (for example `organisationIds` versus `organisations`) may \nseem unusual, this naming is intentional and follows the singular–plural convention defined \nby the specification.\n" type: - array - 'null' items: $ref: '#/components/schemas/Identifier' children: description: 'The expanded programme objects which are a part of this programme (e.g. specialisations). When the client requests expansion of `children`, the full expanded programme objects MUST be returned here instead of only the identifiers. If no children are defined, this value is `null`. ' type: - array - 'null' items: $ref: '#/components/schemas/Programme' coordinatorIds: description: 'The identifiers of the persons responsible for this programme. When the client does not request expansion of `coordinators`, only these identifiers are returned. This field is [`expandable`](https://oeapi.eu/v6.0/#/technical/expanding-responses). ' type: - array - 'null' items: $ref: '#/components/schemas/Identifier' coordinators: description: 'The expanded person objects responsible for this programme. When the client requests expansion of `coordinators`, the full expanded person objects MUST be returned here instead of only the identifiers. If no coordinators are defined, this value is `null`. ' type: - array - 'null' items: $ref: '#/components/schemas/Person' instructorIds: description: 'The identifiers of the persons teaching or delivering this programme. When the client does not request expansion of `instructors`, only these identifiers are returned. This field is [`expandable`](https://oeapi.eu/v6.0/#/technical/expanding-responses). ' type: - array - 'null' items: $ref: '#/components/schemas/Identifier' instructors: description: 'The expanded person objects teaching or delivering this programme. When the client requests expansion of `instructors`, the full expanded person objects MUST be returned here instead of only the identifiers. If no instructors are defined, this value is `null`. ' type: - array - 'null' items: $ref: '#/components/schemas/Person' organisationId: description: 'The identifier of the organisation providing this programme. When the client does not request expansion of `organisation`, only this identifier is returned. This field is [`expandable`](https://oeapi.eu/v6.0/#/technical/expanding-responses). ' oneOf: - $ref: '#/components/schemas/Identifier' - type: 'null' organisation: description: 'The expanded organisation object providing this programme. When the client requests expansion of `organisation`, the full expanded organisation object MUST be returned here instead of only the identifier. If no organisation is defined, this value is `null`. ' oneOf: - $ref: '#/components/schemas/Organisation' - type: 'null' supplementaryInformation: $ref: '#/components/schemas/SupplementaryInformation' consumer: oneOf: - $ref: '#/components/schemas/Consumer' - type: 'null' ext: oneOf: - $ref: '#/components/schemas/Ext' - type: 'null' SupplementaryInformation: type: array description: Optional supplementary information associated with this resource. items: type: object description: 'A supplementary content item consists of a technical media form (`type`), a semantic purpose (`role`), and an array of `value` entries. Together these fields define both how the content MUST be interpreted (`type`) and why it is provided (`role`). The `type` specifies the underlying media form (text, image, video or http) and determines how each `value` item MUST be handled. The `role` describes the intent or purpose of the supplementary item (for example announcement, badge, marketing or promotional teaser) and MUST NOT duplicate or encode the media form defined by `type`. The separation between `type` and `role` ensures that the same media form can serve multiple purposes, and that the semantic meaning remains independent from the technical representation of the content. The `value` array contains one or more language-typed strings, allowing the same content item to be expressed in multiple languages or alternative textual variants. ' properties: role: $ref: '#/components/schemas/supplementaryRole' type: $ref: '#/components/schemas/supplementaryType' value: type: array minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' required: - role - type - value PersonId: type: object properties: personId: type: string description: Unique id of this person format: uuid example: 123e4567-e89b-12d3-a456-426614174000 required: - personId Person: allOf: - $ref: '#/components/schemas/PersonId' - $ref: '#/components/schemas/PersonProperties' supplementaryRole: type: string description: 'The fundamental semantic purpose of the supplementary content. The selected `role` describes the intent or function of the item (for example, badge, teaser or promotional highlight). The `role` MUST NOT duplicate or encode the technical media form defined by `type`. The `type` specifies the underlying media form (such as text, image, video or http), whereas the `role` clarifies how that media is intended to be interpreted or used. | Code | Description | |----------------|-----------------------------------------------------| | `announcement` | General-purpose announcement or notice | | `badge` | A visual label or achievement marker | | `marketing` | Promotional or marketing-related content | | `promo` | A short promotional highlight or teaser | This is an *extensible enumeration*. Use the prefix `x-` for custom values. ' x-ooapi-extensible-enum: - announcement - badge - marketing - promo example: badge Country: type: object description: 'An object indicating a country based on at least one iso-3166 code. In situations where more than one ISO-3166 code is provided, the codes must refer to the same country. ' properties: iso3166-1-alpha2: type: - string - 'null' minLength: 2 maxLength: 2 description: A country code based on https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 example: NL iso3166-1-alpha3: type: - string - 'null' minLength: 3 maxLength: 3 description: A country code based on https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3 example: NLD iso3166-2: type: - string - 'null' minLength: 5 maxLength: 6 description: A country subdivision code based on https://en.wikipedia.org/wiki/ISO_3166-2 example: BQ-BO iso3166-3: type: - string - 'null' minLength: 4 maxLength: 4 description: 'A code for a country that no longer exists is listed on ISO 3166-3 (https://en.wikipedia.org/wiki/ISO_3166-3). Implementations should refrain from using the original ISO 3166-1 code for such a country since country codes can be reassigned to new countries once the original country code is officially declared obsolete. ' example: ANHH LearningOutcome: type: object description: statements regarding what a learner knows, understands and is able to do on completion of a learning process, which are defined in terms of knowledge, skills and responsibility and autonomy (https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32017H0615(01)&from=EN) required: - learningOutcomeId - primaryCode - name properties: learningOutcomeId: type: string description: Unique id of this learning outcome format: uuid example: 123e4567-e89b-12d3-a456-426614174000 primaryCode: description: The primary human readable identifier for this learning outcome. This is often the source identifier as defined by the institution. $ref: '#/components/schemas/IdentifierEntry' example: codeType: learningOutcomeCode code: LO 2.1 name: type: array description: The name of this learning outcome minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: 'Describe the differing views, within society, relating to the scientific uses of animals and recognize the need to respect these. ' abbreviation: type: - string - 'null' description: The abbreviation or internal code used to identify this LearningOutcome maxLength: 256 example: LO12_INFO_RET description: type: - array - 'null' description: The description of this learning outcome. minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: "The candidate should have retained the information that they\nhave been taught and be able to:\n1. Relate opinions as voiced collectively or individually by:\n * animal protection societies\n * patient support societies\n * establishments and researchers\n * industry, including pharma, biotech and food\n * people with personal, cultural or religious beliefs;\n2. Recognize the fundamental right of freedom of speech;\n3. Recall different perspectives which enable an individual to\n determine their own opinion on the use of animals for scientific\n purposes;\n4. Explain how different perspectives drive forward advancements\n in animal welfare, legislation and science.\n(based on: https://repub.eur.nl/pub/132564/Repub_132564_O-A.pdf)\n" parentIds: description: 'The identifiers of the learning outcomes which are the parents of this learning outcome. When the client does not request expansion of `parents`, only these identifiers are returned. This field is [`expandable`](https://oeapi.eu/v6.0/#/technical/expanding-responses). ' type: - array - 'null' items: $ref: '#/components/schemas/Identifier' parents: description: 'The expanded learning outcome objects which are the parents of this learning outcome. When the client requests expansion of `parents`, the full expanded learning outcome objects MUST be returned here instead of only the identifiers. If no parents are defined, this value is `null`. ' type: - array - 'null' items: oneOf: - $ref: '#/components/schemas/LearningOutcome' - type: 'null' childIds: description: "The identifiers of all learning outcomes for which this learning outcome is the parent.\nWhen the client does not request expansion of `children`, only these identifiers are returned.\nThis field is [`expandable`](https://oeapi.eu/v6.0/#/technical/expanding-responses).\n\nAlthough `childIds` and `children` (for example `organisationIds` versus `organisations`) may \nseem unusual, this naming is intentional and follows the singular–plural convention defined \nby the specification.\n" type: - array - 'null' items: $ref: '#/components/schemas/Identifier' children: description: 'The expanded learning outcome objects for which this learning outcome is the parent. When the client requests expansion of `children`, the full expanded learning outcome objects MUST be returned here instead of only the identifiers. If no children are defined, this value is `null`. ' type: - array - 'null' items: oneOf: - $ref: '#/components/schemas/LearningOutcome' - type: 'null' fieldsOfStudy: type: - string - 'null' description: "Field(s) of study (e.g. ISCED-F) (https://unesdoc.unesco.org/ark:/48223/pf0000228085.locale=en). \nISCED-F categorizes the fields of study 2 digits at root level and further subdivision as more digits are added.\nPreferably fieldsOfStudy contains at least 4 digits.\nISCEDF2013vSOI2021 currently allows for 6 digits max (https://www.cbs.nl/-/media/cbs/onze-diensten/methoden/classificaties/documents/2025/pubsoi2021_ed2425.pdf).\n07 Engineering, manufacturing and construction\n073 Architecture and construction\n0731 Architecture and town planning\n073101 Town planning\n" minLength: 2 maxLength: 6 example: '0732' otherCodes: type: - array - 'null' description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry' complexityLevel: oneOf: - $ref: '#/components/schemas/learningOutcomeLevel' - type: 'null' validFrom: type: - string - 'null' description: The date and time for when this learning outcome will be active. Should be a string formatted as an RFC3099 full-date. format: date-time example: '2025-09-01T09:00:00+01:00' validTo: type: - string - 'null' description: The date and time when this learning outcome will no longer be valid, or should be renewed. Should be a string formatted as an RFC3099 full-date. format: date-time example: '2025-09-01T09:00:00+01:00' consumer: oneOf: - $ref: '#/components/schemas/Consumer' - type: 'null' ext: oneOf: - $ref: '#/components/schemas/Ext' - type: 'null' gender: type: string description: 'The gender of this person, based on international standards for education and data interoperability. The values follow practices from agencies such as: - European Commission (EULF, INSPIRE, GeoDCAT-AP) - Edustandaard, EUNIS - m: male - f: female - x: non-binary or gender-diverse, officially registered - o: other gender identity, not officially classified as m/f/x - u: unknown or not registered - n: not applicable, e.g. for non-person entities or gender-irrelevant use cases ' x-ooapi-extensible-enum: - m - f - x - o - u - n example: f Address: type: object description: The full street address required: - addressType properties: addressType: $ref: '#/components/schemas/addressType' street: type: - string - 'null' description: The street name example: Moreelsepark streetNumber: type: - string - 'null' description: The street number example: '48' additional: type: - array - 'null' 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 postCode: type: - string - 'null' description: Code to help sort and deliver mail also known as Postal code and ZIP code example: 3511 EP city: type: - string - 'null' description: name of the city / locality example: Utrecht countryCode: oneOf: - $ref: '#/components/schemas/Country' - type: 'null' geolocation: type: - object - 'null' 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: oneOf: - $ref: '#/components/schemas/Ext' - type: 'null' ProgrammeId: type: object description: A collection of courses that lead to a certifiable learning outcome required: - programmeId properties: programmeId: type: string description: Unique id for this programme format: uuid example: 123e4567-e89b-12d3-a456-426614174000 Programme: allOf: - $ref: '#/components/schemas/ProgrammeId' - $ref: '#/components/schemas/ProgrammeProperties' - type: object properties: validFrom: description: The first moment this programme is valid (inclusive). type: - string - 'null' format: date-time example: '2025-09-01T09:00:00+01:00' validTo: description: The moment this programme ceases to be valid (e.g. exclusive). type: - string - 'null' format: date-time example: '2025-09-01T09:00:00+01:00' CourseExpanded: allOf: - $ref: '#/components/schemas/Course' - type: object description: These properties are only present when explicitly included 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 - 'null' items: $ref: '#/components/schemas/TimelineOverrideCourse' personAffiliation: type: string description: 'The affiliations of this person — the roles or relationships a person has with the organisation providing this endpoint: - student: Enrolled learner or participant in educational offerings - employee: Staff member employed by the organisation (e.g. teacher, administrator) - guest: External person temporarily affiliated, without formal student or employee status This is an extensible enumeration. Use the prefix `x-` for custom values. ' x-ooapi-extensible-enum: - student - employee - guest example: student modeOfStudy: type: string description: 'Indicates the mode of study: full-time, part-time, dual or self-paced. - full_time: Standard daytime study schedule - part_time: Study scheduled outside regular working hours, such as evenings and weekends - dual_training: Combination of workplace learning and academic study - self_paced: Student sets their own pace and timing for study This is an *extensible enumeration*. Use the prefix `x-` for custom values. ' x-ooapi-extensible-enum: - full_time - part_time - dual_training - self_paced example: full_time Course: allOf: - $ref: '#/components/schemas/CourseId' - $ref: '#/components/schemas/CourseProperties' - type: object properties: validFrom: description: The first day and time this course is valid (inclusive). type: - string - 'null' format: date-time example: '2025-09-01T09:00:00+01:00' validTo: description: The day and time this course ceases to be valid (e.g. exclusive). type: - string - 'null' format: date-time example: '2025-09-01T09:00:00+01:00' IdentifierEntry: type: object properties: codeType: $ref: '#/components/schemas/codeType' code: description: Human readable value for the code/identifier type: string example: 1234qwe12 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. required: - studyLoadUnit - value properties: studyLoadUnit: $ref: '#/components/schemas/studyloadUnit' value: description: The amount of load depicted in numbers type: number example: 3 example: studyLoadUnit: ects value: 3 title: type: string description: A short, human-readable summary of the problem type example: Resource not found CourseProperties: type: object description: An object describing the metadata of a course required: - name - 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' 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 - 'null' description: The abbreviation or internal code used to identify this course (ECTS-code) maxLength: 256 example: INFOMQNM studyLoad: type: - array - 'null' items: $ref: '#/components/schemas/StudyLoadDescriptor' modesOfDelivery: type: - array - 'null' items: $ref: '#/components/schemas/modeOfDelivery' duration: type: - string - 'null' 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+Y)?(?:\d+M)?(?:\d+(?:D|W))?(?:T(?:\d+H)?(?:\d+M)?(?:\d+(?:\.\d+)?S)?)?$ example: P1DT10H30M firstStartDate: type: - string - 'null' description: The date and time when participants can follow this course for the first time. format: date-time example: '2020-09-28T08:30:00+01:00' description: type: - array - 'null' 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 analyse 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. teachingLanguages: type: - array - 'null' description: The languages in which this course is given, should be three-letter language codes as specified by RFC 4647. A student should be reasonably proficient in each language to be able to follow the course. minItems: 1 items: $ref: '#/components/schemas/Language' fieldsOfStudy: type: - string - 'null' description: "Field(s) of study (e.g. ISCED-F) (https://unesdoc.unesco.org/ark:/48223/pf0000228085.locale=en). \nISCED-F categorizes the fields of study 2 digits at root level and further subdivision as more digits are added.\nPreferably fieldsOfStudy contains at least 4 digits.\nISCEDF2013vSOI2021 currently allows for 6 digits max (https://www.cbs.nl/-/media/cbs/onze-diensten/methoden/classificaties/documents/2025/pubsoi2021_ed2425.pdf).\n07 Engineering, manufacturing and construction\n073 Architecture and construction\n0731 Architecture and town planning\n073101 Town planning\n" minLength: 2 maxLength: 6 example: '0732' learningOutcomeIds: description: 'The identifiers of the learning outcomes related to this course. When the client does not request expansion of `learningOutcomes`, only these identifiers are returned. This field is [`expandable`](https://oeapi.eu/v6.0/#/technical/expanding-responses). ' type: - array - 'null' items: $ref: '#/components/schemas/Identifier' learningOutcomes: description: 'The expanded learning outcome objects related to this course. When the client requests expansion of `learningOutcomes`, the full expanded learning outcome objects MUST be returned here instead of only the identifiers. If no learning outcomes are defined, this value is `null`. ' type: - array - 'null' items: $ref: '#/components/schemas/LearningOutcome' admissionRequirements: type: - array - 'null' 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 - 'null' description: Normally, students will receive a diploma when they have completed the (official) study programme 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: oneOf: - $ref: '#/components/schemas/level' - type: 'null' enrolment: type: - array - 'null' items: $ref: '#/components/schemas/LanguageTypedString' description: The extra information that is provided for enrolment example: - language: en-GB value: enrolment through SIS. [The limited implementation of Git Hub Markdown syntax](https://oeapi.eu/v6.0/#/technical/formatting-text) MAY be used for rich text representation. resources: type: - array - 'null' 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 - 'null' 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 - 'null' description: URL of the course's website format: uri maxLength: 2048 example: https://osiris.uu.nl/osiris_student_uuprd/OnderwijsCatalogusZoekCursus.do#submitForm?cursuscode=INFOMQNM addresses: type: - array - 'null' description: Addresses for this course items: $ref: '#/components/schemas/Address' otherCodes: type: - array - 'null' description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry' programmeIds: description: 'The identifiers of the programmes of which this course is a part. This array is used because a course can belong to multiple programmes, for example in alliances. When the client does not request expansion of `programmes`, only these identifiers are returned. This field is [`expandable`](https://oeapi.eu/v6.0/#/technical/expanding-responses). ' type: - array - 'null' items: $ref: '#/components/schemas/Identifier' supplementaryInformation: $ref: '#/components/schemas/SupplementaryInformation' programmes: description: 'The expanded programme objects of which this course is a part. This array is used because a course can belong to multiple programmes, for example in alliances. When the client requests expansion of `programmes`, the full expanded programme objects MUST be returned here instead of only the identifiers. If no programmes are defined, this value is `null`. ' type: - array - 'null' items: $ref: '#/components/schemas/Programme' coordinatorIds: description: 'The identifiers of the persons responsible for this course. When the client does not request expansion of `coordinators`, only these identifiers are returned. This field is [`expandable`](https://oeapi.eu/v6.0/#/technical/expanding-responses). ' type: - array - 'null' items: $ref: '#/components/schemas/Identifier' coordinators: description: 'The expanded person objects responsible for this course. When the client requests expansion of `coordinators`, the full expanded person objects MUST be returned here instead of only the identifiers. If no coordinators are defined, this value is `null`. ' type: - array - 'null' items: $ref: '#/components/schemas/Person' instructorIds: description: 'The identifiers of the persons teaching or delivering this course. When the client does not request expansion of `instructors`, only these identifiers are returned. This field is [`expandable`](https://oeapi.eu/v6.0/#/technical/expanding-responses). ' type: - array - 'null' items: $ref: '#/components/schemas/Identifier' instructors: description: 'The expanded person objects teaching or delivering this course. When the client requests expansion of `instructors`, the full expanded person objects MUST be returned here instead of only the identifiers. If no instructors are defined, this value is `null`. ' type: - array - 'null' items: $ref: '#/components/schemas/Person' organisationId: description: 'The identifier of the organisation that manages this course. When the client does not request expansion of `organisation`, only this identifier is returned. This field is [`expandable`](https://oeapi.eu/v6.0/#/technical/expanding-responses). ' oneOf: - $ref: '#/components/schemas/Identifier' - type: 'null' organisation: description: 'The expanded organisation object that manages this course. When the client requests expansion of `organisation`, the full expanded organisation object MUST be returned here instead of only the identifier. If no organisation is defined, this value is `null`. ' oneOf: - $ref: '#/components/schemas/Organisation' - type: 'null' consumer: oneOf: - $ref: '#/components/schemas/Consumer' - type: 'null' ext: oneOf: - $ref: '#/components/schemas/Ext' - type: 'null' programmeType: type: string description: 'The type of this programme: - programme: A full formal programme of study leading to a qualification or degree - minor: A smaller, complementary programme that broadens or deepens the main field of study - honours: An honours programme, typically with additional academic requirements or distinction - specialisation: A focused area of study within a broader programme or degree - track: A structured learning path within a programme, often thematically or methodologically defined - specification: A further defined variant or subset of a track or specialisation This is an extensible enumeration. Use the prefix `x-` for custom values. ' x-ooapi-extensible-enum: - programme - minor - honours - specialisation - track - specification example: programme Pagination: type: object required: - pageSize - pageNumber - hasPreviousPage - hasNextPage 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 - 'null' format: int32 description: Total number of pages example: 8 Identifier: type: string description: An identifier of another resource. format: uuid example: 123e4567-e89b-12d3-a456-426614174000 Organisation: type: object description: A description of a group of people working together to achieve a goal required: - organisationId - organisationType - name - primaryCode properties: organisationId: type: string description: Unique id of this organisation format: uuid example: 123e4567-e89b-12d3-a456-123514174000 primaryCode: description: The primary human readable identifier for the organisation. This is often the source identifier as defined by the root organisation. $ref: '#/components/schemas/IdentifierEntry' example: codeType: organisation_id code: Org01-Root organisationType: $ref: '#/components/schemas/organisationType' name: type: array description: The name of the organisation minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: nl-NL value: Coöperatie SURF U.A. shortName: type: - string - 'null' description: Short name of the organisation maxLength: 256 example: SURF description: type: - array - 'null' description: "If the organisation is an educational organisation, any general description should clearly mention the type of \neducation organisation, especially in the case of a binary system. In Dutch; universiteit (university) or \nhogeschool (university of applied sciences).\nIf the organisation is not an educational organisation, a general description should describe the role it plays \nin education like providing certain types of internships, educational services, products or facilities.\n" 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 - 'null' description: Addresses of this organisation items: $ref: '#/components/schemas/Address' link: type: - string - 'null' description: URL of the organisation's website format: uri maxLength: 2048 example: https://surf.nl logo: type: - string - 'null' description: Logo of this organisation format: uri maxLength: 2048 example: https://www.surf.nl/themes/surf/logo.svg otherCodes: type: - array - 'null' description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry' example: - codeType: institution_code code: 114B529 - codeType: kvk_organisation_id code: '50277374' rootId: description: 'The identifier of the organisation which is the root organisation of this organisation. When the client does not request expansion of `root`, only this identifier is returned. This field is [`expandable`](https://oeapi.eu/v6.0/#/technical/expanding-responses). ' oneOf: - $ref: '#/components/schemas/Identifier' - type: 'null' root: description: 'The expanded organisation object which is the root organisation of this organisation. When the client requests expansion of `root`, the full expanded organisation object MUST be returned here instead of only the identifier. If no root organisation is defined, this value is `null`. ' oneOf: - $ref: '#/components/schemas/Organisation' - type: 'null' parentId: description: 'The identifier of the organisational unit which is the parent of this organisation. When the client does not request expansion of `parent`, only this identifier is returned. This field is [`expandable`](https://oeapi.eu/v6.0/#/technical/expanding-responses). ' oneOf: - $ref: '#/components/schemas/Identifier' - type: 'null' parent: description: 'The expanded organisation object which is the parent of this organisation. When the client requests expansion of `parent`, the full expanded organisation object MUST be returned here instead of only the identifier. If no parent organisation is defined, this value is `null`. ' oneOf: - $ref: '#/components/schemas/Organisation' - type: 'null' childIds: description: "The identifiers of the organisational units for which this organisation is the parent.\nWhen the client does not request expansion of `children`, only these identifiers are returned.\nThis field is [`expandable`](https://oeapi.eu/v6.0/#/technical/expanding-responses).\n\nAlthough `childIds` and `children` (for example `organisationIds` versus `organisations`) may \nseem unusual, this naming is intentional and follows the singular–plural convention defined \nby the specification.\n" type: - array - 'null' items: $ref: '#/components/schemas/Identifier' children: description: 'The expanded organisational unit objects for which this organisation is the parent. When the client requests expansion of `children`, the full expanded organisation objects MUST be returned here instead of only the identifiers. If no children are defined, this value is `null`. ' type: - array - 'null' items: oneOf: - $ref: '#/components/schemas/Organisation' - type: 'null' consumer: oneOf: - $ref: '#/components/schemas/Consumer' - type: 'null' ext: oneOf: - $ref: '#/components/schemas/Ext' - type: 'null' organisationType: type: string description: 'The type of this organisation. When using non-root organisation types, make sure that there is always a parent organisation of type root available. - root: The top-level organisation, representing the organisation itself - institute: A subdivision of the root organisation, typically focused on a broad field of study - department: An organisational unit within an organisation or one of the subdivisions of an organisation, focused on a specific discipline - faculty: A major academic division within an institution, often overseeing multiple departments - branch: A geographically separate location or campus of an organisation - academy: A specialised academic unit, often focused on applied or artistic disciplines - school: An organisational unit typically used in primary, secondary, or specialised higher education contexts This is an extensible enumeration. Use the prefix `x-` for custom values. ' x-ooapi-extensible-enum: - root - institute - department - faculty - branch - academy - school example: root qualificationAwarded: type: string description: 'Type of qualification that can be obtained upon completing the programme: - diploma - vocational_diploma - certificate - associate_degree: Associate degree — short-cycle higher education qualification (EQF level 5) - bachelor: Bachelor — undergraduate degree (EQF level 6) - master: Master — postgraduate degree (EQF level 7) - doctoral: Doctoral degree — research-based doctoral degree (EQF level 8) - none: No formal qualification is awarded for this programme In case of a degree (for example bachelor or master), the type of degree can be specified using `qualificationDesignations`. ' x-ooapi-extensible-enum: - diploma - vocational_diploma - certificate - associate_degree - bachelor - master - doctoral - none example: none TimelineOverrideCourse_2: type: object required: - validFrom - course description: A timeline override of the course. 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' course: $ref: '#/components/schemas/CourseProperties_2' 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_2: 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 OfferingId: type: object description: ID of Either a program, course or component offering which descrbes the program, course or offering in time required: - offeringId properties: offeringId: type: string description: Unique id of this offering format: uuid example: 123e4567-e89b-12d3-a456-134564174000 readOnly: true codeType_2: 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_2: 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_2: 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_2' otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry_2' example: - codeType: crohoCreboCode code: '1234123' educationSpecificationType: $ref: '#/components/schemas/educationSpecificationType' name: type: array items: $ref: '#/components/schemas/LanguageTypedString_2' 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_2' 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_2' level: $ref: '#/components/schemas/level_2' sector: $ref: '#/components/schemas/sector' levelOfQualification: $ref: '#/components/schemas/levelOfQualification_2' 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_2' 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_2' 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_2' 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_2' 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_2' 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_2' 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 AcademicSession: type: object description: 'A named period of time that can be used to communicate the various schedules and time periods an institution recognizes and uses to organize their education. AcademicSessions can be nested. Offerings MAY be be linked to a specific AcademicSession to indicate that the specified Offering takes place during the AcademicSession, however this is not mandatory. ' required: - academicSessionId - name - startDate - endDate properties: academicSessionId: type: string description: Unique id for this academic session format: uuid example: 123e4567-e89b-12d3-a456-426614174000 readOnly: true academicSessionType: $ref: '#/components/schemas/academicSessionType' primaryCode: description: The primary human readable identifier for this academic session. This is often the source identifier as defined by the institution. $ref: '#/components/schemas/IdentifierEntry_2' example: codeType: identifier code: 2012-Q1 name: type: array description: The name of this academic session minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString_2' example: - language: en-GB value: Fall semester 2020 startDate: type: string description: The day on which this academic session starts, RFC3339 (full-date) format: date example: '2020-08-17' endDate: type: string description: The day on which this academic session ends, RFC3339 (full-date) format: date example: '2020-12-18' parent: description: The parent Academicsession of this session (e.g. fall semester 20xx where the current session is a week 40). This object is [`expandable`](#tag/academic_sessions_model) oneOf: - $ref: '#/components/schemas/Identifier_2' title: academicSessionId - $ref: '#/components/schemas/AcademicSession' title: Expanded AcademicSession children: type: array description: The list of Academicsession children of this Session (e.g. all academic sessions in fall semester 20xx). This object is [`expandable`](#tag/academic_sessions_model) items: oneOf: - $ref: '#/components/schemas/Identifier_2' title: academicSessionId - $ref: '#/components/schemas/AcademicSession' title: Expanded AcademicSession year: description: The top level year of this session (e.g. 20xx where the current session is a week 40 of a semester). This object is [`expandable`](#tag/academic_sessions_model) oneOf: - $ref: '#/components/schemas/Identifier_2' title: academicSessionId - $ref: '#/components/schemas/AcademicSession' title: Expanded AcademicSession otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry_2' 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_2' example: - consumerKey: x-test-consumer additional: custom attributes: here ext: $ref: '#/components/schemas/Ext' 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 resultValueType: type: string description: The result value type for this offering enum: - pass-or-fail - US letter - UK letter - 0-100 - 1-10 example: 1-10 costType: type: string description: "The type of the cost. This is an *extensible enumeration*.\n\nThe following values have been defined in the specification:\n - `STAP eligible`: the costs that a student can get STAP subsidy for\n - `total costs`: the total costs that a student is to pay to follow this offering\n\nImplementations are allowed to add additional values to those above, as long as they do not overlap in definition to existing values.\n" example: total costs x-ooapi-extensible-enum: - STAP eligible - total costs componentType: type: string description: 'The component type - test: tentamen - lecture: college - practical: practicum - tutorial: werkcollege - consultation: consultatie - project: project - workshop: workshop - excursion: excursie - independent study: zelfstudie - external: extern - skills training: vaardighedentraining ' enum: - test - lecture - practical - tutorial - consultation - project - workshop - excursion - independent study - external - skills training example: test levelOfQualification_2: 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_2: 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_2: 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_2' 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_2' 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_2' 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_2' 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_2' 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_2' example: - consumerKey: x-test-consumer additional: custom attributes: here ext: $ref: '#/components/schemas/Ext' LanguageTypedString_2: 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_2: type: string description: Type of relation between person and In Case of Emergency contact enum: - partner - parent - other example: partner level_2: 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_2: 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 Cost: type: object required: - costType properties: costType: $ref: '#/components/schemas/costType' amount: type: string pattern: ^\d+(?:\.\d+)?$ description: The total amount of the cost as a string. Use a '.' (dot) as an optional separator. The numbers before the separator signify the major units of the currency, after the dot the minor units. Only a single separator is allowed. Do not use a comma. example: '340.84' vatAmount: type: string pattern: ^\d+(?:\.\d+)?$ description: The part of the cost that is VAT, as a string. Use a '.' (dot) as an optional separator. The numbers before the separator signify the major units of the currency, after the dot the minor units. Only a single separator is allowed. Do not use a comma. example: '40' amountWithoutVat: type: string pattern: ^\d+(?:\.\d+)?$ description: The part of the cost that is non-VAT. as a string. Use a '.' (dot) as an optional separator. The numbers before the separator signify the major units of the currency, after the dot the minor units. Only a single separator is allowed. Do not use a comma. example: '300.84' currency: type: string description: The currency this cost is in. Should correspond to one of the currency codes from ISO 4217. example: EUR displayAmount: type: array items: $ref: '#/components/schemas/LanguageTypedString_2' description: An array of optional pre-formatted strings in different locales. Clients can choose to use this string instead of rendering their own based on the current locale of the user. example: - language: nl-NL value: €380,84 - language: en-US value: $401.17 ext: $ref: '#/components/schemas/Ext' additionalProperties: false 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_2' 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_2' 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_2' 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_2' qualificationAwarded: $ref: '#/components/schemas/qualificationAwarded_2' modeOfStudy: $ref: '#/components/schemas/modeOfStudy_2' 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_2' level: $ref: '#/components/schemas/level_2' 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_2' 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_2' 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_2' 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_2' 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_2' 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_2' 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_2' example: - codeType: crohoCreboCode code: '59312' addresses: type: array description: Addresses for this program items: $ref: '#/components/schemas/Address_2' parent: description: Parent program of which the current program is a child. This object is [`expandable`](#tag/program_model) oneOf: - $ref: '#/components/schemas/Identifier_2' 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_2' 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_2' 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_2' 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_2' 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' Component: type: object description: A component is a part of a course required: - componentId - componentType - name - teachingLanguage - abbreviation - primaryCode properties: componentId: type: string description: Unique id of this component format: uuid example: 123e4567-e89b-12d3-a456-426614174000 readOnly: true primaryCode: description: The primary human readable identifier for this component. This is often the source identifier as defined by the institution. $ref: '#/components/schemas/IdentifierEntry_2' example: codeType: componentCode code: INFOMQNM-WRKCLG-1 readOnly: true componentType: $ref: '#/components/schemas/componentType' name: type: array description: The name of this component minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString_2' example: - language: en-GB value: Written test for INFOMQNM abbreviation: type: string description: The abbreviation of this component maxLength: 256 example: Test-INFOMQNM modeOfDelivery: $ref: '#/components/schemas/modesOfDelivery' duration: type: string description: The duration of this component. 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 description: type: array description: The description of this component. minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString_2' example: - language: en-GB value: '''Prove executable knowledge of research methods, including: Acquire knowledge of HCI research paradigms Able to design suitable research studies (e.g., choose between within and between subject designs) Define/apply/design metrics and scales Define/produce materials (e.g., stimuli and questionnaires) Define protocols for research studies Understands and take in account concepts of reliability and validity Analyze and improve methods and analysis of published scientific articles Able to deliver scientific reports Prove executable knowledge of ­­­statistics, including: Handle hypothesis testing with complex designs (e.g., including , dependent, independent, and co variates) Data preparation (e.g., coding and feature selection) Reason towards adequate techniques to ensure valid outcomes (e.g., be aware of type I, type II errors) Select an appropriate sampling method (e.g., stratified) Perform parametric tests (e.g., repeated measures (M)ANOVA) Perform non-parametric tests (e.g., Chi-square, Mann-Whitney, and Kruskal-Wallis)'' ' teachingLanguage: type: string description: The (primary) teaching language in which this component 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 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_2' example: - language: en-GB value: 'Executable knowledge of research methods, including: Acquire knowledge of HCI research paradigms.' enrollment: type: array items: $ref: '#/components/schemas/LanguageTypedString_2' 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_2' example: - language: en-GB value: Exam on campus addresses: type: array description: Addresses for this component items: $ref: '#/components/schemas/Address_2' otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry_2' course: description: 'The course of which this component is a part. [`expandable`](#tag/course_model) By default only the `courseId` (a string) is returned. If the client requested an expansion of `course` the full course object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier_2' title: courseId - $ref: '#/components/schemas/Course_2' title: Course object organization: description: 'The organization which provides this component. [`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_2' 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_2' example: - consumerKey: x-test-consumer additional: custom attributes: here ext: $ref: '#/components/schemas/Ext' OfferingProperties: type: object description: Either a program, course or component offering which descrbes the program, course or offering in time required: - primaryCode - offeringType - name - description - teachingLanguage - resultExpected properties: primaryCode: description: The primary human readable identifier for this offering. This is often the source identifier as defined by the institution. $ref: '#/components/schemas/IdentifierEntry_2' example: codeType: offeringCode code: INFOMQNM-20FS readOnly: true offeringType: type: string description: The type of this offering enum: - program - course - component example: component academicSession: description: 'The academicsession during which this courseoffering takes place. [`expandable`](#tag/academic_session_model) By default only the `academicSessionId` (a string) is returned. If the client requested an expansion of `academicSession` the full academicsession object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier_2' title: academicSessionId - $ref: '#/components/schemas/AcademicSession' title: AcademicSession object name: type: array description: The name of this offering minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString_2' example: - language: en-GB value: Final written test for INFOMQNM for fall semseter 2020 abbreviation: type: string description: The abbreviation or internal code used to identify this offering maxLength: 256 example: Test-INFOMQNM-20FS description: type: array description: The description of this offering. minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString_2' example: - language: en-GB value: '''Prove in writing knowledge of research methods, including: Acquire knowledge of HCI research paradigms Able to design suitable research studies (e.g., choose between within and between subject designs) Define/apply/design metrics and scales Define/produce materials (e.g., stimuli and questionnaires) Define protocols for research studies Understands and take in account concepts of reliability and validity Analyze and improve methods and analysis of published scientific articles Able to deliver scientific reports Prove in writing knowledge of ­­­statistics, including: Handle hypothesis testing with complex designs (e.g., including , dependent, independent, and co variates) Data preparation (e.g., coding and feature selection) Reason towards adequate techniques to ensure valid outcomes (e.g., be aware of type I, type II errors) Select an appropriate sampling method (e.g., stratified) Perform parametric tests (e.g., repeated measures (M)ANOVA) Perform non-parametric tests (e.g., Chi-square, Mann-Whitney, and Kruskal-Wallis)'' ' teachingLanguage: type: string description: The (primary) teaching language in which this offering 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 modeOfDelivery: $ref: '#/components/schemas/modesOfDelivery' maxNumberStudents: type: number description: The maximum number of students allowed to enroll for this offering format: int32 minimum: 0 example: 200 enrolledNumberStudents: type: number description: The number of students that have already enrolled for this offering format: int32 minimum: 0 example: 150 pendingNumberStudents: type: number description: The number of students that have a pending enrollment request for this offering format: int32 minimum: 0 example: 50 minNumberStudents: type: number description: The minimum number of students needed for this offering to proceed format: int32 minimum: 0 example: 15 resultExpected: type: boolean description: "resultExpected, previously knwon as isLineItem is used so the specific instance of the object is identified as being an element that CAN contain “grade” information.\nOfferings do not always have to result in a grade or an other type of result. \nIf there is a result expected from a programOffering/courseOffering/componentOffering the is resultExpected field should parse true\n" example: true resultValueType: $ref: '#/components/schemas/resultValueType' link: type: string description: URL of this offering's webpage. format: uri maxLength: 2048 example: https://osiris.uu.nl/osiris_student_uuprd/OnderwijsCatalogusZoekCursus.do#submitForm?cursuscode=INFOMQNM otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry_2' 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_2' example: - consumerKey: rio explanationRequiredPermission: Toestemming is vereist omdat we daarom vragen. requiredPermissionRegistration: 'yes' registrationStatus: open modeOfDelivery: - coaching ext: $ref: '#/components/schemas/Ext' ProgramOffering: allOf: - $ref: '#/components/schemas/Offering' - type: object required: - startDate - endDate properties: startDate: type: string description: The moment on which this offering starts, RFC3339 (full-date) format: date example: '2019-08-21' endDate: type: string description: The moment on which this offering ends, RFC3339 (full-date) format: date example: '2023-06-15' enrollStartDate: type: string description: The first day on which a student can enroll for this program. format: date example: '2019-05-01' enrollEndDate: type: string description: The last day on which a student can enroll for this program. format: date example: '2019-08-01' flexibleEntryPeriodStart: type: string description: If this is a program wherein participants can start at various moments, without missing anything, use this attribute in combination with `flexibleEntryPeriodEnd`. format: date flexibleEntryPeriodEnd: type: string description: If this is a program wherein participants can start at various moments, without missing anything, use this attribute in combination with `flexibleEntryPeriodStart`. format: date addresses: type: array description: Addresses for this offering items: $ref: '#/components/schemas/Address_2' priceInformation: type: array description: Price information for this offering. items: $ref: '#/components/schemas/Cost' minItems: 1 program: description: 'The Program that is offered in this programoffering. [`expandable`](#tag/program_model) By default only the `programId` (a string) is returned. If the client requested an expansion of `program` the full program object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier_2' title: programId - $ref: '#/components/schemas/Program' title: Program object organization: description: 'The organization that manages this programeoffering. [`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_2' title: organizationId - $ref: '#/components/schemas/Organization' title: Organization object academicSessionType: type: string description: 'The type of this Academic Session This is an *extensible enumeration*. - academic year: academic year - semester: semester, typically there are two semesters per academic year - trimester: trimester, typically there are three semesters per academic year - quarter: quarter, typically there are four quarters per academic year - testing period: a period in which tests take place - period: any other period in an academic year Implementations are allowed to add additional values to those above, as long as they do not overlap in definition to existing values. ' example: semester x-ooapi-extensible-enum: - academic year - semester - trimester - quarter - testing period - period 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_2: type: string description: The gender of this person enum: - M - F - U - X example: F Address_2: type: object description: The full street address required: - addressType properties: addressType: $ref: '#/components/schemas/addressType_2' 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_2' 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 Offering: allOf: - $ref: '#/components/schemas/OfferingId' - $ref: '#/components/schemas/OfferingProperties' CourseExpanded_2: allOf: - $ref: '#/components/schemas/Course_2' - type: object description: These properties are only present when explicitly included 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/TimelineOverrideCourse_2' modeOfStudy_2: 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 CourseOffering: allOf: - $ref: '#/components/schemas/Offering' - type: object required: - startDate - endDate properties: startDate: type: string description: The moment on which this offering starts, RFC3339 (full-date) format: date example: '2019-08-21' endDate: type: string description: The moment on which this offering ends, RFC3339 (full-date) format: date example: '2019-10-23' enrollStartDate: type: string description: The first day on which a student can enroll for this course. format: date example: '2019-05-01' enrollEndDate: type: string description: The last day on which a student can enroll for this course. format: date example: '2019-08-01' flexibleEntryPeriodStart: type: string description: If this is a course wherein participants can start at various moments, without missing anything, use this attribute in combination with `flexibleEntryPeriodEnd`. format: date flexibleEntryPeriodEnd: type: string description: If this is a course wherein participants can start at various moments, without missing anything, use this attribute in combination with `flexibleEntryPeriodStart`. format: date addresses: type: array description: Addresses for this offering items: $ref: '#/components/schemas/Address_2' priceInformation: type: array description: Price information for this offering. items: $ref: '#/components/schemas/Cost' course: description: 'The course that is offered in this courseoffering. [`expandable`](#tag/course_model) By default only the `courseId` (a string) is returned. If the client requested an expansion of `course` the full course object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier_2' title: courseId - $ref: '#/components/schemas/Course_2' title: Course object programOffering: description: 'The programoffering where this courseoffering is related to. [`expandable`](#tag/program_offering_model) By default only the `programOfferingId` (a string) is returned. If the client requested an expansion of `programOffering` the full programOffering object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier_2' title: programOfferingId - $ref: '#/components/schemas/ProgramOffering' title: ProgramOffering object organization: description: 'The organization that manages this courseoffering. [`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_2' title: organizationId - $ref: '#/components/schemas/Organization' title: Organization object Course_2: allOf: - $ref: '#/components/schemas/CourseId_2' - $ref: '#/components/schemas/CourseProperties_2' - 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_2: type: object properties: codeType: $ref: '#/components/schemas/codeType_2' code: description: Human readable value for the code/identifier type: string required: - codeType - code additionalProperties: false example: codeType: identifier code: 1234qwe12 StudyLoadDescriptor_2: 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_2: 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_2' readOnly: true name: type: array description: The name of this course (ECTS-title) minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString_2' 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_2' 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_2' 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_2' 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_2' 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_2' level: $ref: '#/components/schemas/level_2' enrollment: type: array items: $ref: '#/components/schemas/LanguageTypedString_2' 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_2' 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_2' title: educationSpecificationId - $ref: '#/components/schemas/EducationSpecification' title: EducationSpecification addresses: type: array description: Addresses for this course items: $ref: '#/components/schemas/Address_2' otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry_2' 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_2' 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_2' 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_2' 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_2' 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_2' 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_2' 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_2' 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_2' 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_2' 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_2' 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_2' 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_2' example: - consumerKey: x-test-consumer additional: custom attributes: here ext: $ref: '#/components/schemas/Ext' Pagination_2: 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 Identifier_2: type: string description: An identifier of another resource. format: uuid qualificationAwarded_2: 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 TimelineOverrideCourse_3: type: object required: - validFrom - course description: A timeline override of the course. 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' course: $ref: '#/components/schemas/CourseProperties_3' Consumer_3: 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 codeType_3: 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_3: 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_3: 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_2: 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_3' otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry_3' example: - codeType: crohoCreboCode code: '1234123' educationSpecificationType: $ref: '#/components/schemas/educationSpecificationType' name: type: array items: $ref: '#/components/schemas/LanguageTypedString_3' 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_3' 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_3' level: $ref: '#/components/schemas/level_3' sector: $ref: '#/components/schemas/sector' levelOfQualification: $ref: '#/components/schemas/levelOfQualification_3' 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_3' 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_3' 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_3' 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_3' 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_3' title: organizationId - $ref: '#/components/schemas/Organization_2' 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_3' example: - consumerKey: rio educationSpecificationSubType: variant category: - business_and_project_support - economy ext: $ref: '#/components/schemas/Ext' AcademicSession_2: type: object description: 'A named period of time that can be used to communicate the various schedules and time periods an institution recognizes and uses to organize their education. AcademicSessions can be nested. Offerings MAY be be linked to a specific AcademicSession to indicate that the specified Offering takes place during the AcademicSession, however this is not mandatory. ' required: - academicSessionId - name - startDate - endDate properties: academicSessionId: type: string description: Unique id for this academic session format: uuid example: 123e4567-e89b-12d3-a456-426614174000 readOnly: true academicSessionType: $ref: '#/components/schemas/academicSessionType' primaryCode: description: The primary human readable identifier for this academic session. This is often the source identifier as defined by the institution. $ref: '#/components/schemas/IdentifierEntry_3' example: codeType: identifier code: 2012-Q1 name: type: array description: The name of this academic session minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString_3' example: - language: en-GB value: Fall semester 2020 startDate: type: string description: The day on which this academic session starts, RFC3339 (full-date) format: date example: '2020-08-17' endDate: type: string description: The day on which this academic session ends, RFC3339 (full-date) format: date example: '2020-12-18' parent: description: The parent Academicsession of this session (e.g. fall semester 20xx where the current session is a week 40). This object is [`expandable`](#tag/academic_sessions_model) oneOf: - $ref: '#/components/schemas/Identifier_3' title: academicSessionId - $ref: '#/components/schemas/AcademicSession_2' title: Expanded AcademicSession children: type: array description: The list of Academicsession children of this Session (e.g. all academic sessions in fall semester 20xx). This object is [`expandable`](#tag/academic_sessions_model) items: oneOf: - $ref: '#/components/schemas/Identifier_3' title: academicSessionId - $ref: '#/components/schemas/AcademicSession_2' title: Expanded AcademicSession year: description: The top level year of this session (e.g. 20xx where the current session is a week 40 of a semester). This object is [`expandable`](#tag/academic_sessions_model) oneOf: - $ref: '#/components/schemas/Identifier_3' title: academicSessionId - $ref: '#/components/schemas/AcademicSession_2' title: Expanded AcademicSession otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry_3' 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_3' example: - consumerKey: x-test-consumer additional: custom attributes: here ext: $ref: '#/components/schemas/Ext' levelOfQualification_3: 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_3: 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_3: 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_3' 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_3' 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_3' 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_3' 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_3' 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_3' example: - consumerKey: x-test-consumer additional: custom attributes: here ext: $ref: '#/components/schemas/Ext' LanguageTypedString_3: 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 ICERelationType_3: type: string description: Type of relation between person and In Case of Emergency contact enum: - partner - parent - other example: partner level_3: 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 addressType_3: 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 Cost_2: type: object required: - costType properties: costType: $ref: '#/components/schemas/costType' amount: type: string pattern: ^\d+(?:\.\d+)?$ description: The total amount of the cost as a string. Use a '.' (dot) as an optional separator. The numbers before the separator signify the major units of the currency, after the dot the minor units. Only a single separator is allowed. Do not use a comma. example: '340.84' vatAmount: type: string pattern: ^\d+(?:\.\d+)?$ description: The part of the cost that is VAT, as a string. Use a '.' (dot) as an optional separator. The numbers before the separator signify the major units of the currency, after the dot the minor units. Only a single separator is allowed. Do not use a comma. example: '40' amountWithoutVat: type: string pattern: ^\d+(?:\.\d+)?$ description: The part of the cost that is non-VAT. as a string. Use a '.' (dot) as an optional separator. The numbers before the separator signify the major units of the currency, after the dot the minor units. Only a single separator is allowed. Do not use a comma. example: '300.84' currency: type: string description: The currency this cost is in. Should correspond to one of the currency codes from ISO 4217. example: EUR displayAmount: type: array items: $ref: '#/components/schemas/LanguageTypedString_3' description: An array of optional pre-formatted strings in different locales. Clients can choose to use this string instead of rendering their own based on the current locale of the user. example: - language: nl-NL value: €380,84 - language: en-US value: $401.17 ext: $ref: '#/components/schemas/Ext' additionalProperties: false ProgramProperties_2: 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_3' 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_3' 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_3' 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_3' qualificationAwarded: $ref: '#/components/schemas/qualificationAwarded_3' modeOfStudy: $ref: '#/components/schemas/modeOfStudy_3' 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_3' level: $ref: '#/components/schemas/level_3' 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_3' 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_3' 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_3' 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_3' 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_3' 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_3' 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_3' example: - codeType: crohoCreboCode code: '59312' addresses: type: array description: Addresses for this program items: $ref: '#/components/schemas/Address_3' parent: description: Parent program of which the current program is a child. This object is [`expandable`](#tag/program_model) oneOf: - $ref: '#/components/schemas/Identifier_3' 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_3' 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_3' 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_3' title: organizationId - $ref: '#/components/schemas/Organization_2' 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_3' 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' Component_2: type: object description: A component is a part of a course required: - componentId - componentType - name - teachingLanguage - abbreviation - primaryCode properties: componentId: type: string description: Unique id of this component format: uuid example: 123e4567-e89b-12d3-a456-426614174000 readOnly: true primaryCode: description: The primary human readable identifier for this component. This is often the source identifier as defined by the institution. $ref: '#/components/schemas/IdentifierEntry_3' example: codeType: componentCode code: INFOMQNM-WRKCLG-1 readOnly: true componentType: $ref: '#/components/schemas/componentType' name: type: array description: The name of this component minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString_3' example: - language: en-GB value: Written test for INFOMQNM abbreviation: type: string description: The abbreviation of this component maxLength: 256 example: Test-INFOMQNM modeOfDelivery: $ref: '#/components/schemas/modesOfDelivery' duration: type: string description: The duration of this component. 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 description: type: array description: The description of this component. minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString_3' example: - language: en-GB value: '''Prove executable knowledge of research methods, including: Acquire knowledge of HCI research paradigms Able to design suitable research studies (e.g., choose between within and between subject designs) Define/apply/design metrics and scales Define/produce materials (e.g., stimuli and questionnaires) Define protocols for research studies Understands and take in account concepts of reliability and validity Analyze and improve methods and analysis of published scientific articles Able to deliver scientific reports Prove executable knowledge of ­­­statistics, including: Handle hypothesis testing with complex designs (e.g., including , dependent, independent, and co variates) Data preparation (e.g., coding and feature selection) Reason towards adequate techniques to ensure valid outcomes (e.g., be aware of type I, type II errors) Select an appropriate sampling method (e.g., stratified) Perform parametric tests (e.g., repeated measures (M)ANOVA) Perform non-parametric tests (e.g., Chi-square, Mann-Whitney, and Kruskal-Wallis)'' ' teachingLanguage: type: string description: The (primary) teaching language in which this component 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 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_3' example: - language: en-GB value: 'Executable knowledge of research methods, including: Acquire knowledge of HCI research paradigms.' enrollment: type: array items: $ref: '#/components/schemas/LanguageTypedString_3' 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_3' example: - language: en-GB value: Exam on campus addresses: type: array description: Addresses for this component items: $ref: '#/components/schemas/Address_3' otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry_3' course: description: 'The course of which this component is a part. [`expandable`](#tag/course_model) By default only the `courseId` (a string) is returned. If the client requested an expansion of `course` the full course object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier_3' title: courseId - $ref: '#/components/schemas/Course_3' title: Course object organization: description: 'The organization which provides this component. [`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_3' title: organizationId - $ref: '#/components/schemas/Organization_2' 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_3' example: - consumerKey: x-test-consumer additional: custom attributes: here ext: $ref: '#/components/schemas/Ext' OfferingProperties_2: type: object description: Either a program, course or component offering which descrbes the program, course or offering in time required: - primaryCode - offeringType - name - description - teachingLanguage - resultExpected properties: primaryCode: description: The primary human readable identifier for this offering. This is often the source identifier as defined by the institution. $ref: '#/components/schemas/IdentifierEntry_3' example: codeType: offeringCode code: INFOMQNM-20FS readOnly: true offeringType: type: string description: The type of this offering enum: - program - course - component example: component academicSession: description: 'The academicsession during which this courseoffering takes place. [`expandable`](#tag/academic_session_model) By default only the `academicSessionId` (a string) is returned. If the client requested an expansion of `academicSession` the full academicsession object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier_3' title: academicSessionId - $ref: '#/components/schemas/AcademicSession_2' title: AcademicSession object name: type: array description: The name of this offering minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString_3' example: - language: en-GB value: Final written test for INFOMQNM for fall semseter 2020 abbreviation: type: string description: The abbreviation or internal code used to identify this offering maxLength: 256 example: Test-INFOMQNM-20FS description: type: array description: The description of this offering. minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString_3' example: - language: en-GB value: '''Prove in writing knowledge of research methods, including: Acquire knowledge of HCI research paradigms Able to design suitable research studies (e.g., choose between within and between subject designs) Define/apply/design metrics and scales Define/produce materials (e.g., stimuli and questionnaires) Define protocols for research studies Understands and take in account concepts of reliability and validity Analyze and improve methods and analysis of published scientific articles Able to deliver scientific reports Prove in writing knowledge of ­­­statistics, including: Handle hypothesis testing with complex designs (e.g., including , dependent, independent, and co variates) Data preparation (e.g., coding and feature selection) Reason towards adequate techniques to ensure valid outcomes (e.g., be aware of type I, type II errors) Select an appropriate sampling method (e.g., stratified) Perform parametric tests (e.g., repeated measures (M)ANOVA) Perform non-parametric tests (e.g., Chi-square, Mann-Whitney, and Kruskal-Wallis)'' ' teachingLanguage: type: string description: The (primary) teaching language in which this offering 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 modeOfDelivery: $ref: '#/components/schemas/modesOfDelivery' maxNumberStudents: type: number description: The maximum number of students allowed to enroll for this offering format: int32 minimum: 0 example: 200 enrolledNumberStudents: type: number description: The number of students that have already enrolled for this offering format: int32 minimum: 0 example: 150 pendingNumberStudents: type: number description: The number of students that have a pending enrollment request for this offering format: int32 minimum: 0 example: 50 minNumberStudents: type: number description: The minimum number of students needed for this offering to proceed format: int32 minimum: 0 example: 15 resultExpected: type: boolean description: "resultExpected, previously knwon as isLineItem is used so the specific instance of the object is identified as being an element that CAN contain “grade” information.\nOfferings do not always have to result in a grade or an other type of result. \nIf there is a result expected from a programOffering/courseOffering/componentOffering the is resultExpected field should parse true\n" example: true resultValueType: $ref: '#/components/schemas/resultValueType' link: type: string description: URL of this offering's webpage. format: uri maxLength: 2048 example: https://osiris.uu.nl/osiris_student_uuprd/OnderwijsCatalogusZoekCursus.do#submitForm?cursuscode=INFOMQNM otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry_3' 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_3' example: - consumerKey: rio explanationRequiredPermission: Toestemming is vereist omdat we daarom vragen. requiredPermissionRegistration: 'yes' registrationStatus: open modeOfDelivery: - coaching ext: $ref: '#/components/schemas/Ext' ProgramOffering_2: allOf: - $ref: '#/components/schemas/Offering' - type: object required: - startDate - endDate properties: startDate: type: string description: The moment on which this offering starts, RFC3339 (full-date) format: date example: '2019-08-21' endDate: type: string description: The moment on which this offering ends, RFC3339 (full-date) format: date example: '2023-06-15' enrollStartDate: type: string description: The first day on which a student can enroll for this program. format: date example: '2019-05-01' enrollEndDate: type: string description: The last day on which a student can enroll for this program. format: date example: '2019-08-01' flexibleEntryPeriodStart: type: string description: If this is a program wherein participants can start at various moments, without missing anything, use this attribute in combination with `flexibleEntryPeriodEnd`. format: date flexibleEntryPeriodEnd: type: string description: If this is a program wherein participants can start at various moments, without missing anything, use this attribute in combination with `flexibleEntryPeriodStart`. format: date addresses: type: array description: Addresses for this offering items: $ref: '#/components/schemas/Address_3' priceInformation: type: array description: Price information for this offering. items: $ref: '#/components/schemas/Cost_2' minItems: 1 program: description: 'The Program that is offered in this programoffering. [`expandable`](#tag/program_model) By default only the `programId` (a string) is returned. If the client requested an expansion of `program` the full program object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier_3' title: programId - $ref: '#/components/schemas/Program' title: Program object organization: description: 'The organization that manages this programeoffering. [`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_3' title: organizationId - $ref: '#/components/schemas/Organization_2' title: Organization object gender_3: type: string description: The gender of this person enum: - M - F - U - X example: F Address_3: type: object description: The full street address required: - addressType properties: addressType: $ref: '#/components/schemas/addressType_3' 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_3' 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' CourseExpanded_3: allOf: - $ref: '#/components/schemas/Course_3' - type: object description: These properties are only present when explicitly included 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/TimelineOverrideCourse_3' modeOfStudy_3: 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 CourseOffering_2: allOf: - $ref: '#/components/schemas/Offering' - type: object required: - startDate - endDate properties: startDate: type: string description: The moment on which this offering starts, RFC3339 (full-date) format: date example: '2019-08-21' endDate: type: string description: The moment on which this offering ends, RFC3339 (full-date) format: date example: '2019-10-23' enrollStartDate: type: string description: The first day on which a student can enroll for this course. format: date example: '2019-05-01' enrollEndDate: type: string description: The last day on which a student can enroll for this course. format: date example: '2019-08-01' flexibleEntryPeriodStart: type: string description: If this is a course wherein participants can start at various moments, without missing anything, use this attribute in combination with `flexibleEntryPeriodEnd`. format: date flexibleEntryPeriodEnd: type: string description: If this is a course wherein participants can start at various moments, without missing anything, use this attribute in combination with `flexibleEntryPeriodStart`. format: date addresses: type: array description: Addresses for this offering items: $ref: '#/components/schemas/Address_3' priceInformation: type: array description: Price information for this offering. items: $ref: '#/components/schemas/Cost_2' course: description: 'The course that is offered in this courseoffering. [`expandable`](#tag/course_model) By default only the `courseId` (a string) is returned. If the client requested an expansion of `course` the full course object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier_3' title: courseId - $ref: '#/components/schemas/Course_3' title: Course object programOffering: description: 'The programoffering where this courseoffering is related to. [`expandable`](#tag/program_offering_model) By default only the `programOfferingId` (a string) is returned. If the client requested an expansion of `programOffering` the full programOffering object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier_3' title: programOfferingId - $ref: '#/components/schemas/ProgramOffering_2' title: ProgramOffering object organization: description: 'The organization that manages this courseoffering. [`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_3' title: organizationId - $ref: '#/components/schemas/Organization_2' title: Organization object Course_3: allOf: - $ref: '#/components/schemas/CourseId_3' - $ref: '#/components/schemas/CourseProperties_3' - 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_3: type: object properties: codeType: $ref: '#/components/schemas/codeType_3' code: description: Human readable value for the code/identifier type: string required: - codeType - code additionalProperties: false example: codeType: identifier code: 1234qwe12 StudyLoadDescriptor_3: 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_3: 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_3' readOnly: true name: type: array description: The name of this course (ECTS-title) minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString_3' 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_3' 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_3' 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_3' 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_3' 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_3' level: $ref: '#/components/schemas/level_3' enrollment: type: array items: $ref: '#/components/schemas/LanguageTypedString_3' 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_3' 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_3' title: educationSpecificationId - $ref: '#/components/schemas/EducationSpecification' title: EducationSpecification addresses: type: array description: Addresses for this course items: $ref: '#/components/schemas/Address_3' otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry_3' 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_3' 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_3' 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_3' 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_3' title: organizationId - $ref: '#/components/schemas/Organization_2' title: Organization object Organization_2: 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_3' 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_3' 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_3' 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_3' 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_3' 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_3' title: organizationId - $ref: '#/components/schemas/Organization_2' 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_3' title: organizationId - $ref: '#/components/schemas/Organization_2' 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_3' example: - consumerKey: x-test-consumer additional: custom attributes: here ext: $ref: '#/components/schemas/Ext' Pagination_3: 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 Identifier_3: type: string description: An identifier of another resource. format: uuid qualificationAwarded_3: 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' example: type: https://api.example.org/problems/method-not-allowed title: Method not allowed status: 405 detail: The method POST is not supported for this endpoint. instance: https://api.example.org/courses/abc123 ErrorNotFound: description: "Not Found. \n\nReturned only when a specific resource identified by its identifier\ncannot be located. This applies to instance endpoints where a single,\nuniquely-addressable object is expected. \n\nCollection endpoints should not return a 404. If no items match the request,\nthey must return an empty array. A 404 may still occur if the collection\nendpoint itself does not exist or is not accessible.\n" content: application/problem+json: schema: $ref: '#/components/schemas/Problem' examples: instanceNotFound: summary: 'Instance endpoint: resource not found' value: type: https://api.example.org/problems/not-found title: Resource not found status: 404 detail: The course with id 'abc123' could not be found. instance: https://api.example.org/courses/abc123 collectionEndpointNotFound: summary: Collection endpoint unavailable value: type: https://api.example.org/problems/not-found title: Collection endpoint not found status: 404 detail: The collection endpoint '/course-offerings' does not exist or is not accessible. instance: https://api.example.org/course-offerings ErrorNotAcceptable: description: 'Not Acceptable. Returned when the server cannot produce a representation in the requested OEAPI or consumer version. The server may serve the requested version or any lower compatible minor version. If neither the requested version nor a lower minor version is available, a 406 response is returned to indicate that no acceptable representation can be produced. This behaviour slightly deviates from strict HTTP semantics. The client requests exactly one OEAPI version and at most one consumer with one consumer version using the HTTP Accept header. Standard HTTP content negotiation is not applied. The server performs an internal Accept-like version check after the HTTP layer. If the request can be satisfied, the server returns a compatible version. A compatible version is any version within the same major version, with a higher or lower minor version. If no compatible version can be provided, the server returns 406 to signal that the requested representation cannot be provided. This approach improves clarity, implementation consistency and debugging, because the requested and supported versions are explicit in both the request and the 406 response, avoiding ambiguity caused by full HTTP content negotiation or Accept-based parsing. It also improves logging. Servers can log the requested and supported versions at the point of mismatch, allowing operators to detect outdated consumers, configuration issues or unexpected version drift. ' content: application/problem+json: schema: $ref: '#/components/schemas/ProblemVersionNotAcceptable' examples: unsupportedOoapiVersion: summary: Requested OEAPI version is not supported description: 'Example where the client requests OEAPI version 5.0 and the server cannot serve that version or a lower compatible minor version. ' value: type: https://api.example.org/problems/version-not-acceptable title: Version not acceptable status: 406 detail: The requested OEAPI version '5.0' cannot be served. requestedVersion: '5.0' supportedVersions: - '6.1' - '6.0' instance: https://api.example.org/courses unsupportedConsumerVersion: summary: Requested consumer version is not supported description: 'Example where the client requests consumer version 2.0 which is not supported by the server and no lower compatible consumer version is available. ' value: type: https://api.example.org/problems/version-not-acceptable title: Version not acceptable status: 406 detail: The consumer version '2.0' is not supported. consumer: consumerKey: mbo-oke-roster-service requestedVersion: '2.0' supportedVersions: - '1.0' - '0.94' instance: https://api.example.org/enrolments ErrorUnauthorized: description: Unauthorized content: application/problem+json: schema: $ref: '#/components/schemas/Problem' example: type: https://api.example.org/problems/unauthorized title: Unauthorized status: 401 detail: Authentication credentials were missing or invalid. instance: https://api.example.org/student/12345 ErrorTooManyRequests: description: Too many requests content: application/problem+json: schema: $ref: '#/components/schemas/Problem' example: type: https://api.example.org/problems/too-many-requests title: Too many requests status: 429 detail: You have exceeded the rate limit of 100 requests per minute. instance: https://api.example.org/courses ErrorForbidden: description: Forbidden content: application/problem+json: schema: $ref: '#/components/schemas/Problem' example: type: https://api.example.org/problems/forbidden title: Forbidden status: 403 detail: You do not have permission to access this resource. instance: https://api.example.org/admin/enrolments ErrorBadRequest: description: Bad request content: application/problem+json: schema: $ref: '#/components/schemas/Problem' example: type: https://api.example.org/problems/invalid-parameter title: Invalid request parameters status: 400 detail: 'The query parameter ''mode'' must be one of: full, basic.' instance: https://api.example.org/courses?mode=invalid ErrorInternalServerError: description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' example: type: https://api.example.org/problems/internal-server-error title: Internal server error status: 500 detail: An unexpected error occurred while processing your request. instance: https://api.example.org/enrolments/submit ErrorMethodNotAllowed_2: description: Method not allowed content: application/problem+json: schema: $ref: '#/components/schemas/Problem_2' ErrorNotFound_2: description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/Problem_2' ErrorUnauthorized_2: description: Unauthorized content: application/problem+json: schema: $ref: '#/components/schemas/Problem_2' ErrorTooManyRequests_2: description: Too many requests content: application/problem+json: schema: $ref: '#/components/schemas/Problem_2' ErrorForbidden_2: description: Forbidden content: application/problem+json: schema: $ref: '#/components/schemas/Problem_2' ErrorInternalServerError_2: description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/Problem_2' ErrorBadRequest_2: description: Bad request content: application/problem+json: schema: $ref: '#/components/schemas/Problem_2' ErrorMethodNotAllowed_3: description: Method not allowed content: application/problem+json: schema: $ref: '#/components/schemas/Problem_3' ErrorNotFound_3: description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/Problem_3' ErrorUnauthorized_3: description: Unauthorized content: application/problem+json: schema: $ref: '#/components/schemas/Problem_3' ErrorTooManyRequests_3: description: Too many requests content: application/problem+json: schema: $ref: '#/components/schemas/Problem_3' ErrorForbidden_3: description: Forbidden content: application/problem+json: schema: $ref: '#/components/schemas/Problem_3' ErrorInternalServerError_3: description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/Problem_3' ErrorBadRequest_3: description: Bad request content: application/problem+json: schema: $ref: '#/components/schemas/Problem_3' securitySchemes: bearerAuth: type: http scheme: bearer openId: type: openIdConnect openIdConnectUrl: https://example.nl/.well-known/openid-configuration x-refined-from: - oeapi-6.0-rc.3.yaml - 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