Step-by-Step Guide

Technical Guide

What you’ll do on this page

This guide walks you through connecting your institution’s course data to the QualityLink aggregator. By the end, your courses will appear in the European catalogue at courses.app.quality-link.eu.

Before you start, you’ll need

Course data in a supported format — ELM, OOAPI, Edu-API, or OCCAPI — or the ability to export to one of these.

Access to publish a manifest file on your institution’s domain, or the ability to create a DNS TXT record.

Access to the QualityLink dashboard to trigger and verify aggregation.

Not sure whether to use the hosted platform or deploy your own instance? Read the guide for decision-makers first.

Guide for decision-makers: quality-link.eu/use-the-aggregator/for-decision-makers/

Six steps to get your data live
Step 1 Publish your course data in a supported format

Choose one of the four formats. If your institution already uses one, start there.

  • ELM — European Learning Model · Supported (v3)
    Serve an RDF file aligned with the QualityLink application profile. Maximum semantic richness; direct alignment with European Digital Credentials.
    Application profile (SHACL): specs.quality-link.eu/resources/ontology-shacl.html
    Validate your data: shacl-play.sparna.fr/play/validate
  • OEAPI (formerly OOAPI) · Supported (v5 and v6)
    Expose OEAPI endpoints. The aggregator fetches course data in real time.
    OEAPI specification: oeapi.eu
  • Edu-API · Supported (v1)
    Implement Edu-API endpoints as specified in the QualityLink data exchange specification.
    Edu-API specification: 1edtech.org/standards/edu-api
  • OCCAPI · Work in progress
    OCCAPI support is being finalised. Contact us before starting an OCCAPI implementation.
    OCCAPI specification: occapi.uni-foundation.eu

You can use more than one format within an alliance. All data is normalised to ELM during aggregation, regardless of source format.

Step 2 Configure access control (optional)

Your course data is public by nature, but you can restrict which systems access it.

Step 3 Create a manifest file

The manifest file tells the aggregator where your data is, what format it’s in, how often to refresh it, and whether authentication is required. It’s a small JSON or YAML file.

Use the Manifest Builder tool to generate yours, or write it manually using the data source discovery specification.

Manifest Builder tool: dashboard.app.quality-link.eu/manifest-builder
Data source discovery specification: specs.quality-link.eu/discovery.html#manifest

Step 4 Publish the manifest file on your domain

Place it at one of these well-known URLs on your institution’s domain:

  • 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

Or publish it elsewhere and create a DNS TXT record pointing to it:

v=qldiscover1; m=https://YOUR.OTHER.DOMAIN/PATH/TO/MANIFES
Step 5 Trigger aggregation and verify

In the dashboard, trigger a refresh of your manifest file. The dashboard shows whether the manifest was found and parsed correctly.
Once confirmed, trigger a refresh of your data sources. Your data will be fetched, processed, and indexed within a few minutes.

Go to the dashboard: dashboard.app.quality-link.eu/

Step 6 Check your courses in the catalogue

After indexation, your courses appear in the European catalogue. Search for your institution to verify.

If courses are missing or incorrect, return to the dashboard — it shows aggregation status and any errors in detail.

European course catalogue: courses.app.quality-link.eu/

Implementation options

Three options for running the aggregator — separate from how you publish your data in step 1.

Option A: Hosted QualityLink aggregator (recommended)

Free. No infrastructure. Start immediately.

Use the shared QualityLink aggregator and catalogue. We run the infrastructure.

Limitation: you can’t modify the aggregation software directly, though you can configure most behaviours via the manifest and dashboard.

Option B: Your own instance of the aggregator

Full control. Higher maintenance.

Fork the aggregator repository and deploy on your own infrastructure.

Source code: see Knowledge-Innovation-Centre/quality-link-infra on GitHub

Option C: Build your own custom aggregator

Maximum flexibility. Significant development effort.

Build your own aggregation pipeline using the QualityLink specifications as a reference. Only if the QualityLink aggregator doesn’t meet your needs.

Public catalogue options

How you expose aggregated data to users is a separate decision from aggregation.

  • Hosted QualityLink catalogue: available immediately, no infrastructure, institution and alliance filters available.
  • Self-deployed catalogue: fork the course catalogue repository and customise branding. See Knowledge-Innovation-Centre/course-catalogue on GitHub
  • Custom frontend: build your own catalogue UI using the aggregator’s API. Requires the most effort but gives complete control.
What’s supported right now

Last updated: 31 May 2026. Check the Knowledge-Innovation-Centre/quality-link-infra GitHub repository for the most current status.

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
Where to go next

Check your manifest and aggregation status
Dashboard: dashboard.app.quality-link.eu/

Read the full technical specifications
Technical specifications: quality-link.eu/technical-specs/

Share context with a manager or director
Guide for decision-makers: quality-link.eu/use-the-aggregator/for-decision-makers/