Introduction
An application programming interface (API) is a way for different software systems to communicate with one another. To facilitate their use, most APIs will have an API specification that contains a list of actions it can perform, as well as descriptions of how to implement each of them.
Using an API has many benefits, with the primary being the ability to automate much of your day-to-day administrative or repetitive tasks.
At SkyPrep, we believe integrating your LMS with third party systems is an important part of increasing your training efficiency and effectiveness. The documents that you find in the API section of our Help Center are intended to provide you with the information you need to get started with our APIs. As processes around APIs are added or modified, we will update the documentation to reflect the most up-to-date information.
Current Version
The current version is the one that is listed in the API developer documents, available here, but we will be transitioning to a versioned API that requires the version code in the end point in the future.
API References & Documentation
Detailed documentation for all of SkyPrep’s publicly available APIs is available on our website. The documentation is constantly updated with the most up-to-date API version.
The link to the access documentation is as follows:
API Client Libraries
At this time, SkyPrep does not provide any client libraries for APIs. You need to set up your own package to start coding against our APIs.
API Call Limitations
To maintain optimum performance and to ensure APIs are available to all customers, SkyPrep’s APIs are limited to 100 API calls per minute from each IP address. Exceeding this number may result in your calls being rate limited.
Please be advised that batch calls should not be run concurrently as the amount of data that is processed is computationally heavy and would require more time. Batch calls are normally related to multiple creates/updates.
API General Information
Schema
Our API can only be accessed via the HTTPS protocol to protect sensitive information being transferred between your system and SkyPrep.
All API responses will be sent in JSON format, with optional support for XML.
HTTP Verbs
Following the guidelines, SkyPrep’s APIs require you to use an appropriate HTTP method on specific types of calls made to the server. The SkyPrep API is a POST interface using query string parameters.
Error Codes
The SkyPrep API returns the standard HTTP error codes to indicate whether a request was successful or not. Specifically, each client must be able to handle the following HTTP codes:
HTTP Code | Description |
200 - OK | Success - The task requested to the API has been performed. |
400 - Bad Request | The request was not correct, usually due to a parameter issue. |
401 - Unauthorized | The call was not properly authenticated. |
403 - Forbidden | The client's request is formed correctly but the API refuses to honor it. For example, in case the user does not have the necessary permissions for the resource. |
404 - Not Found | The requested resource doesn't exist. |
500 - Server Errors | The call generated an error on the SkyPrep side. |
API Authentication
Authentication
SkyPrep’s API uses API key authentication. The API requires the account's API key (api_key) and SkyPrep domain (acct_key) to be provided as part of every request, as well as your platform's domain (without any HTTP or HTTPS prefix).
The API key can be found in the System Configuration area of the platform. All requests MUST include the api_key.
The API key can also be passed in as a HTTP header named X-SkyPrep-API-Key. Similarly, the SkyPrep domain can be passed in a HTTP header named X-SkyPrep-Acct-Key.
Make sure to keep the api_key private and secure. DO NOT expose the API key (for example, in publicly-facing URLs, or within client-facing HTML/JS source code).
A version of the API that authenticates using signed parameters (HMAC/SHA2) that do not include an API key as part of the request payload will be made available in the near future to allow embedding API calls in public-facing/non server-side links.
All API calls should be made with the prefix of api.skyprep.io rather than your SkyPrep domain.
For example, the call should be made to https://api.skyprep.io/admin/api/test_connection not https://acme.skyprepapp.com/admin/api/test_connection
Activating and Setting Up the API
To view your API key, simply click on the Settings tab on the right and navigate to the System Configuration tab.
Scroll down Integrations and click on API Key Manager.
On the next page, you can view your existing API keys as well as create new ones using the Add API Key button.
Please ensure that you copy the API key and verify that you did actually copy it by pasting it somewhere else as once you close the window that shows the full key, you will not be able to retrieve it again and you will need to create a new API key instead.
You will also be required to provide your account key. Your account key is the URL that you use to login, such as acme.skyprepapp.com or training.mycompany.com if you have a custom domain enabled.
The API key can also have its access and permissions limited by clicking on the Edit button after its been created.
The dropdown lets you select the route that the API key has access to, with the default being full access.
Testing SkyPrep APIs
If you require a sandbox environment for testing API functionality, contact your account manager and one will be provided to you.
We recommend using Postman to test your API calls.
Troubleshooting
If you receive errors during testing, please refer to the error codes listed here.
When testing the API, be sure to select only the parameters you want to send. Sending an unexpected default parameter can result in a failed API call.
If you experience an unexpected result through the API, please email [email protected] with full logs and the entire call with the API key redacted. Please note that support is limited to unexpected errors and not building the calls.
Common Use Cases
Rule-based Enrollments
Rules can be used to determine the training that a Learner is enrolled. Common use cases include, but are not limited to:
1) Enroll a User in a Course When They Pass/Fail a Course
2) Enroll a User in a Course When They Are Added
3) Enroll a User in a Learning Path When They Pass/Fail a Course
4) Enroll a User in a Learning Path When They Are Added
5) Enroll a User in a Group When They Pass/Fail a Course
6) Enroll a User in a Group When They Are Added
7) Update a User’s Information When They Pass/Fail a Course
8) Update a User’s Information When They Are Added
Reporting
Our regular reports (advanced reports aren't currently supported) can be pulled using the API. For example, you could have a report automatically generated if a user fails a course, allowing you to see exactly where they went wrong, or have reports scheduled to be sent out on a specific day.
Single Sign-On
Automatic sign-in from a third party service with support for JIT provisioning.
Pulling to interactive data visualization software such as Power BI
You can pull all training records and related objects into data visualization software for training analysis. Software such as Power BI allows you to pull data from SkyPrep and create your own reporting dashboards.
Gamification
Connect to third-party gamification loyalty programs where points can be tracked, added, and deducted from user profiles to allow for point-based transactions.