Erste Schritte
Authentifizierung
Kundengebundener API-Key, erzeugt im Management-Panel unter Einstellungen → API-Keys. Wird nur beim Erstellen einmalig im Klartext angezeigt.
- Schema
- TenantApiKey
- Übertragung
- Header: X-Api-Key
Kurse
Kurse, die dem Tenant über Abonnements zur Verfügung stehen.
GET
/api/tenant/v1/course
Kurse des Tenants auflisten
Alle Kurse, für die der Tenant mindestens ein Abonnement besitzt.
Antworten
Liste von Course
Beispiele
Beispielanfrage
curl --request GET \
'https://api.genialster.de/api/tenant/v1/course' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"title": "Beispielwert",
"description": {
"rawMarkdown": "Beispielwert"
},
"legalName": "Max Mustermann",
"legalContent": "Beispielwert",
"certificateId": "abc123",
"teachingUnits": 1,
"teachingUnitsOnSite": 1,
"dgsvCertificate": true,
"icon": {
"name": "Max Mustermann",
"url": "Beispielwert"
},
"chapters": [
{
"id": "abc123",
"title": "Beispielwert"
}
],
"availableActions": [
"VIEW"
],
"published": true,
"demo": true,
"moduleCount": 1,
"_links": {
"key": {
"href": "Beispielwert",
"hreflang": "Beispielwert",
"title": "Beispielwert",
"type": "Beispielwert",
"deprecation": "Beispielwert",
"profile": "Beispielwert",
"name": "Max Mustermann",
"templated": true
}
}
}
]
GET
/api/tenant/v1/course/{id}/overview
Kurs-Übersicht abrufen
Aggregierte Fortschritts- und Nutzungsdaten für einen einzelnen Kurs des Tenants.
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | path | string | Ja | ID des Kurses |
Antworten
Modell: CourseOverview
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| course | Course | Nein | – |
| userOverviews | Array<UserCourseOverview> | Nein | – |
| moduleCount | integer (int32) | Nein | – |
| userCount | integer (int32) | Nein | – |
Beispiele
Beispielanfrage
curl --request GET \
'https://api.genialster.de/api/tenant/v1/course/abc123/overview' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
Content-Type: application/json
{
"course": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"title": "Beispielwert",
"description": {
"rawMarkdown": "Beispielwert"
},
"legalName": "Max Mustermann",
"legalContent": "Beispielwert",
"certificateId": "abc123",
"teachingUnits": 1,
"teachingUnitsOnSite": 1,
"dgsvCertificate": true,
"icon": {
"name": "Max Mustermann",
"url": "Beispielwert"
},
"chapters": [
{
"id": "abc123",
"title": "Beispielwert"
}
],
"availableActions": [
"VIEW"
],
"published": true,
"demo": true,
"moduleCount": 1,
"_links": {
"key": {
"href": null,
"hreflang": null,
"title": null,
"type": null,
"deprecation": null,
"profile": null,
"name": null,
"templated": null
}
}
},
"userOverviews": [
{
"user": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"lastName": "Max Mustermann",
"firstName": "Max Mustermann",
"email": "max@example.com",
"tenantId": "abc123",
"birthDate": "Beispielwert",
"progress": null,
"experience": 1,
"participatesInLeaderboard": true,
"hasSeenGlobalIntroduction": true,
"_links": null
},
"completedModules": 1,
"examAttempts": 1,
"examState": "NOT_READY"
}
],
"moduleCount": 1,
"userCount": 1
}
Abonnements
Kurs-Abonnements des Tenants und der Zugriff darauf.
GET
/api/tenant/v1/subscription
Abonnements auflisten
Antworten
Liste von Subscription
Beispiele
Beispielanfrage
curl --request GET \
'https://api.genialster.de/api/tenant/v1/subscription' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"tenant": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"legalName": "Max Mustermann",
"description": "Beispielwert",
"address": {
"street": "Beispielwert",
"additional": "Beispielwert",
"city": "Beispielwert",
"zip": "Beispielwert",
"country": "Beispielwert"
},
"contactPerson": "Beispielwert",
"excludeFromStats": true,
"_links": {
"key": null
}
},
"course": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"title": "Beispielwert",
"description": {
"rawMarkdown": "Beispielwert"
},
"legalName": "Max Mustermann",
"legalContent": "Beispielwert",
"certificateId": "abc123",
"teachingUnits": 1,
"teachingUnitsOnSite": 1,
"dgsvCertificate": true,
"icon": {
"name": "Max Mustermann",
"url": "Beispielwert"
},
"chapters": [
{
"id": null,
"title": null
}
],
"availableActions": [
"VIEW"
],
"published": true,
"demo": true,
"moduleCount": 1,
"_links": {
"key": null
}
},
"licenseCount": 1,
"demo": true,
"startDate": "2026-08-06T12:00:00Z",
"endDate": "2026-08-06T12:00:00Z",
"restricted": true,
"_links": {
"key": {
"href": "Beispielwert",
"hreflang": "Beispielwert",
"title": "Beispielwert",
"type": "Beispielwert",
"deprecation": "Beispielwert",
"profile": "Beispielwert",
"name": "Max Mustermann",
"templated": true
}
}
}
]
GET
/api/tenant/v1/subscription/{id}
Einzelnes Abonnement abrufen
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | path | string | Ja | ID des Abonnements |
Antworten
Modell: Subscription
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| id | string | Nein | – |
| dateCreated | string | Nein | – |
| lastUpdated | string | Nein | – |
| version | integer (int32) | Nein | – |
| tenant | Tenant | Nein | – |
| course | Course | Nein | – |
| licenseCount | integer (int32) | Nein | – |
| demo | boolean | Nein | – |
| startDate | string (date-time) | Nein | – |
| endDate | string (date-time) | Nein | – |
| restricted | boolean | Nein | – |
| _links | Links | Nein | – |
Beispiele
Beispielanfrage
curl --request GET \
'https://api.genialster.de/api/tenant/v1/subscription/abc123' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"tenant": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"legalName": "Max Mustermann",
"description": "Beispielwert",
"address": {
"street": "Beispielwert",
"additional": "Beispielwert",
"city": "Beispielwert",
"zip": "Beispielwert",
"country": "Beispielwert"
},
"contactPerson": "Beispielwert",
"excludeFromStats": true,
"_links": {
"key": {
"href": null,
"hreflang": null,
"title": null,
"type": null,
"deprecation": null,
"profile": null,
"name": null,
"templated": null
}
}
},
"course": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"title": "Beispielwert",
"description": {
"rawMarkdown": "Beispielwert"
},
"legalName": "Max Mustermann",
"legalContent": "Beispielwert",
"certificateId": "abc123",
"teachingUnits": 1,
"teachingUnitsOnSite": 1,
"dgsvCertificate": true,
"icon": {
"name": "Max Mustermann",
"url": "Beispielwert"
},
"chapters": [
{
"id": "abc123",
"title": "Beispielwert"
}
],
"availableActions": [
"VIEW"
],
"published": true,
"demo": true,
"moduleCount": 1,
"_links": {
"key": {
"href": null,
"hreflang": null,
"title": null,
"type": null,
"deprecation": null,
"profile": null,
"name": null,
"templated": null
}
}
},
"licenseCount": 1,
"demo": true,
"startDate": "2026-08-06T12:00:00Z",
"endDate": "2026-08-06T12:00:00Z",
"restricted": true,
"_links": {
"key": {
"href": "Beispielwert",
"hreflang": "Beispielwert",
"title": "Beispielwert",
"type": "Beispielwert",
"deprecation": "Beispielwert",
"profile": "Beispielwert",
"name": "Max Mustermann",
"templated": true
}
}
}
GET
/api/tenant/v1/subscription/{id}/access
Nutzer mit Zugriff auf ein Abonnement auflisten
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | path | string | Ja | ID des Abonnements |
Antworten
Liste von User
Beispiele
Beispielanfrage
curl --request GET \
'https://api.genialster.de/api/tenant/v1/subscription/abc123/access' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"lastName": "Max Mustermann",
"firstName": "Max Mustermann",
"email": "max@example.com",
"tenantId": "abc123",
"birthDate": "Beispielwert",
"progress": {
"courses": [
{
"courseId": null,
"chapterId": null,
"completed": null,
"updatedAt": null
}
],
"chapters": [
{
"courseId": null,
"chapterId": null,
"moduleId": null,
"completed": null,
"updatedAt": null
}
],
"modules": [
{
"moduleId": null,
"slideId": null,
"chapterId": null,
"courseId": null,
"completed": null,
"updatedAt": null
}
],
"completedModules": [
{
"moduleId": null,
"slideId": null,
"chapterId": null,
"courseId": null,
"completed": null,
"updatedAt": null
}
],
"completedCourses": [
{
"courseId": null,
"chapterId": null,
"completed": null,
"updatedAt": null
}
],
"completedChapters": [
{
"courseId": null,
"chapterId": null,
"moduleId": null,
"completed": null,
"updatedAt": null
}
]
},
"experience": 1,
"participatesInLeaderboard": true,
"hasSeenGlobalIntroduction": true,
"_links": {
"key": {
"href": "Beispielwert",
"hreflang": "Beispielwert",
"title": "Beispielwert",
"type": "Beispielwert",
"deprecation": "Beispielwert",
"profile": "Beispielwert",
"name": "Max Mustermann",
"templated": true
}
}
}
]
GET
/api/tenant/v1/subscription/{id}/export
Offene Einladungscodes eines Abonnements als PDF exportieren
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | path | string | Ja | ID des Abonnements |
Antworten
Typ: string (byte)
Beispiele
Beispielanfrage
curl --request GET \
'https://api.genialster.de/api/tenant/v1/subscription/abc123/export' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
Content-Type: application/octet-stream
"<Binärdaten>"
POST
/api/tenant/v1/subscription/{id}/grant-access
Nutzern Zugriff gewähren
Nur relevant, wenn das Abonnement auf Zugriffsbeschränkung geschaltet ist.
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | path | string | Ja | ID des Abonnements |
Request Body · erforderlich
Liste von string
Antworten
Beispiele
Beispielanfrage
curl --request POST \
'https://api.genialster.de/api/tenant/v1/subscription/abc123/grant-access' \
--header 'X-Api-Key: IHR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '[
"Beispielwert"
]'
Beispielantwort
HTTP/1.1 200 OK
GET
/api/tenant/v1/subscription/{id}/open-invitations
Offene Einladungen für ein Abonnement auflisten
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | path | string | Ja | ID des Abonnements |
Antworten
Liste von Invitation
Beispiele
Beispielanfrage
curl --request GET \
'https://api.genialster.de/api/tenant/v1/subscription/abc123/open-invitations' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"token": "Beispielwert",
"used": true,
"email": "max@example.com",
"usedDate": "2026-08-06T12:00:00Z",
"user": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"lastName": "Max Mustermann",
"firstName": "Max Mustermann",
"email": "max@example.com",
"tenantId": "abc123",
"birthDate": "Beispielwert",
"progress": {
"courses": [
null
],
"chapters": [
null
],
"modules": [
null
],
"completedModules": [
null
],
"completedCourses": [
null
],
"completedChapters": [
null
]
},
"experience": 1,
"participatesInLeaderboard": true,
"hasSeenGlobalIntroduction": true,
"_links": {
"key": null
}
},
"tenant": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"legalName": "Max Mustermann",
"description": "Beispielwert",
"address": {
"street": "Beispielwert",
"additional": "Beispielwert",
"city": "Beispielwert",
"zip": "Beispielwert",
"country": "Beispielwert"
},
"contactPerson": "Beispielwert",
"excludeFromStats": true,
"_links": {
"key": null
}
},
"status": "CREATED",
"_links": {
"key": {
"href": "Beispielwert",
"hreflang": "Beispielwert",
"title": "Beispielwert",
"type": "Beispielwert",
"deprecation": "Beispielwert",
"profile": "Beispielwert",
"name": "Max Mustermann",
"templated": true
}
}
}
]
POST
/api/tenant/v1/subscription/{id}/revoke-access
Nutzer-Zugriff entziehen
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | path | string | Ja | ID des Abonnements |
Request Body · erforderlich
Typ: string
Antworten
Beispiele
Beispielanfrage
curl --request POST \
'https://api.genialster.de/api/tenant/v1/subscription/abc123/revoke-access' \
--header 'X-Api-Key: IHR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '"Beispielwert"'
Beispielantwort
HTTP/1.1 200 OK
POST
/api/tenant/v1/subscription/{id}/toggle-restricted
Zugriffsbeschränkung umschalten
Schaltet zwischen frei zugänglich (jeder eingeladene Nutzer) und beschränkt (nur explizit freigegebene Nutzer) um.
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | path | string | Ja | ID des Abonnements |
Antworten
Beispiele
Beispielanfrage
curl --request POST \
'https://api.genialster.de/api/tenant/v1/subscription/abc123/toggle-restricted' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
GET
/api/tenant/v1/subscription/{id}/usages
Nutzung eines Abonnements abrufen
Pro Nutzer mit Zugriff auf das Abonnement: Fortschritt und ggf. zugehörige Prüfung.
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | path | string | Ja | ID des Abonnements |
Antworten
Liste von SubscriptionUsageTenant
Beispiele
Beispielanfrage
curl --request GET \
'https://api.genialster.de/api/tenant/v1/subscription/abc123/usages' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"course": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"title": "Beispielwert",
"description": {
"rawMarkdown": "Beispielwert"
},
"legalName": "Max Mustermann",
"legalContent": "Beispielwert",
"certificateId": "abc123",
"teachingUnits": 1,
"teachingUnitsOnSite": 1,
"dgsvCertificate": true,
"icon": {
"name": "Max Mustermann",
"url": "Beispielwert"
},
"chapters": [
{
"id": null,
"title": null
}
],
"availableActions": [
"VIEW"
],
"published": true,
"demo": true,
"moduleCount": 1,
"_links": {
"key": null
}
},
"user": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"lastName": "Max Mustermann",
"firstName": "Max Mustermann",
"email": "max@example.com",
"tenantId": "abc123",
"birthDate": "Beispielwert",
"progress": {
"courses": [
null
],
"chapters": [
null
],
"modules": [
null
],
"completedModules": [
null
],
"completedCourses": [
null
],
"completedChapters": [
null
]
},
"experience": 1,
"participatesInLeaderboard": true,
"hasSeenGlobalIntroduction": true,
"_links": {
"key": null
}
},
"subscription": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"tenant": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"legalName": "Max Mustermann",
"description": "Beispielwert",
"address": null,
"contactPerson": "Beispielwert",
"excludeFromStats": true,
"_links": null
},
"course": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"title": "Beispielwert",
"description": null,
"legalName": "Max Mustermann",
"legalContent": "Beispielwert",
"certificateId": "abc123",
"teachingUnits": 1,
"teachingUnitsOnSite": 1,
"dgsvCertificate": true,
"icon": null,
"chapters": [
null
],
"availableActions": [
"VIEW"
],
"published": true,
"demo": true,
"moduleCount": 1,
"_links": null
},
"licenseCount": 1,
"demo": true,
"startDate": "2026-08-06T12:00:00Z",
"endDate": "2026-08-06T12:00:00Z",
"restricted": true,
"_links": {
"key": null
}
},
"exam": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"course": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"title": "Beispielwert",
"description": null,
"legalName": "Max Mustermann",
"legalContent": "Beispielwert",
"certificateId": "abc123",
"teachingUnits": 1,
"teachingUnitsOnSite": 1,
"dgsvCertificate": true,
"icon": null,
"chapters": [
null
],
"availableActions": [
"VIEW"
],
"published": true,
"demo": true,
"moduleCount": 1,
"_links": null
},
"user": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"lastName": "Max Mustermann",
"firstName": "Max Mustermann",
"email": "max@example.com",
"tenantId": "abc123",
"birthDate": "Beispielwert",
"progress": null,
"experience": 1,
"participatesInLeaderboard": true,
"hasSeenGlobalIntroduction": true,
"_links": null
},
"started": true,
"finished": true,
"startedAt": "2026-08-06T12:00:00Z",
"finishedAt": "2026-08-06T12:00:00Z",
"durationInMinutes": 1,
"passed": true,
"points": 1,
"maxPoints": 1,
"_links": {
"key": null
}
},
"active": true,
"_links": {
"key": {
"href": "Beispielwert",
"hreflang": "Beispielwert",
"title": "Beispielwert",
"type": "Beispielwert",
"deprecation": "Beispielwert",
"profile": "Beispielwert",
"name": "Max Mustermann",
"templated": true
}
}
}
]
Nutzer
Nutzer des Tenants und deren Stammdaten/Abonnements.
GET
/api/tenant/v1/user
Nutzer auflisten
Paginierte, per Name/E-Mail durchsuchbare Liste der Nutzer des Tenants.
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| pageable | query | Pageable | Ja | – |
| search | query | string | Nein | Freitextsuche über Name/E-Mail |
| excludeUserIds | query | Array<string> | Nein | Nutzer-IDs, die aus dem Ergebnis ausgeschlossen werden |
Antworten
Modell: PageUser
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| totalElements | integer (int64) | Nein | – |
| totalPages | integer (int32) | Nein | – |
| pageable | PageableObject | Nein | – |
| size | integer (int32) | Nein | – |
| content | Array<User> | Nein | – |
| number | integer (int32) | Nein | – |
| sort | Array<SortObject> | Nein | – |
| numberOfElements | integer (int32) | Nein | – |
| first | boolean | Nein | – |
| last | boolean | Nein | – |
| empty | boolean | Nein | – |
Beispiele
Beispielanfrage
curl --request GET \
'https://api.genialster.de/api/tenant/v1/user?page=1&size=1&search=Mustermann&excludeUserIds=Beispielwert' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
Content-Type: application/json
{
"totalElements": 1,
"totalPages": 1,
"pageable": {
"pageNumber": 1,
"pageSize": 1,
"offset": 1,
"sort": [
{
"direction": "Beispielwert",
"nullHandling": "Beispielwert",
"ascending": true,
"property": "Beispielwert",
"ignoreCase": true
}
],
"paged": true,
"unpaged": true
},
"size": 1,
"content": [
{
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"lastName": "Max Mustermann",
"firstName": "Max Mustermann",
"email": "max@example.com",
"tenantId": "abc123",
"birthDate": "Beispielwert",
"progress": {
"courses": [
null
],
"chapters": [
null
],
"modules": [
null
],
"completedModules": [
null
],
"completedCourses": [
null
],
"completedChapters": [
null
]
},
"experience": 1,
"participatesInLeaderboard": true,
"hasSeenGlobalIntroduction": true,
"_links": {
"key": null
}
}
],
"number": 1,
"sort": [
{
"direction": "Beispielwert",
"nullHandling": "Beispielwert",
"ascending": true,
"property": "Beispielwert",
"ignoreCase": true
}
],
"numberOfElements": 1,
"first": true,
"last": true,
"empty": true
}
GET
/api/tenant/v1/user/{id}
Einzelnen Nutzer abrufen
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | path | string | Ja | ID des Nutzers |
Antworten
Modell: User
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| id | string | Nein | – |
| dateCreated | string | Nein | – |
| lastUpdated | string | Nein | – |
| version | integer (int32) | Nein | – |
| lastName | string | Nein | – |
| firstName | string | Nein | – |
| string | Nein | – | |
| tenantId | string | Nein | – |
| birthDate | string | Nein | – |
| progress | UserProgress | Nein | – |
| experience | integer (int64) | Nein | – |
| participatesInLeaderboard | boolean | Nein | – |
| hasSeenGlobalIntroduction | boolean | Nein | – |
| _links | Links | Nein | – |
Beispiele
Beispielanfrage
curl --request GET \
'https://api.genialster.de/api/tenant/v1/user/abc123' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"lastName": "Max Mustermann",
"firstName": "Max Mustermann",
"email": "max@example.com",
"tenantId": "abc123",
"birthDate": "Beispielwert",
"progress": {
"courses": [
{
"courseId": "abc123",
"chapterId": "abc123",
"completed": true,
"updatedAt": "2026-08-06T12:00:00Z"
}
],
"chapters": [
{
"courseId": "abc123",
"chapterId": "abc123",
"moduleId": "abc123",
"completed": true,
"updatedAt": "2026-08-06T12:00:00Z"
}
],
"modules": [
{
"moduleId": "abc123",
"slideId": "abc123",
"chapterId": "abc123",
"courseId": "abc123",
"completed": true,
"updatedAt": "2026-08-06T12:00:00Z"
}
],
"completedModules": [
{
"moduleId": "abc123",
"slideId": "abc123",
"chapterId": "abc123",
"courseId": "abc123",
"completed": true,
"updatedAt": "2026-08-06T12:00:00Z"
}
],
"completedCourses": [
{
"courseId": "abc123",
"chapterId": "abc123",
"completed": true,
"updatedAt": "2026-08-06T12:00:00Z"
}
],
"completedChapters": [
{
"courseId": "abc123",
"chapterId": "abc123",
"moduleId": "abc123",
"completed": true,
"updatedAt": "2026-08-06T12:00:00Z"
}
]
},
"experience": 1,
"participatesInLeaderboard": true,
"hasSeenGlobalIntroduction": true,
"_links": {
"key": {
"href": "Beispielwert",
"hreflang": "Beispielwert",
"title": "Beispielwert",
"type": "Beispielwert",
"deprecation": "Beispielwert",
"profile": "Beispielwert",
"name": "Max Mustermann",
"templated": true
}
}
}
PUT
/api/tenant/v1/user/{id}
Nutzer-Stammdaten aktualisieren
Aktualisiert Vor-/Nachname und optional das Geburtsdatum (Format dd.MM.yyyy).
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | path | string | Ja | ID des Nutzers |
Request Body · erforderlich
Modell: UserTenantUpdate
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| id | string | Nein | – |
| lastName | string | Nein | – |
| firstName | string | Nein | – |
| birthDate | string | Nein | – |
Antworten
Modell: User
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| id | string | Nein | – |
| dateCreated | string | Nein | – |
| lastUpdated | string | Nein | – |
| version | integer (int32) | Nein | – |
| lastName | string | Nein | – |
| firstName | string | Nein | – |
| string | Nein | – | |
| tenantId | string | Nein | – |
| birthDate | string | Nein | – |
| progress | UserProgress | Nein | – |
| experience | integer (int64) | Nein | – |
| participatesInLeaderboard | boolean | Nein | – |
| hasSeenGlobalIntroduction | boolean | Nein | – |
| _links | Links | Nein | – |
Beispiele
Beispielanfrage
curl --request PUT \
'https://api.genialster.de/api/tenant/v1/user/abc123' \
--header 'X-Api-Key: IHR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"id": "abc123",
"lastName": "Max Mustermann",
"firstName": "Max Mustermann",
"birthDate": "Beispielwert"
}'
Beispielantwort
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"lastName": "Max Mustermann",
"firstName": "Max Mustermann",
"email": "max@example.com",
"tenantId": "abc123",
"birthDate": "Beispielwert",
"progress": {
"courses": [
{
"courseId": "abc123",
"chapterId": "abc123",
"completed": true,
"updatedAt": "2026-08-06T12:00:00Z"
}
],
"chapters": [
{
"courseId": "abc123",
"chapterId": "abc123",
"moduleId": "abc123",
"completed": true,
"updatedAt": "2026-08-06T12:00:00Z"
}
],
"modules": [
{
"moduleId": "abc123",
"slideId": "abc123",
"chapterId": "abc123",
"courseId": "abc123",
"completed": true,
"updatedAt": "2026-08-06T12:00:00Z"
}
],
"completedModules": [
{
"moduleId": "abc123",
"slideId": "abc123",
"chapterId": "abc123",
"courseId": "abc123",
"completed": true,
"updatedAt": "2026-08-06T12:00:00Z"
}
],
"completedCourses": [
{
"courseId": "abc123",
"chapterId": "abc123",
"completed": true,
"updatedAt": "2026-08-06T12:00:00Z"
}
],
"completedChapters": [
{
"courseId": "abc123",
"chapterId": "abc123",
"moduleId": "abc123",
"completed": true,
"updatedAt": "2026-08-06T12:00:00Z"
}
]
},
"experience": 1,
"participatesInLeaderboard": true,
"hasSeenGlobalIntroduction": true,
"_links": {
"key": {
"href": "Beispielwert",
"hreflang": "Beispielwert",
"title": "Beispielwert",
"type": "Beispielwert",
"deprecation": "Beispielwert",
"profile": "Beispielwert",
"name": "Max Mustermann",
"templated": true
}
}
}
DELETE
/api/tenant/v1/user/{id}
Nutzer löschen
Soft-Delete: der Nutzer wird deaktiviert, nicht dauerhaft entfernt.
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | path | string | Ja | ID des Nutzers |
Antworten
Beispiele
Beispielanfrage
curl --request DELETE \
'https://api.genialster.de/api/tenant/v1/user/abc123' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
PUT
/api/tenant/v1/user/{id}/birthdate
Geburtsdatum eines Nutzers aktualisieren
Format dd.MM.yyyy.
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | path | string | Ja | ID des Nutzers |
Request Body · erforderlich
Typ: string
Antworten
Modell: User
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| id | string | Nein | – |
| dateCreated | string | Nein | – |
| lastUpdated | string | Nein | – |
| version | integer (int32) | Nein | – |
| lastName | string | Nein | – |
| firstName | string | Nein | – |
| string | Nein | – | |
| tenantId | string | Nein | – |
| birthDate | string | Nein | – |
| progress | UserProgress | Nein | – |
| experience | integer (int64) | Nein | – |
| participatesInLeaderboard | boolean | Nein | – |
| hasSeenGlobalIntroduction | boolean | Nein | – |
| _links | Links | Nein | – |
Beispiele
Beispielanfrage
curl --request PUT \
'https://api.genialster.de/api/tenant/v1/user/abc123/birthdate' \
--header 'X-Api-Key: IHR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '"Beispielwert"'
Beispielantwort
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"lastName": "Max Mustermann",
"firstName": "Max Mustermann",
"email": "max@example.com",
"tenantId": "abc123",
"birthDate": "Beispielwert",
"progress": {
"courses": [
{
"courseId": "abc123",
"chapterId": "abc123",
"completed": true,
"updatedAt": "2026-08-06T12:00:00Z"
}
],
"chapters": [
{
"courseId": "abc123",
"chapterId": "abc123",
"moduleId": "abc123",
"completed": true,
"updatedAt": "2026-08-06T12:00:00Z"
}
],
"modules": [
{
"moduleId": "abc123",
"slideId": "abc123",
"chapterId": "abc123",
"courseId": "abc123",
"completed": true,
"updatedAt": "2026-08-06T12:00:00Z"
}
],
"completedModules": [
{
"moduleId": "abc123",
"slideId": "abc123",
"chapterId": "abc123",
"courseId": "abc123",
"completed": true,
"updatedAt": "2026-08-06T12:00:00Z"
}
],
"completedCourses": [
{
"courseId": "abc123",
"chapterId": "abc123",
"completed": true,
"updatedAt": "2026-08-06T12:00:00Z"
}
],
"completedChapters": [
{
"courseId": "abc123",
"chapterId": "abc123",
"moduleId": "abc123",
"completed": true,
"updatedAt": "2026-08-06T12:00:00Z"
}
]
},
"experience": 1,
"participatesInLeaderboard": true,
"hasSeenGlobalIntroduction": true,
"_links": {
"key": {
"href": "Beispielwert",
"hreflang": "Beispielwert",
"title": "Beispielwert",
"type": "Beispielwert",
"deprecation": "Beispielwert",
"profile": "Beispielwert",
"name": "Max Mustermann",
"templated": true
}
}
}
GET
/api/tenant/v1/user/{id}/overview
Nutzer-Übersicht abrufen
Aggregierte Fortschritts- und Nutzungsdaten für einen einzelnen Nutzer.
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | path | string | Ja | ID des Nutzers |
Antworten
Modell: UserTenantOverview
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| user | User | Nein | – |
| courseOverviews | Array<CourseUserOverview> | Nein | – |
| subscriptions | Array<Subscription> | Nein | – |
| exams | Array<ExamTenant> | Nein | – |
Beispiele
Beispielanfrage
curl --request GET \
'https://api.genialster.de/api/tenant/v1/user/abc123/overview' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
Content-Type: application/json
{
"user": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"lastName": "Max Mustermann",
"firstName": "Max Mustermann",
"email": "max@example.com",
"tenantId": "abc123",
"birthDate": "Beispielwert",
"progress": {
"courses": [
null
],
"chapters": [
null
],
"modules": [
null
],
"completedModules": [
null
],
"completedCourses": [
null
],
"completedChapters": [
null
]
},
"experience": 1,
"participatesInLeaderboard": true,
"hasSeenGlobalIntroduction": true,
"_links": {
"key": {
"href": null,
"hreflang": null,
"title": null,
"type": null,
"deprecation": null,
"profile": null,
"name": null,
"templated": null
}
}
},
"courseOverviews": [
{
"course": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"title": "Beispielwert",
"description": null,
"legalName": "Max Mustermann",
"legalContent": "Beispielwert",
"certificateId": "abc123",
"teachingUnits": 1,
"teachingUnitsOnSite": 1,
"dgsvCertificate": true,
"icon": null,
"chapters": [
null
],
"availableActions": [
"VIEW"
],
"published": true,
"demo": true,
"moduleCount": 1,
"_links": null
},
"completedModules": 1,
"totalModules": 1,
"examAttempts": 1,
"examState": "NOT_READY",
"subscriptionUsage": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"course": null,
"user": null,
"subscription": null,
"exam": null,
"active": true,
"_links": null
}
}
],
"subscriptions": [
{
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"tenant": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"legalName": "Max Mustermann",
"description": "Beispielwert",
"address": null,
"contactPerson": "Beispielwert",
"excludeFromStats": true,
"_links": null
},
"course": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"title": "Beispielwert",
"description": null,
"legalName": "Max Mustermann",
"legalContent": "Beispielwert",
"certificateId": "abc123",
"teachingUnits": 1,
"teachingUnitsOnSite": 1,
"dgsvCertificate": true,
"icon": null,
"chapters": [
null
],
"availableActions": [
"VIEW"
],
"published": true,
"demo": true,
"moduleCount": 1,
"_links": null
},
"licenseCount": 1,
"demo": true,
"startDate": "2026-08-06T12:00:00Z",
"endDate": "2026-08-06T12:00:00Z",
"restricted": true,
"_links": {
"key": null
}
}
],
"exams": [
{
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"course": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"title": "Beispielwert",
"description": null,
"legalName": "Max Mustermann",
"legalContent": "Beispielwert",
"certificateId": "abc123",
"teachingUnits": 1,
"teachingUnitsOnSite": 1,
"dgsvCertificate": true,
"icon": null,
"chapters": [
null
],
"availableActions": [
"VIEW"
],
"published": true,
"demo": true,
"moduleCount": 1,
"_links": null
},
"user": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"lastName": "Max Mustermann",
"firstName": "Max Mustermann",
"email": "max@example.com",
"tenantId": "abc123",
"birthDate": "Beispielwert",
"progress": null,
"experience": 1,
"participatesInLeaderboard": true,
"hasSeenGlobalIntroduction": true,
"_links": null
},
"started": true,
"finished": true,
"startedAt": "2026-08-06T12:00:00Z",
"finishedAt": "2026-08-06T12:00:00Z",
"durationInMinutes": 1,
"passed": true,
"points": 1,
"maxPoints": 1,
"_links": {
"key": null
}
}
]
}
GET
/api/tenant/v1/user/{id}/subscriptions
Abonnements eines Nutzers auflisten
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | path | string | Ja | ID des Nutzers |
Antworten
Liste von Subscription
Beispiele
Beispielanfrage
curl --request GET \
'https://api.genialster.de/api/tenant/v1/user/abc123/subscriptions' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"tenant": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"legalName": "Max Mustermann",
"description": "Beispielwert",
"address": {
"street": "Beispielwert",
"additional": "Beispielwert",
"city": "Beispielwert",
"zip": "Beispielwert",
"country": "Beispielwert"
},
"contactPerson": "Beispielwert",
"excludeFromStats": true,
"_links": {
"key": null
}
},
"course": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"title": "Beispielwert",
"description": {
"rawMarkdown": "Beispielwert"
},
"legalName": "Max Mustermann",
"legalContent": "Beispielwert",
"certificateId": "abc123",
"teachingUnits": 1,
"teachingUnitsOnSite": 1,
"dgsvCertificate": true,
"icon": {
"name": "Max Mustermann",
"url": "Beispielwert"
},
"chapters": [
{
"id": null,
"title": null
}
],
"availableActions": [
"VIEW"
],
"published": true,
"demo": true,
"moduleCount": 1,
"_links": {
"key": null
}
},
"licenseCount": 1,
"demo": true,
"startDate": "2026-08-06T12:00:00Z",
"endDate": "2026-08-06T12:00:00Z",
"restricted": true,
"_links": {
"key": {
"href": "Beispielwert",
"hreflang": "Beispielwert",
"title": "Beispielwert",
"type": "Beispielwert",
"deprecation": "Beispielwert",
"profile": "Beispielwert",
"name": "Max Mustermann",
"templated": true
}
}
}
]
Prüfungen
Abgelegte Prüfungen der Nutzer des Tenants und ihre Teilnahmebescheinigungen.
GET
/api/tenant/v1/exam
Prüfungen auflisten
Paginierte, per Nutzername durchsuchbare Liste aller Prüfungen des Tenants.
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| pageable | query | Pageable | Ja | – |
| search | query | string | Nein | Freitextsuche über den Nutzernamen |
Antworten
Modell: PageExamTenant
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| totalElements | integer (int64) | Nein | – |
| totalPages | integer (int32) | Nein | – |
| pageable | PageableObject | Nein | – |
| size | integer (int32) | Nein | – |
| content | Array<ExamTenant> | Nein | – |
| number | integer (int32) | Nein | – |
| sort | Array<SortObject> | Nein | – |
| numberOfElements | integer (int32) | Nein | – |
| first | boolean | Nein | – |
| last | boolean | Nein | – |
| empty | boolean | Nein | – |
Beispiele
Beispielanfrage
curl --request GET \
'https://api.genialster.de/api/tenant/v1/exam?page=1&size=1&search=' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
Content-Type: application/json
{
"totalElements": 1,
"totalPages": 1,
"pageable": {
"pageNumber": 1,
"pageSize": 1,
"offset": 1,
"sort": [
{
"direction": "Beispielwert",
"nullHandling": "Beispielwert",
"ascending": true,
"property": "Beispielwert",
"ignoreCase": true
}
],
"paged": true,
"unpaged": true
},
"size": 1,
"content": [
{
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"course": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"title": "Beispielwert",
"description": null,
"legalName": "Max Mustermann",
"legalContent": "Beispielwert",
"certificateId": "abc123",
"teachingUnits": 1,
"teachingUnitsOnSite": 1,
"dgsvCertificate": true,
"icon": null,
"chapters": [
null
],
"availableActions": [
"VIEW"
],
"published": true,
"demo": true,
"moduleCount": 1,
"_links": null
},
"user": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"lastName": "Max Mustermann",
"firstName": "Max Mustermann",
"email": "max@example.com",
"tenantId": "abc123",
"birthDate": "Beispielwert",
"progress": null,
"experience": 1,
"participatesInLeaderboard": true,
"hasSeenGlobalIntroduction": true,
"_links": null
},
"started": true,
"finished": true,
"startedAt": "2026-08-06T12:00:00Z",
"finishedAt": "2026-08-06T12:00:00Z",
"durationInMinutes": 1,
"passed": true,
"points": 1,
"maxPoints": 1,
"_links": {
"key": null
}
}
],
"number": 1,
"sort": [
{
"direction": "Beispielwert",
"nullHandling": "Beispielwert",
"ascending": true,
"property": "Beispielwert",
"ignoreCase": true
}
],
"numberOfElements": 1,
"first": true,
"last": true,
"empty": true
}
GET
/api/tenant/v1/exam/{id}
Einzelne Prüfung abrufen
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | path | string | Ja | ID der Prüfung |
Antworten
Modell: ExamTenant
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| id | string | Nein | – |
| dateCreated | string | Nein | – |
| lastUpdated | string | Nein | – |
| version | integer (int32) | Nein | – |
| course | Course | Nein | – |
| user | User | Nein | – |
| started | boolean | Nein | – |
| finished | boolean | Nein | – |
| startedAt | string (date-time) | Nein | – |
| finishedAt | string (date-time) | Nein | – |
| durationInMinutes | integer (int32) | Nein | – |
| passed | boolean | Nein | – |
| points | integer (int32) | Nein | – |
| maxPoints | integer (int32) | Nein | – |
| _links | Links | Nein | – |
Beispiele
Beispielanfrage
curl --request GET \
'https://api.genialster.de/api/tenant/v1/exam/abc123' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"course": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"title": "Beispielwert",
"description": {
"rawMarkdown": "Beispielwert"
},
"legalName": "Max Mustermann",
"legalContent": "Beispielwert",
"certificateId": "abc123",
"teachingUnits": 1,
"teachingUnitsOnSite": 1,
"dgsvCertificate": true,
"icon": {
"name": "Max Mustermann",
"url": "Beispielwert"
},
"chapters": [
{
"id": "abc123",
"title": "Beispielwert"
}
],
"availableActions": [
"VIEW"
],
"published": true,
"demo": true,
"moduleCount": 1,
"_links": {
"key": {
"href": null,
"hreflang": null,
"title": null,
"type": null,
"deprecation": null,
"profile": null,
"name": null,
"templated": null
}
}
},
"user": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"lastName": "Max Mustermann",
"firstName": "Max Mustermann",
"email": "max@example.com",
"tenantId": "abc123",
"birthDate": "Beispielwert",
"progress": {
"courses": [
null
],
"chapters": [
null
],
"modules": [
null
],
"completedModules": [
null
],
"completedCourses": [
null
],
"completedChapters": [
null
]
},
"experience": 1,
"participatesInLeaderboard": true,
"hasSeenGlobalIntroduction": true,
"_links": {
"key": {
"href": null,
"hreflang": null,
"title": null,
"type": null,
"deprecation": null,
"profile": null,
"name": null,
"templated": null
}
}
},
"started": true,
"finished": true,
"startedAt": "2026-08-06T12:00:00Z",
"finishedAt": "2026-08-06T12:00:00Z",
"durationInMinutes": 1,
"passed": true,
"points": 1,
"maxPoints": 1,
"_links": {
"key": {
"href": "Beispielwert",
"hreflang": "Beispielwert",
"title": "Beispielwert",
"type": "Beispielwert",
"deprecation": "Beispielwert",
"profile": "Beispielwert",
"name": "Max Mustermann",
"templated": true
}
}
}
GET
/api/tenant/v1/exam/{id}/certificate
Teilnahmebescheinigung als PDF abrufen
Nur verfügbar, wenn für die Prüfung ein Zertifikat ausgestellt wurde.
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | path | string | Ja | ID der Prüfung |
Antworten
Typ: string (byte)
Beispiele
Beispielanfrage
curl --request GET \
'https://api.genialster.de/api/tenant/v1/exam/abc123/certificate' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
Content-Type: application/octet-stream
"<Binärdaten>"
Statistiken
Aggregierte Kennzahlen und Fortschrittsübersicht über den Tenant.
GET
/api/tenant/v1/stats/metrics
Tenant-Kennzahlen abrufen
Aggregierte Kennzahlen wie Nutzerzahl, aktive Abonnements und abgeschlossene Kurse.
Antworten
Modell: Metrics
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| totalUsers | integer (int32) | Nein | – |
| slidesCompleted | integer (int32) | Nein | – |
| examsTaken | integer (int32) | Nein | – |
| examsPassed | integer (int32) | Nein | – |
| earnedPoints | integer (int64) | Nein | – |
Beispiele
Beispielanfrage
curl --request GET \
'https://api.genialster.de/api/tenant/v1/stats/metrics' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
Content-Type: application/json
{
"totalUsers": 1,
"slidesCompleted": 1,
"examsTaken": 1,
"examsPassed": 1,
"earnedPoints": 1
}
GET
/api/tenant/v1/stats/progress-overview
Fortschrittsübersicht je Nutzer abrufen
Paginierte, per Namen/E-Mail durchsuchbare Fortschrittsliste aller Nutzer des Tenants.
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| pageable | query | Pageable | Ja | – |
| search | query | string | Nein | Freitextsuche über Name/E-Mail |
Antworten
Modell: PageUserProgressOverview
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| totalElements | integer (int64) | Nein | – |
| totalPages | integer (int32) | Nein | – |
| pageable | PageableObject | Nein | – |
| size | integer (int32) | Nein | – |
| content | Array<UserProgressOverview> | Nein | – |
| number | integer (int32) | Nein | – |
| sort | Array<SortObject> | Nein | – |
| numberOfElements | integer (int32) | Nein | – |
| first | boolean | Nein | – |
| last | boolean | Nein | – |
| empty | boolean | Nein | – |
Beispiele
Beispielanfrage
curl --request GET \
'https://api.genialster.de/api/tenant/v1/stats/progress-overview?page=1&size=1&search=Mustermann' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
Content-Type: application/json
{
"totalElements": 1,
"totalPages": 1,
"pageable": {
"pageNumber": 1,
"pageSize": 1,
"offset": 1,
"sort": [
{
"direction": "Beispielwert",
"nullHandling": "Beispielwert",
"ascending": true,
"property": "Beispielwert",
"ignoreCase": true
}
],
"paged": true,
"unpaged": true
},
"size": 1,
"content": [
{
"user": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"lastName": "Max Mustermann",
"firstName": "Max Mustermann",
"email": "max@example.com",
"tenantId": "abc123",
"birthDate": "Beispielwert",
"progress": null,
"experience": 1,
"participatesInLeaderboard": true,
"hasSeenGlobalIntroduction": true,
"_links": null
},
"courseOverviews": [
{
"course": null,
"completedModules": null,
"totalModules": null,
"examAttempts": null,
"examState": "NOT_READY",
"subscriptionUsage": null
}
]
}
],
"number": 1,
"sort": [
{
"direction": "Beispielwert",
"nullHandling": "Beispielwert",
"ascending": true,
"property": "Beispielwert",
"ignoreCase": true
}
],
"numberOfElements": 1,
"first": true,
"last": true,
"empty": true
}
Verwaltung
Stammdaten des eigenen Tenants sowie Einladungen für neue Nutzer.
POST
/api/tenant/v1/admin/invitation/create
Nicht zugeordnete Einladungscodes erzeugen
Erzeugt zwischen 1 und 100 Einladungscodes ohne hinterlegte E-Mail-Adresse, z.B. zum selbstständigen Verteilen durch den Tenant.
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| subscriptionIds | query | Array<string> | Nein | – |
| numberOfInvitations | query | integer (int32) | Ja | Anzahl der zu erzeugenden Codes (1–100) |
Antworten
Beispiele
Beispielanfrage
curl --request POST \
'https://api.genialster.de/api/tenant/v1/admin/invitation/create?subscriptionIds=Beispielwert&numberOfInvitations=1' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
DELETE
/api/tenant/v1/admin/invitation/delete-all-open
Alle offenen Einladungen schließen
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| subscriptionIds | query | Array<string> | Nein | – |
Antworten
Beispiele
Beispielanfrage
curl --request DELETE \
'https://api.genialster.de/api/tenant/v1/admin/invitation/delete-all-open?subscriptionIds=Beispielwert' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
GET
/api/tenant/v1/admin/invitation/export
Einladungscodes als PDF exportieren
Liefert die zuletzt erzeugten, nicht zugeordneten Einladungscodes als druckfertiges PDF.
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| amount | query | integer (int32) | Ja | Anzahl der zu exportierenden Codes |
Antworten
Typ: string (byte)
Beispiele
Beispielanfrage
curl --request GET \
'https://api.genialster.de/api/tenant/v1/admin/invitation/export?amount=1' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
Content-Type: application/octet-stream
"<Binärdaten>"
GET
/api/tenant/v1/admin/invitation/{id}
Einzelne Einladung abrufen
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | path | string | Ja | ID der Einladung |
Antworten
Modell: Invitation
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| id | string | Nein | – |
| dateCreated | string | Nein | – |
| lastUpdated | string | Nein | – |
| version | integer (int32) | Nein | – |
| token | string | Nein | – |
| used | boolean | Nein | – |
| string | Nein | – | |
| usedDate | string (date-time) | Nein | – |
| user | User | Nein | – |
| tenant | Tenant | Nein | – |
| status | enum | Nein |
–
CREATED
SENDING
SENT
ERROR
USED
|
| _links | Links | Nein | – |
Beispiele
Beispielanfrage
curl --request GET \
'https://api.genialster.de/api/tenant/v1/admin/invitation/abc123' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"token": "Beispielwert",
"used": true,
"email": "max@example.com",
"usedDate": "2026-08-06T12:00:00Z",
"user": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"lastName": "Max Mustermann",
"firstName": "Max Mustermann",
"email": "max@example.com",
"tenantId": "abc123",
"birthDate": "Beispielwert",
"progress": {
"courses": [
null
],
"chapters": [
null
],
"modules": [
null
],
"completedModules": [
null
],
"completedCourses": [
null
],
"completedChapters": [
null
]
},
"experience": 1,
"participatesInLeaderboard": true,
"hasSeenGlobalIntroduction": true,
"_links": {
"key": {
"href": null,
"hreflang": null,
"title": null,
"type": null,
"deprecation": null,
"profile": null,
"name": null,
"templated": null
}
}
},
"tenant": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"legalName": "Max Mustermann",
"description": "Beispielwert",
"address": {
"street": "Beispielwert",
"additional": "Beispielwert",
"city": "Beispielwert",
"zip": "Beispielwert",
"country": "Beispielwert"
},
"contactPerson": "Beispielwert",
"excludeFromStats": true,
"_links": {
"key": {
"href": null,
"hreflang": null,
"title": null,
"type": null,
"deprecation": null,
"profile": null,
"name": null,
"templated": null
}
}
},
"status": "CREATED",
"_links": {
"key": {
"href": "Beispielwert",
"hreflang": "Beispielwert",
"title": "Beispielwert",
"type": "Beispielwert",
"deprecation": "Beispielwert",
"profile": "Beispielwert",
"name": "Max Mustermann",
"templated": true
}
}
}
DELETE
/api/tenant/v1/admin/invitation/{id}
Einladung löschen
Schließt eine offene Einladung; bereits eingelöste Einladungen bleiben unberührt.
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | path | string | Ja | ID der Einladung |
Antworten
Beispiele
Beispielanfrage
curl --request DELETE \
'https://api.genialster.de/api/tenant/v1/admin/invitation/abc123' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
POST
/api/tenant/v1/admin/invitation/{id}/resend
Einladung erneut versenden
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | path | string | Ja | ID der Einladung |
Antworten
Beispiele
Beispielanfrage
curl --request POST \
'https://api.genialster.de/api/tenant/v1/admin/invitation/abc123/resend' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
GET
/api/tenant/v1/admin/invitations
Einladungen durchsuchen
Paginierte, filterbare Liste der Einladungen des Tenants.
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| search | query | string | Nein | Freitextsuche über E-Mail-Adresse |
| statuses | query | Array<enum> | Nein | – |
| pageable | query | Pageable | Ja | – |
Antworten
Modell: PageInvitation
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| totalElements | integer (int64) | Nein | – |
| totalPages | integer (int32) | Nein | – |
| pageable | PageableObject | Nein | – |
| size | integer (int32) | Nein | – |
| content | Array<Invitation> | Nein | – |
| number | integer (int32) | Nein | – |
| sort | Array<SortObject> | Nein | – |
| numberOfElements | integer (int32) | Nein | – |
| first | boolean | Nein | – |
| last | boolean | Nein | – |
| empty | boolean | Nein | – |
Beispiele
Beispielanfrage
curl --request GET \
'https://api.genialster.de/api/tenant/v1/admin/invitations?search=Mustermann&statuses=CREATED&page=1&size=1' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
Content-Type: application/json
{
"totalElements": 1,
"totalPages": 1,
"pageable": {
"pageNumber": 1,
"pageSize": 1,
"offset": 1,
"sort": [
{
"direction": "Beispielwert",
"nullHandling": "Beispielwert",
"ascending": true,
"property": "Beispielwert",
"ignoreCase": true
}
],
"paged": true,
"unpaged": true
},
"size": 1,
"content": [
{
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"token": "Beispielwert",
"used": true,
"email": "max@example.com",
"usedDate": "2026-08-06T12:00:00Z",
"user": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"lastName": "Max Mustermann",
"firstName": "Max Mustermann",
"email": "max@example.com",
"tenantId": "abc123",
"birthDate": "Beispielwert",
"progress": null,
"experience": 1,
"participatesInLeaderboard": true,
"hasSeenGlobalIntroduction": true,
"_links": null
},
"tenant": {
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"legalName": "Max Mustermann",
"description": "Beispielwert",
"address": null,
"contactPerson": "Beispielwert",
"excludeFromStats": true,
"_links": null
},
"status": "CREATED",
"_links": {
"key": null
}
}
],
"number": 1,
"sort": [
{
"direction": "Beispielwert",
"nullHandling": "Beispielwert",
"ascending": true,
"property": "Beispielwert",
"ignoreCase": true
}
],
"numberOfElements": 1,
"first": true,
"last": true,
"empty": true
}
GET
/api/tenant/v1/admin/self
Eigene Tenant-Stammdaten abrufen
Antworten
Beispiele
Beispielanfrage
curl --request GET \
'https://api.genialster.de/api/tenant/v1/admin/self' \
--header 'X-Api-Key: IHR_API_KEY'
Beispielantwort
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"legalName": "Max Mustermann",
"description": "Beispielwert",
"address": {
"street": "Beispielwert",
"additional": "Beispielwert",
"city": "Beispielwert",
"zip": "Beispielwert",
"country": "Beispielwert"
},
"contactPerson": "Beispielwert",
"excludeFromStats": true,
"_links": {
"key": {
"href": "Beispielwert",
"hreflang": "Beispielwert",
"title": "Beispielwert",
"type": "Beispielwert",
"deprecation": "Beispielwert",
"profile": "Beispielwert",
"name": "Max Mustermann",
"templated": true
}
}
}
PUT
/api/tenant/v1/admin/self
Eigene Tenant-Stammdaten aktualisieren
Request Body · erforderlich
Modell: Tenant
Antworten
Beispiele
Beispielanfrage
curl --request PUT \
'https://api.genialster.de/api/tenant/v1/admin/self' \
--header 'X-Api-Key: IHR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"id": "abc123",
"dateCreated": "Beispielwert",
"lastUpdated": "Beispielwert",
"version": 1,
"legalName": "Max Mustermann",
"description": "Beispielwert",
"address": {
"street": "Beispielwert",
"additional": "Beispielwert",
"city": "Beispielwert",
"zip": "Beispielwert",
"country": "Beispielwert"
},
"contactPerson": "Beispielwert",
"excludeFromStats": true,
"_links": {
"key": {
"href": "Beispielwert",
"hreflang": "Beispielwert",
"title": "Beispielwert",
"type": "Beispielwert",
"deprecation": "Beispielwert",
"profile": "Beispielwert",
"name": "Max Mustermann",
"templated": true
}
}
}'
Beispielantwort
HTTP/1.1 200 OK
POST
/api/tenant/v1/admin/send-invitations
Einladungen per E-Mail versenden
Verschickt Einladungs-E-Mails an die angegebenen Adressen. Optional auf bestimmte Abonnements beschränkt; ohne Angabe erhält der eingeladene Nutzer Zugriff auf alle Abonnements des Tenants.
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| subscriptionIds | query | Array<string> | Nein | Abonnement-IDs, auf die die Einladung beschränkt wird |
Request Body · erforderlich
Liste von string
Antworten
Beispiele
Beispielanfrage
curl --request POST \
'https://api.genialster.de/api/tenant/v1/admin/send-invitations?subscriptionIds=Beispielwert' \
--header 'X-Api-Key: IHR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '[
"Beispielwert"
]'
Beispielantwort
HTTP/1.1 200 OK
Datenmodelle
Referenz aller Objekte, die in Requests und Antworten der Kunden API verwendet werden.
Address
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| street | string | Nein | – |
| additional | string | Nein | – |
| city | string | Nein | – |
| zip | string | Nein | – |
| country | string | Nein | – |
ChapterProgress
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| courseId | string | Nein | – |
| chapterId | string | Nein | – |
| moduleId | string | Nein | – |
| completed | boolean | Nein | – |
| updatedAt | string (date-time) | Nein | – |
ChapterReference
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| id | string | Nein | – |
| title | string | Nein | – |
Course
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| id | string | Nein | – |
| dateCreated | string | Nein | – |
| lastUpdated | string | Nein | – |
| version | integer (int32) | Nein | – |
| title | string | Nein | – |
| description | RichText | Nein | – |
| legalName | string | Nein | – |
| legalContent | string | Nein | – |
| certificateId | string | Nein | – |
| teachingUnits | integer (int32) | Nein | – |
| teachingUnitsOnSite | integer (int32) | Nein | – |
| dgsvCertificate | boolean | Nein | – |
| icon | NetworkFile | Nein | – |
| chapters | Array<ChapterReference> | Nein | – |
| availableActions | Array<enum> | Nein |
–
VIEW
EDIT
PERMISSION_MANAGEMENT
|
| published | boolean | Nein | – |
| demo | boolean | Nein | – |
| moduleCount | integer (int32) | Nein | – |
| _links | Links | Nein | – |
CourseOverview
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| course | Course | Nein | – |
| userOverviews | Array<UserCourseOverview> | Nein | – |
| moduleCount | integer (int32) | Nein | – |
| userCount | integer (int32) | Nein | – |
CourseProgress
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| courseId | string | Nein | – |
| chapterId | string | Nein | – |
| completed | boolean | Nein | – |
| updatedAt | string (date-time) | Nein | – |
CourseUserOverview
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| course | Course | Nein | – |
| completedModules | integer (int32) | Nein | – |
| totalModules | integer (int32) | Nein | – |
| examAttempts | integer (int32) | Nein | – |
| examState | enum | Nein |
–
NOT_READY
READY
IN_PROGRESS
PASSED
GRACE_PERIOD
|
| subscriptionUsage | SubscriptionUsageTenant | Nein | – |
ExamTenant
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| id | string | Nein | – |
| dateCreated | string | Nein | – |
| lastUpdated | string | Nein | – |
| version | integer (int32) | Nein | – |
| course | Course | Nein | – |
| user | User | Nein | – |
| started | boolean | Nein | – |
| finished | boolean | Nein | – |
| startedAt | string (date-time) | Nein | – |
| finishedAt | string (date-time) | Nein | – |
| durationInMinutes | integer (int32) | Nein | – |
| passed | boolean | Nein | – |
| points | integer (int32) | Nein | – |
| maxPoints | integer (int32) | Nein | – |
| _links | Links | Nein | – |
Invitation
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| id | string | Nein | – |
| dateCreated | string | Nein | – |
| lastUpdated | string | Nein | – |
| version | integer (int32) | Nein | – |
| token | string | Nein | – |
| used | boolean | Nein | – |
| string | Nein | – | |
| usedDate | string (date-time) | Nein | – |
| user | User | Nein | – |
| tenant | Tenant | Nein | – |
| status | enum | Nein |
–
CREATED
SENDING
SENT
ERROR
USED
|
| _links | Links | Nein | – |
Link
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| href | string | Nein | – |
| hreflang | string | Nein | – |
| title | string | Nein | – |
| type | string | Nein | – |
| deprecation | string | Nein | – |
| profile | string | Nein | – |
| name | string | Nein | – |
| templated | boolean | Nein | – |
Links
Typ: object
Metrics
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| totalUsers | integer (int32) | Nein | – |
| slidesCompleted | integer (int32) | Nein | – |
| examsTaken | integer (int32) | Nein | – |
| examsPassed | integer (int32) | Nein | – |
| earnedPoints | integer (int64) | Nein | – |
ModuleProgress
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| moduleId | string | Nein | – |
| slideId | string | Nein | – |
| chapterId | string | Nein | – |
| courseId | string | Nein | – |
| completed | boolean | Nein | – |
| updatedAt | string (date-time) | Nein | – |
NetworkFile
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| name | string | Ja | – |
| url | string | Ja | – |
PageExamTenant
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| totalElements | integer (int64) | Nein | – |
| totalPages | integer (int32) | Nein | – |
| pageable | PageableObject | Nein | – |
| size | integer (int32) | Nein | – |
| content | Array<ExamTenant> | Nein | – |
| number | integer (int32) | Nein | – |
| sort | Array<SortObject> | Nein | – |
| numberOfElements | integer (int32) | Nein | – |
| first | boolean | Nein | – |
| last | boolean | Nein | – |
| empty | boolean | Nein | – |
PageInvitation
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| totalElements | integer (int64) | Nein | – |
| totalPages | integer (int32) | Nein | – |
| pageable | PageableObject | Nein | – |
| size | integer (int32) | Nein | – |
| content | Array<Invitation> | Nein | – |
| number | integer (int32) | Nein | – |
| sort | Array<SortObject> | Nein | – |
| numberOfElements | integer (int32) | Nein | – |
| first | boolean | Nein | – |
| last | boolean | Nein | – |
| empty | boolean | Nein | – |
PageUser
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| totalElements | integer (int64) | Nein | – |
| totalPages | integer (int32) | Nein | – |
| pageable | PageableObject | Nein | – |
| size | integer (int32) | Nein | – |
| content | Array<User> | Nein | – |
| number | integer (int32) | Nein | – |
| sort | Array<SortObject> | Nein | – |
| numberOfElements | integer (int32) | Nein | – |
| first | boolean | Nein | – |
| last | boolean | Nein | – |
| empty | boolean | Nein | – |
PageUserProgressOverview
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| totalElements | integer (int64) | Nein | – |
| totalPages | integer (int32) | Nein | – |
| pageable | PageableObject | Nein | – |
| size | integer (int32) | Nein | – |
| content | Array<UserProgressOverview> | Nein | – |
| number | integer (int32) | Nein | – |
| sort | Array<SortObject> | Nein | – |
| numberOfElements | integer (int32) | Nein | – |
| first | boolean | Nein | – |
| last | boolean | Nein | – |
| empty | boolean | Nein | – |
Pageable
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| page | integer (int32) | Nein | – |
| size | integer (int32) | Nein | – |
| sort | Array<string> | Nein | – |
PageableObject
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| pageNumber | integer (int32) | Nein | – |
| pageSize | integer (int32) | Nein | – |
| offset | integer (int64) | Nein | – |
| sort | Array<SortObject> | Nein | – |
| paged | boolean | Nein | – |
| unpaged | boolean | Nein | – |
RichText
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| rawMarkdown | string | Nein | – |
SortObject
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| direction | string | Nein | – |
| nullHandling | string | Nein | – |
| ascending | boolean | Nein | – |
| property | string | Nein | – |
| ignoreCase | boolean | Nein | – |
Subscription
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| id | string | Nein | – |
| dateCreated | string | Nein | – |
| lastUpdated | string | Nein | – |
| version | integer (int32) | Nein | – |
| tenant | Tenant | Nein | – |
| course | Course | Nein | – |
| licenseCount | integer (int32) | Nein | – |
| demo | boolean | Nein | – |
| startDate | string (date-time) | Nein | – |
| endDate | string (date-time) | Nein | – |
| restricted | boolean | Nein | – |
| _links | Links | Nein | – |
SubscriptionUsageTenant
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| id | string | Nein | – |
| dateCreated | string | Nein | – |
| lastUpdated | string | Nein | – |
| version | integer (int32) | Nein | – |
| course | Course | Nein | – |
| user | User | Nein | – |
| subscription | Subscription | Nein | – |
| exam | ExamTenant | Nein | – |
| active | boolean | Nein | – |
| _links | Links | Nein | – |
Tenant
UserCourseOverview
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| user | User | Nein | – |
| completedModules | integer (int32) | Nein | – |
| examAttempts | integer (int32) | Nein | – |
| examState | enum | Nein |
–
NOT_READY
READY
IN_PROGRESS
PASSED
GRACE_PERIOD
|
User
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| id | string | Nein | – |
| dateCreated | string | Nein | – |
| lastUpdated | string | Nein | – |
| version | integer (int32) | Nein | – |
| lastName | string | Nein | – |
| firstName | string | Nein | – |
| string | Nein | – | |
| tenantId | string | Nein | – |
| birthDate | string | Nein | – |
| progress | UserProgress | Nein | – |
| experience | integer (int64) | Nein | – |
| participatesInLeaderboard | boolean | Nein | – |
| hasSeenGlobalIntroduction | boolean | Nein | – |
| _links | Links | Nein | – |
UserProgress
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| courses | Array<CourseProgress> | Nein | – |
| chapters | Array<ChapterProgress> | Nein | – |
| modules | Array<ModuleProgress> | Nein | – |
| completedModules | Array<ModuleProgress> | Nein | – |
| completedCourses | Array<CourseProgress> | Nein | – |
| completedChapters | Array<ChapterProgress> | Nein | – |
UserProgressOverview
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| user | User | Nein | – |
| courseOverviews | Array<CourseUserOverview> | Nein | – |
UserTenantOverview
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| user | User | Nein | – |
| courseOverviews | Array<CourseUserOverview> | Nein | – |
| subscriptions | Array<Subscription> | Nein | – |
| exams | Array<ExamTenant> | Nein | – |
UserTenantUpdate
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| id | string | Nein | – |
| lastName | string | Nein | – |
| firstName | string | Nein | – |
| birthDate | string | Nein | – |