DokumentationProdukteArtim Academy LMSAufgabenAufgaben V1
Aufgabe anlegen
In API Explorer austestenÖffnet den Explorer mit Methode und Pfad dieses Requests.
Stellt eine Aufgabe in einem Kurs.
Ob ein Schüler sie sieht, entscheidet der Lernpfad: hängt die Aufgabe an einer Lesson, die noch nicht freigeschaltet ist, taucht sie in „Eigene Aufgaben“ erst danach auf.
POST https://assignments.api.lms.artim-industries.com/v1/courses/{courseId}/assignments
| Methode | POST |
| Basis | assignments.api.lms.artim-industries.com/v1 |
| Scope | lms.assignments:write |
| Antwort | 201 |
| Zugang | Developer Mitgliedschaft |
| Auth | Authorization: Bearer lmsapi_… |
Parameter
| Parameter | Ort | Typ | Pflicht | Bedeutung |
|---|---|---|---|---|
courseId | Pfad | string | ja | Die Kennung des Kurses aus der Kursliste. |
Anfragekörper
| Feld | Typ | Bedeutung |
|---|---|---|
title | string | Der Titel. Pflicht. |
description | string | Die Aufgabenstellung. |
lessonId | string | Die Lesson, an der sie hängt — sie entscheidet über die Freischaltung. |
dueDate | string | Die Frist (ISO 8601). |
groupWork | object | Gruppenarbeit als {enabled, mode, groupSize, groups}. |
Felder, die der Vertrag nicht nennt, werden verworfen — ein Client kann keine eigenen Felder unterschieben.
{
"title": "Ein eigener Generic",
"description": "Schreibe eine generische Funktion, die …",
"lessonId": "lsn_44b1",
"dueDate": "2026-09-01T21:59:00Z"
}
Anfrage
curl -X POST "https://assignments.api.lms.artim-industries.com/v1/courses/{courseId}/assignments" \
-H "Authorization: Bearer lmsapi_…" \
-H "Content-Type: application/json" \
-d '{ "title": "Ein eigener Generic", "description": "Schreibe eine generische Funktion, die …", "lessonId": "lsn_44b1", "dueDate": "2026-09-01T21:59:00Z" }'
Antwort
| Feld | Typ | Bedeutung |
|---|---|---|
id | string | Die Kennung der neuen Aufgabe. |
title | string | Der Titel. |
{ "id": "asg_7c21", "title": "Ein eigener Generic" }
Fehler
| Status | code | Wann |
|---|---|---|
400 | invalid_request | Ein Pflichtfeld fehlt, ein Typ passt nicht, oder ein Verweis zeigt auf etwas, das es hier nicht gibt. |
401 | invalid_token | Bearer fehlt, ist unbekannt oder abgelaufen. |
403 | missing_scope | Das Token trägt den Scope dieses Endpunkts nicht. |
404 | not_found | Der Eintrag gehört nicht zum freigegebenen Akademie — oder die Anfrage kam auf der falschen Subdomain an. |
409 | conflict | Der Zustand verbietet die Änderung — der Fehlerkörper nennt den Grund. |
429 | rate_limited | Kontingent erschöpft, siehe Retry-After. |
Jede Fehlerantwort trägt dieselbe Hülle: error.code benennt den Fehler, error.message sagt in einem Satz, was fehlt.
Rate Limits
Das Limit gilt pro Team, nicht pro Token.
| Zugang | Produktion | Sandbox |
|---|---|---|
| Hobby | 60 Anfragen/Minute | ohne Limit |
| Developer Mitgliedschaft | 10.000 Anfragen/Minute | ohne Limit |
Bei 429 sagt der Retry-After-Header, wie lange du warten sollst.