Assignments

Assignments API

API for accessing assignment information.

An ExternalToolTagAttributes object looks like:

{
  // URL to the external tool
  "url": "http://instructure.com",
  // Whether or not there is a new tab for the external tool
  "new_tab": false,
  // the identifier for this tool_tag
  "resource_link_id": "ab81173af98b8c33e66a"
}

A LockInfo object looks like:

{
  // Asset string for the object causing the lock
  "asset_string": "assignment_4",
  // (Optional) Time at which this was/will be unlocked. Must be before the due
  // date.
  "unlock_at": "2013-01-01T00:00:00-06:00",
  // (Optional) Time at which this was/will be locked. Must be after the due date.
  "lock_at": "2013-02-01T00:00:00-06:00",
  // (Optional) Context module causing the lock.
  "context_module": "{}",
  "manually_locked": true
}

A RubricRating object looks like:

A RubricCriteria object looks like:

An AssignmentDate object looks like:

A TurnitinSettings object looks like:

A NeedsGradingCount object looks like:

A ScoreStatistic object looks like:

An Assignment object looks like:

A BasicUser object looks like:

An AssignmentOverride object looks like:

AssignmentsController#destroy

DELETE /api/v1/courses/:course_id/assignments/:id

Scope: url:DELETE|/api/v1/courses/:course_id/assignments/:id

Delete the given assignment.

Example Request:

Returns an Assignment object.

AssignmentsApiController#index

GET /api/v1/courses/:course_id/assignments

Scope: url:GET|/api/v1/courses/:course_id/assignments

GET /api/v1/courses/:course_id/assignment_groups/:assignment_group_id/assignments

Scope: url:GET|/api/v1/courses/:course_id/assignment_groups/:assignment_group_id/assignments

Returns the paginated list of assignments for the current course or assignment group.

Request Parameters:

Parameter
Type
Description

include[]

string

Optional information to include with each assignment:

  • submission

    The current user’s current Submission

  • assignment_visibility

    An array of ids of students who can see the assignment

  • all_dates

    An array of AssignmentDate structures, one for each override, and also a base if the assignment has an “Everyone” / “Everyone Else” date

  • overrides

    An array of AssignmentOverride structures

  • observed_users

    An array of submissions for observed users

  • can_edit

    an extra Boolean value will be included with each Assignment (and AssignmentDate if all_dates is supplied) to indicate whether the caller can edit the assignment or date. Moderated grading and closed grading periods may restrict a user’s ability to edit an assignment.

  • score_statistics

    An object containing min, max, and mean score on this assignment. This will not be included for students if there are less than 5 graded assignments or if disabled by the instructor. Only valid if ‘submission’ is also included.

  • ab_guid

    An array of guid strings for academic benchmarks

Allowed values: submission, assignment_visibility, all_dates, overrides, observed_users, can_edit, score_statistics, ab_guid

search_term

string

The partial title of the assignments to match and return.

override_assignment_dates

boolean

Apply assignment overrides for each assignment, defaults to true.

needs_grading_count_by_section

boolean

Split up “needs_grading_count” by sections into the “needs_grading_count_by_section” key, defaults to false

bucket

string

If included, only return certain assignments depending on due date and submission status.

Allowed values: past, overdue, undated, ungraded, unsubmitted, upcoming, future

assignment_ids[]

string

if set, return only assignments specified

order_by

string

Determines the order of the assignments. Defaults to “position”.

Allowed values: position, name, due_at

post_to_sis

boolean

Return only assignments that have post_to_sis set or not set.

new_quizzes

boolean

Return only New Quizzes assignments

Returns a list of Assignment objects.

AssignmentsApiController#user_index

GET /api/v1/users/:user_id/courses/:course_id/assignments

Scope: url:GET|/api/v1/users/:user_id/courses/:course_id/assignments

Returns the paginated list of assignments for the specified user if the current user has rights to view. See List assignments for valid arguments.

AssignmentsApiController#duplicate

POST /api/v1/courses/:course_id/assignments/:assignment_id/duplicate

Scope: url:POST|/api/v1/courses/:course_id/assignments/:assignment_id/duplicate

Duplicate an assignment and return a json based on result_type argument.

Request Parameters:

Parameter
Type
Description

result_type

string

