openapi: 3.2.0 info: title: Canvas LMS REST Favorites 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: Favorites x-resource: favorites externalDocs: url: https://canvas.instructure.com/doc/api/favorites.html paths: /v1/users/self/favorites/courses: get: tags: - Favorites operationId: list_favorite_courses summary: List favorite courses description: 'Retrieve the paginated list of favorite courses for the current user. If the user has not chosen any favorites, then a selection of currently enrolled courses will be returned. See the {api:CoursesController#index List courses API} for details on accepted include[] parameters.' parameters: - name: exclude_blueprint_courses in: query schema: type: boolean required: false description: When set, only return courses that are not configured as blueprint courses. responses: '200': description: Success content: application/json: schema: type: array items: type: string x-canvas-declared-type: Course externalDocs: url: https://canvas.instructure.com/doc/api/favorites.html delete: tags: - Favorites operationId: reset_course_favorites summary: Reset course favorites description: 'Reset the current user''s course favorites to the default automatically generated list of enrolled courses' responses: '200': description: Success, no content returned externalDocs: url: https://canvas.instructure.com/doc/api/favorites.html /v1/users/self/favorites/groups: get: tags: - Favorites operationId: list_favorite_groups summary: List favorite groups description: 'Retrieve the paginated list of favorite groups for the current user. If the user has not chosen any favorites, then a selection of groups that the user is a member of will be returned.' responses: '200': description: Success content: application/json: schema: type: array items: type: string x-canvas-declared-type: Group externalDocs: url: https://canvas.instructure.com/doc/api/favorites.html delete: tags: - Favorites operationId: reset_group_favorites summary: Reset group favorites description: 'Reset the current user''s group favorites to the default automatically generated list of enrolled group' responses: '200': description: Success, no content returned externalDocs: url: https://canvas.instructure.com/doc/api/favorites.html /v1/users/self/favorites/courses/{id}: post: tags: - Favorites operationId: add_course_to_favorites summary: Add course to favorites description: 'Add a course to the current user''s favorites. If the course is already in the user''s favorites, nothing happens. Canvas for Elementary subject and homeroom courses can be added to favorites, but this has no effect in the UI.' parameters: - name: id in: path schema: type: string required: true description: 'The ID or SIS ID of the course to add. The current user must be registered in the course.' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Favorite' externalDocs: url: https://canvas.instructure.com/doc/api/favorites.html delete: tags: - Favorites operationId: remove_course_from_favorites summary: Remove course from favorites description: Remove a course from the current user's favorites. parameters: - name: id in: path schema: type: string required: true description: the ID or SIS ID of the course to remove responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Favorite' externalDocs: url: https://canvas.instructure.com/doc/api/favorites.html /v1/users/self/favorites/groups/{id}: post: tags: - Favorites operationId: add_group_to_favorites summary: Add group to favorites description: 'Add a group to the current user''s favorites. If the group is already in the user''s favorites, nothing happens.' parameters: - name: id in: path schema: type: string required: true description: 'The ID or SIS ID of the group to add. The current user must be a member of the group.' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Favorite' externalDocs: url: https://canvas.instructure.com/doc/api/favorites.html delete: tags: - Favorites operationId: remove_group_from_favorites summary: Remove group from favorites description: Remove a group from the current user's favorites. parameters: - name: id in: path schema: type: string required: true description: the ID or SIS ID of the group to remove responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Favorite' externalDocs: url: https://canvas.instructure.com/doc/api/favorites.html components: schemas: Favorite: type: object properties: context_id: type: integer example: 1170 description: The ID of the object the Favorite refers to context_type: type: string example: Course description: The type of the object the Favorite refers to (currently, only 'Course' is supported) required: - '' 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