openapi: 3.2.0 info: title: Canvas LMS REST Lti Resource Links 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: Lti Resource Links x-resource: lti_resource_links externalDocs: url: https://canvas.instructure.com/doc/api/lti_resource_links.html paths: /v1/courses/{course_id}/lti_resource_links: get: tags: - Lti Resource Links operationId: list_lti_resource_links summary: List LTI Resource Links description: 'Returns all Resource Links in the specified course. This includes links that are associated with Assignments, Module Items, Collaborations, and that are embedded in rich content. This endpoint is paginated, and will return 50 links per page by default. Links are sorted by the order in which they were created.' parameters: - name: course_id in: path schema: type: string required: true description: ID - name: include_deleted in: query schema: type: boolean required: false description: Include deleted resource links and links associated with deleted content in response. Default is false. - name: per_page in: query schema: type: integer format: int64 required: false description: The number of registrations to return per page. Defaults to 50. responses: '200': description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/Lti__ResourceLink' externalDocs: url: https://canvas.instructure.com/doc/api/lti_resource_links.html post: tags: - Lti Resource Links operationId: create_lti_resource_link summary: Create an LTI Resource Link description: 'Create a new LTI Resource Link in the specified course with the provided parameters. Caution! Resource Links are usually created by the tool via LTI Deep Linking. The tool has no knowledge of links created via this API, and may not be able to handle or launch them. Links created using this API cannot be associated with a specific piece of Canvas content, like an Assignment, Module Item, or Collaboration. Links created using this API are only suitable for embedding in rich content using the `canvas_launch_url` provided in the API response. This link will be associated with the ContextExternalTool available in this context that matches the provided url. If a matching tool is not found, the link will not be created and this will return an error.' parameters: - name: course_id in: path schema: type: string required: true description: ID requestBody: required: false content: application/json: schema: type: object properties: url: type: string description: The launch URL for this resource link. title: type: string description: The title of the resource link. custom: type: object additionalProperties: true description: Custom parameters to be sent to the tool when launching this link. required: - url application/x-www-form-urlencoded: schema: type: object properties: url: type: string description: The launch URL for this resource link. title: type: string description: The title of the resource link. custom: type: object additionalProperties: true description: Custom parameters to be sent to the tool when launching this link. required: - url responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Lti__ResourceLink' externalDocs: url: https://canvas.instructure.com/doc/api/lti_resource_links.html /v1/courses/{course_id}/lti_resource_links/{id}: get: tags: - Lti Resource Links operationId: show_lti_resource_link summary: Show an LTI Resource Link description: 'Return details about the specified resource link. The ID can be in the standard Canvas format ("1"), or in these special formats: - resource_link_uuid: - Find the resource link by its resource_link_uuid - lookup_uuid: - Find the resource link by its lookup_uuid' parameters: - name: course_id in: path schema: type: string required: true description: ID - name: id in: path schema: type: string required: true description: ID - name: include_deleted in: query schema: type: boolean required: false description: Include deleted resource links in search. Default is false. responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Lti__ResourceLink' externalDocs: url: https://canvas.instructure.com/doc/api/lti_resource_links.html put: tags: - Lti Resource Links operationId: update_lti_resource_link summary: Update an LTI Resource Link description: 'Update the specified resource link with the provided parameters. Caution! Changing existing links may result in launch errors.' parameters: - name: course_id in: path schema: type: string required: true description: ID - name: id in: path schema: type: string required: true description: ID requestBody: required: false content: application/json: schema: type: object properties: url: type: string description: 'The launch URL for this resource link. Caution! URL must match the URL or domain of the tool associated with this resource link' custom: type: object additionalProperties: true description: 'Custom parameters to be sent to the tool when launching this link. Caution! Changing these from what the tool provided could result in errors if the tool doesn''t see what it''s expecting.' include_deleted: type: boolean description: Update link even if it is deleted. Default is false. context_external_tool_id: type: integer format: int64 description: 'The Canvas identifier for the LTI 1.3 External Tool that the LTI Resource Link was originally installed from. Caution! The resource link url must match the tool''s domain or url.' application/x-www-form-urlencoded: schema: type: object properties: url: type: string description: 'The launch URL for this resource link. Caution! URL must match the URL or domain of the tool associated with this resource link' custom: type: object additionalProperties: true description: 'Custom parameters to be sent to the tool when launching this link. Caution! Changing these from what the tool provided could result in errors if the tool doesn''t see what it''s expecting.' include_deleted: type: boolean description: Update link even if it is deleted. Default is false. context_external_tool_id: type: integer format: int64 description: 'The Canvas identifier for the LTI 1.3 External Tool that the LTI Resource Link was originally installed from. Caution! The resource link url must match the tool''s domain or url.' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Lti__ResourceLink' externalDocs: url: https://canvas.instructure.com/doc/api/lti_resource_links.html delete: tags: - Lti Resource Links operationId: delete_lti_resource_link summary: Delete an LTI Resource Link description: 'Delete the specified resource link. The ID can be in the standard Canvas format ("1"), or in these special formats: - resource_link_uuid: - Find the resource link by its resource_link_uuid - lookup_uuid: - Find the resource link by its lookup_uuid Only links that are not associated with Assignments, Module Items, or Collaborations can be deleted.' parameters: - name: course_id in: path schema: type: string required: true description: ID - name: id in: path schema: type: string required: true description: ID responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Lti__ResourceLink' externalDocs: url: https://canvas.instructure.com/doc/api/lti_resource_links.html /v1/courses/{course_id}/lti_resource_links/bulk: post: tags: - Lti Resource Links operationId: bulk_create_lti_resource_links summary: Bulk Create LTI Resource Links description: 'Create up to 100 new LTI Resource Links in the specified course with the provided parameters. Caution! Resource Links are usually created by the tool via LTI Deep Linking. The tool has no knowledge of links created via this API, and may not be able to handle or launch them. Links created using this API cannot be associated with a specific piece of Canvas content, like an Assignment, Module Item, or Collaboration. Links created using this API are only suitable for embedding in rich content using the `canvas_launch_url` provided in the API response. Each link will be associated with the ContextExternalTool available in this context that matches the provided url. If a matching tool is not found, or any parameters are invalid, no links will be created and this will return an error.' parameters: - name: course_id in: path schema: type: string required: true description: ID requestBody: required: false content: application/json: schema: type: object properties: POST: type: string description: body [Required, Array] The POST body should be a JSON array of objects containing the parameters for each link to create. url: type: array items: type: string description: Each object must contain a launch URL. title: type: array items: type: string description: Each object may contain a title. custom: type: array items: type: object additionalProperties: true description: Custom parameters to be sent to the tool when launching this link. required: - url application/x-www-form-urlencoded: schema: type: object properties: POST: type: string description: body [Required, Array] The POST body should be a JSON array of objects containing the parameters for each link to create. url: type: array items: type: string description: Each object must contain a launch URL. title: type: array items: type: string description: Each object may contain a title. custom: type: array items: type: object additionalProperties: true description: Custom parameters to be sent to the tool when launching this link. required: - url responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Lti__ResourceLink' externalDocs: url: https://canvas.instructure.com/doc/api/lti_resource_links.html components: schemas: Lti__ResourceLink: type: object properties: id: type: integer example: 1 description: The Canvas identifier for the LTI Resource Link. context_id: type: integer example: 1 description: The Canvas identifier for the context that the LTI Resource Link is associated with. context_type: type: string example: Course description: The type of the context that the LTI Resource Link is associated with. enum: - Course - Assignment - Collaboration context_external_tool_id: type: integer example: 1 description: The Canvas identifier for the LTI 1.3 External Tool that the LTI Resource Link was originally installed from. Note that this tool may have been deleted or reinstalled and may not be the tool that would be launched for this url. resource_type: type: string example: assignment description: The type of Canvas content for the resource link. Included for convenience. enum: - assignment - module_item - collaboration - rich_content canvas_launch_url: type: string example: https://example.instructure.com/courses/1/external_tools/retrieve?resource_link_lookup_uuid=ae43ba23-d238-49bc-ab55-ba7f79f77896 description: The Canvas URL that launches the LTI Resource Link. Suitable for use in Canvas rich content resource_link_uuid: type: string example: ae43ba23-d238-49bc-ab55-ba7f79f77896 description: The LTI identifier for the LTI Resource Link, included as the resource_link_id when this link is launched lookup_uuid: type: string example: c522554a-d4be-49ef-b163-9c87fdc6ad6f description: A unique identifier for the LTI Resource Link, present in the rich content representation. Remains the same across content migration. title: type: string example: Assignment 1 description: The title of the LTI Resource Link. Usually tool-provided, or matches the assignment name url: type: string example: https://example.com/lti/launch/content_item/123 description: The tool URL to which the LTI Resource Link will launch lti_1_1_id: type: string example: 6a8aaca162bfc4393804afd4cd53cd94413c48bb description: The LTI 1.1 identifier for the LTI Resource Link, included in lti1p1 migration claim when launched. Only present if tool was migrated from 1.1 to 1.3. created_at: type: string example: '2024-01-01T00:00:00Z' description: Timestamp of the resource link's creation updated_at: type: string example: '2024-01-01T00:00:00Z' description: Timestamp of the resource link's last update workflow_state: type: string example: active description: The state of the resource link enum: - active - deleted associated_content_type: type: string example: ModuleItem description: Type of the associated content this resource link belongs to if present. Now only supports `ModuleItems`, later may be extend others enum: - ModuleItem associated_content_id: type: integer example: 1 description: The Canvas identifier of the associated content, e.g. ModuleItem related to this link. Present if associated_content_type is present 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