Optional information: When the root account has the feature ‘newquizzes_on_quiz_pageenabled and this argument is set to “Quiz” the response will be serialized into a quiz format(<a href="doc/api/quizzes.md#Quiz" title="quizzes">quizzes</a>); When this argument isn’t specified the response will be serialized into an assignment format;</p> Allowed values:Quiz`

Example Request:

Returns an Assignment object.

AssignmentsApiController#student_group_members

GET /api/v1/courses/:course_id/assignments/:assignment_id/users/:user_id/group_members

Scope: url:GET|/api/v1/courses/:course_id/assignments/:assignment_id/users/:user_id/group_members

Returns student ids and names for the group.

Example Request:

Returns a list of BasicUser objects.

AssignmentsApiController#show

GET /api/v1/courses/:course_id/assignments/:id

Scope: url:GET|/api/v1/courses/:course_id/assignments/:id

Returns the assignment with the given id.

Request Parameters:

Parameter
Type
Description

include[]

string

Associations to include with the assignment. The “assignment_visibility” option requires that the Differentiated Assignments course feature be turned on. If “observed_users” is passed, submissions for observed users will also be included. For “score_statistics” to be included, the “submission” option must also be set. The “peer_review” option requires that the Peer Review Grading course feature be turned on.

Allowed values: submission, assignment_visibility, overrides, observed_users, can_edit, score_statistics, ab_guid, peer_review

override_assignment_dates

boolean

Apply assignment overrides to the assignment, defaults to true.

needs_grading_count_by_section

boolean

Split up “needs_grading_count” by sections into the “needs_grading_count_by_section” key, defaults to false

all_dates

boolean

All dates associated with the assignment, if applicable

Returns an Assignment object.

AssignmentsApiController#create

POST /api/v1/courses/:course_id/assignments

Scope: url:POST|/api/v1/courses/:course_id/assignments

Create a new assignment for this course. The assignment is created in the active state.

Request Parameters:

Parameter
Type
Description

assignment[name]

Required string

The assignment name.

assignment[position]

integer

The position of this assignment in the group when displaying assignment lists.

assignment[submission_types][]

string

List of supported submission types for the assignment. Unless the assignment is allowing online submissions, the array should only have one element.

If not allowing online submissions, your options are:

If you are allowing online submissions, you can have one or many allowed submission types:

Allowed values: online_quiz, none, on_paper, discussion_topic, external_tool, online_upload, online_text_entry, online_url, media_recording, student_annotation

assignment[allowed_extensions][]

string

Allowed extensions if submission_types includes “online_upload”

Example:

assignment[turnitin_enabled]

boolean

Only applies when the Turnitin plugin is enabled for a course and the submission_types array includes “online_upload”. Toggles Turnitin submissions for the assignment. Will be ignored if Turnitin is not available for the course.

assignment[vericite_enabled]

boolean

Only applies when the VeriCite plugin is enabled for a course and the submission_types array includes “online_upload”. Toggles VeriCite submissions for the assignment. Will be ignored if VeriCite is not available for the course.

assignment[turnitin_settings]

string

Settings to send along to turnitin. See Assignment object definition for format.

assignment[integration_data]

string

Data used for SIS integrations. Requires admin-level token with the “Manage SIS” permission. JSON string required.

assignment[integration_id]

string

Unique ID from third party integrations

assignment[peer_reviews]

boolean

If submission_types does not include external_tool,discussion_topic, online_quiz, or on_paper, determines whether or not peer reviews will be turned on for the assignment.

assignment[automatic_peer_reviews]

boolean

Whether peer reviews will be assigned automatically by Canvas or if teachers must manually assign peer reviews. Does not apply if peer reviews are not enabled.

assignment[notify_of_update]

boolean

If true, Canvas will send a notification to students in the class notifying them that the content has changed.

assignment[group_category_id]

integer

If present, the assignment will become a group assignment assigned to the group.

assignment[grade_group_students_individually]

integer

If this is a group assignment, teachers have the options to grade students individually. If false, Canvas will apply the assignment’s score to each member of the group. If true, the teacher can manually assign scores to each member of the group.

assignment[external_tool_tag_attributes]

string

Hash of external tool parameters if submission_types is [“external_tool”]. See Assignment object definition for format.

assignment[points_possible]

number

The maximum points possible on the assignment.

assignment[grading_type]

string

The strategy used for grading the assignment. The assignment defaults to “points” if this field is omitted.

Allowed values: pass_fail, percent, letter_grade, gpa_scale, points, not_graded

assignment[due_at]

DateTime

The day/time the assignment is due. Must be between the lock dates if there are lock dates. Accepts times in ISO 8601 format, e.g. 2014-10-21T18:48:00Z.

assignment[lock_at]

DateTime

The day/time the assignment is locked after. Must be after the due date if there is a due date. Accepts times in ISO 8601 format, e.g. 2014-10-21T18:48:00Z.

assignment[unlock_at]

DateTime

The day/time the assignment is unlocked. Must be before the due date if there is a due date. Accepts times in ISO 8601 format, e.g. 2014-10-21T18:48:00Z.

assignment[description]

string

The assignment’s description, supports HTML.

assignment[assignment_group_id]

integer

The assignment group id to put the assignment in. Defaults to the top assignment group in the course.

assignment[assignment_overrides][]

AssignmentOverride

List of overrides for the assignment.

assignment[only_visible_to_overrides]

boolean

Whether this assignment is only visible to overrides (Only useful if ‘differentiated assignments’ account setting is on)

assignment[published]

boolean

Whether this assignment is published. (Only useful if ‘draft state’ account setting is on) Unpublished assignments are not visible to students.

assignment[grading_standard_id]

integer

The grading standard id to set for the course. If no value is provided for this argument the current grading_standard will be un-set from this course. This will update the grading_type for the course to ‘letter_grade’ unless it is already ‘gpa_scale’.

assignment[omit_from_final_grade]

boolean

Whether this assignment is counted towards a student’s final grade.

assignment[hide_in_gradebook]

boolean

Whether this assignment is shown in the gradebook.

assignment[quiz_lti]

boolean

Whether this assignment should use the Quizzes 2 LTI tool. Sets the submission type to ‘external_tool’ and configures the external tool attributes to use the Quizzes 2 LTI tool configured for this course. Has no effect if no Quizzes 2 LTI tool is configured.

assignment[moderated_grading]

boolean

Whether this assignment is moderated.

assignment[grader_count]

integer

The maximum number of provisional graders who may issue grades for this assignment. Only relevant for moderated assignments. Must be a positive value, and must be set to 1 if the course has fewer than two active instructors. Otherwise, the maximum value is the number of active instructors in the course minus one, or 10 if the course has more than 11 active instructors.

assignment[final_grader_id]

integer

The user ID of the grader responsible for choosing final grades for this assignment. Only relevant for moderated assignments.

assignment[grader_comments_visible_to_graders]

boolean

Boolean indicating if provisional graders’ comments are visible to other provisional graders. Only relevant for moderated assignments.

assignment[graders_anonymous_to_graders]

boolean

Boolean indicating if provisional graders’ identities are hidden from other provisional graders. Only relevant for moderated assignments.

assignment[graders_names_visible_to_final_grader]

boolean

Boolean indicating if provisional grader identities are visible to the the final grader. Only relevant for moderated assignments.

assignment[anonymous_grading]

boolean

Boolean indicating if the assignment is graded anonymously. If true, graders cannot see student identities.

assignment[allowed_attempts]

integer

The number of submission attempts allowed for this assignment. Set to -1 for unlimited attempts.

assignment[annotatable_attachment_id]

integer

The Attachment ID of the document being annotated.

Only applies when submission_types includes “student_annotation”.

assignment[asset_processors][]

Array

Document processors for this assignment. New document processors can only be added via the interactive LTI Deep Linking flow (in a browser), not via API token or JWT authentication. Deletion of document processors (passing an empty array) is allowed via API.

assignment[peer_review][points_possible]

number

The maximum points possible for peer reviews.

assignment[peer_review][grading_type]

string

The strategy used for grading peer reviews. Defaults to “points” if this field is omitted.

Allowed values: pass_fail, percent, letter_grade, gpa_scale, points, not_graded

assignment[peer_review][due_at]

DateTime

The day/time the peer reviews are due. Must be between the lock dates if there are lock dates. Accepts times in ISO 8601 format, e.g. 2025-08-20T12:10:00Z.

assignment[peer_review][lock_at]

DateTime

The day/time the peer reviews are locked after. Must be after the due date if there is a due date. Accepts times in ISO 8601 format, e.g. 2025-08-25T12:10:00Z.

assignment[peer_review][unlock_at]

DateTime

The day/time the peer reviews are unlocked. Must be before the due date if there is a due date. Accepts times in ISO 8601 format, e.g. 2025-08-15T12:10:00Z.

assignment[peer_review][peer_review_overrides][]

AssignmentOverride

List of overrides for the peer reviews.

Returns an Assignment object.

AssignmentsApiController#update

PUT /api/v1/courses/:course_id/assignments/:id

Scope: url:PUT|/api/v1/courses/:course_id/assignments/:id

Modify an existing assignment.

Request Parameters:

Parameter
Type
Description

assignment[name]

string

The assignment name.

assignment[position]

integer

The position of this assignment in the group when displaying assignment lists.

assignment[submission_types][]

string

Only applies if the assignment doesn’t have student submissions.

List of supported submission types for the assignment. Unless the assignment is allowing online submissions, the array should only have one element.

If not allowing online submissions, your options are:

If you are allowing online submissions, you can have one or many allowed submission types:

Allowed values: online_quiz, none, on_paper, discussion_topic, external_tool, online_upload, online_text_entry, online_url, media_recording, student_annotation

assignment[allowed_extensions][]

string

Allowed extensions if submission_types includes “online_upload”

Example:

assignment[turnitin_enabled]

boolean

Only applies when the Turnitin plugin is enabled for a course and the submission_types array includes “online_upload”. Toggles Turnitin submissions for the assignment. Will be ignored if Turnitin is not available for the course.

assignment[vericite_enabled]

boolean

Only applies when the VeriCite plugin is enabled for a course and the submission_types array includes “online_upload”. Toggles VeriCite submissions for the assignment. Will be ignored if VeriCite is not available for the course.

assignment[turnitin_settings]

string

Settings to send along to turnitin. See Assignment object definition for format.

assignment[sis_assignment_id]

string

The sis id of the Assignment

assignment[integration_data]

string

Data used for SIS integrations. Requires admin-level token with the “Manage SIS” permission. JSON string required.

assignment[integration_id]

string

Unique ID from third party integrations

assignment[peer_reviews]

boolean

If submission_types does not include external_tool,discussion_topic, online_quiz, or on_paper, determines whether or not peer reviews will be turned on for the assignment.

assignment[automatic_peer_reviews]

boolean

Whether peer reviews will be assigned automatically by Canvas or if teachers must manually assign peer reviews. Does not apply if peer reviews are not enabled.

assignment[notify_of_update]

boolean

If true, Canvas will send a notification to students in the class notifying them that the content has changed.

assignment[group_category_id]

integer

If present, the assignment will become a group assignment assigned to the group.

assignment[grade_group_students_individually]

integer

If this is a group assignment, teachers have the options to grade students individually. If false, Canvas will apply the assignment’s score to each member of the group. If true, the teacher can manually assign scores to each member of the group.

assignment[external_tool_tag_attributes]

string

Hash of external tool parameters if submission_types is [“external_tool”]. See Assignment object definition for format.

assignment[points_possible]

number

The maximum points possible on the assignment.

assignment[grading_type]

string

The strategy used for grading the assignment. The assignment defaults to “points” if this field is omitted.

Allowed values: pass_fail, percent, letter_grade, gpa_scale, points, not_graded

assignment[due_at]

DateTime

The day/time the assignment is due. Accepts times in ISO 8601 format, e.g. 2014-10-21T18:48:00Z.

assignment[lock_at]

DateTime

The day/time the assignment is locked after. Must be after the due date if there is a due date. Accepts times in ISO 8601 format, e.g. 2014-10-21T18:48:00Z.

assignment[unlock_at]

DateTime

The day/time the assignment is unlocked. Must be before the due date if there is a due date. Accepts times in ISO 8601 format, e.g. 2014-10-21T18:48:00Z.

assignment[description]

string

The assignment’s description, supports HTML.

assignment[assignment_group_id]

integer

The assignment group id to put the assignment in. Defaults to the top assignment group in the course.

assignment[assignment_overrides][]

AssignmentOverride

List of overrides for the assignment. If the assignment[assignment_overrides] key is absent, any existing overrides are kept as is. If the assignment[assignment_overrides] key is present, existing overrides are updated or deleted (and new ones created, as necessary) to match the provided list.

assignment[only_visible_to_overrides]

boolean

Whether this assignment is only visible to overrides (Only useful if ‘differentiated assignments’ account setting is on)

assignment[published]

boolean

Whether this assignment is published. (Only useful if ‘draft state’ account setting is on) Unpublished assignments are not visible to students.

assignment[grading_standard_id]

integer

The grading standard id to set for the course. If no value is provided for this argument the current grading_standard will be un-set from this course. This will update the grading_type for the course to ‘letter_grade’ unless it is already ‘gpa_scale’.

assignment[omit_from_final_grade]

boolean

Whether this assignment is counted towards a student’s final grade.

assignment[hide_in_gradebook]

boolean

Whether this assignment is shown in the gradebook.

assignment[moderated_grading]

boolean

Whether this assignment is moderated.

assignment[grader_count]

integer

The maximum number of provisional graders who may issue grades for this assignment. Only relevant for moderated assignments. Must be a positive value, and must be set to 1 if the course has fewer than two active instructors. Otherwise, the maximum value is the number of active instructors in the course minus one, or 10 if the course has more than 11 active instructors.

assignment[final_grader_id]

integer

The user ID of the grader responsible for choosing final grades for this assignment. Only relevant for moderated assignments.

assignment[grader_comments_visible_to_graders]

boolean

Boolean indicating if provisional graders’ comments are visible to other provisional graders. Only relevant for moderated assignments.

assignment[graders_anonymous_to_graders]

boolean

Boolean indicating if provisional graders’ identities are hidden from other provisional graders. Only relevant for moderated assignments.

assignment[graders_names_visible_to_final_grader]

boolean

Boolean indicating if provisional grader identities are visible to the the final grader. Only relevant for moderated assignments.

assignment[anonymous_grading]

boolean

Boolean indicating if the assignment is graded anonymously. If true, graders cannot see student identities.

assignment[allowed_attempts]

integer

The number of submission attempts allowed for this assignment. Set to -1 or null for unlimited attempts.

assignment[annotatable_attachment_id]

integer

The Attachment ID of the document being annotated.

Only applies when submission_types includes “student_annotation”.

assignment[asset_processors][]

Array

Document processors for this assignment. New document processors can only be added via the interactive LTI Deep Linking flow (in a browser), not via API token or JWT authentication. Deletion of document processors (passing an empty array) is allowed via API.

assignment[force_updated_at]

boolean

If true, updated_at will be set even if no changes were made.

assignment[peer_review][points_possible]

number

The maximum points possible for peer reviews.

assignment[peer_review][grading_type]

string

The strategy used for grading peer reviews. Defaults to “points” if this field is omitted.

Allowed values: pass_fail, percent, letter_grade, gpa_scale, points, not_graded

assignment[peer_review][due_at]

DateTime

The day/time the peer reviews are due. Must be between the lock dates if there are lock dates. Accepts times in ISO 8601 format, e.g. 2025-08-20T12:10:00Z.

assignment[peer_review][lock_at]

DateTime

The day/time the peer reviews are locked after. Must be after the due date if there is a due date. Accepts times in ISO 8601 format, e.g. 2025-08-25T12:10:00Z.

assignment[peer_review][unlock_at]

DateTime

The day/time the peer reviews are unlocked. Must be before the due date if there is a due date. Accepts times in ISO 8601 format, e.g. 2025-08-15T12:10:00Z.

assignment[peer_review][peer_review_overrides][]

AssignmentOverride

List of overrides for the peer reviews. When updating overrides:

  • Include “id” to update an existing override

  • Omit “id” to create a new override

  • Omit an override from the list to delete it

assignment[submission_types][]

string

[DEPRECATED] Effective 2021-05-26 (notice given 2021-02-18)

Only applies if the assignment doesn’t have student submissions.

Returns an Assignment object.

AssignmentsApiController#bulk_update

PUT /api/v1/courses/:course_id/assignments/bulk_update

Scope: url:PUT|/api/v1/courses/:course_id/assignments/bulk_update

Update due dates and availability dates for multiple assignments in a course.

Accepts a JSON array of objects containing two keys each: id, the assignment id, and all_dates, an array of AssignmentDate structures containing the base and/or override dates for the assignment, as returned from the List assignments endpoint with include[]=all_dates.

This endpoint cannot create or destroy assignment overrides; any existing assignment overrides that are not referenced in the arguments will be left alone. If an override is given, any dates that are not supplied with it will be defaulted. To clear a date, specify null explicitly.

All referenced assignments will be validated before any are saved. A list of errors will be returned if any provided dates are invalid, and no changes will be saved.

The bulk update is performed in a background job, use the Progress API to check its status.

Example Request:

Returns a Progress object.

AssignmentOverridesController#index

GET /api/v1/courses/:course_id/assignments/:assignment_id/overrides

Scope: url:GET|/api/v1/courses/:course_id/assignments/:assignment_id/overrides

Returns the paginated list of overrides for this assignment that target sections/groups/students visible to the current user.

Returns a list of AssignmentOverride objects.

AssignmentOverridesController#show

GET /api/v1/courses/:course_id/assignments/:assignment_id/overrides/:id

Scope: url:GET|/api/v1/courses/:course_id/assignments/:assignment_id/overrides/:id

Returns details of the the override with the given id.

Returns an AssignmentOverride object.

AssignmentOverridesController#group_alias

GET /api/v1/groups/:group_id/assignments/:assignment_id/override

Scope: url:GET|/api/v1/groups/:group_id/assignments/:assignment_id/override

Responds with a redirect to the override for the given group, if any (404 otherwise).

AssignmentOverridesController#section_alias

GET /api/v1/sections/:course_section_id/assignments/:assignment_id/override

Scope: url:GET|/api/v1/sections/:course_section_id/assignments/:assignment_id/override

Responds with a redirect to the override for the given section, if any (404 otherwise).

AssignmentOverridesController#create

POST /api/v1/courses/:course_id/assignments/:assignment_id/overrides

Scope: url:POST|/api/v1/courses/:course_id/assignments/:assignment_id/overrides

One of student_ids, group_id, or course_section_id must be present. At most one should be present; if multiple are present only the most specific (student_ids first, then group_id, then course_section_id) is used and any others are ignored.

Request Parameters:

Parameter
Type
Description

assignment_override[student_ids][]

integer

The IDs of the override’s target students. If present, the IDs must each identify a user with an active student enrollment in the course that is not already targetted by a different adhoc override.

assignment_override[title]

string

The title of the adhoc assignment override. Required if student_ids is present, ignored otherwise (the title is set to the name of the targetted group or section instead).

assignment_override[group_id]

integer

The ID of the override’s target group. If present, the following conditions must be met for the override to be successful:

  1. the assignment MUST be a group assignment (a group_category_id is assigned to it)

  2. the ID must identify an active group in the group set the assignment is in

  3. the ID must not be targetted by a different override

See Appendix: Group assignments for more info.

assignment_override[course_section_id]

integer

The ID of the override’s target section. If present, must identify an active section of the assignment’s course not already targetted by a different override.

assignment_override[due_at]

DateTime

The day/time the overridden assignment is due. Accepts times in ISO 8601 format, e.g. 2014-10-21T18:48:00Z. If absent, this override will not affect due date. May be present but null to indicate the override removes any previous due date.

assignment_override[unlock_at]

DateTime

The day/time the overridden assignment becomes unlocked. Accepts times in ISO 8601 format, e.g. 2014-10-21T18:48:00Z. If absent, this override will not affect the unlock date. May be present but null to indicate the override removes any previous unlock date.

assignment_override[lock_at]

DateTime

The day/time the overridden assignment becomes locked. Accepts times in ISO 8601 format, e.g. 2014-10-21T18:48:00Z. If absent, this override will not affect the lock date. May be present but null to indicate the override removes any previous lock date.

Example Request:

Returns an AssignmentOverride object.

AssignmentOverridesController#update

PUT /api/v1/courses/:course_id/assignments/:assignment_id/overrides/:id

Scope: url:PUT|/api/v1/courses/:course_id/assignments/:assignment_id/overrides/:id

All current overridden values must be supplied if they are to be retained; e.g. if due_at was overridden, but this PUT omits a value for due_at, due_at will no longer be overridden. If the override is adhoc and student_ids is not supplied, the target override set is unchanged. Target override sets cannot be changed for group or section overrides.

Request Parameters:

Parameter
Type
Description

assignment_override[student_ids][]

integer

The IDs of the override’s target students. If present, the IDs must each identify a user with an active student enrollment in the course that is not already targetted by a different adhoc override. Ignored unless the override being updated is adhoc.

assignment_override[title]

string

The title of an adhoc assignment override. Ignored unless the override being updated is adhoc.

assignment_override[due_at]

DateTime

The day/time the overridden assignment is due. Accepts times in ISO 8601 format, e.g. 2014-10-21T18:48:00Z. If absent, this override will not affect due date. May be present but null to indicate the override removes any previous due date.

assignment_override[unlock_at]

DateTime

The day/time the overridden assignment becomes unlocked. Accepts times in ISO 8601 format, e.g. 2014-10-21T18:48:00Z. If absent, this override will not affect the unlock date. May be present but null to indicate the override removes any previous unlock date.

assignment_override[lock_at]

DateTime

The day/time the overridden assignment becomes locked. Accepts times in ISO 8601 format, e.g. 2014-10-21T18:48:00Z. If absent, this override will not affect the lock date. May be present but null to indicate the override removes any previous lock date.

Example Request:

Returns an AssignmentOverride object.

AssignmentOverridesController#destroy

DELETE /api/v1/courses/:course_id/assignments/:assignment_id/overrides/:id

Scope: url:DELETE|/api/v1/courses/:course_id/assignments/:assignment_id/overrides/:id

Deletes an override and returns its former details.

Example Request:

Returns an AssignmentOverride object.

AssignmentOverridesController#batch_retrieve

GET /api/v1/courses/:course_id/assignments/overrides

Scope: url:GET|/api/v1/courses/:course_id/assignments/overrides

Returns a list of specified overrides in this course, providing they target sections/groups/students visible to the current user. Returns null elements in the list for requests that were not found.

Request Parameters:

Parameter
Type
Description

assignment_overrides[][id]

Required string

Ids of overrides to retrieve

assignment_overrides[][assignment_id]

Required string

Ids of assignments for each override

Example Request:

Returns a list of AssignmentOverride objects.

AssignmentOverridesController#batch_create

POST /api/v1/courses/:course_id/assignments/overrides

Scope: url:POST|/api/v1/courses/:course_id/assignments/overrides

Creates the specified overrides for each assignment. Handles creation in a transaction, so all records are created or none are.

One of student_ids, group_id, or course_section_id must be present. At most one should be present; if multiple are present only the most specific (student_ids first, then group_id, then course_section_id) is used and any others are ignored.

Errors are reported in an errors attribute, an array of errors corresponding to inputs. Global errors will be reported as a single element errors array

Request Parameters:

Parameter
Type
Description

assignment_overrides[]

Required AssignmentOverride

Attributes for the new assignment overrides. See Create an assignment override for available attributes

Example Request:

Returns a list of AssignmentOverride objects.

AssignmentOverridesController#batch_update

PUT /api/v1/courses/:course_id/assignments/overrides

Scope: url:PUT|/api/v1/courses/:course_id/assignments/overrides

Updates a list of specified overrides for each assignment. Handles overrides in a transaction, so either all updates are applied or none. See Update an assignment override for available attributes.

All current overridden values must be supplied if they are to be retained; e.g. if due_at was overridden, but this PUT omits a value for due_at, due_at will no longer be overridden. If the override is adhoc and student_ids is not supplied, the target override set is unchanged. Target override sets cannot be changed for group or section overrides.

Errors are reported in an errors attribute, an array of errors corresponding to inputs. Global errors will be reported as a single element errors array

Request Parameters:

Parameter
Type
Description

assignment_overrides[]

Required AssignmentOverride

Attributes for the updated overrides.

Example Request:

Returns a list of AssignmentOverride objects.

Appendixes

Appendix: Group assignments

The following diagram provides an example to describe the structure of group assignments. It also shows the correspondence between the fields of an assignment override API request and the resources they map to.

Group assignments structure example

The components in yellow are group sets. When creating or updating an assignment override, you will refer to the group set by the group_category_id field.

The components in green are groups. An assignment can become a group assignment iff it has a group_category_id that maps to an active group set, as well as a group_id that maps to an active, valid group. In the API, you will be specifying the group by the group_id field of the assignment_override construct.

Important: an assignment must be assigned to a group set (the group_category_id field) on creation for an override with a group_id to be effective.

See Also:


This documentation is generated directly from the Canvas LMS source code, available on Github.

Last updated

Was this helpful?