University of Groningen Programmes API

Degree-programme search.

Operations 1

GET /{academicYear}/program Search degree programmes within one academic year #

Documentation

Specifications

Other Resources

🔗
x-openapi-original
https://raw.githubusercontent.com/api-evangelist/university-of-groningen/refs/heads/main/openapi/_original/university-of-groningen-course-catalog-api.yaml
🔗
Website
https://ocasys.rug.nl/
🔗
x-json-schema
https://raw.githubusercontent.com/api-evangelist/university-of-groningen/refs/heads/main/json-schema/university-of-groningen-ocasys-course-schema.json
🔗
x-json-schema
https://raw.githubusercontent.com/api-evangelist/university-of-groningen/refs/heads/main/json-schema/university-of-groningen-ocasys-program-schema.json
🔗
x-json-ld
https://raw.githubusercontent.com/api-evangelist/university-of-groningen/refs/heads/main/json-ld/university-of-groningen-course-context.jsonld
🔗
x-rules
https://raw.githubusercontent.com/api-evangelist/university-of-groningen/refs/heads/main/rules/university-of-groningen-course-catalog-rules.yml
🔗
Vocabulary
https://raw.githubusercontent.com/api-evangelist/university-of-groningen/refs/heads/main/vocabulary/university-of-groningen-course-catalog-vocabulary.yml
🔗
Errors
https://raw.githubusercontent.com/api-evangelist/university-of-groningen/refs/heads/main/errors/university-of-groningen-errors.yml
🔗
x-example
https://raw.githubusercontent.com/api-evangelist/university-of-groningen/refs/heads/main/examples/university-of-groningen-ocasys-course-search-example.json
🔗
x-example
https://raw.githubusercontent.com/api-evangelist/university-of-groningen/refs/heads/main/examples/university-of-groningen-ocasys-get-course-example.json
🔗
x-example
https://raw.githubusercontent.com/api-evangelist/university-of-groningen/refs/heads/main/examples/university-of-groningen-ocasys-program-search-example.json
🔗
x-example
https://raw.githubusercontent.com/api-evangelist/university-of-groningen/refs/heads/main/examples/university-of-groningen-ocasys-faculties-example.json
🔗
x-example
https://raw.githubusercontent.com/api-evangelist/university-of-groningen/refs/heads/main/examples/university-of-groningen-ocasys-problem-detail-example.json
🔗
x-openapi-original
https://raw.githubusercontent.com/api-evangelist/university-of-groningen/refs/heads/main/openapi/_original/university-of-groningen-oai-pmh.yaml
🔗
x-oai-pmh-identify
https://pure.rug.nl/ws/oai?verb=Identify
🔗
Conformance
https://raw.githubusercontent.com/api-evangelist/university-of-groningen/refs/heads/main/conformance/university-of-groningen-education-standards-conformance.yml
🔗
x-example
https://raw.githubusercontent.com/api-evangelist/university-of-groningen/refs/heads/main/examples/university-of-groningen-oai-identify-example.xml
🔗
x-example
https://raw.githubusercontent.com/api-evangelist/university-of-groningen/refs/heads/main/examples/university-of-groningen-oai-listmetadataformats-example.xml
🔗
x-example
https://raw.githubusercontent.com/api-evangelist/university-of-groningen/refs/heads/main/examples/university-of-groningen-oai-badverb-example.xml

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

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

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/university-of-groningen-programmes-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

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

Get an API key

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

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

OpenAPI Specification

university-of-groningen-programmes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: University of Groningen Ocasys Course Catalog Programmes API
  version: 2026-2027
  summary: Keyless read API behind Ocasys, the University of Groningen course and programme catalog.
  description: Ocasys (ocasys.rug.nl) is the University of Groningen's own course and degree-programme catalog.
  contact:
    name: University of Groningen — Center for Information Technology
    url: https://www.rug.nl/society-business/center-for-information-technology/
  termsOfService: https://www.rug.nl/info/disclaimer-copyright
  license:
    name: No licence published for the interface or its data
    identifier: NOASSERTION
servers:
- url: https://ocasys.rug.nl/api
  description: Production Ocasys backend (institution-operated, verified live 2026-08-30)
tags:
- name: Programmes
  description: Degree-programme search.
paths:
  /{academicYear}/program:
    get:
      tags:
      - Programmes
      operationId: searchPrograms
      summary: Search degree programmes within one academic year
      parameters:
      - $ref: '#/components/parameters/AcademicYear'
      - name: searchTerm
        in: query
        required: true
        description: Free-text term matched against programme code and title. Required — omitting it returns 400.
        schema:
          type: string
      responses:
        '200':
          description: Matching programmes
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Program'
        '400':
          $ref: '#/components/responses/ProblemBadRequest'
components:
  parameters:
    AcademicYear:
      name: academicYear
      in: path
      required: true
      description: Academic year in YYYY-YYYY form, e.g. 2026-2027. A value that does not parse returns 400.
      schema:
        type: string
        pattern: ^[0-9]{4}-[0-9]{4}$
  schemas:
    LocalizedText:
      type: object
      description: Bilingual string, Dutch and English. The catalog is authored in both languages.
      properties:
        en:
          type: string
        nl:
          type: string
    Program:
      type: object
      properties:
        id:
          type: string
          format: uuid
        code:
          type: string
        title:
          $ref: '#/components/schemas/LocalizedText'
        levels:
          type: array
          items:
            type: string
            enum:
            - MASTER
            - BACHELOR
            - EXCHANGE
            - PRE_MASTER
            - UNIVERSITY_LEVEL_MINOR
            - FACULTY_LEVEL_MINOR
            - POST_GRADUATE
        languages:
          type: array
          items:
            type: string
            enum:
            - ENGLISH
            - DUTCH
        credits:
          type: number
        term:
          type: string
        duration:
          type: integer
          description: Nominal duration in years.
        facultyTitle:
          $ref: '#/components/schemas/LocalizedText'
        organizationalUnitTitle:
          $ref: '#/components/schemas/LocalizedText'
        official:
          type: boolean
        yearVisible:
          type: boolean
        otherPeriods:
          type: boolean
        draft:
          type: boolean
    Problem:
      type: object
      description: RFC 9457 problem detail, as emitted by the Spring backend.
      properties:
        type:
          type: string
          examples:
          - about:blank
        title:
          type: string
        status:
          type: integer
        detail:
          type: string
        instance:
          type: string
  responses:
    ProblemBadRequest:
      description: RFC 9457 problem detail
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
x-method: probed
x-generated: '2026-08-30'
x-source:
- https://ocasys.rug.nl/api/year-status
- https://ocasys.rug.nl/api/orgunit/faculties-and-universities
- https://ocasys.rug.nl/api/2026-2027/course?searchTerm=biology
- https://ocasys.rug.nl/api/2026-2027/course/WMMB015-05
- https://ocasys.rug.nl/api/2026-2027/course/page/WMMB015-05
- https://ocasys.rug.nl/api/2026-2027/program?searchTerm=biology
- https://ocasys.rug.nl/api/2026-2027/option-list
- https://ocasys.rug.nl/api/year/next-academic-year-start-date
x-operator: institution