DokumentationProdukteArtim Academy LMSKurseKurse V1

Lesson anlegen

2 min Lesezeit · zuletzt aktualisiert 18. August 2026

In API Explorer austestenÖffnet den Explorer mit Methode und Pfad dieses Requests.

Legt eine Lesson in einem Modul des Kurses an.

type: "external" verlangt eine freigegebene Lesson-App: content.externalAppId muss die Kennung einer App sein, die die Plattform für diese Akademie freigegeben hat, und content.externalUrl ihre Startadresse. Wie eine solche App entsteht, steht im Lesson-SDK.

POST https://courses.api.lms.artim-industries.com/v1/courses/{id}/lessons
MethodePOST
Basiscourses.api.lms.artim-industries.com/v1
Scopelms.courses.lessons:write
Antwort201
ZugangDeveloper Mitgliedschaft
AuthAuthorization: Bearer lmsapi_…

Parameter

ParameterOrtTypPflichtBedeutung
idPfadstringjaDie Kennung des Kurses.

Anfragekörper

FeldTypBedeutung
moduleIdstringDas Modul, in das sie gehört. Pflicht.
titlestringDer Titel. Pflicht.
typestringvideo, text, quiz, assignment, code-review oder external. Pflicht.
orderintegerDie Position im Modul.
durationintegerGeschätzte Dauer in Minuten.
contentobjectDer Inhalt — videoUrl, text, attachments, oder bei external externalAppId und externalUrl.

Felder, die der Vertrag nicht nennt, werden verworfen — ein Client kann keine eigenen Felder unterschieben.

{
  "moduleId": "mod_02",
  "title": "Generics",
  "type": "video",
  "order": 3,
  "duration": 18,
  "content": { "videoUrl": "https://cdn.example.com/generics.mp4" }
}

Anfrage

curl -X POST "https://courses.api.lms.artim-industries.com/v1/courses/{id}/lessons" \
  -H "Authorization: Bearer lmsapi_…" \
  -H "Content-Type: application/json" \
  -d '{ "moduleId": "mod_02", "title": "Generics", "type": "video", "order": 3, "duration": 18, "content": { "videoUrl": "https://cdn.example.com/generics.mp4" } }'

Antwort

FeldTypBedeutung
idstringDie Kennung der neuen Lesson.
titlestringDer Titel.
orderintegerDie Position.
{ "id": "lsn_44b1", "title": "Generics", "order": 3 }

Fehler

StatuscodeWann
400invalid_requestEin Pflichtfeld fehlt, ein Typ passt nicht, oder ein Verweis zeigt auf etwas, das es hier nicht gibt.
401invalid_tokenBearer fehlt, ist unbekannt oder abgelaufen.
403missing_scopeDas Token trägt den Scope dieses Endpunkts nicht.
404not_foundDer Eintrag gehört nicht zum freigegebenen Akademie — oder die Anfrage kam auf der falschen Subdomain an.
409conflictDer Zustand verbietet die Änderung — der Fehlerkörper nennt den Grund.
429rate_limitedKontingent 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.

ZugangProduktionSandbox
Hobby60 Anfragen/Minuteohne Limit
Developer Mitgliedschaft10.000 Anfragen/Minuteohne Limit

Bei 429 sagt der Retry-After-Header, wie lange du warten sollst.