openapi: 3.2.0 info: title: Canvas LMS REST Collaborations 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: Collaborations x-resource: collaborations externalDocs: url: https://canvas.instructure.com/doc/api/collaborations.html paths: /v1/courses/{course_id}/collaborations: get: tags: - Collaborations operationId: list_collaborations_courses summary: List collaborations description: 'A paginated list of collaborations the current user has access to in the context of the course provided in the url. NOTE: this only returns ExternalToolCollaboration type collaborations. curl https:///api/v1/courses/1/collaborations/' parameters: - name: course_id in: path schema: type: string required: true description: ID responses: '200': description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/Collaboration' externalDocs: url: https://canvas.instructure.com/doc/api/collaborations.html /v1/groups/{group_id}/collaborations: get: tags: - Collaborations operationId: list_collaborations_groups summary: List collaborations description: 'A paginated list of collaborations the current user has access to in the context of the course provided in the url. NOTE: this only returns ExternalToolCollaboration type collaborations. curl https:///api/v1/courses/1/collaborations/' parameters: - name: group_id in: path schema: type: string required: true description: ID responses: '200': description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/Collaboration' externalDocs: url: https://canvas.instructure.com/doc/api/collaborations.html /v1/collaborations/{id}/members: get: tags: - Collaborations operationId: list_members_of_collaboration summary: List members of a collaboration description: A paginated list of the collaborators of a given collaboration parameters: - name: id in: path schema: type: string required: true description: ID - name: include in: query schema: type: array items: type: string enum: - collaborator_lti_id - avatar_image_url required: false description: "- \"collaborator_lti_id\": Optional information to include with each member.\n Represents an identifier to be used for the member in an LTI context.\n- \"avatar_image_url\": Optional information to include with each member.\n The url for the avatar of a collaborator with type 'user'." responses: '200': description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/Collaborator' externalDocs: url: https://canvas.instructure.com/doc/api/collaborations.html /v1/courses/{course_id}/potential_collaborators: get: tags: - Collaborations operationId: list_potential_members_courses summary: List potential members description: 'A paginated list of the users who can potentially be added to a collaboration in the given context. For courses, this consists of all enrolled users. For groups, it is comprised of the group members plus the admins of the course containing the group.' parameters: - name: course_id in: path schema: type: string required: true description: ID responses: '200': description: Success content: application/json: schema: type: array items: type: string x-canvas-declared-type: User externalDocs: url: https://canvas.instructure.com/doc/api/collaborations.html /v1/groups/{group_id}/potential_collaborators: get: tags: - Collaborations operationId: list_potential_members_groups summary: List potential members description: 'A paginated list of the users who can potentially be added to a collaboration in the given context. For courses, this consists of all enrolled users. For groups, it is comprised of the group members plus the admins of the course containing the group.' parameters: - name: group_id in: path schema: type: string required: true description: ID responses: '200': description: Success content: application/json: schema: type: array items: type: string x-canvas-declared-type: User externalDocs: url: https://canvas.instructure.com/doc/api/collaborations.html components: schemas: Collaboration: type: object properties: id: type: integer example: 43 description: The unique identifier for the collaboration collaboration_type: type: string example: Microsoft Office description: A name for the type of collaboration document_id: type: string example: oinwoenfe8w8ef_onweufe89fef description: The collaboration document identifier for the collaboration provider user_id: type: integer example: 92 description: The canvas id of the user who created the collaboration context_id: type: integer example: 77 description: The canvas id of the course or group to which the collaboration belongs context_type: type: string example: Course description: The canvas type of the course or group to which the collaboration belongs url: type: string description: The LTI launch url to view collaboration. created_at: type: string format: date-time example: '2012-06-01T00:00:00-06:00' description: The timestamp when the collaboration was created updated_at: type: string format: date-time example: '2012-06-01T00:00:00-06:00' description: The timestamp when the collaboration was last modified description: type: string title: type: string type: type: string example: ExternalToolCollaboration description: Another representation of the collaboration type update_url: type: string description: The LTI launch url to edit the collaboration user_name: type: string example: John Danger description: The name of the user who owns the collaboration Collaborator: type: object properties: id: type: integer example: 12345 description: The unique user or group identifier for the collaborator. type: type: string example: user description: The type of collaborator (e.g. 'user' or 'group'). name: type: string example: Don Draper description: The name of the collaborator. required: - id 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