Attributes¶
- ASSESSMENT_T¶
We categorize the kinds of assessments that can be performed, and use the term ASSESSMENT_T to stand in for an appropriate string name.
Assessment type
Rubric
- EVAL_T¶
We categorize the kinds of objects that can be associated with (evaluated by) rubrics, and use the term EVAL_T to stand in for an appropriate string name.
Object type for evaluation
Dropbox
ManualAssessment
Quiz
Survey
Discussion
Grades
ContentObject
- RUBRIC_T¶
We categorize the kinds of scoring rubrics into types, and use the term RUBRIC_T to stand in for an appropriate integer value.
Rubric type
Value
Holistic
0
Analytic
1
- SCORING_M¶
We support a number of different ways of scoring when providing assessments. We use the term SCORING_M to stand in for an appropriate integer value.
Scoring method
Value
TextOnly
0
Points
1
TextAndNumeric
2
CustomPoints
3
- RUBRIC_STATE_ID_M¶
We support a number of different rubric states. We use the term RUBRIC_STATE_ID_M to stand in for an appropriate integer value.
Rubric state
Value
Published
0
Archived
1
Draft
2
- VISIBILITY_M¶
We support a number of different visibility states. We use the term VISIBILITY_M to stand in for an appropriate integer value.
Visibility
Value
AlwaysVisible
0
VisibleOnceFeedbackPosted
1
NeverVisible
2
- Rubric.CriteriaGroup¶
{ "Name": <string>, "Levels": [ // Array of Level blocks { <composite:Level> }, { <composite:Level> }, ... ], "Criteria": [ // Array of Criterion blocks { "Id": <number:D2LID>, "Name": <string>, "Cells": [ // Array of CriterionCell blocks { "Feedback": { <composite:RichText> }, "Description": { <composite:RichText> }, "Points": <number:decimal>|null }, { <composite:CriterionCell> }, ... ] }, { <composite:Criterion> }, ... ] }
- Rubric.Level¶
{ "Id": <number:D2LID>, "Name": <string>, "Points": <number:decimal>|null }
- Rubric.OverallLevel¶
{ "Id": <number:D2LID>, "Name": <string>, "RangeStart": <number:decimal>|null, "Description": { <composite:RichText> }, "Feedback": { <composite:RichText> } }
- Description and Feedback properties
Note that these properties require a RichText object.
- Rubric.Rubric¶
Defines a rubric in the abstract, without any attached assessment.
{ "RubricId": <number:D2LID>, "Name": <string>, "Description": "{composite:RichText}", "RubricType": <number:RUBRIC_T>, "RubricStateId": <number:RUBRIC_STATE_ID_M>, "ScoringMethod": <number:SCORING_M>, "Visibility": <number:VISIBILITY_M>, // Added with LMS v20.26.4 "IsScoreVisibleToAssessedUsers": <boolean>, "ReverseLevelDisplayOrder": <boolean>, // Added with LMS v20.26.4 "CriteriaGroups": [ // Array of CriteriaGroup blocks { <composite:CriteriaGroup> }, { <composite:CriteriaGroup> }, ... ], "OverallLevels": [ // Array of OverallLevel blocks { <composite:Overalllevel> }, { <composite:OverallLevel> }, ... ] }
- Rubric.RubricAssessment¶
Defines an assessment with accompanying rubric.
{ "RubricId": <number:D2LID>, "UserId": <number:D2LID>, "ObjectType": <string>, "ObjectId": <number:D2LID>, "OverallOutcome": { "LevelId": <number:D2LID>, "Score": <number:decimal>|null, "ScoreIsOverridden": <boolean>, "Feedback": { <composite:RichText> }, "FeedbackIsOverridden": <boolean>, "AssessorId": <number:D2LID>, "AutoCalculate": <boolean>|null, }, "CriteriaOutcome": [ // Array of CriterionOutcome blocks { "CriterionId": <number:D2LID>, "LevelId": <number:D2LID>|null, "Score": <number:decimal>|null, "ScoreIsOverridden": <boolean>, "Feedback": { <composite:RichText> }, "FeedbackIsOverridden": <boolean> }, { <composite:CriterionOutcome> }, ... ] }
- Rubric.RubricPropertiesUpdate¶
{ "Name": <string>|null, "Description": { <composite:RichTextInput> }|null, "RubricStateId": <number:RUBRIC_STATE_ID_M>|null, "Visibility": <number:VISIBILITY_M>|null, "IsScoreVisibleToAssessedUsers": <boolean>|null, "ReverseLevelDisplayOrder": <boolean>|null }
Note
If you provide a null value for a field when providing this structure, the back-end service will leave the field’s current value un-touched.
- Rubric.CriterionCellInput¶
{ "Feedback": { <composite:RichTextInput> }|null, "Description": { <composite:RichTextInput> }|null, "Points": <number:decimal>|null }
- Feedback, Description
If the rubric’s SCORING_M is TextOnly the value for Feedback must not be null; if the rubric’s SCORING_M is CustomPoints (respectively), the value for Description must not be null.
Note
If you provide a null value for a field when providing this structure, the back-end service will leave the field’s current value un-touched.
- Rubric.CriterionInput¶
{ "Name": <string>, "Cells": [ // Array of CriterionCellInput blocks, one per level { <composite:Rubric.CriterionCellInput> }, { <composite:Rubric.CriterionCellInput> }, ... ] }
- Rubric.LevelInput¶
{ "Name": <string>, "Points": <number:decimal>|null }
- Points
Can be null (meaning the field will be ignored) if the rubric’s SCORING_M is TextOnly. Otherwise, this property must have a non-null number value.
- Rubric.CriteriaGroupInput¶
{ "Name": <string>, "Levels": [ // Array of LevelInput blocks { <composite:Rubric.LevelInput> }, { <composite:Rubric.LevelInput> }, ... ], "Criteria": [ // Array of CriterionInput blocks { <composite:Rubric.CriterionInput> }, { <composite:Rubric.CriterionInput> }, ... ] }
- Rubric.OverallLevelInput¶
{ "Name": <string>, "RangeStart": <number:decimal>|null, "Description": { <composite:RichTextInput> }|null, "Feedback": { <composite:RichTextInput> }|null }
- Description, Feedback
If you provide null for these fields, the back-end service will leave the current value unchanged.
- RangeStart
You must provide a non-null value for this field unless the rubric’s SCORING_M is TextOnly; in this case, you may provide a null value and if so, the back-end service will leave the current value unchanged.
- Rubric.RubricInput¶
Used to create a new rubric, or to replace the contents of an existing one. This structure never includes any identifiers; not for the rubric itself, nor for any of its criteria groups, criteria, levels, or overall levels.
{ "Name": <string>, "Description": { <composite:RichTextInput> }, "RubricType": <number:RUBRIC_T>, "RubricStateId": <number:RUBRIC_STATE_ID_M>, "ScoringMethod": <number:SCORING_M>, "Visibility": <number:VISIBILITY_M>, "IsScoreVisibleToAssessedUsers": <boolean>, "ReverseLevelDisplayOrder": <boolean>, "CriteriaGroups": [ // Array of CriteriaGroupInput blocks { <composite:Rubric.CriteriaGroupInput> }, { <composite:Rubric.CriteriaGroupInput> }, ... ], "OverallLevels": [ // Array of OverallLevelInput blocks { <composite:Rubric.OverallLevelInput> }, { <composite:Rubric.OverallLevelInput> }, ... ] }
All properties other than those documented on the nested
CriterionCellInput,LevelInput, andOverallLevelInputblocks are required.
Actions¶
- DELETE /d2l/api/le/(version)/(orgUnitId)/rubrics/(rubricId)¶
Delete a rubric.
- Parameters:
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
rubricId (D2LID) – Rubric ID.
- Oauth2 Scopes:
rubrics:objects:write
- Status Codes:
204 No Content – Action successful.
403 Forbidden – Not permitted to delete the rubric.
404 Not Found – Rubric does not exist.
409 Conflict – The rubric cannot be deleted because it has one or more rubric associations, or existing assessments.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.97+ – Route first appears in LMS v20.26.8.
- GET /d2l/api/le/(version)/(orgUnitId)/assessment¶
Retrieve an assessment in an org unit.
- Parameters:
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
- Query Parameters:
assessmentType (ASSESSMENT_T) – Assessment type.
objectType (EVAL_T) – Type name for object associated with the assessment.
objectId (D2LID) – Object ID.
rubricId (D2LID) – Rubric ID.
userId (D2LID) – User for whom the assessment applies.
- Oauth2 Scopes:
rubrics:assessments:read
- Status Codes:
200 OK – Action successful.
403 Forbidden – Not permitted to view matched rubric.
404 Not Found – No matching rubrics found.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.93+ – Route first appears in LMS v20.26.4.
Input. You must provide: a particular object type name (for example, Discussion), the identifier for that object, an assessment type, a rubric identifier for the relevant rubric, and the user ID for the user in question.
Return. This action returns a
RubricAssessmentJSON structure.
- GET /d2l/api/le/(version)/(orgUnitId)/rubrics/¶
Retrieve rubrics for an object in an org unit.
- Parameters:
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
- Query Parameters:
- Oauth2 Scopes:
rubrics:objects:read
- Status Codes:
200 OK – Action successful.
403 Forbidden – Not permitted to view one of the matched rubrics.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.93+ – Route first appears in LMS v20.26.4.
Input. You must provide a particular object type name (for example, Discussion), and the identifier for that object.
Return. This action returns a JSON array of
Rubricblocks for all the rubrics that apply to your specified object.
- GET /d2l/api/le/(version)/(orgUnitId)/rubrics/(rubricId)¶
Retrieve a single rubric.
- Parameters:
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
rubricId (D2LID) – Rubric ID.
- Oauth2 Scopes:
rubrics:objects:read
- Status Codes:
200 OK – Action successful.
403 Forbidden – Not authorized to view rubric.
404 Not Found – Rubric does not exist.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.97+ – Route first appears in LMS v20.26.8.
Return. This action returns a single
RubricJSON block.
- POST /d2l/api/le/(version)/(orgUnitId)/rubrics/¶
Create a new rubric in an org unit.
- Parameters:
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
- JSON Parameters:
RubricInput (
Rubric.RubricInput) – New rubric data (see input description).
- Oauth2 Scopes:
rubrics:objects:write
- Status Codes:
201 Created – Action successful.
400 Bad Request – Invalid JSON, or a missing or invalid required field.
403 Forbidden – Not permitted to create rubrics.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.97+ – Route first appears in LMS v20.26.8.
Input. Provide a
RubricInputJSON block describing the new rubric.Return. This action returns the newly created rubric as a full
RubricJSON block.
- PUT /d2l/api/le/(version)/(orgUnitId)/assessment¶
Update an assessment in an org unit.
- Parameters:
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
- JSON Parameters:
RubricAssessment (JSON composite) – Required. Updated assessment properties (see input description).
- Query Parameters:
- Oauth2 Scopes:
rubrics:assessments:write
- Status Codes:
200 OK – Action successful.
403 Forbidden – Not permitted to view matched rubric.
404 Not Found – No matching rubrics found.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.93+ – Route first appears in LMS v20.26.4.
Input. You must provide a query parameter value for: a particular object type name (for example, Discussion); the identifier for that object; and, the user ID for the user in question. You must also provide a JSON block for the
updated assessment.Return. This action returns the updated value of the assessment in a
RubricAssessmentJSON structure.
- PUT /d2l/api/le/(version)/(orgUnitId)/rubrics/(rubricId)¶
Update an existing rubric, including its criteria groups, criteria, levels, and overall levels.
- Parameters:
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
rubricId (D2LID) – Rubric ID.
- JSON Parameters:
RubricInput (
Rubric.RubricInput) – Updated rubric data (see input description).
- Oauth2 Scopes:
rubrics:objects:write
- Status Codes:
200 OK – Action successful.
400 Bad Request – Invalid JSON, or a missing or invalid required field.
403 Forbidden – Not permitted to modify the rubric.
404 Not Found – Rubric does not exist.
409 Conflict – The update makes a structural change to the rubric, and the rubric already has existing assessments.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.97+ – Route first appears in LMS v20.26.8.
Input. Provide a
RubricInputJSON block.Return. This action returns the updated rubric as a full
RubricJSON block.
- PUT /d2l/api/le/(version)/(orgUnitId)/rubrics/info/(rubricId)¶
Update a small set of basic properties on an existing rubric.
- Parameters:
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
rubricId (D2LID) – Rubric ID.
- JSON Parameters:
RubricPropertiesPut (
Rubric.RubricPropertiesUpdate) – Updated rubric properties (see input description).
- Oauth2 Scopes:
rubrics:objects:write
- Status Codes:
200 OK – Action successful.
403 Forbidden – Not permitted to modify the rubric.
404 Not Found – Rubric does not exist.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.97+ – Route first appears in LMS v20.26.8.
Input. Provide a
RubricPropertiesUpdateJSON block.Return. This action returns the full updated rubric as a
RubricJSON block.