Content
The SkyPrep API lets you fetch your content.
Welcome to the SkyPrep API. The API allows you to do most common actions in SkyPrep. This includes create, read, update and delete operations for users, groups, courses and enrollments.
The API is a simple HTTP GET or POST interface using query string parameters (e.g. a request can look like https://api.skyprep.io/admin/api/create_user?api_key=12345) or POST body parameters. It is designed around ease-of-use and is fairly simple to get working with in many programming and scripting languages.
&[email protected]&first_name=James
Note: It is highly recommended to make all API requests using the HTTP POST method as this will prevent your API key from being accidentally revealed in server logs/browser histories.
HTTP GET requests are deprecated and will eventually become unsupported.
Every route supports HTTP POST so it is highly recommended to use HTTP POST with the API key as a parameter inside the POST-body.
Alternatively, you can make HTTP GET requests, but pass in the API key using a header called X-SkyPrep-API-Key
All responses are returned in JSON format by default. To return XML, append the parameter format equal to xml to the request.
We recommend using the Postman Client to test using the API to understand how data is returned.
If you are simply testing the API in the Google Chrome browser, you should also install JSONView which will format and properly unescape JSON-formatted text.
All API requests are made to https://api.skyprep.io/admin/api
Any questions can be sent to [email protected]
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 Customization tab 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 publically-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.
GET https://api.skyprep.io/admin/api/test_connection
#sample parameters
{
"api_key" : "Your API Key", //Required
"acct_key" : "yourskyprepdomain.skyprepapp.com" //Required
}
#sample response
{
"message": "success",
"acct_key": "example.skyprepapp.com"
}
The SkyPrep API lets you add, update and delete users.
Get all the users in the system.
Returns a JSON array.
GET https://api.skyprep.io/admin/api/get_users
GET https://api.skyprep.io/admin/api/get_users
#sample response
[
{
"name_with_username": "Avery Learner - [email protected]",
"display_name": "Avery Learner",
"last_course_id": 201,
"language": "en",
"time_zone": "Eastern Time (US & Canada)",
"model_type": "user",
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-02T10:15:00.000-04:00",
"picture_url": "",
"username": "[email protected]",
"email": "[email protected]",
"id": 101,
"first_name": "Avery",
"last_name": "Learner",
"email_notifications": true,
"sms_notifications": false,
"manager": false,
"admin": false,
"role": "learner",
"login_status": "active",
"user_id": 101,
"name": "Avery Learner",
"webcal_secure_link": "webcals://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"webcal_link": "webcal://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"gravatar_url": "https://www.gravatar.com/avatar/00000000000000000000000000000000",
"view_key": "sample_view_key",
"last_login": "2026-05-03T14:20:00.000-04:00",
"global_content_manager": false,
"full_permissions_for_courses_i_created": false,
"custom_dashboard_id": null,
"access_end_date": null,
"access_start_date": null,
"initials": "AL",
"title": "Customer Success Associate",
"company": "Example Co.",
"address": null,
"address_2": null,
"country": "US",
"state": "NY",
"city": "New York",
"zip": "10001",
"cell": null,
"phone": null,
"work_phone": null,
"ssn": null,
"date_of_birth": null,
"user_identifier": "EMP-101",
"ca_0": "North America",
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"gender": null,
"notification_email": "[email protected]"
},
{
"name_with_username": "Jordan Manager - [email protected]",
"display_name": "Jordan Manager",
"last_course_id": 201,
"language": "en",
"time_zone": "Eastern Time (US & Canada)",
"model_type": "user",
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-02T10:15:00.000-04:00",
"picture_url": "",
"username": "[email protected]",
"email": "[email protected]",
"id": 102,
"first_name": "Jordan",
"last_name": "Manager",
"email_notifications": true,
"sms_notifications": false,
"manager": true,
"admin": false,
"role": "manager",
"login_status": "active",
"user_id": 102,
"name": "Jordan Manager",
"webcal_secure_link": "webcals://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"webcal_link": "webcal://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"gravatar_url": "https://www.gravatar.com/avatar/00000000000000000000000000000000",
"view_key": "sample_view_key",
"last_login": "2026-05-03T14:20:00.000-04:00",
"global_content_manager": false,
"full_permissions_for_courses_i_created": false,
"custom_dashboard_id": null,
"access_end_date": null,
"access_start_date": null,
"initials": "JM",
"title": "Customer Success Associate",
"company": "Example Co.",
"address": null,
"address_2": null,
"country": "US",
"state": "NY",
"city": "New York",
"zip": "10001",
"cell": null,
"phone": null,
"work_phone": null,
"ssn": null,
"date_of_birth": null,
"user_identifier": "EMP-101",
"ca_0": "North America",
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"gender": null,
"notification_email": "[email protected]"
}
]
A single user's data can be retrieved using the API.
GET https://api.skyprep.io/admin/api/get_user
GET https://api.skyprep.io/admin/api/get_user
#sample parameters
{
"user_id" : The internal SkyPrep user_id (unique) //OR
"user_email" : "The users email"
}
#sample response
{
"name_with_username": "Avery Learner - [email protected]",
"display_name": "Avery Learner",
"last_course_id": 201,
"language": "en",
"time_zone": "Eastern Time (US & Canada)",
"model_type": "user",
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-02T10:15:00.000-04:00",
"picture_url": "",
"username": "[email protected]",
"email": "[email protected]",
"id": 101,
"first_name": "Avery",
"last_name": "Learner",
"email_notifications": true,
"sms_notifications": false,
"manager": false,
"admin": false,
"role": "learner",
"login_status": "active",
"user_id": 101,
"name": "Avery Learner",
"webcal_secure_link": "webcals://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"webcal_link": "webcal://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"gravatar_url": "https://www.gravatar.com/avatar/00000000000000000000000000000000",
"view_key": "sample_view_key",
"last_login": "2026-05-03T14:20:00.000-04:00",
"global_content_manager": false,
"full_permissions_for_courses_i_created": false,
"custom_dashboard_id": null,
"access_end_date": null,
"access_start_date": null,
"initials": "AL",
"title": "Customer Success Associate",
"company": "Example Co.",
"address": null,
"address_2": null,
"country": "US",
"state": "NY",
"city": "New York",
"zip": "10001",
"cell": null,
"phone": null,
"work_phone": null,
"ssn": null,
"date_of_birth": null,
"user_identifier": "EMP-101",
"ca_0": "North America",
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"gender": null,
"notification_email": "[email protected]"
}
Users (learners, admins, managers) can be created through the API by passing in these parameters
POST https://api.skyprep.io/admin/api/create_user
POST https://api.skyprep.io/admin/api/create_user
#sample parameters
{
"email" : '[email protected]'
"first_name" : "James",
"last_name" : "Doakes",
"role" : "manager",
"title" : "Detective",
"cell" : "818-333-3333",
"work_phone" : "818-444-4444",
"address " : "10 Dexter Drive Miami FL"
"card_no" : "Badge No. 158-612",
"ca_0" : "Alias: Bay Harbour Butcher"
}
#sample response
{
"name_with_username": "Taylor Example - [email protected]",
"display_name": "Taylor Example",
"last_course_id": 201,
"language": "en",
"time_zone": "Eastern Time (US & Canada)",
"model_type": "user",
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-02T10:15:00.000-04:00",
"picture_url": "",
"username": "[email protected]",
"email": "[email protected]",
"id": 103,
"first_name": "Taylor",
"last_name": "Example",
"email_notifications": true,
"sms_notifications": false,
"manager": false,
"admin": false,
"role": "learner",
"login_status": "active",
"user_id": 103,
"name": "Taylor Example",
"webcal_secure_link": "webcals://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"webcal_link": "webcal://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"gravatar_url": "https://www.gravatar.com/avatar/00000000000000000000000000000000",
"view_key": "sample_view_key",
"last_login": "2026-05-03T14:20:00.000-04:00",
"global_content_manager": false,
"full_permissions_for_courses_i_created": false,
"custom_dashboard_id": null,
"access_end_date": null,
"access_start_date": null,
"initials": "TE",
"title": "Customer Success Associate",
"company": "Example Co.",
"address": null,
"address_2": null,
"country": "US",
"state": "NY",
"city": "New York",
"zip": "10001",
"cell": null,
"phone": null,
"work_phone": null,
"ssn": null,
"date_of_birth": null,
"user_identifier": "EMP-101",
"ca_0": "North America",
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"gender": null,
"notification_email": "[email protected]"
}
Users (learners, admins, managers) can be updated through the API by passing in these parameters. If parameters are ommited, they are not updated.
POST https://api.skyprep.io/admin/api/update_user
Note: parameters are the same as create above
POST https://api.skyprep.io/admin/api/update_user
#sample parameters
{
"user_email" : '[email protected]'
"first_name" : "James",
"last_name" : "Doakes",
"role" : "admin"
"title" : "Detective",
"cell" : "818-333-3333",
"work_phone" : "818-444-4444",
"address " : "10 Dexter Drive Miami FL"
"card_no" : "Badge No. 158-612",
"ca_0" : "Alias: Bay Harbour Butcher",
"access_start_date" : "July 31, 2015",
"access_end_date" : "July 30, 2017",
"password_expiration_date" : "July 19, 2022"
}
#sample response
{
"message": "success",
"user": {
"name_with_username": "Avery Learner - [email protected]",
"display_name": "Avery Learner",
"last_course_id": 201,
"language": "en",
"time_zone": "Eastern Time (US & Canada)",
"model_type": "user",
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-02T10:15:00.000-04:00",
"picture_url": "",
"username": "[email protected]",
"email": "[email protected]",
"id": 101,
"first_name": "Avery",
"last_name": "Learner",
"email_notifications": true,
"sms_notifications": false,
"manager": false,
"admin": false,
"role": "learner",
"login_status": "active",
"user_id": 101,
"name": "Avery Learner",
"webcal_secure_link": "webcals://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"webcal_link": "webcal://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"gravatar_url": "https://www.gravatar.com/avatar/00000000000000000000000000000000",
"view_key": "sample_view_key",
"last_login": "2026-05-03T14:20:00.000-04:00",
"global_content_manager": false,
"full_permissions_for_courses_i_created": false,
"custom_dashboard_id": null,
"access_end_date": null,
"access_start_date": null,
"initials": "AL",
"title": "Customer Success Associate",
"company": "Example Co.",
"address": null,
"address_2": null,
"country": "US",
"state": "NY",
"city": "New York",
"zip": "10001",
"cell": null,
"phone": null,
"work_phone": null,
"ssn": null,
"date_of_birth": null,
"user_identifier": "EMP-101",
"ca_0": "North America",
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"gender": null,
"notification_email": "[email protected]"
}
}
Deletes a user permanentely from the system.
POST https://api.skyprep.io/admin/api/destroy_user
POST https://api.skyprep.io/admin/api/destroy_user
#sample parameters
{
"user_email" : "[email protected]"
}
#sample response
{
"message": "success"
}
Get an automatic sign-in URL for a user (by email)
GET https://api.skyprep.io/admin/api/get_login_key/
#sample parameters
{
"user_email" : '[email protected]',
"autocreate" : true,
"key_type" : "daily",
"user_groups" : "Forensics Lab;Miami PD Staff"
}
#sample response
{
"user_id": 101,
"status": "success",
"login_key": "sample_login_key",
"email": "[email protected]",
"url": "https://example.skyprepapp.com/account/automated_login?login_key=sample_login_key"
}
Get all the courses a user is currently enrolled in (directly, through groups and course bundle).
Returns a JSON array of courses.
GET https://api.skyprep.io/admin/api/get_user_courses
GET https://api.skyprep.io/admin/api/get_user_courses
#sample response
[
{
"created_at": "2026-04-20T12:00:00.000-04:00",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"name": "New Hire Orientation",
"description": "Overview of company policies and onboarding tasks.",
"certificate": true,
"active": true,
"credits": "1.0",
"accessible_after_date": null,
"accessible_after_date_int": 0,
"start_date": null,
"start_date_int": 0,
"opening_date": null,
"opening_date_int": 0,
"end_date": null,
"end_date_int": 0,
"closing_date": null,
"closing_date_int": 0,
"inaccessible_after_date": null,
"inaccessible_after_date_int": 0,
"force_order": false,
"validity_length": null,
"picture_url": "",
"sell": false,
"contact_email": "[email protected]",
"course_id": 201,
"id": 201,
"category": "Onboarding",
"course_code": "ONB-101",
"type_of_training": "Online",
"estimated_course_length_in_minutes": 60,
"tags": [
"onboarding",
"required"
],
"ca_0": null,
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"course_items": [
{
"id": 211,
"course_item_id": 211,
"item_type": "Article",
"name": "Welcome Guide",
"position": 1,
"start_date": null,
"start_date_int": 0,
"mandatory": true,
"description": "Read before beginning the course.",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"updated_at_int": 1777632600,
"created_at": "2026-04-20T12:10:00.000-04:00",
"created_at_int": 1776697800,
"article_id": 311
},
{
"id": 212,
"course_item_id": 212,
"item_type": "Exam",
"name": "Orientation Quiz",
"position": 2,
"start_date": null,
"start_date_int": 0,
"mandatory": true,
"description": "Read before beginning the course.",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"updated_at_int": 1777632600,
"created_at": "2026-04-20T12:10:00.000-04:00",
"created_at_int": 1776697800,
"article_id": 311,
"exam_id": 312
}
]
},
{
"created_at": "2026-04-20T12:00:00.000-04:00",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"name": "Workplace Safety Basics",
"description": "Required safety training for new employees.",
"certificate": true,
"active": true,
"credits": "1.0",
"accessible_after_date": null,
"accessible_after_date_int": 0,
"start_date": null,
"start_date_int": 0,
"opening_date": null,
"opening_date_int": 0,
"end_date": null,
"end_date_int": 0,
"closing_date": null,
"closing_date_int": 0,
"inaccessible_after_date": null,
"inaccessible_after_date_int": 0,
"force_order": false,
"validity_length": null,
"picture_url": "",
"sell": false,
"contact_email": "[email protected]",
"course_id": 202,
"id": 202,
"category": "Onboarding",
"course_code": "SAFE-101",
"type_of_training": "Online",
"estimated_course_length_in_minutes": 60,
"tags": [
"onboarding",
"required"
],
"ca_0": null,
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"course_items": [
{
"id": 211,
"course_item_id": 211,
"item_type": "Article",
"name": "Welcome Guide",
"position": 1,
"start_date": null,
"start_date_int": 0,
"mandatory": true,
"description": "Read before beginning the course.",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"updated_at_int": 1777632600,
"created_at": "2026-04-20T12:10:00.000-04:00",
"created_at_int": 1776697800,
"article_id": 311
},
{
"id": 212,
"course_item_id": 212,
"item_type": "Exam",
"name": "Orientation Quiz",
"position": 2,
"start_date": null,
"start_date_int": 0,
"mandatory": true,
"description": "Read before beginning the course.",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"updated_at_int": 1777632600,
"created_at": "2026-04-20T12:10:00.000-04:00",
"created_at_int": 1776697800,
"article_id": 311,
"exam_id": 312
}
]
}
]
Users data can be mass-enrolled into courses, groups and course bundles.
POST https://api.skyprep.io/admin/api/mass_enroll
GET https://api.skyprep.io/admin/api/mass_enroll
#sample parameters
{
"user_emails" : "[email protected],[email protected]"
"course_ids" : "84,96,101,323",
"user_group_ids" : "505,680,4,122",
"course_bundle_ids" : "222"
}
#sample response
{
"message": "success"
}
Moves training-related data from one user to another within the same program. This is typically used to consolidate duplicate users or migrate activity history.
POST https://api.skyprep.io/admin/api/move_training_data
POST https://api.skyprep.io/admin/api/move_training_data
# sample parameters
{
"source_user_id": 1199770,
"target_user_id": 1199771,
"inclusion_list": [
"course_enrollments",
"course_progresses",
"exam_attempts"
]
}
#sample response
{
"status": "success",
"source_user_id": 101,
"target_user_id": 102,
"moved": {
"course_enrollments": 2,
"course_progresses": 2,
"user_group_enrollments": 1
},
"skipped": []
}
The SkyPrep API lets you create new Power Users (i.e. assigning Datasets and Roles to Users)
Retrive the list of all power users in the platform.
GET https://api.skyprep.io/admin/api/get_power_users
GET https://api.skyprep.io/admin/api/get_power_users
#sample response
{
"name_with_username": "Jordan Manager - [email protected]",
"display_name": "Jordan Manager",
"last_course_id": 201,
"language": "en",
"time_zone": "Eastern Time (US & Canada)",
"model_type": "user",
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-02T10:15:00.000-04:00",
"picture_url": "",
"username": "[email protected]",
"email": "[email protected]",
"id": 102,
"first_name": "Jordan",
"last_name": "Manager",
"email_notifications": true,
"sms_notifications": false,
"manager": true,
"admin": false,
"role": "manager",
"login_status": "active",
"user_id": 102,
"name": "Jordan Manager",
"webcal_secure_link": "webcals://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"webcal_link": "webcal://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"gravatar_url": "https://www.gravatar.com/avatar/00000000000000000000000000000000",
"view_key": "sample_view_key",
"last_login": "2026-05-03T14:20:00.000-04:00",
"global_content_manager": false,
"full_permissions_for_courses_i_created": false,
"custom_dashboard_id": null,
"access_end_date": null,
"access_start_date": null,
"initials": "AL",
"title": "Customer Success Associate",
"company": "Example Co.",
"address": null,
"address_2": null,
"country": "US",
"state": "NY",
"city": "New York",
"zip": "10001",
"cell": null,
"phone": null,
"work_phone": null,
"ssn": null,
"date_of_birth": null,
"user_identifier": "EMP-101",
"ca_0": "North America",
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"gender": null,
"notification_email": "[email protected]",
"power_user_permissions": {
"id": 801,
"dataset_ids": [
701
],
"user_role_id": 601
}
}
Retrive the list of all User Roles in the platform.
GET https://api.skyprep.io/admin/api/get_user_roles
GET https://api.skyprep.io/admin/api/get_user_roles
#sample response
{
"id": 601,
"name": "Regional Training Manager",
"description": "Can manage assigned users, groups, and courses.",
"permissions": {
"users": "assigned",
"courses": "assigned",
"reports": "enabled"
},
"powers_count": 5
}
Retrive the list of all Datasets in the platform.
GET https://api.skyprep.io/admin/api/get_datasets
GET https://api.skyprep.io/admin/api/get_datasets
#sample response
{
"model_type": "dataset",
"name": "Sales Region Dataset",
"id": 701,
"program_id": 1,
"dataset_summary": {
"users": 24,
"courses": 6,
"user_groups": 2
},
"dataset_scopes": {
"users_dataset": {
"static_id_list": [
101,
102
],
"dynamic_rules": null,
"all": false
},
"courses_dataset": {
"static_id_list": [
201,
202
],
"dynamic_rules": null,
"all": false
}
},
"created_at": "2026-04-01T09:00:00.000-04:00",
"created_at_int": 1775048400,
"updated_at": "2026-05-01T09:00:00.000-04:00",
"updated_at_int": 1777630800
}
Create or Update Power Users by passing in their user_ids, dataset_ids and user_role_ids.
POST https://api.skyprep.io/admin/api/create_or_update_power_users
POST https://api.skyprep.io/admin/api/create_or_update_power_users
#sample parameters
{
"user_ids" : [513, 3123, 444],
"user_role_id" : 781,
"dataset_ids" : [7481, 4211]
}
#sample response
{
"name_with_username": "Jordan Manager - [email protected]",
"display_name": "Jordan Manager",
"last_course_id": 201,
"language": "en",
"time_zone": "Eastern Time (US & Canada)",
"model_type": "user",
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-02T10:15:00.000-04:00",
"picture_url": "",
"username": "[email protected]",
"email": "[email protected]",
"id": 102,
"first_name": "Jordan",
"last_name": "Manager",
"email_notifications": true,
"sms_notifications": false,
"manager": true,
"admin": false,
"role": "manager",
"login_status": "active",
"user_id": 102,
"name": "Jordan Manager",
"webcal_secure_link": "webcals://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"webcal_link": "webcal://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"gravatar_url": "https://www.gravatar.com/avatar/00000000000000000000000000000000",
"view_key": "sample_view_key",
"last_login": "2026-05-03T14:20:00.000-04:00",
"global_content_manager": false,
"full_permissions_for_courses_i_created": false,
"custom_dashboard_id": null,
"access_end_date": null,
"access_start_date": null,
"initials": "JM",
"title": "Customer Success Associate",
"company": "Example Co.",
"address": null,
"address_2": null,
"country": "US",
"state": "NY",
"city": "New York",
"zip": "10001",
"cell": null,
"phone": null,
"work_phone": null,
"ssn": null,
"date_of_birth": null,
"user_identifier": "EMP-101",
"ca_0": "North America",
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"gender": null,
"notification_email": "[email protected]",
"user_permission": {
"role": "power_user",
"power_user_permissions": {
"id": 801,
"user_role_id": 601,
"dataset_ids": [
701
]
}
}
}
This will NOT delete the user. It will only remove their permissions.
POST https://api.skyprep.io/admin/api/destroy_power_user
POST https://api.skyprep.io/admin/api/destroy_power_user
#sample parameters
{
"user_id" : 545
}
#sample response
{
"message": "success"
}
The SkyPrep API lets you update and delete courses. It also allows you to enroll users, and user groups into courses.
Get All the Courses in the System
GET https://api.skyprep.io/admin/api/get_courses
GET https://api.skyprep.io/admin/api/get_courses
#sample response
[
{
"created_at": "2026-04-20T12:00:00.000-04:00",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"name": "New Hire Orientation",
"description": "Overview of company policies and onboarding tasks.",
"certificate": true,
"active": true,
"credits": "1.0",
"accessible_after_date": null,
"accessible_after_date_int": 0,
"start_date": null,
"start_date_int": 0,
"opening_date": null,
"opening_date_int": 0,
"end_date": null,
"end_date_int": 0,
"closing_date": null,
"closing_date_int": 0,
"inaccessible_after_date": null,
"inaccessible_after_date_int": 0,
"force_order": false,
"validity_length": null,
"picture_url": "",
"sell": false,
"contact_email": "[email protected]",
"course_id": 201,
"id": 201,
"category": "Onboarding",
"course_code": "ONB-101",
"type_of_training": "Online",
"estimated_course_length_in_minutes": 60,
"tags": [
"onboarding",
"required"
],
"ca_0": null,
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"course_items": [
{
"id": 211,
"course_item_id": 211,
"item_type": "Article",
"name": "Welcome Guide",
"position": 1,
"start_date": null,
"start_date_int": 0,
"mandatory": true,
"description": "Read before beginning the course.",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"updated_at_int": 1777632600,
"created_at": "2026-04-20T12:10:00.000-04:00",
"created_at_int": 1776697800,
"article_id": 311
},
{
"id": 212,
"course_item_id": 212,
"item_type": "Exam",
"name": "Orientation Quiz",
"position": 2,
"start_date": null,
"start_date_int": 0,
"mandatory": true,
"description": "Read before beginning the course.",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"updated_at_int": 1777632600,
"created_at": "2026-04-20T12:10:00.000-04:00",
"created_at_int": 1776697800,
"article_id": 311,
"exam_id": 312
}
]
},
{
"created_at": "2026-04-20T12:00:00.000-04:00",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"name": "Workplace Safety Basics",
"description": "Required safety training for new employees.",
"certificate": true,
"active": true,
"credits": "1.0",
"accessible_after_date": null,
"accessible_after_date_int": 0,
"start_date": null,
"start_date_int": 0,
"opening_date": null,
"opening_date_int": 0,
"end_date": null,
"end_date_int": 0,
"closing_date": null,
"closing_date_int": 0,
"inaccessible_after_date": null,
"inaccessible_after_date_int": 0,
"force_order": false,
"validity_length": null,
"picture_url": "",
"sell": false,
"contact_email": "[email protected]",
"course_id": 202,
"id": 202,
"category": "Onboarding",
"course_code": "SAFE-101",
"type_of_training": "Online",
"estimated_course_length_in_minutes": 60,
"tags": [
"onboarding",
"required"
],
"ca_0": null,
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"course_items": [
{
"id": 211,
"course_item_id": 211,
"item_type": "Article",
"name": "Welcome Guide",
"position": 1,
"start_date": null,
"start_date_int": 0,
"mandatory": true,
"description": "Read before beginning the course.",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"updated_at_int": 1777632600,
"created_at": "2026-04-20T12:10:00.000-04:00",
"created_at_int": 1776697800,
"article_id": 311
},
{
"id": 212,
"course_item_id": 212,
"item_type": "Exam",
"name": "Orientation Quiz",
"position": 2,
"start_date": null,
"start_date_int": 0,
"mandatory": true,
"description": "Read before beginning the course.",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"updated_at_int": 1777632600,
"created_at": "2026-04-20T12:10:00.000-04:00",
"created_at_int": 1776697800,
"article_id": 311,
"exam_id": 312
}
]
}
]
A single course's data can get retrieved using the API.
GET https://api.skyprep.io/admin/api/get_course
#sample parameters
{
"course_id" : 101 //The internal SkyPrep course_id (unique)
}
#sample response
{
"created_at": "2026-04-20T12:00:00.000-04:00",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"name": "New Hire Orientation",
"description": "Overview of company policies and onboarding tasks.",
"certificate": true,
"active": true,
"credits": "1.0",
"accessible_after_date": null,
"accessible_after_date_int": 0,
"start_date": null,
"start_date_int": 0,
"opening_date": null,
"opening_date_int": 0,
"end_date": null,
"end_date_int": 0,
"closing_date": null,
"closing_date_int": 0,
"inaccessible_after_date": null,
"inaccessible_after_date_int": 0,
"force_order": false,
"validity_length": null,
"picture_url": "",
"sell": false,
"contact_email": "[email protected]",
"course_id": 201,
"id": 201,
"category": "Onboarding",
"course_code": "ONB-101",
"type_of_training": "Online",
"estimated_course_length_in_minutes": 60,
"tags": [
"onboarding",
"required"
],
"ca_0": null,
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"course_items": [
{
"id": 211,
"course_item_id": 211,
"item_type": "Article",
"name": "Welcome Guide",
"position": 1,
"start_date": null,
"start_date_int": 0,
"mandatory": true,
"description": "Read before beginning the course.",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"updated_at_int": 1777632600,
"created_at": "2026-04-20T12:10:00.000-04:00",
"created_at_int": 1776697800,
"article_id": 311
},
{
"id": 212,
"course_item_id": 212,
"item_type": "Exam",
"name": "Orientation Quiz",
"position": 2,
"start_date": null,
"start_date_int": 0,
"mandatory": true,
"description": "Read before beginning the course.",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"updated_at_int": 1777632600,
"created_at": "2026-04-20T12:10:00.000-04:00",
"created_at_int": 1776697800,
"article_id": 311,
"exam_id": 312
}
]
}
Creates a course.
POST https://api.skyprep.io/admin/api/create_course
POST https://api.skyprep.io/admin/api/create_course
#sample parameters
{
"name" : "Pratice to Perfect",
"active" : "true"
}
#sample response
{
"created_at": "2026-04-20T12:00:00.000-04:00",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"name": "API Created Course",
"description": "Created through the API.",
"certificate": true,
"active": true,
"credits": "1.0",
"accessible_after_date": null,
"accessible_after_date_int": 0,
"start_date": null,
"start_date_int": 0,
"opening_date": null,
"opening_date_int": 0,
"end_date": null,
"end_date_int": 0,
"closing_date": null,
"closing_date_int": 0,
"inaccessible_after_date": null,
"inaccessible_after_date_int": 0,
"force_order": false,
"validity_length": null,
"picture_url": "",
"sell": false,
"contact_email": "[email protected]",
"course_id": 203,
"id": 203,
"category": "Onboarding",
"course_code": "ONB-101",
"type_of_training": "Online",
"estimated_course_length_in_minutes": 60,
"tags": [
"onboarding",
"required"
],
"ca_0": null,
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"course_items": []
}
Updates a course.
POST https://api.skyprep.io/admin/api/update_course
POST https://api.skyprep.io/admin/api/update_course
#sample parameters
{
"course_id" : "6294",
"name" : "How to Catch A Serial Killer",
"active" : "true"
}
#sample response
{
"created_at": "2026-04-20T12:00:00.000-04:00",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"name": "API Updated Course",
"description": "Updated through the API.",
"certificate": true,
"active": true,
"credits": "1.0",
"accessible_after_date": null,
"accessible_after_date_int": 0,
"start_date": null,
"start_date_int": 0,
"opening_date": null,
"opening_date_int": 0,
"end_date": null,
"end_date_int": 0,
"closing_date": null,
"closing_date_int": 0,
"inaccessible_after_date": null,
"inaccessible_after_date_int": 0,
"force_order": false,
"validity_length": null,
"picture_url": "",
"sell": false,
"contact_email": "[email protected]",
"course_id": 201,
"id": 201,
"category": "Onboarding",
"course_code": "ONB-101",
"type_of_training": "Online",
"estimated_course_length_in_minutes": 60,
"tags": [
"onboarding",
"required"
],
"ca_0": null,
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"course_items": [
{
"id": 211,
"course_item_id": 211,
"item_type": "Article",
"name": "Welcome Guide",
"position": 1,
"start_date": null,
"start_date_int": 0,
"mandatory": true,
"description": "Read before beginning the course.",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"updated_at_int": 1777632600,
"created_at": "2026-04-20T12:10:00.000-04:00",
"created_at_int": 1776697800,
"article_id": 311
},
{
"id": 212,
"course_item_id": 212,
"item_type": "Exam",
"name": "Orientation Quiz",
"position": 2,
"start_date": null,
"start_date_int": 0,
"mandatory": true,
"description": "Read before beginning the course.",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"updated_at_int": 1777632600,
"created_at": "2026-04-20T12:10:00.000-04:00",
"created_at_int": 1776697800,
"article_id": 311,
"exam_id": 312
}
]
}
Deletes a course permanentely from the system.
POST https://api.skyprep.io/admin/api/destroy_course
POST https://api.skyprep.io/admin/api/destroy_course
#sample parameters
{
"course_id" : "8812"
}
#sample response
{
"message": "success"
}
Users data can be retrieved using the API.
GET https://api.skyprep.io/admin/api/enroll_user_in_course
POST https://api.skyprep.io/admin/api/enroll_user_in_course
#sample parameters
{
"user_email" : "[email protected]",
"course_id" : "144123"
}
#sample response
{
"message": "success"
}
POST https://api.skyprep.io/admin/api/remove_user_from_course
POST https://api.skyprep.io/admin/api/remove_user_from_course
#sample parameters
{
"user_email" : "[email protected]",
"course_id" : "18872"
}
#sample response
{
"message": "success"
}
Enroll a single user into multiple courses. The courses are passed in as a comma-separated list of course IDs
POST https://api.skyprep.io/admin/api/enroll_user_in_courses
POST https://api.skyprep.io/admin/api/enroll_user_in_courses
#sample parameters
{
"user_id" : "77121"
"course_ids" : "13,889,15,796,9788"
}
#sample response
{
"message": "success"
}
POST https://api.skyprep.io/admin/api/add_course_to_user_group
POST https://api.skyprep.io/admin/api/add_course_to_user_group
#sample parameters
{
"user_group_id" : "1821",
"course_id" : "123123"
}
#sample response
{
"message": "success"
}
OTP keys are course enrollment keys that can be provided to learners so they can self-enroll into a course using the courses self-enrollment link.
They are similar to the subscribe key for a course that you can set within the SkyPrep interface. The only difference is that an OTP key can only be used once, by a single user.
OTP keys are useful for scenarios where you need to provide limited access to a course, but you don't want to enroll users ahead of time. You can simply send them the key and they can enroll when they are ready.
OTP keys are also useful for selling courses. When a buyer buys the course, you can provide them the OTP key and the link to enroll into the course.
OTP keys can only be used once.
Please note that a generated OTP key is tied to the main subscribe_key value in the course. If the subscribe_key changes, OTP keys become invalidated unless the subscribe_key is reverted back to what it was previously.
GET https://api.skyprep.io/admin/api/get_course_otp
GET https://api.skyprep.io/admin/api/get_course_otp
#sample parameters
{
"course_id" : "171",
"count" : 2
}
#sample response
{
"otps": [
"ABCD-1234",
"EFGH-5678",
"IJKL-9012"
]
}
Users data can be retrieved using the API.
GET https://api.skyprep.io/admin/api/get_user_course_status
GET https://api.skyprep.io/admin/api/get_user_course_status
#sample parameters
{
"user_id" : The internal SkyPrep user_id (unique) //OR
"user_email" : "The users email",
"course_id" : "8781"
}
#sample response
{
"status": "in-progress"
}
Add courses or learning paths to the catalog. Also, be able to restrict the catalog access for the course and learning path by user group.
POST https://api.skyprep.io/admin/api/add_course_or_learning_path_to_catalog
POST https://api.skyprep.io/admin/api/add_course_or_learning_path_to_catalog
#sample parameters
{
"course_ids" : "90210, 55555",
"learning_path_ids" : "33162, 60606",
"user_group_ids" "77070, 84060"
}
#sample response
{
"message": "success"
}
Remove a course or a learning path from the catalog. This will effectively also remove visibility from the user groups that the course or learning path was restricted to.
POST https://api.skyprep.io/admin/api/remove_course_or_learning_path_from_catalog
POST https://api.skyprep.io/admin/api/remove_course_or_learning_path_from_catalog
#sample parameters
{
"course_id" : "55555" //AND/OR
"learning_path_id" : "66890"
}
#sample response
{
"message": "success"
}
POST https://api.skyprep.io/admin/api/update_catalog_enrollments
POST https://api.skyprep.io/admin/api/update_catalog_enrollments
#sample parameters
{
"course_id" : "90210, 55555",
"learning_path_id" : "33162, 60606",
"user_group_ids" "77070, 84060"
}
#sample response
{
"message": "success"
}
The SkyPrep API lets you add, update and delete user groups.
User Groups (i.e. Groups) are collections of users and collections of courses. A user who is enrolled into a user group has access to all the courses the user group has part of it.
GET https://api.skyprep.io/admin/api/get_user_groups
#sample response
[
{
"id": 301,
"name": "Sales Team",
"full_name": "Sales Team",
"user_group_id": null,
"created_at": "2026-04-01T09:00:00.000-04:00",
"updated_at": "2026-05-01T09:00:00.000-04:00",
"description": "Learners in the sales department.",
"user_group_type": "user",
"category": "Department",
"force_order": false
},
{
"id": 302,
"name": "West Region",
"full_name": "Sales / West Region",
"user_group_id": 301,
"created_at": "2026-04-01T09:00:00.000-04:00",
"updated_at": "2026-05-01T09:00:00.000-04:00",
"description": "Learners in the sales department.",
"user_group_type": "user",
"category": "Department",
"force_order": false
}
]
Get a User Group and list of all of its users.
GET https://api.skyprep.io/admin/api/get_user_group
#sample parameters
{
"user_group_id" : "6401"
}
#sample response
{
"id": 301,
"name": "Sales Team",
"full_name": "Sales Team",
"user_group_id": null,
"created_at": "2026-04-01T09:00:00.000-04:00",
"updated_at": "2026-05-01T09:00:00.000-04:00",
"description": "Learners in the sales department.",
"user_group_type": "user",
"category": "Department",
"force_order": false,
"users": [
{
"name_with_username": "Avery Learner - [email protected]",
"display_name": "Avery Learner",
"last_course_id": 201,
"language": "en",
"time_zone": "Eastern Time (US & Canada)",
"model_type": "user",
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-02T10:15:00.000-04:00",
"picture_url": "",
"username": "[email protected]",
"email": "[email protected]",
"id": 101,
"first_name": "Avery",
"last_name": "Learner",
"email_notifications": true,
"sms_notifications": false,
"manager": false,
"admin": false,
"role": "learner",
"login_status": "active",
"user_id": 101,
"name": "Avery Learner",
"webcal_secure_link": "webcals://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"webcal_link": "webcal://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"gravatar_url": "https://www.gravatar.com/avatar/00000000000000000000000000000000",
"view_key": "sample_view_key",
"last_login": "2026-05-03T14:20:00.000-04:00",
"global_content_manager": false,
"full_permissions_for_courses_i_created": false,
"custom_dashboard_id": null,
"access_end_date": null,
"access_start_date": null,
"initials": "AL",
"title": "Customer Success Associate",
"company": "Example Co.",
"address": null,
"address_2": null,
"country": "US",
"state": "NY",
"city": "New York",
"zip": "10001",
"cell": null,
"phone": null,
"work_phone": null,
"ssn": null,
"date_of_birth": null,
"user_identifier": "EMP-101",
"ca_0": "North America",
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"gender": null,
"notification_email": "[email protected]"
},
{
"name_with_username": "Jordan Manager - [email protected]",
"display_name": "Jordan Manager",
"last_course_id": 201,
"language": "en",
"time_zone": "Eastern Time (US & Canada)",
"model_type": "user",
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-02T10:15:00.000-04:00",
"picture_url": "",
"username": "[email protected]",
"email": "[email protected]",
"id": 102,
"first_name": "Jordan",
"last_name": "Manager",
"email_notifications": true,
"sms_notifications": false,
"manager": true,
"admin": false,
"role": "manager",
"login_status": "active",
"user_id": 102,
"name": "Jordan Manager",
"webcal_secure_link": "webcals://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"webcal_link": "webcal://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"gravatar_url": "https://www.gravatar.com/avatar/00000000000000000000000000000000",
"view_key": "sample_view_key",
"last_login": "2026-05-03T14:20:00.000-04:00",
"global_content_manager": false,
"full_permissions_for_courses_i_created": false,
"custom_dashboard_id": null,
"access_end_date": null,
"access_start_date": null,
"initials": "JM",
"title": "Customer Success Associate",
"company": "Example Co.",
"address": null,
"address_2": null,
"country": "US",
"state": "NY",
"city": "New York",
"zip": "10001",
"cell": null,
"phone": null,
"work_phone": null,
"ssn": null,
"date_of_birth": null,
"user_identifier": "EMP-101",
"ca_0": "North America",
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"gender": null,
"notification_email": "[email protected]"
}
],
"courses": [
{
"created_at": "2026-04-20T12:00:00.000-04:00",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"name": "New Hire Orientation",
"description": "Overview of company policies and onboarding tasks.",
"certificate": true,
"active": true,
"credits": "1.0",
"accessible_after_date": null,
"accessible_after_date_int": 0,
"start_date": null,
"start_date_int": 0,
"opening_date": null,
"opening_date_int": 0,
"end_date": null,
"end_date_int": 0,
"closing_date": null,
"closing_date_int": 0,
"inaccessible_after_date": null,
"inaccessible_after_date_int": 0,
"force_order": false,
"validity_length": null,
"picture_url": "",
"sell": false,
"contact_email": "[email protected]",
"course_id": 201,
"id": 201,
"category": "Onboarding",
"course_code": "ONB-101",
"type_of_training": "Online",
"estimated_course_length_in_minutes": 60,
"tags": [
"onboarding",
"required"
],
"ca_0": null,
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"course_items": [
{
"id": 211,
"course_item_id": 211,
"item_type": "Article",
"name": "Welcome Guide",
"position": 1,
"start_date": null,
"start_date_int": 0,
"mandatory": true,
"description": "Read before beginning the course.",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"updated_at_int": 1777632600,
"created_at": "2026-04-20T12:10:00.000-04:00",
"created_at_int": 1776697800,
"article_id": 311
},
{
"id": 212,
"course_item_id": 212,
"item_type": "Exam",
"name": "Orientation Quiz",
"position": 2,
"start_date": null,
"start_date_int": 0,
"mandatory": true,
"description": "Read before beginning the course.",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"updated_at_int": 1777632600,
"created_at": "2026-04-20T12:10:00.000-04:00",
"created_at_int": 1776697800,
"article_id": 311,
"exam_id": 312
}
]
},
{
"created_at": "2026-04-20T12:00:00.000-04:00",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"name": "Workplace Safety Basics",
"description": "Required safety training for new employees.",
"certificate": true,
"active": true,
"credits": "1.0",
"accessible_after_date": null,
"accessible_after_date_int": 0,
"start_date": null,
"start_date_int": 0,
"opening_date": null,
"opening_date_int": 0,
"end_date": null,
"end_date_int": 0,
"closing_date": null,
"closing_date_int": 0,
"inaccessible_after_date": null,
"inaccessible_after_date_int": 0,
"force_order": false,
"validity_length": null,
"picture_url": "",
"sell": false,
"contact_email": "[email protected]",
"course_id": 202,
"id": 202,
"category": "Onboarding",
"course_code": "SAFE-101",
"type_of_training": "Online",
"estimated_course_length_in_minutes": 60,
"tags": [
"onboarding",
"required"
],
"ca_0": null,
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"course_items": [
{
"id": 211,
"course_item_id": 211,
"item_type": "Article",
"name": "Welcome Guide",
"position": 1,
"start_date": null,
"start_date_int": 0,
"mandatory": true,
"description": "Read before beginning the course.",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"updated_at_int": 1777632600,
"created_at": "2026-04-20T12:10:00.000-04:00",
"created_at_int": 1776697800,
"article_id": 311
},
{
"id": 212,
"course_item_id": 212,
"item_type": "Exam",
"name": "Orientation Quiz",
"position": 2,
"start_date": null,
"start_date_int": 0,
"mandatory": true,
"description": "Read before beginning the course.",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"updated_at_int": 1777632600,
"created_at": "2026-04-20T12:10:00.000-04:00",
"created_at_int": 1776697800,
"article_id": 311,
"exam_id": 312
}
]
}
],
"learning_paths": {
"id": 402,
"name": "New Hire Learning Path",
"full_name": "New Hire Learning Path",
"user_group_id": null,
"created_at": "2026-04-01T09:00:00.000-04:00",
"updated_at": "2026-05-01T09:00:00.000-04:00",
"description": "Learners in the sales department.",
"user_group_type": "learning_path",
"category": "Department",
"force_order": true
}
}
User Groups (learners, admins, managers) can be created through the API by passing in these parameters
POST https://api.skyprep.io/admin/api/create_user_group
POST https://api.skyprep.io/admin/api/create_user_group
#sample parameters
{
"name" : 'Sales Team',
"course_ids" : "693,431,6090",
"user_ids" : "352,454,5553"
}
#sample response
{
"id": 301,
"name": "Sales Team",
"full_name": "Sales Team",
"user_group_id": null,
"created_at": "2026-04-01T09:00:00.000-04:00",
"updated_at": "2026-05-01T09:00:00.000-04:00",
"description": "Learners in the sales department.",
"user_group_type": "user",
"category": "Department",
"force_order": false
}
Update a User Group
POST https://api.skyprep.io/admin/api/update_user_group
#sample response
{
"message": "success"
}
Delete a User Group
POST https://api.skyprep.io/admin/api/destroy_user_group
POST https://api.skyprep.io/admin/api/destroy_user_group
#sample parameters
{
"user_group_id" : "6612"
}
#sample response
{
"message": "success"
}
POST https://api.skyprep.io/admin/api/enroll_user_in_user_group
POST https://api.skyprep.io/admin/api/enroll_user_in_user_group
#sample parameters
{
"user_id" : The internal SkyPrep user_id (unique) //OR
"user_email" : "The users email"
}
#sample response
{
"message": "success"
}
POST https://api.skyprep.io/admin/api/remove_user_from_user_group
POST https://api.skyprep.io/admin/api/remove_user_from_user_group
#sample parameters
{
"user_id" : "212",
"user_group_id" : "7633"
}
#sample response
{
"message": "success"
}
Get a list of the groups a user belongs to.
GET https://api.skyprep.io/admin/api/get_user_group_enrollments_for_user
GET https://api.skyprep.io/admin/api/get_user
#sample parameters
{
"user_id" : The internal SkyPrep user_id (unique) //OR
"user_email" : "The users email"
}
#sample response
[
{
"id": 301,
"name": "Sales Team",
"full_name": "Sales Team",
"user_group_id": null,
"created_at": "2026-04-01T09:00:00.000-04:00",
"updated_at": "2026-05-01T09:00:00.000-04:00",
"description": "Learners in the sales department.",
"user_group_type": "user",
"category": "Department",
"force_order": false
},
{
"id": 302,
"name": "West Region",
"full_name": "Sales / West Region",
"user_group_id": 301,
"created_at": "2026-04-01T09:00:00.000-04:00",
"updated_at": "2026-05-01T09:00:00.000-04:00",
"description": "Learners in the sales department.",
"user_group_type": "user",
"category": "Department",
"force_order": false
}
]
POST https://api.skyprep.io/admin/api/add_course_to_user_group
POST https://api.skyprep.io/admin/api/add_course_to_user_group
#sample parameters
{
"user_group_id" : "1821",
"course_id" : "123123"
}
#sample response
{
"message": "success"
}
POST https://api.skyprep.io/admin/api/remove_course_from_user_group
POST https://api.skyprep.io/admin/api/remove_course_from_course_group
#sample parameters
{
"course_id" : The internal SkyPrep course id (unique) //OR
"user_group_id" : "The internal SkyPrep user_group_id"
}
#sample response
{
"message": "success"
}
The SkyPrep API lets you add, update and delete learning paths.
GET https://api.skyprep.io/admin/api/get_learning_paths
#sample response
[
{
"id": 402,
"name": "New Hire Learning Path",
"full_name": "New Hire Learning Path",
"user_group_id": null,
"created_at": "2026-04-01T09:00:00.000-04:00",
"updated_at": "2026-05-01T09:00:00.000-04:00",
"description": "Learners in the sales department.",
"user_group_type": "learning_path",
"category": "Department",
"force_order": true
},
{
"id": 403,
"name": "Leadership Path",
"full_name": "Leadership Path",
"user_group_id": null,
"created_at": "2026-04-01T09:00:00.000-04:00",
"updated_at": "2026-05-01T09:00:00.000-04:00",
"description": "Learners in the sales department.",
"user_group_type": "learning_path",
"category": "Department",
"force_order": false
}
]
Get a Learning Path.
GET https://api.skyprep.io/admin/api/get_learning_path
#sample parameters
{
"learning_path_id" : "6401"
}
#sample response
{
"id": 402,
"name": "New Hire Learning Path",
"full_name": "New Hire Learning Path",
"user_group_id": null,
"created_at": "2026-04-01T09:00:00.000-04:00",
"updated_at": "2026-05-01T09:00:00.000-04:00",
"description": "Learners in the sales department.",
"user_group_type": "learning_path",
"category": "Department",
"force_order": true,
"users": [
{
"name_with_username": "Avery Learner - [email protected]",
"display_name": "Avery Learner",
"last_course_id": 201,
"language": "en",
"time_zone": "Eastern Time (US & Canada)",
"model_type": "user",
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-02T10:15:00.000-04:00",
"picture_url": "",
"username": "[email protected]",
"email": "[email protected]",
"id": 101,
"first_name": "Avery",
"last_name": "Learner",
"email_notifications": true,
"sms_notifications": false,
"manager": false,
"admin": false,
"role": "learner",
"login_status": "active",
"user_id": 101,
"name": "Avery Learner",
"webcal_secure_link": "webcals://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"webcal_link": "webcal://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"gravatar_url": "https://www.gravatar.com/avatar/00000000000000000000000000000000",
"view_key": "sample_view_key",
"last_login": "2026-05-03T14:20:00.000-04:00",
"global_content_manager": false,
"full_permissions_for_courses_i_created": false,
"custom_dashboard_id": null,
"access_end_date": null,
"access_start_date": null,
"initials": "AL",
"title": "Customer Success Associate",
"company": "Example Co.",
"address": null,
"address_2": null,
"country": "US",
"state": "NY",
"city": "New York",
"zip": "10001",
"cell": null,
"phone": null,
"work_phone": null,
"ssn": null,
"date_of_birth": null,
"user_identifier": "EMP-101",
"ca_0": "North America",
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"gender": null,
"notification_email": "[email protected]"
},
{
"name_with_username": "Jordan Manager - [email protected]",
"display_name": "Jordan Manager",
"last_course_id": 201,
"language": "en",
"time_zone": "Eastern Time (US & Canada)",
"model_type": "user",
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-02T10:15:00.000-04:00",
"picture_url": "",
"username": "[email protected]",
"email": "[email protected]",
"id": 102,
"first_name": "Jordan",
"last_name": "Manager",
"email_notifications": true,
"sms_notifications": false,
"manager": true,
"admin": false,
"role": "manager",
"login_status": "active",
"user_id": 102,
"name": "Jordan Manager",
"webcal_secure_link": "webcals://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"webcal_link": "webcal://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"gravatar_url": "https://www.gravatar.com/avatar/00000000000000000000000000000000",
"view_key": "sample_view_key",
"last_login": "2026-05-03T14:20:00.000-04:00",
"global_content_manager": false,
"full_permissions_for_courses_i_created": false,
"custom_dashboard_id": null,
"access_end_date": null,
"access_start_date": null,
"initials": "JM",
"title": "Customer Success Associate",
"company": "Example Co.",
"address": null,
"address_2": null,
"country": "US",
"state": "NY",
"city": "New York",
"zip": "10001",
"cell": null,
"phone": null,
"work_phone": null,
"ssn": null,
"date_of_birth": null,
"user_identifier": "EMP-101",
"ca_0": "North America",
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"gender": null,
"notification_email": "[email protected]"
}
],
"courses": [
{
"created_at": "2026-04-20T12:00:00.000-04:00",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"name": "New Hire Orientation",
"description": "Overview of company policies and onboarding tasks.",
"certificate": true,
"active": true,
"credits": "1.0",
"accessible_after_date": null,
"accessible_after_date_int": 0,
"start_date": null,
"start_date_int": 0,
"opening_date": null,
"opening_date_int": 0,
"end_date": null,
"end_date_int": 0,
"closing_date": null,
"closing_date_int": 0,
"inaccessible_after_date": null,
"inaccessible_after_date_int": 0,
"force_order": false,
"validity_length": null,
"picture_url": "",
"sell": false,
"contact_email": "[email protected]",
"course_id": 201,
"id": 201,
"category": "Onboarding",
"course_code": "ONB-101",
"type_of_training": "Online",
"estimated_course_length_in_minutes": 60,
"tags": [
"onboarding",
"required"
],
"ca_0": null,
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"course_items": [
{
"id": 211,
"course_item_id": 211,
"item_type": "Article",
"name": "Welcome Guide",
"position": 1,
"start_date": null,
"start_date_int": 0,
"mandatory": true,
"description": "Read before beginning the course.",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"updated_at_int": 1777632600,
"created_at": "2026-04-20T12:10:00.000-04:00",
"created_at_int": 1776697800,
"article_id": 311
},
{
"id": 212,
"course_item_id": 212,
"item_type": "Exam",
"name": "Orientation Quiz",
"position": 2,
"start_date": null,
"start_date_int": 0,
"mandatory": true,
"description": "Read before beginning the course.",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"updated_at_int": 1777632600,
"created_at": "2026-04-20T12:10:00.000-04:00",
"created_at_int": 1776697800,
"article_id": 311,
"exam_id": 312
}
]
},
{
"created_at": "2026-04-20T12:00:00.000-04:00",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"name": "Workplace Safety Basics",
"description": "Required safety training for new employees.",
"certificate": true,
"active": true,
"credits": "1.0",
"accessible_after_date": null,
"accessible_after_date_int": 0,
"start_date": null,
"start_date_int": 0,
"opening_date": null,
"opening_date_int": 0,
"end_date": null,
"end_date_int": 0,
"closing_date": null,
"closing_date_int": 0,
"inaccessible_after_date": null,
"inaccessible_after_date_int": 0,
"force_order": false,
"validity_length": null,
"picture_url": "",
"sell": false,
"contact_email": "[email protected]",
"course_id": 202,
"id": 202,
"category": "Onboarding",
"course_code": "SAFE-101",
"type_of_training": "Online",
"estimated_course_length_in_minutes": 60,
"tags": [
"onboarding",
"required"
],
"ca_0": null,
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"course_items": [
{
"id": 211,
"course_item_id": 211,
"item_type": "Article",
"name": "Welcome Guide",
"position": 1,
"start_date": null,
"start_date_int": 0,
"mandatory": true,
"description": "Read before beginning the course.",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"updated_at_int": 1777632600,
"created_at": "2026-04-20T12:10:00.000-04:00",
"created_at_int": 1776697800,
"article_id": 311
},
{
"id": 212,
"course_item_id": 212,
"item_type": "Exam",
"name": "Orientation Quiz",
"position": 2,
"start_date": null,
"start_date_int": 0,
"mandatory": true,
"description": "Read before beginning the course.",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"updated_at_int": 1777632600,
"created_at": "2026-04-20T12:10:00.000-04:00",
"created_at_int": 1776697800,
"article_id": 311,
"exam_id": 312
}
]
}
]
}
Learning Paths along with course and user enrollments can be created through the API by passing in these parameters
POST https://api.skyprep.io/admin/api/create_learning_path
POST https://api.skyprep.io/admin/api/create_learning_path
#sample parameters
{
"name" : 'Management 101',
"description" : "How to be successful in managing your team"
"course_ids" : "693,431,6090",
"user_ids" : "352,454,5553",
"user_group_ids" : "111, 222, 333"
}
#sample response
{
"id": 402,
"name": "New Hire Learning Path",
"full_name": "New Hire Learning Path",
"user_group_id": null,
"created_at": "2026-04-01T09:00:00.000-04:00",
"updated_at": "2026-05-01T09:00:00.000-04:00",
"description": "Learners in the sales department.",
"user_group_type": "learning_path",
"category": "Department",
"force_order": true
}
Update a Learning Path
POST https://api.skyprep.io/admin/api/update_learning_path
POST https://api.skyprep.io/admin/api/update_learning_path
#sample parameters
{
"learning_path_id" : "1234",
"name" : "New Learning Path Name",
"description" : "New Learning Path Description"
}
#sample response
{
"message": "success"
}
Delete a Learning Path
** Please note: This is an irreversible action. Please exercise caution when using this route. **
POST https://api.skyprep.io/admin/api/destroy_learning_path
POST https://api.skyprep.io/admin/api/destroy_learning_path
#sample parameters
{
"learning_path_id" : "6612"
}
#sample response
{
"message": "success"
}
POST https://api.skyprep.io/admin/api/add_course_to_learning_path
POST https://api.skyprep.io/admin/api/add_course_to_learning_path
#sample parameters
{
"learning_path_id" : "1821",
"course_id" : "123123"
}
#sample response
{
"message": "success"
}
POST https://api.skyprep.io/admin/api/remove_course_from_learning_path
POST https://api.skyprep.io/admin/api/remove_course_from_learning_path
#sample parameters
{
"course_id" : The internal SkyPrep course id (unique)
"learning_path_id" : "The internal SkyPrep learning_path_id"
}
#sample response
{
"message": "success"
}
POST https://api.skyprep.io/admin/api/add_group_to_learning_path
POST https://api.skyprep.io/admin/api/add_group_to_learning_path
#sample parameters
{
"learning_path_id" : "1821",
"user_group_id" : "123123"
}
#sample response
{
"message": "success"
}
POST https://api.skyprep.io/admin/api/remove_group_from_learning_path
POST https://api.skyprep.io/admin/api/remove_group_from_course_group
#sample parameters
{
"user_group_id" : The internal SkyPrep group id (unique)
"learning_path_id" : "The internal SkyPrep learning_path_id"
}
#sample response
{
"message": "success"
}
The SkyPrep API lets you add, update and delete instructor led trainings.
GET https://api.skyprep.io/admin/api/get_instructor_led_trainings
#sample response
[
{
"id": 501,
"model_type": "instructor_led_training",
"instructor_led_training_timeslots": {
"id": 511,
"name": "Onboarding Workshop",
"description": "Bring a laptop.",
"location": "Training Room A",
"capacity": 25,
"display_timezone": "Eastern Time (US & Canada)",
"primary_instructor_user_id": null,
"commencement_time": "2026-05-10T09:00:00.000-04:00",
"instructor": "Pat Instructor",
"end_time": "2026-05-10T11:00:00.000-04:00",
"registration_count": 8,
"session_type": "in-person"
},
"name": "Onboarding Workshop",
"created_at": "2026-04-25T10:00:00.000-04:00",
"updated_at": "2026-04-25T10:00:00.000-04:00",
"created_at_int": 1777111200,
"updated_at_int": 1777111200,
"metadata": [],
"description": "Live onboarding session for new hires.",
"session_type": "in-person"
},
{
"id": 502,
"model_type": "instructor_led_training",
"instructor_led_training_timeslots": {
"id": 512,
"name": "Manager Workshop",
"description": "Bring a laptop.",
"location": "Training Room A",
"capacity": 25,
"display_timezone": "Eastern Time (US & Canada)",
"primary_instructor_user_id": null,
"commencement_time": "2026-05-10T09:00:00.000-04:00",
"instructor": "Jordan Manager",
"end_time": "2026-05-10T11:00:00.000-04:00",
"registration_count": 8,
"session_type": "in-person"
},
"name": "Manager Workshop",
"created_at": "2026-04-25T10:00:00.000-04:00",
"updated_at": "2026-04-25T10:00:00.000-04:00",
"created_at_int": 1777111200,
"updated_at_int": 1777111200,
"metadata": [],
"description": "Live manager training.",
"session_type": "in-person"
}
]
Get a Instructor Led Training.
GET https://api.skyprep.io/admin/api/get_instructor_led_training
#sample parameters
{
"instructor_led_training_id" : "543"
}
#sample response
{
"id": 501,
"model_type": "instructor_led_training",
"instructor_led_training_timeslots": {
"id": 511,
"name": "Onboarding Workshop",
"description": "Bring a laptop.",
"location": "Training Room A",
"capacity": 25,
"display_timezone": "Eastern Time (US & Canada)",
"primary_instructor_user_id": null,
"commencement_time": "2026-05-10T09:00:00.000-04:00",
"instructor": "Pat Instructor",
"end_time": "2026-05-10T11:00:00.000-04:00",
"registration_count": 8,
"session_type": "in-person"
},
"name": "Onboarding Workshop",
"created_at": "2026-04-25T10:00:00.000-04:00",
"updated_at": "2026-04-25T10:00:00.000-04:00",
"created_at_int": 1777111200,
"updated_at_int": 1777111200,
"metadata": [],
"description": "Live onboarding session for new hires.",
"session_type": "in-person"
}
Get a Instructor Led Training Timeslot.
GET https://api.skyprep.io/admin/api/get_instructor_led_training_timeslot
#sample parameters
{
"instructor_led_training_timeslot_id" : "555"
}
#sample response
{
"id": 511,
"name": "Onboarding Workshop",
"description": "Bring a laptop.",
"location": "Training Room A",
"capacity": 25,
"display_timezone": "Eastern Time (US & Canada)",
"primary_instructor_user_id": null,
"commencement_time": "2026-05-10T09:00:00.000-04:00",
"instructor": "Pat Instructor",
"end_time": "2026-05-10T11:00:00.000-04:00",
"registration_count": 8,
"session_type": "in-person"
}
Get a collection of Instructor Led Training Timeslots.
GET https://api.skyprep.io/admin/api/get_instructor_led_training_timeslots
#sample parameters
{
"start_date" : "2020-01-01",
"end_date" : "2020-02-01"
}
#sample response
[
{
"id": 511,
"name": "Onboarding Workshop",
"description": "Bring a laptop.",
"location": "Training Room A",
"capacity": 25,
"display_timezone": "Eastern Time (US & Canada)",
"primary_instructor_user_id": null,
"commencement_time": "2026-05-10T09:00:00.000-04:00",
"instructor": "Pat Instructor",
"end_time": "2026-05-10T11:00:00.000-04:00",
"registration_count": 8,
"session_type": "in-person"
},
{
"id": 512,
"name": "Manager Workshop",
"description": "Bring a laptop.",
"location": "Training Room B",
"capacity": 25,
"display_timezone": "Eastern Time (US & Canada)",
"primary_instructor_user_id": null,
"commencement_time": "2026-05-10T09:00:00.000-04:00",
"instructor": "Jordan Manager",
"end_time": "2026-05-10T11:00:00.000-04:00",
"registration_count": 8,
"session_type": "in-person"
}
]
Instructor Led Training Timeslot can be created through the API by passing in these parameters
POST https://api.skyprep.io/admin/api/create_instructor_led_training_timeslot
POST https://api.skyprep.io/admin/api/create_instructor_led_training_timeslot
#sample parameters
{
"instructor_led_training_id" : '555',
"display_timezone" : "UTC",
"description" : "Some description",
"capacity" : "555"
}
#sample response
{
"id": 511,
"name": "Onboarding Workshop",
"description": "Bring a laptop.",
"location": "Training Room A",
"capacity": 25,
"display_timezone": "Eastern Time (US & Canada)",
"primary_instructor_user_id": null,
"commencement_time": "2026-05-10T09:00:00.000-04:00",
"instructor": "Pat Instructor",
"end_time": "2026-05-10T11:00:00.000-04:00",
"registration_count": 8,
"session_type": "in-person"
}
Instructor Led Training Timeslot can be updated through the API by passing in these parameters
POST https://api.skyprep.io/admin/api/update_instructor_led_training_timeslot
POST https://api.skyprep.io/admin/api/update_instructor_led_training_timeslot
#sample parameters
{
"instructor_led_training_timeslot_id" : '111',
"display_timezone" : "UTC",
"description" : "Some description",
"capacity" : "555"
}
#sample response
{
"id": 511,
"name": "Onboarding Workshop",
"description": "Bring a laptop.",
"location": "Training Room A",
"capacity": 25,
"display_timezone": "Eastern Time (US & Canada)",
"primary_instructor_user_id": null,
"commencement_time": "2026-05-10T09:00:00.000-04:00",
"instructor": "Pat Instructor",
"end_time": "2026-05-10T11:00:00.000-04:00",
"registration_count": 8,
"session_type": "in-person"
}
Delete Instructor Led Training Timeslot
** Please note: This is an irreversible action. Please exercise caution when using this route. **
POST https://api.skyprep.io/admin/api/delete_instructor_led_training_timeslot
POST https://api.skyprep.io/admin/api/delete_instructor_led_training_timeslot
#sample parameters
{
"instructor_led_training_timeslot_id" : "6612"
}
#sample response
{
"message": "success"
}
Get Instructor Led Training Timeslot Registrations.
GET https://api.skyprep.io/admin/api/get_instructor_led_training_timeslot_registrations
#sample parameters
{
"instructor_led_training_timeslot_id" : "555"
}
#sample response
[
{
"id": 521,
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-01T09:00:00.000-04:00",
"instructor_led_training_timeslot_id": 511,
"user_id": 101,
"course_progress_id": 901,
"status": "pending"
},
{
"id": 522,
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-01T09:00:00.000-04:00",
"instructor_led_training_timeslot_id": 511,
"user_id": 102,
"course_progress_id": 901,
"status": "attended"
}
]
Instructor Led Training Timeslot Registrations can be created through the API by passing in these parameters
POST https://api.skyprep.io/admin/api/create_instructor_led_training_timeslot_registrations
POST https://api.skyprep.io/admin/api/create_instructor_led_training_timeslot_registrations
#sample parameters
{
"instructor_led_training_timeslot_id" : '555',
"user_id" : "111"
"course_progress_id" : "444",
"course_id" : "333",
"status" : "attended"
}
#sample response
{
"id": 521,
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-01T09:00:00.000-04:00",
"instructor_led_training_timeslot_id": 511,
"user_id": 101,
"course_progress_id": 901,
"status": "pending"
}
Delete Instructor Led Training Timeslot Registrations
** Please note: This is an irreversible action. Please exercise caution when using this route. **
POST https://api.skyprep.io/admin/api/destroy_instructor_led_training_timeslot_registrations
POST https://api.skyprep.io/admin/api/destroy_instructor_led_training_timeslot_registrations
#sample parameters
{
"instructor_led_training_timeslot_registration_ids" : "6612, 4124, 6578"
}
#sample response
{
"id": 521,
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-01T09:00:00.000-04:00",
"instructor_led_training_timeslot_id": 511,
"user_id": 101,
"course_progress_id": 901,
"status": "pending"
}
Update a Instructor Led Training Timeslot Registration
POST https://api.skyprep.io/admin/api/update_instructor_led_training_timeslot_registration
POST https://api.skyprep.io/admin/api/update_instructor_led_training_timeslot_registration
#sample parameters
{
"instructor_led_training_timeslot_registration_id" : "6612",
"status" : "attended"
}
#sample response
{
"id": 521,
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-01T09:00:00.000-04:00",
"instructor_led_training_timeslot_id": 511,
"user_id": 101,
"course_progress_id": 901,
"status": "attended"
}
The SkyPrep API lets you update and delete a user's course progress in a course.
Get course progress records for the account. Use the optional filters below to narrow the response by course, user, status, enrollment, completion date, or last updated date. Returns a JSON array.
Results are paginated by default. Send per_page with page to page through records. If no value is supplied for per_page, the API returns up to 100 records.
GET https://api.skyprep.io/admin/api/get_course_progresses
active, inactive or disabled (comma separated)
passed, failed, not-started, in-progress, not-applicable or archived (comma separated)
The response does not include a total count. To retrieve all records, request page=1, then increment page until the API returns an empty array or fewer records than your requested per_page.
For incremental syncs, use updated_at_greater_than with updated_at_less_than, per_page, and page. For example, request records where updated_at_greater_than=2026-05-01T00:00:00Z and updated_at_less_than=2026-05-02T00:00:00Z.
Requests using updated_at filters are ordered by most recently updated first. Requests using completion_date filters are ordered by most recently completed first. Do not use updated_at and completion_date filters in the same request; mixed date cursor filters return a 400 error.
Unpaginated responses are deprecated. Older integrations with temporary unpaginated access should switch to paginated requests.
GET https://api.skyprep.io/admin/api/get_course_progresses
#sample parameters
{
"course_id" : "8812",
"status" : "passed,failed",
"updated_at_greater_than" : "2026-05-01T00:00:00Z",
"updated_at_less_than" : "2026-05-02T00:00:00Z",
"per_page" : "100",
"page" : "1"
}
#sample response
[
{
"id": 901,
"days_until_deadline": 14,
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-05T11:10:00.000-04:00",
"skip_prerequisites": false,
"course_id": 201,
"course_name": "New Hire Orientation",
"user_id": 101,
"user_email": "[email protected]",
"status": "in-progress",
"commencement_date": "2026-05-01T09:30:00.000-04:00",
"enrollment_date": "2026-05-01T09:00:00.000-04:00",
"completion_date": null,
"last_course_item_id": 211,
"percent_viewed": 50,
"display_percent_viewed": 50,
"expiration_date": null,
"expired": false,
"access_date": null,
"deadline_date": "2026-05-15T23:59:59.000-04:00",
"override_dates": false,
"real_end_date": "2026-05-15T23:59:59.000-04:00",
"real_start_date": null,
"certificate_view_link": "https://example.skyprepapp.com/certificates/show?course_progress_id=901&f=pdf",
"public_certificate_view_link": "https://example.skyprepapp.com/public_api/view_certificate?course_progress_id=901&view_key=sample_view_key",
"computed_deadline_date": "2026-05-15T23:59:59.000-04:00",
"custom_properties": [],
"next_reenrollment_date": null,
"formatted_commencement_date": "01-May 2026",
"formatted_enrollment_date": "01-May 2026",
"formatted_completion_date": "",
"formatted_expiration_date": "",
"formatted_access_date": "",
"formatted_deadline_date": "15-May 2026",
"formatted_real_end_date": "15-May 2026",
"formatted_real_start_date": "",
"formatted_computed_deadline_date": "15-May 2026",
"formatted_next_reenrollment_date": "",
"user": {
"name_with_username": "Avery Learner - [email protected]",
"display_name": "Avery Learner",
"last_course_id": 201,
"language": "en",
"time_zone": "Eastern Time (US & Canada)",
"model_type": "user",
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-02T10:15:00.000-04:00",
"picture_url": "",
"username": "[email protected]",
"email": "[email protected]",
"id": 101,
"first_name": "Avery",
"last_name": "Learner",
"email_notifications": true,
"sms_notifications": false,
"manager": false,
"admin": false,
"role": "learner",
"login_status": "active",
"user_id": 101,
"name": "Avery Learner",
"webcal_secure_link": "webcals://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"webcal_link": "webcal://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"gravatar_url": "https://www.gravatar.com/avatar/00000000000000000000000000000000",
"view_key": "sample_view_key",
"last_login": "2026-05-03T14:20:00.000-04:00",
"global_content_manager": false,
"full_permissions_for_courses_i_created": false,
"custom_dashboard_id": null,
"access_end_date": null,
"access_start_date": null,
"initials": "AL",
"title": "Customer Success Associate",
"company": "Example Co.",
"address": null,
"address_2": null,
"country": "US",
"state": "NY",
"city": "New York",
"zip": "10001",
"cell": null,
"phone": null,
"work_phone": null,
"ssn": null,
"date_of_birth": null,
"user_identifier": "EMP-101",
"ca_0": "North America",
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"gender": null,
"notification_email": "[email protected]"
},
"course": [
{
"created_at": "2026-04-20T12:00:00.000-04:00",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"name": "New Hire Orientation",
"description": "Overview of company policies and onboarding tasks.",
"certificate": true,
"active": true,
"credits": "1.0",
"accessible_after_date": null,
"accessible_after_date_int": 0,
"start_date": null,
"start_date_int": 0,
"opening_date": null,
"opening_date_int": 0,
"end_date": null,
"end_date_int": 0,
"closing_date": null,
"closing_date_int": 0,
"inaccessible_after_date": null,
"inaccessible_after_date_int": 0,
"force_order": false,
"validity_length": null,
"picture_url": "",
"sell": false,
"contact_email": "[email protected]",
"course_id": 201,
"id": 201,
"category": "Onboarding",
"course_code": "ONB-101",
"type_of_training": "Online",
"estimated_course_length_in_minutes": 60,
"tags": [
"onboarding",
"required"
],
"ca_0": null,
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null
}
]
},
{
"id": 902,
"days_until_deadline": 14,
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-05T11:10:00.000-04:00",
"skip_prerequisites": false,
"course_id": 202,
"course_name": "Workplace Safety Basics",
"user_id": 102,
"user_email": "[email protected]",
"status": "passed",
"commencement_date": "2026-05-01T09:30:00.000-04:00",
"enrollment_date": "2026-05-01T09:00:00.000-04:00",
"completion_date": "2026-05-07T15:30:00.000-04:00",
"last_course_item_id": 211,
"percent_viewed": 100,
"display_percent_viewed": 100,
"expiration_date": null,
"expired": false,
"access_date": null,
"deadline_date": "2026-05-15T23:59:59.000-04:00",
"override_dates": false,
"real_end_date": "2026-05-15T23:59:59.000-04:00",
"real_start_date": null,
"certificate_view_link": "https://example.skyprepapp.com/certificates/show?course_progress_id=901&f=pdf",
"public_certificate_view_link": "https://example.skyprepapp.com/public_api/view_certificate?course_progress_id=901&view_key=sample_view_key",
"computed_deadline_date": "2026-05-15T23:59:59.000-04:00",
"custom_properties": [],
"next_reenrollment_date": null,
"formatted_commencement_date": "01-May 2026",
"formatted_enrollment_date": "01-May 2026",
"formatted_completion_date": "07-May 2026",
"formatted_expiration_date": "",
"formatted_access_date": "",
"formatted_deadline_date": "15-May 2026",
"formatted_real_end_date": "15-May 2026",
"formatted_real_start_date": "",
"formatted_computed_deadline_date": "15-May 2026",
"formatted_next_reenrollment_date": "",
"user": {
"name_with_username": "Avery Learner - [email protected]",
"display_name": "Avery Learner",
"last_course_id": 201,
"language": "en",
"time_zone": "Eastern Time (US & Canada)",
"model_type": "user",
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-02T10:15:00.000-04:00",
"picture_url": "",
"username": "[email protected]",
"email": "[email protected]",
"id": 101,
"first_name": "Avery",
"last_name": "Learner",
"email_notifications": true,
"sms_notifications": false,
"manager": false,
"admin": false,
"role": "learner",
"login_status": "active",
"user_id": 101,
"name": "Avery Learner",
"webcal_secure_link": "webcals://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"webcal_link": "webcal://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"gravatar_url": "https://www.gravatar.com/avatar/00000000000000000000000000000000",
"view_key": "sample_view_key",
"last_login": "2026-05-03T14:20:00.000-04:00",
"global_content_manager": false,
"full_permissions_for_courses_i_created": false,
"custom_dashboard_id": null,
"access_end_date": null,
"access_start_date": null,
"initials": "AL",
"title": "Customer Success Associate",
"company": "Example Co.",
"address": null,
"address_2": null,
"country": "US",
"state": "NY",
"city": "New York",
"zip": "10001",
"cell": null,
"phone": null,
"work_phone": null,
"ssn": null,
"date_of_birth": null,
"user_identifier": "EMP-101",
"ca_0": "North America",
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"gender": null,
"notification_email": "[email protected]"
},
"course": [
{
"created_at": "2026-04-20T12:00:00.000-04:00",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"name": "New Hire Orientation",
"description": "Overview of company policies and onboarding tasks.",
"certificate": true,
"active": true,
"credits": "1.0",
"accessible_after_date": null,
"accessible_after_date_int": 0,
"start_date": null,
"start_date_int": 0,
"opening_date": null,
"opening_date_int": 0,
"end_date": null,
"end_date_int": 0,
"closing_date": null,
"closing_date_int": 0,
"inaccessible_after_date": null,
"inaccessible_after_date_int": 0,
"force_order": false,
"validity_length": null,
"picture_url": "",
"sell": false,
"contact_email": "[email protected]",
"course_id": 201,
"id": 201,
"category": "Onboarding",
"course_code": "ONB-101",
"type_of_training": "Online",
"estimated_course_length_in_minutes": 60,
"tags": [
"onboarding",
"required"
],
"ca_0": null,
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null
}
]
}
]
Get a Course Progress
GET https://api.skyprep.io/admin/api/get_course_progress
GET https://api.skyprep.io/admin/api/get_course_progress
#sample parameters
{
"course_progress_id" : "96854"
}
#sample response
{
"id": 901,
"days_until_deadline": 14,
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-05T11:10:00.000-04:00",
"skip_prerequisites": false,
"course_id": 201,
"course_name": "New Hire Orientation",
"user_id": 101,
"user_email": "[email protected]",
"status": "in-progress",
"commencement_date": "2026-05-01T09:30:00.000-04:00",
"enrollment_date": "2026-05-01T09:00:00.000-04:00",
"completion_date": null,
"last_course_item_id": 211,
"percent_viewed": 50,
"display_percent_viewed": 50,
"expiration_date": null,
"expired": false,
"access_date": null,
"deadline_date": "2026-05-15T23:59:59.000-04:00",
"override_dates": false,
"real_end_date": "2026-05-15T23:59:59.000-04:00",
"real_start_date": null,
"certificate_view_link": "https://example.skyprepapp.com/certificates/show?course_progress_id=901&f=pdf",
"public_certificate_view_link": "https://example.skyprepapp.com/public_api/view_certificate?course_progress_id=901&view_key=sample_view_key",
"computed_deadline_date": "2026-05-15T23:59:59.000-04:00",
"custom_properties": [],
"next_reenrollment_date": null,
"formatted_commencement_date": "01-May 2026",
"formatted_enrollment_date": "01-May 2026",
"formatted_completion_date": "",
"formatted_expiration_date": "",
"formatted_access_date": "",
"formatted_deadline_date": "15-May 2026",
"formatted_real_end_date": "15-May 2026",
"formatted_real_start_date": "",
"formatted_computed_deadline_date": "15-May 2026",
"formatted_next_reenrollment_date": "",
"user": {
"name_with_username": "Avery Learner - [email protected]",
"display_name": "Avery Learner",
"last_course_id": 201,
"language": "en",
"time_zone": "Eastern Time (US & Canada)",
"model_type": "user",
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-02T10:15:00.000-04:00",
"picture_url": "",
"username": "[email protected]",
"email": "[email protected]",
"id": 101,
"first_name": "Avery",
"last_name": "Learner",
"email_notifications": true,
"sms_notifications": false,
"manager": false,
"admin": false,
"role": "learner",
"login_status": "active",
"user_id": 101,
"name": "Avery Learner",
"webcal_secure_link": "webcals://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"webcal_link": "webcal://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"gravatar_url": "https://www.gravatar.com/avatar/00000000000000000000000000000000",
"view_key": "sample_view_key",
"last_login": "2026-05-03T14:20:00.000-04:00",
"global_content_manager": false,
"full_permissions_for_courses_i_created": false,
"custom_dashboard_id": null,
"access_end_date": null,
"access_start_date": null,
"initials": "AL",
"title": "Customer Success Associate",
"company": "Example Co.",
"address": null,
"address_2": null,
"country": "US",
"state": "NY",
"city": "New York",
"zip": "10001",
"cell": null,
"phone": null,
"work_phone": null,
"ssn": null,
"date_of_birth": null,
"user_identifier": "EMP-101",
"ca_0": "North America",
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"gender": null,
"notification_email": "[email protected]"
},
"course": [
{
"created_at": "2026-04-20T12:00:00.000-04:00",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"name": "New Hire Orientation",
"description": "Overview of company policies and onboarding tasks.",
"certificate": true,
"active": true,
"credits": "1.0",
"accessible_after_date": null,
"accessible_after_date_int": 0,
"start_date": null,
"start_date_int": 0,
"opening_date": null,
"opening_date_int": 0,
"end_date": null,
"end_date_int": 0,
"closing_date": null,
"closing_date_int": 0,
"inaccessible_after_date": null,
"inaccessible_after_date_int": 0,
"force_order": false,
"validity_length": null,
"picture_url": "",
"sell": false,
"contact_email": "[email protected]",
"course_id": 201,
"id": 201,
"category": "Onboarding",
"course_code": "ONB-101",
"type_of_training": "Online",
"estimated_course_length_in_minutes": 60,
"tags": [
"onboarding",
"required"
],
"ca_0": null,
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null
}
]
}
Creates a course progress.
POST https://api.skyprep.io/admin/api/create_course_progress
GET https://api.skyprep.io/admin/api/create_course
#sample parameters
{
"name" : "How to Catch A Serial Killer",
"active" : "true"
}
#sample response
{
"id": 901,
"days_until_deadline": 14,
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-05T11:10:00.000-04:00",
"skip_prerequisites": false,
"course_id": 201,
"course_name": "New Hire Orientation",
"user_id": 101,
"user_email": "[email protected]",
"status": "in-progress",
"commencement_date": "2026-05-01T09:30:00.000-04:00",
"enrollment_date": "2026-05-01T09:00:00.000-04:00",
"completion_date": null,
"last_course_item_id": 211,
"percent_viewed": 50,
"display_percent_viewed": 50,
"expiration_date": null,
"expired": false,
"access_date": null,
"deadline_date": "2026-05-15T23:59:59.000-04:00",
"override_dates": false,
"real_end_date": "2026-05-15T23:59:59.000-04:00",
"real_start_date": null,
"certificate_view_link": "https://example.skyprepapp.com/certificates/show?course_progress_id=901&f=pdf",
"public_certificate_view_link": "https://example.skyprepapp.com/public_api/view_certificate?course_progress_id=901&view_key=sample_view_key",
"computed_deadline_date": "2026-05-15T23:59:59.000-04:00",
"custom_properties": [],
"next_reenrollment_date": null,
"formatted_commencement_date": "01-May 2026",
"formatted_enrollment_date": "01-May 2026",
"formatted_completion_date": "",
"formatted_expiration_date": "",
"formatted_access_date": "",
"formatted_deadline_date": "15-May 2026",
"formatted_real_end_date": "15-May 2026",
"formatted_real_start_date": "",
"formatted_computed_deadline_date": "15-May 2026",
"formatted_next_reenrollment_date": "",
"user": {
"name_with_username": "Avery Learner - [email protected]",
"display_name": "Avery Learner",
"last_course_id": 201,
"language": "en",
"time_zone": "Eastern Time (US & Canada)",
"model_type": "user",
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-02T10:15:00.000-04:00",
"picture_url": "",
"username": "[email protected]",
"email": "[email protected]",
"id": 101,
"first_name": "Avery",
"last_name": "Learner",
"email_notifications": true,
"sms_notifications": false,
"manager": false,
"admin": false,
"role": "learner",
"login_status": "active",
"user_id": 101,
"name": "Avery Learner",
"webcal_secure_link": "webcals://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"webcal_link": "webcal://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"gravatar_url": "https://www.gravatar.com/avatar/00000000000000000000000000000000",
"view_key": "sample_view_key",
"last_login": "2026-05-03T14:20:00.000-04:00",
"global_content_manager": false,
"full_permissions_for_courses_i_created": false,
"custom_dashboard_id": null,
"access_end_date": null,
"access_start_date": null,
"initials": "AL",
"title": "Customer Success Associate",
"company": "Example Co.",
"address": null,
"address_2": null,
"country": "US",
"state": "NY",
"city": "New York",
"zip": "10001",
"cell": null,
"phone": null,
"work_phone": null,
"ssn": null,
"date_of_birth": null,
"user_identifier": "EMP-101",
"ca_0": "North America",
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"gender": null,
"notification_email": "[email protected]"
},
"course": [
{
"created_at": "2026-04-20T12:00:00.000-04:00",
"updated_at": "2026-05-01T13:30:00.000-04:00",
"name": "New Hire Orientation",
"description": "Overview of company policies and onboarding tasks.",
"certificate": true,
"active": true,
"credits": "1.0",
"accessible_after_date": null,
"accessible_after_date_int": 0,
"start_date": null,
"start_date_int": 0,
"opening_date": null,
"opening_date_int": 0,
"end_date": null,
"end_date_int": 0,
"closing_date": null,
"closing_date_int": 0,
"inaccessible_after_date": null,
"inaccessible_after_date_int": 0,
"force_order": false,
"validity_length": null,
"picture_url": "",
"sell": false,
"contact_email": "[email protected]",
"course_id": 201,
"id": 201,
"category": "Onboarding",
"course_code": "ONB-101",
"type_of_training": "Online",
"estimated_course_length_in_minutes": 60,
"tags": [
"onboarding",
"required"
],
"ca_0": null,
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null
}
]
}
Updates a Course Progress
POST https://api.skyprep.io/admin/api/update_course_progress
passed, failed, in-progress, not-applicable, not-started
POST https://api.skyprep.io/admin/api/update_course_progress
#sample parameters
{
"course_progress_id" : "96854",
"set_status" : "failed"
}
#sample response
{
"message": "success"
}
Delete a Course Progress Permanentely from the System
POST https://api.skyprep.io/admin/api/destroy_course_progress
POST https://api.skyprep.io/admin/api/destroy_course_progress
#sample parameters
{
"course_progress_id" : "96854"
}
#sample response
success
Get the progress of a course item for a user.
This call requires some combination of exam_id, user_id, course_id, course_progress_id and course_item_id for the API to return the status of a users progress through a specific course_item.
For example, if you specify the course_item_id and user_id, the system will figure out the course belonging to the course_item, get the course_progress of the user in that course, and then get the course_item_progress of that course_progress.
Another example. If you specify the exam_id and course_progress_id, the system will find the course_progress, figure out the user and the course, and find the first course item in that course that matches that has that exam as its exam_id, and return the users course_item progress for that course_item.
GET https://api.skyprep.io/admin/api/get_course_item_progress
GET https://api.skyprep.io/admin/api/get_course_item_progress
#sample parameters
{
"course_id" : "1234",
"user_id" : "5223",
"course_item_id" : "5231",
}
#sample response
{
"course_progress_id": 901,
"user_id": 101,
"course_item_type": "Article",
"status": "passed",
"courseable_id": 311,
"completed_at": "2026-05-04T12:00:00.000-04:00",
"completed_at_int": 1777900800
}
Set the Progress for a course item for a user in a course
POST https://api.skyprep.io/admin/api/set_course_item_progress
POST https://api.skyprep.io/admin/api/set_course_item_progress
#sample parameters
{
"user_id" : "124112",
"set_status" : "failed"
}
#sample response
{
"message": "success"
}
The SkyPrep API lets you generate reports (in CSV and XLSX).
Reports can be generated by passing in a report_type parameter as well as additional parameters required for the report (e.g. user_id, course_id, exam_id etc).
POST https://api.skyprep.io/admin/api/get_report
csv (default) xlsx
all_usersall_coursessingle_usersingle_coursesingle_user_single_coursesingle_user_single_groupsingle_group_all_userssingle_group_all_coursessingle_exam
GET https://api.skyprep.io/admin/api/get_report
#sample parameters
{
"report_type" : "single_course_single_user",
"user_id" : "41",
"course_id" : "88"
}
#sample response
user_id,user_email,course_id,course_name,status
101,[email protected],201,New Hire Orientation,in-progress
102,[email protected],202,Workplace Safety Basics,passed
Reports can be generated by passing in a report_type parameter as well as additional parameters required for the report (e.g. user_id, course_id, exam_id etc).
A status_url is returned that you can visit to get the status and data of the report (when it is ready).
POST https://api.skyprep.io/admin/api/generate_async_report
csv (default) xlsx
all_usersall_coursessingle_usersingle_coursesingle_user_single_coursesingle_user_single_groupsingle_group_all_userssingle_group_all_coursessingle_exam
GET https://api.skyprep.io/admin/api/generate_async_report
#sample parameters
{
"report_type" : "all_users",
"format" : "csv"
}
#sample response
{
"status_url": "https://api.skyprep.io/admin/api/get_async_report?process_queue_item_id=1001"
}
Gets a collection of reports generated via the Advanced Reporting section of the LMS.
POST https://api.skyprep.io/admin/api/get_saved_advanced_reports
GET https://api.skyprep.io/admin/api/get_saved_advanced_reports
#sample response
[
{
"created_at": "2026-05-01T07:03:59.000-04:00",
"created_at_int": 1777623839,
"updated_at": "2026-05-01T07:05:10.000-04:00",
"updated_at_int": 1777623910,
"id": 1001,
"saved_advanced_report_id": 1001,
"model_type": "saved_advanced_report",
"xlsx_url": "https://example.skyprepapp.com/admin/advanced_reports/download/?file_format=xlsx&saved_advanced_report_id=1001",
"csv_url": "https://example.skyprepapp.com/admin/advanced_reports/download/?file_format=csv&saved_advanced_report_id=1001",
"report_params_digest": "sample_report_params_digest",
"saved_report_type": "saved_report_with_data",
"name": "All Course Progresses Report"
},
{
"created_at": "2026-05-01T07:03:59.000-04:00",
"created_at_int": 1777623839,
"updated_at": "2026-05-01T07:05:10.000-04:00",
"updated_at_int": 1777623910,
"id": 1002,
"saved_advanced_report_id": 1002,
"model_type": "saved_advanced_report",
"xlsx_url": "https://example.skyprepapp.com/admin/advanced_reports/download/?file_format=xlsx&saved_advanced_report_id=1001",
"csv_url": "https://example.skyprepapp.com/admin/advanced_reports/download/?file_format=csv&saved_advanced_report_id=1001",
"report_params_digest": "sample_report_params_digest",
"saved_report_type": "saved_report_with_data",
"name": "All Users Report"
}
]
Gets a collection of reports generated via the Advanced Reporting section of the LMS.
POST https://api.skyprep.io/admin/api/get_saved_advanced_report
GET https://api.skyprep.io/admin/api/get_saved_advanced_report
#sample parameters
{
"saved_advanced_report_id" : "14166",
"format" : "csv"
}
#sample response
{
"created_at": "2026-05-01T07:03:59.000-04:00",
"created_at_int": 1777623839,
"updated_at": "2026-05-01T07:05:10.000-04:00",
"updated_at_int": 1777623910,
"id": 1001,
"saved_advanced_report_id": 1001,
"model_type": "saved_advanced_report",
"xlsx_url": "https://example.skyprepapp.com/admin/advanced_reports/download/?file_format=xlsx&saved_advanced_report_id=1001",
"csv_url": "https://example.skyprepapp.com/admin/advanced_reports/download/?file_format=csv&saved_advanced_report_id=1001",
"report_params_digest": "sample_report_params_digest",
"saved_report_type": "saved_report_with_data",
"name": "All Course Progresses Report",
"columns": [
"User ID",
"Email",
"Course",
"Status"
],
"rows": [
[
101,
"[email protected]",
"New Hire Orientation",
"in-progress"
],
[
102,
"[email protected]",
"Workplace Safety Basics",
"passed"
]
]
}
The SkyPrep API lets you get user balances and create gamification transactions to assign points to a user.
Get Users Gamification Balance.
GET https://api.skyprep.io/admin/api/get_user_gamification_balance
#sample parameters
{
"email" : "[email protected]"
}
#sample response
{
"user_id": 101,
"email": "[email protected]",
"gamification_balance": 125
}
Gamification Transaction for a User can be created through the API by passing in these parameters
POST https://api.skyprep.io/admin/api/create_gamification_transaction
POST https://api.skyprep.io/admin/api/create_gamification_transaction
#sample parameters
{
"user_id" : 12345,
"amount" : -200,
"description" : "Deduct points for spending on another platform"
}
#sample response
{
"model_type": "gamification_transaction",
"id": 1101,
"user_id": 101,
"amount": 25,
"description": "Manual adjustment",
"balance": 150,
"unique_transaction_id": "txn_20260501_001",
"created_at": "2026-05-01T09:00:00.000-04:00",
"created_at_int": 1777630800,
"updated_at": "2026-05-01T09:00:00.000-04:00",
"updated_at_int": 1777630800
}
The SkyPrep API lets you get user skill balances and competencies achieved, and create skill transactions to assign points to a user.
Get a summary of all the skills
GET https://api.skyprep.io/admin/api/get_skills
GET https://api.skyprep.io/admin/api/get_skills
#sample response
[
{
"display_name": "Communication",
"name": "communication",
"id": 1201,
"description": "Communicates clearly with customers and teammates.",
"competency_count": 1,
"rubric": [
{
"title": "Beginner",
"skill_points": 25
},
{
"title": "Advanced",
"skill_points": 100
}
]
},
{
"display_name": "Safety",
"name": "safety",
"id": 1202,
"description": "Safety knowledge and procedures.",
"competency_count": 1,
"rubric": [
{
"title": "Beginner",
"skill_points": 25
},
{
"title": "Advanced",
"skill_points": 100
}
]
}
]
Get details of a skill
GET https://api.skyprep.io/admin/api/get_skill
GET https://api.skyprep.io/admin/api/get_skill
#sample parameters
{
"skill_id" : 1555,
}
#sample response
{
"display_name": "Communication",
"name": "communication",
"id": 1201,
"description": "Communicates clearly with customers and teammates.",
"competency_count": 1,
"rubric": [
{
"title": "Beginner",
"skill_points": 25
},
{
"title": "Advanced",
"skill_points": 100
}
],
"details": {
"users_with_balance_count": 12,
"total_points_awarded": 840
}
}
Get all the skill balances for a particular user. This will also include competencies they have achieved.
GET https://api.skyprep.io/admin/api/get_user_skill_balances_and_competencies
POST https://api.skyprep.io/admin/api/get_user_skill_balances_and_competencies
#sample parameters
{
"email" : "[email protected]"
}
#sample response
{
"user_id": 101,
"email": "[email protected]",
"skill_balances": {
"communication": 120,
"safety": 80
},
"competencies_achieved": [
"Customer Readiness"
]
}
Skill Transactions for a User can be created through the API by passing in these parameters
POST https://api.skyprep.io/admin/api/create_skill_transaction
POST https://api.skyprep.io/admin/api/create_skill_transaction
#sample parameters
{
"skill_id" : 1555,
"user_id" : 12345,
"amount" : 200,
}
#sample response
{
"communication": 145,
"safety": 80
}
Get a summary of all the competencies
POST https://api.skyprep.io/admin/api/get_competencies
POST https://api.skyprep.io/admin/api/get_competencies
#sample response
[
{
"display_name": "Customer Readiness",
"name": "customer-readiness",
"id": 1301,
"description": "Learner is ready to work with customers.",
"nexus_collection_ids_to_assign_as_expert": [],
"image_url": null,
"skills": {
"display_name": "Communication",
"name": "communication",
"id": 1201,
"description": "Communicates clearly with customers and teammates.",
"competency_count": 1,
"rubric": [
{
"title": "Beginner",
"skill_points": 25
},
{
"title": "Advanced",
"skill_points": 100
}
],
"points": 100,
"skill_level_id": 2,
"skill_level_title": "Advanced"
}
},
{
"display_name": "Safety Certified",
"name": "safety-certified",
"id": 1302,
"description": "Completed required safety skills.",
"nexus_collection_ids_to_assign_as_expert": [],
"image_url": null,
"skills": {
"display_name": "Communication",
"name": "communication",
"id": 1201,
"description": "Communicates clearly with customers and teammates.",
"competency_count": 1,
"rubric": [
{
"title": "Beginner",
"skill_points": 25
},
{
"title": "Advanced",
"skill_points": 100
}
],
"points": 100,
"skill_level_id": 2,
"skill_level_title": "Advanced"
}
}
]
Get details of a competency
GET https://api.skyprep.io/admin/api/get_competency
GET https://api.skyprep.io/admin/api/get_competency
#sample parameters
{
"competency_id" : 32
}
#sample response
{
"display_name": "Customer Readiness",
"name": "customer-readiness",
"id": 1301,
"description": "Learner is ready to work with customers.",
"nexus_collection_ids_to_assign_as_expert": [],
"image_url": null,
"skills": {
"display_name": "Communication",
"name": "communication",
"id": 1201,
"description": "Communicates clearly with customers and teammates.",
"competency_count": 1,
"rubric": [
{
"title": "Beginner",
"skill_points": 25
},
{
"title": "Advanced",
"skill_points": 100
}
],
"points": 100,
"skill_level_id": 2,
"skill_level_title": "Advanced"
},
"details": {
"users_achieved_count": 8,
"achievement_rate": "72%"
}
}
The SkyPrep API lets you assign manager permissions associated to a group.
Get Manager Permissions From User Group.
GET https://api.skyprep.io/admin/api/get_manager_permissions_from_user_group
#sample parameters
{
"user_id" : "90210",
"user_group_id" : "888"
}
#sample response
{
"id": 1601,
"user": {
"name_with_username": "Avery Learner - [email protected]",
"display_name": "Avery Learner",
"last_course_id": 201,
"language": "en",
"time_zone": "Eastern Time (US & Canada)",
"model_type": "user",
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-02T10:15:00.000-04:00",
"picture_url": "",
"username": "[email protected]",
"email": "[email protected]",
"id": 102,
"first_name": "Jordan",
"last_name": "Manager",
"email_notifications": true,
"sms_notifications": false,
"manager": true,
"admin": false,
"role": "manager",
"login_status": "active",
"user_id": 102,
"name": "Avery Learner",
"webcal_secure_link": "webcals://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"webcal_link": "webcal://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"gravatar_url": "https://www.gravatar.com/avatar/00000000000000000000000000000000",
"view_key": "sample_view_key",
"last_login": "2026-05-03T14:20:00.000-04:00",
"global_content_manager": false,
"full_permissions_for_courses_i_created": false,
"custom_dashboard_id": null,
"access_end_date": null,
"access_start_date": null,
"initials": "AL",
"title": "Customer Success Associate",
"company": "Example Co.",
"address": null,
"address_2": null,
"country": "US",
"state": "NY",
"city": "New York",
"zip": "10001",
"cell": null,
"phone": null,
"work_phone": null,
"ssn": null,
"date_of_birth": null,
"user_identifier": "EMP-101",
"ca_0": "North America",
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"gender": null,
"notification_email": "[email protected]"
},
"can_add_users": true,
"can_receive_notifications": true,
"can_edit_course_progress": true,
"can_remove_users": false,
"can_add_existing_users": true,
"user_group": {
"id": 301,
"name": "Sales Team",
"full_name": "Sales Team",
"user_group_id": null,
"created_at": "2026-04-01T09:00:00.000-04:00",
"updated_at": "2026-05-01T09:00:00.000-04:00",
"description": "Learners in the sales department.",
"user_group_type": "user",
"category": "Department",
"force_order": false
},
"can_manage_all_group_users_courses": true,
"can_add_courses_to_user_group": true,
"can_remove_courses_from_user_group": false,
"can_edit_user_password": false
}
Remove Manager From User Group.
GET https://api.skyprep.io/admin/api/remove_manager_from_user_group
#sample parameters
{
"user_id" : "90210",
"user_group_id" : "888"
}
#sample response
{
"message": "success"
}
Assign Manager To User Group.
GET https://api.skyprep.io/admin/api/assign_manager_to_user_group
#sample parameters
{
"user_id" : "90210",
"user_group_id" : "888",
"can_add_courses_to_user_group" : "0",
"can_remove_courses_from_user_group" : "0",
}
#sample response
{
"id": 1601,
"user": {
"name_with_username": "Avery Learner - [email protected]",
"display_name": "Avery Learner",
"last_course_id": 201,
"language": "en",
"time_zone": "Eastern Time (US & Canada)",
"model_type": "user",
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-02T10:15:00.000-04:00",
"picture_url": "",
"username": "[email protected]",
"email": "[email protected]",
"id": 102,
"first_name": "Jordan",
"last_name": "Manager",
"email_notifications": true,
"sms_notifications": false,
"manager": true,
"admin": false,
"role": "manager",
"login_status": "active",
"user_id": 102,
"name": "Avery Learner",
"webcal_secure_link": "webcals://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"webcal_link": "webcal://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"gravatar_url": "https://www.gravatar.com/avatar/00000000000000000000000000000000",
"view_key": "sample_view_key",
"last_login": "2026-05-03T14:20:00.000-04:00",
"global_content_manager": false,
"full_permissions_for_courses_i_created": false,
"custom_dashboard_id": null,
"access_end_date": null,
"access_start_date": null,
"initials": "AL",
"title": "Customer Success Associate",
"company": "Example Co.",
"address": null,
"address_2": null,
"country": "US",
"state": "NY",
"city": "New York",
"zip": "10001",
"cell": null,
"phone": null,
"work_phone": null,
"ssn": null,
"date_of_birth": null,
"user_identifier": "EMP-101",
"ca_0": "North America",
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"gender": null,
"notification_email": "[email protected]"
},
"can_add_users": true,
"can_receive_notifications": true,
"can_edit_course_progress": true,
"can_remove_users": false,
"can_add_existing_users": true,
"user_group": {
"id": 301,
"name": "Sales Team",
"full_name": "Sales Team",
"user_group_id": null,
"created_at": "2026-04-01T09:00:00.000-04:00",
"updated_at": "2026-05-01T09:00:00.000-04:00",
"description": "Learners in the sales department.",
"user_group_type": "user",
"category": "Department",
"force_order": false
},
"can_manage_all_group_users_courses": true,
"can_add_courses_to_user_group": true,
"can_remove_courses_from_user_group": false,
"can_edit_user_password": false
}
Update Manager Permissions In User Group.
GET https://api.skyprep.io/admin/api/update_manager_permissions_in_user_group
#sample parameters
{
"user_id" : "90210",
"user_group_id" : "888"
"can_add_courses_to_user_group" : "0",
"can_remove_courses_from_user_group" : "0",
}
#sample response
{
"id": 1601,
"user": {
"name_with_username": "Avery Learner - [email protected]",
"display_name": "Avery Learner",
"last_course_id": 201,
"language": "en",
"time_zone": "Eastern Time (US & Canada)",
"model_type": "user",
"created_at": "2026-05-01T09:00:00.000-04:00",
"updated_at": "2026-05-02T10:15:00.000-04:00",
"picture_url": "",
"username": "[email protected]",
"email": "[email protected]",
"id": 102,
"first_name": "Jordan",
"last_name": "Manager",
"email_notifications": true,
"sms_notifications": false,
"manager": true,
"admin": false,
"role": "manager",
"login_status": "active",
"user_id": 102,
"name": "Avery Learner",
"webcal_secure_link": "webcals://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"webcal_link": "webcal://example.skyprepapp.com/public_api/calendar/?user_id=101&calendar_key=sample_calendar_key",
"gravatar_url": "https://www.gravatar.com/avatar/00000000000000000000000000000000",
"view_key": "sample_view_key",
"last_login": "2026-05-03T14:20:00.000-04:00",
"global_content_manager": false,
"full_permissions_for_courses_i_created": false,
"custom_dashboard_id": null,
"access_end_date": null,
"access_start_date": null,
"initials": "AL",
"title": "Customer Success Associate",
"company": "Example Co.",
"address": null,
"address_2": null,
"country": "US",
"state": "NY",
"city": "New York",
"zip": "10001",
"cell": null,
"phone": null,
"work_phone": null,
"ssn": null,
"date_of_birth": null,
"user_identifier": "EMP-101",
"ca_0": "North America",
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"gender": null,
"notification_email": "[email protected]"
},
"can_add_users": false,
"can_receive_notifications": true,
"can_edit_course_progress": true,
"can_remove_users": true,
"can_add_existing_users": true,
"user_group": {
"id": 301,
"name": "Sales Team",
"full_name": "Sales Team",
"user_group_id": null,
"created_at": "2026-04-01T09:00:00.000-04:00",
"updated_at": "2026-05-01T09:00:00.000-04:00",
"description": "Learners in the sales department.",
"user_group_type": "user",
"category": "Department",
"force_order": false
},
"can_manage_all_group_users_courses": true,
"can_add_courses_to_user_group": true,
"can_remove_courses_from_user_group": false,
"can_edit_user_password": false
}
The SkyPrep API lets you update your SkyPrep account.
Your SkyPrep account information.
GET https://api.skyprep.io/admin/api/get_program
GET https://api.skyprep.io/admin/api/get_program
#sample response
{
"created_at": "2020-01-01T09:00:00.000-05:00",
"updated_at": "2026-05-01T09:00:00.000-04:00",
"name": "Example Training Portal",
"acct_key": "example.skyprepapp.com",
"users_count": 302,
"courses_count": 42,
"user_groups_count": 9,
"admin_count": 4,
"learning_paths_count": 6
}
Get data/statistics about your platform
GET https://api.skyprep.io/admin/api/get_data
user_count,
admin_count,
learner_count,
course_count,
user_group_count
GET https://api.skyprep.io/admin/api/get_data
#sample parameters
{
"data_type" : "learner_count"
}
#sample response
{
"data": 302
}
The SkyPrep API lets you fetch your content.
Get All materials in your platform
GET https://api.skyprep.io/admin/api/get_materials
GET https://api.skyprep.io/admin/api/get_materials
#sample response
[
{
"created_at": "2026-04-15T09:00:00.000-04:00",
"updated_at": "2026-04-15T09:00:00.000-04:00",
"article_id": 1401,
"id": 1401,
"parent_id": null,
"name": "Welcome Guide.pdf",
"download_url": "https://example.skyprepapp.com/materials/download/1401",
"file_extension": "pdf",
"descriptive_extension": "PDF Document",
"version_code": "v1",
"page_count": 12,
"category": "Onboarding"
},
{
"created_at": "2026-04-15T09:00:00.000-04:00",
"updated_at": "2026-04-15T09:00:00.000-04:00",
"article_id": 1402,
"id": 1402,
"parent_id": null,
"name": "Safety Checklist.pdf",
"download_url": "https://example.skyprepapp.com/materials/download/1401",
"file_extension": "pdf",
"descriptive_extension": "PDF Document",
"version_code": "v1",
"page_count": 12,
"category": "Safety"
}
]
The SkyPrep API lets you fetch payment details for courses you sell via SkyPrep. These include payments that were made for courses you sold via Stripe or PayPal.
Get payment details. Records are ordered by created_at in descending order.
GET https://api.skyprep.io/admin/api/get_payments
#sample parameters
{
"status" : "complete",
"created_after_days_ago" : 3,
"payment_type" : "paypal"
}
#sample response
[
{
"id": 1501,
"model_type": "payment",
"payment_type": "stripe",
"status": "complete",
"transaction_number": "pi_000000000001",
"ipn_history": [],
"amount": "99.00",
"user_id": 101,
"first_name": "Avery",
"last_name": "Learner",
"ca_0": null,
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"payer_email": "[email protected]",
"latest_ipn_data": [],
"created_at": "2026-05-01T09:00:00.000-04:00",
"created_at_int": 1777630800,
"updated_at": "2026-05-01T09:00:00.000-04:00",
"updated_at_int": 1777630800
},
{
"id": 1502,
"model_type": "payment",
"payment_type": "stripe",
"status": "complete",
"transaction_number": "pi_000000000002",
"ipn_history": [],
"amount": "49.00",
"user_id": 102,
"first_name": "Jordan",
"last_name": "Manager",
"ca_0": null,
"ca_1": null,
"ca_2": null,
"ca_3": null,
"ca_4": null,
"ca_5": null,
"ca_6": null,
"ca_7": null,
"ca_8": null,
"ca_9": null,
"ca_10": null,
"payer_email": "[email protected]",
"latest_ipn_data": [],
"created_at": "2026-05-01T09:00:00.000-04:00",
"created_at_int": 1777630800,
"updated_at": "2026-05-01T09:00:00.000-04:00",
"updated_at_int": 1777630800
}
]