openapi: 3.2.0 info: title: Canvas LMS REST Names And Role 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: Names And Role x-resource: names_and_role externalDocs: url: https://canvas.instructure.com/doc/api/names_and_role.html paths: /lti/courses/{course_id}/names_and_roles: get: tags: - Names And Role operationId: list_course_memberships summary: List Course Memberships description: Return active NamesAndRoleMemberships in the given course. parameters: - name: course_id in: path schema: type: string required: true description: ID - name: rlid in: query schema: type: string required: false description: 'If specified only NamesAndRoleMemberships with access to the LTI link references by this `rlid` will be included. Also causes the member array to be included for each returned NamesAndRoleMembership. If the `role` parameter is also present, it will be ''and-ed'' together with this parameter' - name: role in: query schema: type: string required: false description: 'If specified only NamesAndRoleMemberships having this role in the given Course will be included. Value must be a fully-qualified LTI/LIS role URN. If the `rlid` parameter is also present, it will be ''and-ed'' together with this parameter' - name: limit in: query schema: type: string required: false description: May be used to limit the number of NamesAndRoleMemberships returned in a page. Defaults to 50. responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/NamesAndRoleMemberships' externalDocs: url: https://canvas.instructure.com/doc/api/names_and_role.html /lti/groups/{group_id}/names_and_roles: get: tags: - Names And Role operationId: list_group_memberships_names_and_role summary: List Group Memberships description: Return active NamesAndRoleMemberships in the given group. parameters: - name: group_id in: path schema: type: string required: true description: ID - name: '`rlid`' in: query schema: type: string required: false description: 'If specified only NamesAndRoleMemberships with access to the LTI link references by this `rlid` will be included. Also causes the member array to be included for each returned NamesAndRoleMembership. If the role parameter is also present, it will be ''and-ed'' together with this parameter' - name: role in: query schema: type: string required: false description: 'If specified only NamesAndRoleMemberships having this role in the given Group will be included. Value must be a fully-qualified LTI/LIS role URN. Further, only http://purl.imsglobal.org/vocab/lis/v2/membership#Member and http://purl.imsglobal.org/vocab/lis/v2/membership#Manager are supported. If the `rlid` parameter is also present, it will be ''and-ed'' together with this parameter' - name: limit in: query schema: type: string required: false description: May be used to limit the number of NamesAndRoleMemberships returned in a page. Defaults to 50. responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/NamesAndRoleMemberships' externalDocs: url: https://canvas.instructure.com/doc/api/names_and_role.html components: schemas: NamesAndRoleMessage: type: object properties: https://purl.imsglobal.org/spec/lti/claim/message_type: type: string example: LtiResourceLinkRequest description: The type of LTI message being described. Always set to 'LtiResourceLinkRequest' enum: - LtiResourceLinkRequest locale: type: string example: en description: The member's preferred locale https://www.instructure.com/canvas_user_id: type: integer example: 1 description: The member's API ID https://www.instructure.com/canvas_user_login_id: type: string example: showell@school.edu description: The member's primary login username https://purl.imsglobal.org/spec/lti/claim/custom: type: object additionalProperties: true example: message_locale: en person_address_timezone: America/Denver description: Expanded LTI custom parameters that pertain to the member (as opposed to the Context) description: Additional attributes which would appear in the LTI launch message were this member to click the specified resource link (`rlid` query parameter) NamesAndRoleMembership: type: object properties: status: type: string example: Active description: Membership state enum: - Active name: type: string example: Sienna Howell description: Member's full name. Only included if tool privacy level is `public` or `name_only`. picture: type: string example: https://example.instructure.com/images/messages/avatar-50.png description: URL to the member's avatar. Only included if tool privacy level is `public`. given_name: type: string example: Sienna description: Member's 'first' name. Only included if tool privacy level is `public` or `name_only`. family_name: type: string example: Howell description: Member's 'last' name. Only included if tool privacy level is `public` or `name_only`. email: type: string example: showell@school.edu description: Member's email address. Only included if tool privacy level is `public` or `email_only`. lis_person_sourcedid: type: string example: 1238.8763.00 description: Member's primary SIS identifier. Only included if tool privacy level is `public` or `name_only`. user_id: type: string example: 535fa085f22b4655f48cd5a36a9215f64c062838 description: Member's unique LTI identifier. roles: type: array items: type: string example: - http://purl.imsglobal.org/vocab/lis/v2/membership#Instructor - http://purl.imsglobal.org/vocab/lis/v2/membership#ContentDeveloper description: Member's roles in the current Context, expressed as LTI/LIS URNs. message: type: array items: $ref: '#/components/schemas/NamesAndRoleMessage' example: - https://purl.imsglobal.org/spec/lti/claim/message_type: LtiResourceLinkRequest locale: en https://www.instructure.com/canvas_user_id: 1 https://www.instructure.com/canvas_user_login_id: showell@school.edu https://purl.imsglobal.org/spec/lti/claim/custom: message_locale: en person_address_timezone: America/Denver description: Only present when the request specifies a `rlid` query parameter. Contains additional attributes which would appear in the LTI launch message were this member to click the link referenced by the `rlid` query parameter description: A member of a LTI Context in one or more roles NamesAndRoleMemberships: type: object properties: id: type: string example: https://example.instructure.com/api/lti/courses/1/names_and_roles?tlid=f91ca4d8-fa84-4a9b-b08e-47d5527416b0 description: Invocation URL context: type: string example: id: 4dde05e8ca1973bcca9bffc13e1548820eee93a3 label: CS-101 title: Computer Science 101 description: The LTI Context containing the memberships members: type: array items: $ref: '#/components/schemas/NamesAndRoleMembership' example: - status: Active name: Sienna Howell picture: https://example.instructure.com/images/messages/avatar-50.png given_name: Sienna family_name: Howell email: showell@school.edu lis_person_sourcedid: 1238.8763.00 user_id: 535fa085f22b4655f48cd5a36a9215f64c062838 roles: - http://purl.imsglobal.org/vocab/lis/v2/membership#Instructor - http://purl.imsglobal.org/vocab/lis/v2/membership#ContentDeveloper message: - https://purl.imsglobal.org/spec/lti/claim/message_type: LtiResourceLinkRequest locale: en https://www.instructure.com/canvas_user_id: 1 https://www.instructure.com/canvas_user_login_id: showell@school.edu https://purl.imsglobal.org/spec/lti/claim/custom: message_locale: en person_address_timezone: America/Denver - status: Active name: Terrence Walls picture: https://example.instructure.com/images/messages/avatar-51.png given_name: Terrence family_name: Walls email: twalls@school.edu lis_person_sourcedid: 5790.3390.11 user_id: 86157096483e6b3a50bfedc6bac902c0b20a824f roles: - http://purl.imsglobal.org/vocab/lis/v2/membership#Learner message: - https://purl.imsglobal.org/spec/lti/claim/message_type: LtiResourceLinkRequest locale: de https://www.instructure.com/canvas_user_id: 2 https://www.instructure.com/canvas_user_login_id: twalls@school.edu https://purl.imsglobal.org/spec/lti/claim/custom: message_locale: en person_address_timezone: Europe/Berlin description: A list of NamesAndRoleMembership 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