DokumentationProdukteArtim Academy LMSQuizzeQuizze V1

Quiz anlegen

2 min Lesezeit · zuletzt aktualisiert 18. August 2026

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

Legt ein Quiz samt Fragen in einem Kurs an.

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

Parameter

ParameterOrtTypPflichtBedeutung
courseIdPfadstringjaDie Kennung des Kurses aus der Kursliste.

Anfragekörper

FeldTypBedeutung
titlestringDer Titel. Pflicht.
descriptionstringDie Beschreibung.
lessonIdstringDie Lesson, an der es hängt — sie entscheidet über die Freischaltung.
passingScoreintegerDie Schwelle in Prozent. Standard 70.
questionsarrayDie Fragen als {id, type, prompt, options, correctAnswer, requiresManualReview}type ist single, multiple, text, image oder file. Pflicht.

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

{
  "title": "Typen-Quiz",
  "lessonId": "lsn_2b3c",
  "passingScore": 70,
  "questions": [
    {
      "id": "qst_01",
      "type": "single",
      "prompt": "Was beschreibt ein Generic?",
      "options": ["Einen festen Typ", "Einen Typparameter"],
      "correctAnswer": "Einen Typparameter"
    }
  ]
}

Anfrage

curl -X POST "https://quizzes.api.lms.artim-industries.com/v1/courses/{courseId}/quizzes" \
  -H "Authorization: Bearer lmsapi_…" \
  -H "Content-Type: application/json" \
  -d '{ "title": "Typen-Quiz", "lessonId": "lsn_2b3c", "passingScore": 70, "questions": [ { "id": "qst_01", "type": "single", "prompt": "Was beschreibt ein Generic?", "options": ["Einen festen Typ", "Einen Typparameter"], "correctAnswer": "Einen Typparameter" } ] }'

Antwort

FeldTypBedeutung
idstringDie Kennung des neuen Quiz.
titlestringDer Titel.
questionCountintegerWie viele Fragen angelegt wurden.
{ "id": "qz_3311", "title": "Typen-Quiz", "questionCount": 1 }

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.