If you're participating in a coder contest and using LearningStudio APIs, this quick start guide will give you a quick orientation to the LearningStudio platform and how to get started with our APIs.
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 building your application on the LearningStudio APIs, you can build a variety of different things:
- Build an external, third party learning tool
- the tool can be embedded in LearningStudio using SSO
- use LearningStudio APIs for a deeper integration (like Dropbox APIs for submitting homework or Grades APIs for sending grades back).
- Create a mobile app for a specific learning purpose, use the LearningStudio APIs to make a richer, course-specific user experience.
- Create new insights on course performance through dashboards or analytics, using the APIs as your data source.
- Real-world integrations can feed into LearningStudio, like swiping a card for attendance taking, to improve the in-person learning experience
- Build a learning app that is powered by LearningStudio, but doesn't require LearningStudio to use. All the components of a learning experience are available by API, including content, grades, assignments, etc.
Our APIs are known as "Web APIs" or "Web Services." The Course APIs, which you will mostly use in LearningStudio coding contests, are known as REST APIs. To use these APIs, communication happens over HTTP, exactly the same way that webpages are requested and retrieved. To learn more about REST and HTTP-based APIs, we encourage to read A Beginner's Introduction to HTTP and REST
Note: There are not language-specific APIs or extensions. You will need to use your programming language's method for executing HTTP requests. However, we do have code libraries built in PHP, Python, Ruby, C#, and Java, which make it easier to use the Course APIs for each of these languages. See the "Course APIs" section below.
Note: If you are new to leveraging APIs for app development, be sure to check out our section on the PDN covering how to explore and invoke the LearningStudio APIs using Postman. A direct link to the summary page and details for setting up your Postman collection can be found here.
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.
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. Each campus is divided into nodes, which won't normally affect your development for the contest.
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.
Note: When you request LearningStudio API keys, you'll be given two sandbox courses and two sandbox users enrolled in those courses. You'll most likely do most of your work in a course and with course data.
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.
These are the APIs you will use most in a LearningStudio Coder Contest. Almost every aspect of a LearningStudio course can be accessed via these REST-based APIs.
- Social APIs - retrieving & updating
- 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
Important: Authentication for LearningStudio's Course APIs is often a steep learning curve especially for coding contests where you may be unfamiliar with both LearningStudio and RESTful APIs. You are strongly encouraged to use the Code Libraries mentioned above, which will do most of the heavy lifting for you.
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
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, especially in student coder contests, are encouraged to use these libraries, they really do make life easier.
You can also use the Hello World & API Explorer application to explore the RESTful APIs without worrying about the authentication learning curve.
You are also welcome to reference applications or sample code on our GitHub repo to help get you up and running, provide any needed inspiration or simply help get you unstuck.
Lastly, in addition to documentation and code sample in our GitHub repo you can review summaries of previously developed applications by our developer partners and partner schools within the Showcase section of the PDN.
Single Sign On (SSO) creates a more seamless experience for teachers and learners. When an outbound SSO is configured, a link in a LearningStudio course will launch your application, sending along context information about the current user and course which you can use with the APIs to get more information.
If you want to use an SSO to launch your application, it needs to be pre-configured by our Developer Services team, at which point we'll provide you a URL to use in the course content. 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).
- Overview of LearningStudio Outbound SSO
- The LTI 1.0 standard from IMS Global
- LTI Parameters and Data Points
- Setting up a New SSO Integration
- Integrating SSO Links into LearningStudio
If you want to create an integration that creates courses, users, and enrolls users in courses, you would use our SIS Interoperability features. For schools, an SIS is the Student Information System and is typically the official record of students, courses, grades, financial information, etc. Note that these are SOAP-based APIs, which are more difficult to use, and if you want to use them for a coding contest you will need special permission by emailing the Developer Services group with an explanation of what you want to build.
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