Third Party Integrations enrich the online learning environment by adding functionality and features that are not a part of the core product. The greatest integrations come when third parties can leverage LearningStudio's technology to create as seamless an experience as possible for students, teachers, and administrators. This primer introduces the LearningStudio ecosystem and what you need to know to get started.
LearningStudio is one of Pearson's largest Learning Management Systems (LMS). It is a fully-hosted Software as a Service platform, offering scalability and deep analytics, a variety of learning tools, and a robust API suite for extending the platform in new and imaginative ways. As a multitenant, Software-as-a-Service offering, Pearson hosts the platform on our servers on behalf of our clients. With few exceptions, all clients are on the same version of LearningStudio all the time.
When you integrate to a LearningStudio customer, the same integration, including single sign-on and API usage, will work for all other LearningStudio customers; only minor configuration details will need to change.
The platform offers a number of integration options, including single sign-on to your application from inside a course, SOAP-based APIs for creating courses and users, and RESTful APIs for retrieving or updating almost any information from inside a course. All of these features are documented in our developer community, the Pearson Developers Network.
The Pearson Developers Network is the source for all documentation related to the LearningStudio API ecosystem. This guide is a summary of that information tailored for new third party partners, with links to relevant pages on the PDN portal. When you have a general question about the APIs, their capability or behavior, or asking about how to do something with them, please use the Developer Community.
If you need additional help on a tricky problem or need to share non-public information, you can reach out to the API Support team by emailing firstname.lastname@example.org. We are always happy to hear from you and help you stay moving on your project.
We have additional services that may help jumpstart your project or help you be more successful.
With a Support Partnership, you have access to a subject matter expert who knows our technology inside and out, can help vet your plans, and connect you with the resources you need. We also have a number of Workshops that are tailored to your audience, technical skill, and project goals. Or, if you have a really big idea and need more help making it a reality, the Innovation Program is a highly collaborative and creative partnership.
Every client is an isolated tenant on the LearningStudio platform. We call each tenant a campus and each campus’ data is only accessible using a unique set of API keys. Third party configurations must be enabled for each campus, but once this is done, the configuration is available for all courses & users at the client.
A campus can have any number of nodes, which are logical groupings of users and courses. Node organization depends on the client, but in larger universities or for-profit education companies, a node may equate to a particular school or geographic location. Depending on business rules, we can limit an LTI single sign-on (below) to a particular node, and only courses in that node will be allowed to access it.
Terms are time-based containers for courses, setting the start and end dates for courses. Courses have a start and end date, and so there may be many copies of the same course across multiple terms. Courses are where you’ll spend most of your energy and where integrations are most commonly done.
Master Course Model
A common implementation method, especially in for-profit education companies, is to create a series of "master courses" that define the standard structure and content for course offered by the school. These schools will make changes to their master courses and when it’s time to start a new term, the masters are copied out to terms. All the content, including any SSO links, are copied as well and should continue to function as normal.
The copied course is independent of the master. If your integration is copied to additional courses, it will work the same way but you’ll begin seeing additional course identifiers.
Courses are identified by an integer Course ID. They can also be identified by any number of Call Numbers, which is the client’s catalog identifiers for the course.
Users are identified by an integer User ID. They can also be identified by a single Login ID, which is the client’s identifier for them and/or the method by which the user signs into LearningStudio.
We can create an outbound SSO to your application to create a more seamless experience for teachers and learners. In both cases, the SSO has to be pre-configured by our Developer Services team but once it’s turned on for a campus, it can be used in any course.
SSO links can only be inserted into courses. SSO integrations can be appear inside the content frame of LearningStudio, or can open a new browser window.
Our preferred SSO method is to use Learning Tools Interoperability (LTI), an EdTech standard defined by the IMS Global Learning Consortium. We strongly recommend that all EdTech software providers implement the LTI standard, because once implemented, it can be used with any number of other EdTech providers and LMSes.
LearningStudio supports LTI v1.0, or "basic" LTI for launching third party tools. In LTI launches we send a standard set of LTI parameters which satisfies most configurations, but can also include additional data points about courses or users, or include custom parameters you require. Here is the list of standard parameters and data points we send in LTI.
Outcome / Grade Exchange
LearningStudio does not currently support LTI 1.1 for Outcome Exchange. If you need to pass grades back to the LMS, you can use our RESTful Grade APIs (below).
Resource Link ID
If your solution depends on the Resource Link ID in LTI, this can be configured on a per-link basis when creating the links in the course. This requires no special configuration.
However, these link IDs are made unique between courses by prefixing the Course ID in front of them when the launch occurs. This means that if the client uses a Master Course model (above), the links will be sent with different IDs from one course to the next, even if the course-level Resource Link ID is the same. This usually only presents a problem if the Resource Link ID is used to create a bookmark in your system that should be the same between copied courses.
Legacy Proprietary SSO
We also have a proprietary SSO method, which we consider deprecated in favor of LTI. However, some data points about users or courses may not be available in our LTI implementation, and in those cases the Proprietary SSO can be used.
This method will send you any of the required and configured data points in a URL query string format (for example,
property1=value&property2=value). We have a standard naming approach for the property names, but this is configurable if you require something specific.
Proprietary SSO requires you to have an SSL endpoint. In the launch parameters we will include a hashed token that is calculated with shared secret and either the SHA1-HMAC or MD5-HMAC algorithms. You can use this token to verify that LearningStudio send the launch. If you don’t have an SSL endpoint, we encrypt the query string into a single value, using AES, which you can decrypt on your end to proceed with the launch.
- Overview of LearningStudio Outbound SSO
- The LTI 1.0 standard from IMS Global
- Information about Proprietary SSO
- LTI Parameters and Data Points and Proprietary SSO Data Points
- Setting up a New SSO Integration
- Integrating SSO Links into LearningStudio
If you are creating an integration between your Student Information System (SIS) and LearningStudio, or if you need to create terms, courses, users, and user enrollments for any reason, we have SIS Interoperability APIs. These are SOAP-based APIs.
Our most robust set of APIs are those for getting and updating course information. Almost every aspect of a LearningStudio course can be accessed via these REST-based APIs. Typically, third parties will use these APIs to augment their user experience with contextual course information, such as course roster detail, or to send grades back to LearningStudio.
- Course Info and Enrollments (Roster) (by Role type) - retrieving only
- Content Structure and Course Content - retrieving only
- Course Schedule - retrieving only
- Dropbox (assignment submission) - retrieving structure & creating documents
- Exams - supports taking exams outside LearningStudio (i.e. in a mobile app)
- Grades - retrieving & creating
- Threads - retrieving & creating
- Activity Feed - retrieving only
- Announcements - retrieving & creating (role restricted)
- Document Sharing - retrieving & creating
- Tracking - creating only
- User Information - retrieving only
We have new code libraries to make development with our RESTful Course APIs faster and simpler, especially when it comes to dealing with authentication. All new developers are encouraged to use these libraries, they really do make life easier.
Activity Tracking API
One API that is especially useful for client and third party relationships is the "Attendance Tracking" API. This API allows you to write any string of information for a student with a timestamp. With this API you can create a log of what a learner does in your application and that log is stored alongside the client’s other student tracking data. Because many clients depend on our Enterprise Reporting functionality to measure student outcomes and engagement, as well as create reports for accreditation bodies, this functionality creates great value for the client in your application. There is not a REST API to retrieve this information; the data is compiled in our Enterprise Reporting product and an event is published (see below) when the API is used.
We support two methods of authentication: OAuth 1.0a and OAuth 2. Both methods control access to the APIs (and client data) through an Application ID, Token Key Moniker, and Secret. The Application ID will identify your application across any and all campuses you integrate with, but the Token Key Moniker and Secret are unique for every campus.
OAuth 1 is our "system-to-system" method, typically used when you don’t need the context of a particular user. It also gives you administrative access to many course functions, and nothing is restricted based on schedule or user access rights. With this mode, every request is signed individually. This is an ideal approach when writing grades back to the LMS. Some APIs do not permit OAuth 1 connections.
OAuth 2 is our "user impersonation" method, more common when acting on behalf of a user, such as thread posts or mobile applications. Your requests are authorized through the use of a user token, and the data you have access to is restricted to that user’s access rights.
Both methods rely on the use of the CMAC-AES hashing algorithm. While this is a rare algorithm, our support team is well-versed in its use and can usually help get you started with sample code or helpful libraries.
- The LearningStudio Course APIs
- Code Libraries and Hello World for Course APIs
- Third-Party Attendance Tracking API
RESTful APIs are ideal for retrieving information from a course or writing some data back to it. When applications need to occasionally check in on the state of a course, or know when something happens in a course to which it needs to respond, this would normally necessitate frequent polling of the APIs. This is an inefficient use of resources (for both you and Pearson), so we encourage developers to leverage Eventing.
In Eventing, you can create a listener where we will send a POST request with a payload of information about an event in LearningStudio. The payload will contain enough information for you to either use as is or leverage additional API calls to get more information. Events are triggered when:
- A grade is entered or updated for a student
- A student completes an exam
- Thread posts are created or deleted
- Announcements are created, deleted, or read
- Dropbox items are created or deleted
- The Activity Tracking API is used
To develop against LearningStudio APIs, you will be given access to sandbox courses and data within the LearningStudio Sandbox Campus, a developer-friendly instance of LearningStudio. It provides a basic campus user interface (UI) with standard features provided by LearningStudio. You can familiarize yourself with the LearningStudio features to give you ideas about what to implement for your project. Also, you can use the APIs to make requests to LearningStudio and then see the results in the UI.
As part of your sandbox, you will be provided multiple user IDs and passwords you can use to experiment with the different experiences for the various user role types. Though it's called Sandbox, this campus is a full production instance of LearningStudio. Whatever you build here will usually work seamlessly on any other institution's instance, and you will see the same performance and behavior in sandbox as you will for institutions.
You can begin developing on the Sandbox Campus anytime:
- Create an account here on the PDN and then click "Build Now" from the homepage.
- Create an App and request access to LearningStudio APIs. Ignore the key displayed on the website.
- Within 5 minutes you will receive an email with your Application ID and sandbox courses and users.
- If you need to create an SSO connection from LearningStudio to your app, request a new SSO Integration. Once complete, we'll email you a LearningStudio-specific URL you can use in your sandbox courses. Here's how to do that
- Access My Apps (and Create a New One)
- New SSO Integration Request
- Integrating SSO Links in LearningStudio
All third parties that integrate with client campuses are required to sign agreements covering usage and access to personal student information. Your integration cannot be enabled for a customer until this agreement is in place; however you can begin working on the Sandbox Campus prior to completing the agreement.
Once your company is an official partner (by completing the paperwork and legal agreements), we can enable your integration on client campuses. This process is managed by the client’s Client Services team. Only that team can request the integration be turned on. This process and the appropriate people to contact will be detailed while setting up the paperwork.