Resource link ID usage by tool

Resource link ID usage by tool

In LTI 1.3 spec, for id field under resource_link claim it says:

id (REQUIRED). Opaque identifier for a placement of an LTI resource link within a context that MUST be a stable and locally unique to the deployment_id. This value MUST change if the link is copied or exported from one system or context and imported into another system or context. The value of id MUST NOT exceed 255 ASCII characters in length and is case-sensitive.

Does this mean it is generated by the platform or the tool? Is tool supposed to use that ID to render the correct resource for the student? I'm implementing a tool and have 2 alternatives:

  • Platform uses a generic tool launch URL, like
  • Tool checks the resource link ID to determine where to redirect the student.


  • Each resource link on platform side has a dedicated URL, like
  • Tool doesn't really do anything with resource link claim?


Does the spec mandate either one of these flows?


The resource_link_id is

The resource_link_id is generated by the platform (as it has a uniqueness constraint on the platform, though what that is seems in question to me. I just created a post asking for clarification here.)

I think those implementation details are up to you. The only requirements per the spec (as far as I can tell) are that the platform needs a tool launch url. What happens when the platform launches to that tool is up to the tool.

In your first scenario, the tool would need to store information about where that resource link id should point to and perhaps what tool that resource link is associated with. In the second scenario, yes I suppose you don't care what the resource link id is; you just present whatever content that launch endpoint corresponds to.

If you look at the reference implementation, launches use a url pattern like /tools//launch, so they are a bit more like your second scenario.

Re: Resource link ID usage by tool

This document relates to versions of LTI prior to 1.3, but you may find it helpful in describing issues arising for LTI developers: