Are you using the PBS LearningMedia Admin tool? Click here for the PBS LearningMedia user manual


PBS LearningMedia is an LTI Tool provider currently using v1.1.1 of the LTI specification. 

The only available feature is basic launch into PBS LearningMedia.


In order to use the LM LTI endpoint you will need a Client Identifier (example: john) and Client Secret (example: mypassword).  The identifier and secret are similar to a username and password and you need both to use the API.

Contact your PBS account manager to request a Client Identifier and Client Secret. 

Basic Launch Cartridge

The configuration for  basic launch is defined at

Information will be defined as per

If you are using an LTI tool or an LTI compatible tool, it is likely that you will only need the configuration XML link and your credentials.

If you want to set custom parameters or want additional information you can read more details below.


Base Endpoint

Base endpoint 

Our implementation uses "resource_link_id" as the relative path of where you want to go.

  • To go to the LM Homepage, set it to "/".
  • To visit a specific resource, set it to something like "/resource/992964af-d263-4029-8594-5675e65a692a/drones-help-peruvian-archaeologists-preserve-ancient-sites/".

Our LTI endpoint can be modified to accept the destination URL.  E.g., /bypass/lti/launch/resource/992964af-d263-4029-8594-5675e65a692a/drones-help-peruvian-archaeologists-preserve-ancient-sites/.

The integration supports and recommends all standards parameters as specified in the documentation, however, the most important ones are listed in the following table:

Field Required? Description 
user_id (tick)external unique ID for the user 
lis_person_contact_email_primary (tick)email address for the user 
resource_link_id (tick)

relative URL to redirect to 

zip_code(error)zip code of the user (custom)
lis_person_name_given  (error)user first name
lis_person_name_family(error)user last name

(tick) = Required  (error) =  Not required 


Language specific implementations should already exist, but if you want to manually implement, you can follow sections 3 and 4 from

Please see for additional examples.

The following is a Tool Consumer example in Python:

Python Tool Consumer
from lti.contrib.django import DjangoToolProvider
from lti.tool_config import ToolConfig
from lti.tool_consumer import ToolConsumer
# Construct a configuration.
lti_config = ToolConfig(title='Example', launch_url='''')
# Construct the consumer and set the configuration into it, readying for
# render of a review page (or a link within a consuming client).
lti_consumer = ToolConsumer('your_consumer_key', 'your_consumer_secret')
# Set required launch data
lti_consumer.user_id = "uniqued_user_id" # needed for future launches
lti_consumer.lis_person_name_given = 'John'
lti_consumer.lis_person_name_family = 'Doe'
lti_consumer.lis_person_name_full = 'John Doe'
lti_consumer.lis_person_contact_email_primary = ''
lti_consumer.resource_link_id = '/' # or a relative link in PBS LearningMedia
# Can set optional and custom parameters as well.
zip_code = lti_consumer.set_custom_param('zip_code', '20001')
# lti_consumer is now configured for use.  Can be used to draw LTI-ready HTML forms and URLs.
launch_data = lti_consumer.generate_launch_data()