DokumentationProdukteArtim Academy LMSMein LernenMein Lernen V1
Aufgabe abgeben
In API Explorer austestenÖffnet den Explorer mit Methode und Pfad dieses Requests.
Reicht eine Abgabe zu einer freigeschalteten Aufgabe ein.
Die Aufgabe muss für dieses Konto freigeschaltet sein; eine gesperrte Aufgabe antwortet mit 403. Es gibt eine Abgabe je Aufgabe und Konto — ein zweiter Aufruf ersetzt den Inhalt der bestehenden, statt eine zweite anzulegen. Bei Gruppenarbeit darf nur das Konto abgeben, das die Gruppe einreicht.
POST https://me.api.lms.artim-industries.com/v1/assignments/{assignmentId}/submissions
| Methode | POST |
| Basis | me.api.lms.artim-industries.com/v1 |
| Scope | lms.me.assignments:write |
| Antwort | 201 |
| Zugang | Developer Mitgliedschaft |
| Auth | Authorization: Bearer lmsapi_… |
Parameter
| Parameter | Ort | Typ | Pflicht | Bedeutung |
|---|---|---|---|---|
assignmentId | Pfad | string | ja | Die Kennung der Aufgabe. |
Anfragekörper
| Feld | Typ | Bedeutung |
|---|---|---|
content | string | Der Text der Abgabe. Pflicht, notfalls als Verweis auf die Anhänge. |
attachments | array | Die Anhänge als {filename, url, mimeType, size} — hochgeladen wird vorher über den Upload des LMS. |
Felder, die der Vertrag nicht nennt, werden verworfen — ein Client kann keine eigenen Felder unterschieben.
{ "content": "Siehe Repository, Branch generics." }
Anfrage
curl -X POST "https://me.api.lms.artim-industries.com/v1/assignments/{assignmentId}/submissions" \
-H "Authorization: Bearer lmsapi_…" \
-H "Content-Type: application/json" \
-d '{ "content": "Siehe Repository, Branch generics." }'
Antwort
| Feld | Typ | Bedeutung |
|---|---|---|
id | string | Die Kennung der Abgabe. |
submittedAt | string | Der Eingangszeitpunkt. |
late | boolean | Ob sie nach der Frist einging. |
status | string | submitted. |
{ "id": "sub_9e04", "submittedAt": "2026-08-28T10:22:00Z", "late": false, "status": "submitted" }
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.