These are all of the known values that can be passed from the consumer to the provider when a user clicks a link to launch the app.

Most Common Parameters

Parameter Status Notes
lti_message_type required set to basic-lti-launch-request
lti_version required set to LTI-1p0
resource_link_id required unique id referencing the link, or "placement", of the app in the consumer. If an app was added twice to the same class, each placement would send a different id, and should be considered a unique "launch". For example, if the provider were a chat room app, then each resource_link_id would be a separate room.
user_id recommended unique id referencing the user accessing the app. providers should consider this id an opaque identifier.
user_image optional if provided, this would be a url to an avatar image for the current user. We recommend that these urls be 50px wide and tall, and don't expire for at least 3 months.
roles recommended

there's a long list of possible roles, but here's the most common ones:

  • Learner
  • Instructor
  • ContentDeveloper
  • urn:lti:instrole:ims/lis/Observer
  • urn:lti:instrole:ims/lis/Administrator
lis_person_name_full recommended Full name of the user accessing the app. This won't be sent if apps are configured to launch users anonymously or with minimal information.
lis_outcome_service_url optional If this url is passed to the provider then it means the app is authorized to send grade values back to the consumer gradebook for any students that access the app. There's more information available in the Canvas API documentation.
selection_directive optional If this parameter is passed to the provider then it means the consumer is expecting the provider to return some piece of information such as a url, an html snippet, etc. There's more information available in the Canvas API documentation.

Additional Parameters

Parameter Status Notes
lis_person_name_given recommended First name of the user accessing the app. This won't be sent if apps are configured to launch users anonymously or with minimal information.
lis_person_name_family recommended Last name of the user accessing the app. This won't be sent if apps are configured to launch users anonymously or with minimal information.
lis_person_contact_email_primary recommended Email address of the user accessing the app. This won't be sent if apps are configured to launch users anonymously or with minimal information.
resource_link_title recommended name of the link that launched the app
resource_link_description optional description of the link that launched the app
context_id recommended unique id of the course from which the user is accessing the app. If a app were added multiple times to the same course, this id would be the same regardless of which link was used to launch the app.
context_type optional this is the type of context from which the user is accessing the app. If it's provided, this will most likely be CourseSection
context_title recommended name of the course from which the user is accessing the app
context_label recommended short name or course code of the course from which the user is accessing the app
launch_presentation_locale recommended locale (i.e. en-US) for the user accessing the app
launch_presentation_document_target recommended if provided, this value will be either window (if the app has been launched in a new window) or iframe.
launch_presentation_css_url optional css file that could be included by the provider to help its styling better match the consumer styling. This isn't well-documented, so I typically pretend it doesn't exist.
launch_presentation_width recommended width of the frame or window in which the app is launched. This is only a starting point, since the frame could change if the user resizes their window.
launch_presentation_height recommended height of the frame or window in which the app is launched. This is only a starting point, since the frame could change if the user resizes their window.
launch_presentation_return_url recommended

url to send the user to when they're finished with the provider. The provider can optionally send one of four values as query parameters appended to the url:

  • lti_errormsg - error message to show to the user
  • lti_errorlog - error message for the consumer to optionally store without showing the user
  • lti_msg - success message to show to the user
  • lti_log - success message for the consumer to optionally store without showing the user
tool_consumer_info_product_family_code recommended product name for the consumer. This could be something like moodle, sakai or canvas
tool_consumer_info_version recommended version number of the consumer product.
tool_consumer_instance_guid strongly recommended unique id referencing the instance from which the user is accessing the app. This mostly makes sense only in a multi-tenant environment.
tool_consumer_instance_name recommended name of the instance from which the user is accessing the app.
tool_consumer_instance_description optional description of the instance from which the user is accessing the app.
tool_consumer_instance_url optional url of the instance from which the user is accessing the app.
tool_consumer_instance_contact_email recommended email address of a contact at the instance from which the user is accessing the app.
custom_* optional any number of custom values can optionally be sent across. The key for any custom values should start with custom_ and should be in snake case. Custom values can optionally be defined on the consumer side as part of the app configuration process.