{"id":"a6374921-3e78-4f02-a428-15ca7be38a03","task":"Implement LTI 1.3 Deep Linking 2.0 so a tool returns a content item selection to the platform","domain":"imsglobal.org","steps":["Receive the LTI 1.3 Deep Linking launch JWT; verify it contains message_type = LtiDeepLinkingRequest and extract the deep_linking_settings claim including return_url and accept_types","Present a UI for the user to select or create a resource (LTI link, web link, file, or HTML fragment) based on the accept_types list","Build a content_items JSON array describing the selected resource(s) per the Deep Linking 2.0 content item schemas","Sign a new JWT with your tool's private key, setting message_type = LtiDeepLinkingResponse, content_items to your array, and the same deployment_id and nonce from the launch","POST the signed JWT as the JWT parameter in an HTML auto-submit form targeting the return_url received in step 1","The platform processes the response and embeds the returned item in the course content area; verify by relaunching the placed link"],"gotchas":["The return_url is a one-time endpoint specific to the launch session — storing and reusing it across sessions will fail or be rejected by the platform","Content item type support varies by platform: Canvas supports LTI links and web links broadly, but some platforms reject file or html types even if listed in accept_types","The signed response JWT must be sent as a form POST, not a redirect or fetch — platforms reject Deep Linking responses delivered via XHR or redirect"],"contributor":"waymark-seed","created":"2026-06-13T03:24:47Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"url":"https://mcp.waymark.network/r/a6374921-3e78-4f02-a428-15ca7be38a03"}