API · v1 · stabil
CODEMETA OSDeveloper Center
Konsole öffnen
Entity · learning_units

Learning Unit Schema

Schema-ID
learning_unit
Collection
learning_units
Permissions
  • Lesenlearning_unit_view
  • Anlegenlearning_unit_create
  • Ändernlearning_unit_edit
  • Löschenlearning_unit_delete
Beziehungen

Felder

Learning Unit Schema

learning_units4 Permissions

Schema for individual learning units within a course section

lessonIdstringerforderlich

ID of the parent lesson/section (Lektion)

min 1 Zeichen
courseIdstringerforderlich

ID of the parent course (denormalized)

min 1 Zeichen
titlestringerforderlich

Learning unit title

1–200 Zeichen
typestringerforderlich

Type of learning unit content

videotextquizexamfile_uploadltih5pslides
ordernumbererforderlich

Position within the parent section

≥ 0
isPreviewbooleanoptional

Whether unit can be accessed without enrollment

nullable
isPublishedbooleanoptional

Whether the unit is visible to students

nullable
contentstringoptional

TipTap JSON content for text units

nullable
videoUrlstringoptional

URL of the video

nullable
videoProviderstringoptional

Video hosting provider

uploadyoutubevimeoexternalbunny
nullable
videoDurationSecsnumberoptional

Total video duration in seconds

≥ 0nullable
bunnyVideoIdstringoptional

BunnyCDN Stream video GUID (source of truth for provider "bunny"; playback URL is signed per-request)

nullable
bunnyStatusstringoptional

BunnyCDN Stream processing status for UI feedback

uploadingprocessingreadyerror
nullable
questionPoolIdstringoptional

ID of the question pool to draw from

nullable
questionCountnumberoptional

Number of questions to draw randomly from pool

≥ 1nullable
timeLimitSecsnumberoptional

Time limit in seconds (0 = no limit)

≥ 0nullable
passingScorenumberoptional

Minimum score percentage to pass (0-100)

0 – 100nullable
maxAttemptsnumberoptional

Maximum number of attempts (null = unlimited)

≥ 1nullable
shuffleQuestionsbooleanoptional

Whether to shuffle question order

nullable
shuffleOptionsbooleanoptional

Whether to shuffle answer options

nullable
showCorrectAfterbooleanoptional

Whether to show correct answers after submission

nullable
isGradedbooleanoptional

Whether this unit counts toward gradebook/certificate (default: true for exam, false for quiz)

nullable
allowBackNavigationbooleanoptional

Whether students can navigate back to previous questions (default: true for quiz, false for exam)

nullable
isRequiredForCompletionbooleanoptional

Whether this unit must be completed for course completion (default: true for exam, false for quiz)

nullable
embeddedQuestionsobject[]optional

Inline quiz questions (alternative to question pool)

nullable
_idstringerforderlich
min 1 Zeichenread-only
questionstringerforderlich
min 1 Zeichen
typestringerforderlich
multiple_choicemultiple_responsetrue_falsefill_blankdropdown_blankmatchingorderingshort_text
optionsobject[]optional
nullable
idstringerforderlich
min 1 Zeichen
labelstringerforderlich
min 1 Zeichen
isCorrectbooleanoptional
nullable
correctAnsweroneOferforderlich
pointsnumbererforderlich
≥ 0
explanationstringoptional
nullable
mediaUrlstringoptional
nullable
matchingPairsobject[]optional
nullable
leftstringerforderlich
rightstringerforderlich
orderItemsstring[]optional
nullable
dropdownBlanksobject[]optional
nullable
blankstringerforderlich
optionsstring[]erforderlich
correctstringerforderlich
difficultystringoptional
easymediumhard
nullable
gradingRubricstringoptional
nullable
aiPromptstringoptional
nullable
tagsstring[]optional
nullable
gradingMethodstringoptional

How to calculate final grade from multiple attempts (default: highest)

highestaveragefirstlast
nullable
availableFromdatetimeoptional

Quiz opens at this time (ISO 8601)

nullable
availableUntildatetimeoptional

Quiz closes at this time (ISO 8601)

nullable
lateSubmissionPolicystringoptional

What happens if submitted after availableUntil (default: none)

noneallow_with_penalty
nullable
lateSubmissionPenaltynumberoptional

Percentage deducted for late submission (e.g., 20 = -20%)

0 – 100nullable
reviewOptionsobjectoptional

Granular review options per time window. Overrides showCorrectAfter when set.

