openapi: 3.2.0 info: title: Canvas LMS REST Assignment Groups API version: v1 summary: The complete Canvas LMS REST API, converted from the Swagger 1.2 documents Instructure publishes under https://canvas.instructure.com/doc/api/. description: The Canvas LMS REST API covers courses, assignments, quizzes, grades, users, enrollments, accounts, files, modules, rubrics, submissions, SIS imports, LTI, analytics and account administration. contact: name: Instructure Canvas url: https://canvas.instructure.com/doc/api/ license: name: AGPL-3.0 url: https://github.com/instructure/canvas-lms/blob/master/LICENSE servers: - url: https://canvas.instructure.com/api description: Instructure-hosted Canvas (canvas.instructure.com) - url: https://{canvas_host}/api description: Any Canvas instance; Canvas is multi-tenant and self-hostable, so the host is the institution's Canvas domain. variables: canvas_host: default: canvas.instructure.com description: Your institution's Canvas hostname, e.g. school.instructure.com security: - bearerAuth: [] - oauth2: [] tags: - name: Assignment Groups x-resource: assignment_groups externalDocs: url: https://canvas.instructure.com/doc/api/assignment_groups.html paths: /v1/courses/{course_id}/assignment_groups: get: tags: - Assignment Groups operationId: list_assignment_groups summary: List assignment groups description: 'Returns the paginated list of assignment groups for the current context. The returned groups are sorted by their position field.' parameters: - name: course_id in: path schema: type: string required: true description: ID - name: include in: query schema: type: array items: type: string enum: - assignments - discussion_topic - all_dates - assignment_visibility - overrides - submission - observed_users - can_edit - score_statistics - peer_review required: false description: 'Associations to include with the group. "discussion_topic", "all_dates", "can_edit", "assignment_visibility" & "submission" are only valid if "assignments" is also included. "score_statistics" requires that the "assignments" and "submission" options are included. The "assignment_visibility" option additionally requires that the Differentiated Assignments course feature be turned on. If "observed_users" is passed along with "assignments" and "submission", submissions for observed users will also be included as an array. The "peer_review" option requires that the Peer Review Grading course feature be turned on and that "assignments" is included.' - name: assignment_ids in: query schema: type: array items: type: string required: false description: 'If "assignments" are included, optionally return only assignments having their ID in this array. This argument may also be passed as a comma separated string.' - name: exclude_assignment_submission_types in: query schema: type: array items: type: string enum: - online_quiz - discussion_topic - wiki_page - external_tool required: false description: 'If "assignments" are included, those with the specified submission types will be excluded from the assignment groups.' - name: override_assignment_dates in: query schema: type: boolean required: false description: Apply assignment overrides for each assignment, defaults to true. - name: grading_period_id in: query schema: type: integer format: int64 required: false description: 'The id of the grading period in which assignment groups are being requested (Requires grading periods to exist.)' - name: scope_assignments_to_student in: query schema: type: boolean required: false description: 'If true, all assignments returned will apply to the current user in the specified grading period. If assignments apply to other students in the specified grading period, but not the current user, they will not be returned. (Requires the grading_period_id argument and grading periods to exist. In addition, the current user must be a student.)' responses: '200': description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/AssignmentGroup' externalDocs: url: https://canvas.instructure.com/doc/api/assignment_groups.html post: tags: - Assignment Groups operationId: create_assignment_group summary: Create an Assignment Group description: Create a new assignment group for this course. parameters: - name: course_id in: path schema: type: string required: true description: ID requestBody: required: false content: application/json: schema: type: object properties: name: type: string description: The assignment group's name position: type: integer format: int64 description: The position of this assignment group in relation to the other assignment groups group_weight: type: number description: The percent of the total grade that this assignment group represents sis_source_id: type: string description: The sis source id of the Assignment Group integration_data: type: object additionalProperties: true description: The integration data of the Assignment Group application/x-www-form-urlencoded: schema: type: object properties: name: type: string description: The assignment group's name position: type: integer format: int64 description: The position of this assignment group in relation to the other assignment groups group_weight: type: number description: The percent of the total grade that this assignment group represents sis_source_id: type: string description: The sis source id of the Assignment Group integration_data: type: object additionalProperties: true description: The integration data of the Assignment Group responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/AssignmentGroup' externalDocs: url: https://canvas.instructure.com/doc/api/assignment_groups.html /v1/courses/{course_id}/assignment_groups/{assignment_group_id}: get: tags: - Assignment Groups operationId: get_assignment_group summary: Get an Assignment Group description: Returns the assignment group with the given id. parameters: - name: course_id in: path schema: type: string required: true description: ID - name: assignment_group_id in: path schema: type: string required: true description: ID - name: include in: query schema: type: array items: type: string enum: - assignments - discussion_topic - assignment_visibility - submission - score_statistics required: false description: 'Associations to include with the group. "discussion_topic" and "assignment_visibility" and "submission" are only valid if "assignments" is also included. "score_statistics" is only valid if "submission" and "assignments" are also included. The "assignment_visibility" option additionally requires that the Differentiated Assignments course feature be turned on.' - name: override_assignment_dates in: query schema: type: boolean required: false description: Apply assignment overrides for each assignment, defaults to true. - name: grading_period_id in: query schema: type: integer format: int64 required: false description: 'The id of the grading period in which assignment groups are being requested (Requires grading periods to exist on the account)' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/AssignmentGroup' externalDocs: url: https://canvas.instructure.com/doc/api/assignment_groups.html put: tags: - Assignment Groups operationId: edit_assignment_group summary: Edit an Assignment Group description: Modify an existing Assignment Group. parameters: - name: course_id in: path schema: type: string required: true description: ID - name: assignment_group_id in: path schema: type: string required: true description: ID requestBody: required: false content: application/json: schema: type: object properties: name: type: string description: The assignment group's name position: type: integer format: int64 description: The position of this assignment group in relation to the other assignment groups group_weight: type: number description: The percent of the total grade that this assignment group represents sis_source_id: type: string description: The sis source id of the Assignment Group integration_data: type: object additionalProperties: true description: The integration data of the Assignment Group rules: type: string description: 'The grading rules that are applied within this assignment group See the Assignment Group object definition for format' application/x-www-form-urlencoded: schema: type: object properties: name: type: string description: The assignment group's name position: type: integer format: int64 description: The position of this assignment group in relation to the other assignment groups group_weight: type: number description: The percent of the total grade that this assignment group represents sis_source_id: type: string description: The sis source id of the Assignment Group integration_data: type: object additionalProperties: true description: The integration data of the Assignment Group rules: type: string description: 'The grading rules that are applied within this assignment group See the Assignment Group object definition for format' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/AssignmentGroup' externalDocs: url: https://canvas.instructure.com/doc/api/assignment_groups.html delete: tags: - Assignment Groups operationId: destroy_assignment_group summary: Destroy an Assignment Group description: Deletes the assignment group with the given id. parameters: - name: course_id in: path schema: type: string required: true description: ID - name: assignment_group_id in: path schema: type: string required: true description: ID - name: move_assignments_to in: query schema: type: integer format: int64 required: false description: 'The ID of an active Assignment Group to which the assignments that are currently assigned to the destroyed Assignment Group will be assigned. NOTE: If this argument is not provided, any assignments in this Assignment Group will be deleted.' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/AssignmentGroup' externalDocs: url: https://canvas.instructure.com/doc/api/assignment_groups.html components: schemas: AssignmentGroup: type: object properties: id: type: integer example: 1 description: the id of the Assignment Group name: type: string example: group2 description: the name of the Assignment Group position: type: integer example: 7 description: the position of the Assignment Group group_weight: type: integer example: 20 description: the weight of the Assignment Group sis_source_id: type: string example: '1234' description: the sis source id of the Assignment Group integration_data: type: object additionalProperties: true example: '5678': 0954 description: the integration data of the Assignment Group assignments: type: array items: type: integer example: [] description: the assignments in this Assignment Group (see the Assignment API for a detailed list of fields) rules: type: string description: the grading rules that this Assignment Group has securitySchemes: bearerAuth: type: http scheme: bearer description: 'Canvas OAuth2 access token sent as "Authorization: Bearer ". See https://canvas.instructure.com/doc/api/file.oauth.html' oauth2: type: oauth2 description: Canvas OAuth2. See https://canvas.instructure.com/doc/api/file.oauth.html and https://canvas.instructure.com/doc/api/file.oauth_endpoints.html flows: authorizationCode: authorizationUrl: https://canvas.instructure.com/login/oauth2/auth tokenUrl: https://canvas.instructure.com/login/oauth2/token refreshUrl: https://canvas.instructure.com/login/oauth2/token scopes: {} externalDocs: description: Canvas LMS REST API Documentation url: https://canvas.instructure.com/doc/api/ x-generated-from: https://canvas.instructure.com/doc/api/api-docs.json x-provenance: method: derived derived_by: API Evangelist enrichment pipeline (Swagger 1.2 -> OpenAPI 3.1 conversion) source: openapi/_original/swagger-1.2/*.json (144 verbatim first-party Swagger 1.2 documents) source_url: https://canvas.instructure.com/doc/api/api-docs.json fetched: '2026-09-05' http_status: 200