Step-by-Step Guide

Technical Guide

QualityLink provides the technical infrastructure to create joint catalogues of learning opportunities. This is a foundational part of a European University Alliance’s virtual inter-university campus and addresses use case 1 (“Discover”) of the European Higher Education Interoperability Framework (HEIF).

As a technical implementer, you’ll be connecting your institution’s learning opportunities to Europe-wide platforms using standard, interoperable formats. This guide provides the technical specifications, implementation options, and step-by-step instructions you need to get your data live.

What are the practical steps?
  1. Publish your learning opportunities data in one of the supported formats (see Data Exchange Specification):
  2. Configure authentication if needed: even though course data is public in nature, you can prevent others from accessing the data you make available to the QualityLink aggregator. This can be done in two ways:
    • Whitelisting an IP address: the QualityLink aggregator operates from the IP address 63.179.152.42
    • Provide an encrypted secret token: to encrypt a secret for use in the manifest file, download the QualityLink aggregator’s public key. You can place the encrypted secret in your manifest file and instruct the aggregator to send it back as HTTP request header with every request.
  3. Create a manifest file: this is a JSON or YAML file that indicates the type and location of your data source. You can also configure how frequently your data will be refreshed and whether any authentication is necessary. See the Data Source Discovery Specification or use our Manifest Creator tool (beta).
  4. Publish the manifest file: go to the QualityLink dashboard and review the domain search order for your institution. You will need to place/link the manifest file under a known official domain of your institution. You have two options:
    1. Place the manifest file at one of the following URLs:
      https://YOUR.DOMAIN/.well-known/quality-link-manifest
      https://YOUR.DOMAIN/.well-known/quality-link-manifest.json

      https://YOUR.DOMAIN/.well-known/quality-link-manifest.yaml
    2. Place the manifest file elsewhere and create a DNS TXT record under one of the searched domains, using the value:
      v=qldiscover1; m=https://YOUR.OTHER.DOMAIN/SOME/PATH/…
  5. Trigger aggregation: return to the QualityLink dashboard and trigger a refresh of your manifest file. The dashboard also allows you to verify that manifest file was found and interpreted correctly. Afterwards, trigger a refresh of your discovered data sources. Your data will be fetched, processed and indexed in the following minutes.
  6. Check the catalogue: after indexation your learning opportunities appear at https://courses.app.quality-link.eu/.
What are the implementation options?
1. Publish information
  1. European Learning Model (ELM) format: you can serve a file with RDF data using the ELM ontology and aligned with the QualityLink application profile.

    Requirements: see the QualityLink application profile

    Validation: use the SHACL validator at https://shacl-play.sparna.fr/play/validate – upload your dataset or enter URL under “Input Data”, select “URL” under “Shapes” and enter https://specs.quality-link.eu/resources/ontology-shacl.ttl

    Benefits: ELM offers maximum semantic richness and direct alignment with European standards; you can generate or export ELM from existing systems

  2. API Implementation: you can implement OOAPI, Edu-API or OCCAPI endpoints to provide course data.

    Requirements: implement at least the required endpoints as specified in the Data Exchange Specification

    Benefits: you can use existing API infrastructure or expose data real-time from existing systems; all data is normalised to ELM during aggregation

NB: you can use one or several standards within an alliance. Even if different alliance members use different standards, all aggregated data is converted to ELM.

2. Aggregate data

We recommend starting with the hosted QualityLink aggregator. This is the easiest option for fast and risk-free deployment, as it requires no own resources. The QualityLink aggregator is run on a non-profit basis and may be used by all European higher education institutions free of charge.

If your institution or alliance has advanced customisation needs, you may fork the QualityLink aggregator or the course catalogue components and deploy customised versions on your own infrastructure. All QualityLink software is available as open source on GitHub under an Apache 2.0 license.

The benefits and limitations of each option

  1. Hosted QualityLink aggregator

    ✓ Benefits: immediate deployment without infrastructure investment; recommended option for getting started.

    ✗ Limitations: ability to customise the aggregation process and schedule, but you cannot adapt the software directly.

  2. Your own instance of the QualityLink aggregator

    ✓ Benefits: full control over the aggregation process; no external dependencies; ability to customise the software if needed.

    ✗ Limitations: requires additional technical expertise and resources for infrastructure and maintenance.

  3. Custom aggregator

    ✓ Benefits: maximum flexibility and full ownership; cater for specific requirements that the QualityLink aggregator cannot meet; integration with existing systems.

    ✗ Limitations: requires significant own development effort and resources for infrastructure and maintenance.

NB: You can always change from the hosted aggregator to one of the other options at a later stage if needed.

3. Public joint catalogue

We recommend the hosted QualityLink prototype platform (forthcoming) to get started. The benefits and limitations of the other approaches are:

  1. Hosted QualityLink platform

    ✓ Benefits: available immediately once your data is aggregated; filtered view for your institutions possible; does not require any own infrastructure or development.

    ✗ Limitations: beyond preset filters and the colour scheme, customisation and alliance branding are limited.

  2. Self-deployed instance of the QualityLink platform

    ✓ Benefits: can be deployed easily on your own infrastructure/private cloud; customise the user experience and branding according to your needs.

    ✗ Limitations: requires some technical expertise and resources for infrastructure and maintenance; customisations require additional development work.

  3. Bespoke development of your own course catalogue frontend

    ✓ Benefits: allows full customisation; use the API of the QualityLink aggregator or a custom API of your own aggregator.

    ✗ Limitations: significant development effort and resources required for development, infrastructure and maintenance.

Implementation status

The following table summarises the features supported this far by the QualityLink pilot aggregator.

Features marked as “work in progress” are currently being worked on by the development team.

Features marked as “on hold” have lower priority, as they are not crucial or not in high demand. They will not necessarily be implemented within the context of the current project.

Data Source Discovery Specification
DNS TXT record supported
.well-known locations supported
Domain from SCHAC code supported
Domain from website supported
Domain from website, www. stripped off supported
Highest level registrable domain name on hold
Data Exchange Specification
ELM (static file) sources supported (v3)
ELM – incremental updates work in progress
OOAPI sources supported (v5)
Edu-API sources supported (v1)
OCCAPI sources work in progress
Access control: based on IP address supported
Access control: HTTP Request Header supported
Access control: OAuth 2.0 on hold
Access control: HTTP Signature on hold
Last update: 23/02/2026