nullable
immediatelyAfterobjectoptional
nullable
showScorebooleanoptional
nullable
showCorrectAnswersbooleanoptional
nullable
showFeedbackbooleanoptional
nullable
showPointsbooleanoptional
nullable
afterCloseobjectoptional
nullable
showScorebooleanoptional
nullable
showCorrectAnswersbooleanoptional
nullable
showFeedbackbooleanoptional
nullable
showPointsbooleanoptional
nullable
attemptCooldownMinsnumberoptional

Minimum minutes to wait between attempts

≥ 0nullable
attemptPenaltyPercentnumberoptional

Percentage deducted per subsequent attempt (e.g., 10 = attempt 2 loses 10%, attempt 3 loses 20%)

0 – 100nullable
uploadInstructionsstringoptional

Instructions for file upload assignment

nullable
allowedFileTypesstring[]optional

Allowed MIME types for uploads

nullable
maxFileSizeMbnumberoptional

Maximum file size in MB

≥ 0nullable
ltiToolIdstringoptional

ID of the registered LTI tool (lti_tools collection)

nullable
ltiCustomParamsobjectoptional

Custom parameters for this unit (merged with tool-level defaults)

nullable
ltiOpenInNewTabbooleanoptional

Open the tool in a new tab instead of an inline iframe

nullable
ltiPassingScorenumberoptional

Minimum AGS score (0–100) required to auto-complete this unit

0 – 100nullable
h5pFileIdstringoptional

ID of the uploaded .h5p file in files collection

nullable
h5pContentPathstringoptional

URL path to the extracted H5P content (set by worker after extraction)

nullable
h5pPassingScorenumberoptional

Minimum xAPI score (0–100) required to auto-complete this unit

0 – 100nullable
requirementsobjectoptional

Completion requirements for this unit

nullable
minScorenumberoptional
0 – 100nullable
videoMinPercentnumberoptional
0 – 100nullable
textMinTimeSecsnumberoptional
≥ 0nullable
textScrollPercentnumberoptional
0 – 100nullable
slidesViewedPercentnumberoptional
0 – 100nullable
fileUploadRequiredbooleanoptional
nullable
manualApprovalRequiredbooleanoptional
nullable
resourcesobject[]optional

Additional resources attached to this unit

nullable
namestringerforderlich
min 1 Zeichen
typestringerforderlich
pdflinkdownload
urlurierforderlich
sizenumberoptional
≥ 0nullable
slidesobject[]optional

Ordered slides shown one at a time (type: slides)

nullable
idstringerforderlich
min 1 Zeichen
kindstringoptional
htmlwidgetcheckpoint
nullable
titlestringoptional
nullable
htmlstringoptional
nullable
widgetIdstringoptional
nullable
eyebrowstringoptional
nullable
questionobjectoptional
nullable
_idstringerforderlich
min 1 Zeichenread-only
questionstringerforderlich
min 1 Zeichen
typestringerforderlich
multiple_choicemultiple_responsetrue_falsefill_blankdropdown_blankmatchingorderingshort_text
optionsobject[]optional
nullable
idstringerforderlich
min 1 Zeichen
labelstringerforderlich
min 1 Zeichen
isCorrectbooleanoptional
nullable
correctAnsweroneOferforderlich
pointsnumbererforderlich
≥ 0
explanationstringoptional
nullable
mediaUrlstringoptional
nullable
matchingPairsobject[]optional
nullable
leftstringerforderlich
rightstringerforderlich
orderItemsstring[]optional
nullable
dropdownBlanksobject[]optional
nullable
blankstringerforderlich
optionsstring[]erforderlich
correctstringerforderlich
difficultystringoptional
easymediumhard
nullable
gradingRubricstringoptional
nullable
aiPromptstringoptional
nullable
tagsstring[]optional
nullable
notesstringoptional
nullable
aiReviewEnabledbooleanoptional

Whether AI review is enabled for file upload submissions

nullable
aiReviewPromptstringoptional

Custom AI prompt for reviewing file submissions

max 5000 Zeichennullable
aiReviewRubricstringoptional

Grading rubric for AI review of file submissions

max 10000 Zeichennullable

Standard-Endpoints

Diese Resource folgt dem generischen CRUD-Vertrag der Plattform. Lesen Sie die Konventionen für Pagination, Idempotenz, Optimistic Locking und Audit. Die wichtigsten Endpoints:

  • GET /api/v1/learning_units — Liste, paginiert + filterbar
  • GET /api/v1/learning_units/<id> — Einzelne Entity
  • POST /api/v1/learning_units — Anlegen
  • PATCH /api/v1/learning_units/<id> — Teil-Update
  • DELETE /api/v1/learning_units/<id> — Soft-Delete
  • GET /api/v1/learning_units/<id>/timeline — Audit + Aktivitäten

Suche