LMS API Overview

🚧

Partner Restricted

All endpoints for this API are restricted to providers that have signed a Paylocity technology partnership agreement. Please reach out to [email protected] if you would like to discuss partnership opportunities.

Introduction

The LMS API enables content service providers to seamlessly integrate with Paylocity’s Learning Management System (LMS). Through this API, partners can perform essential actions such as adding new training content, retrieving employee training assignments and status, and managing existing content by updating or deleting it.

Key Features

  • Seamless Content Management: Easily add or delete training content in a customer’s LMS library.
  • Content Tracking: Retrieve training usage and track completion status for specific trainings.
  • Scalable Integration: Supports multiple company IDs for precise content distribution.

User Cases

Automated Content Integration:

  • A third-party learning platform wants to sync its training courses with Paylocity's LMS.
  • Using the Create LMS Content (POST) API, the provider can automatically push new training modules, SCORM packages, or video lessons into a client’s LMS library.

Real-Time Content Updates:

  • A content provider releases updated versions of training materials (e.g., new regulatory guidelines).
  • The provider can use the Delete LMS Content (DELETE) API to remove outdated content and then push new versions via the Create LMS Content (POST) API.

Multi-Company LMS Management:

  • A company with multiple subsidiaries (each with a unique company ID) wants to ensure all employees have access to the same training materials.
  • The partner can onboard each company ID separately and sync the same training content across all organizations.

Custom Reporting & Analytics:

  • A business intelligence tool wants to integrate with Paylocity’s LMS to analyze employee training effectiveness.
  • By pulling content metadata and tracking statistics via Retrieve Specific LMS Content (GET), the tool can generate reports on completion rates and engagement trends.

Training Content

The Learning Mangement APIs offer the capability to integrate and deliver a wide range of learning materials and resources. This encompass a wide array of formats, such as SCORM, Video, File, Url, VideoUpload, Quiz, VideoHub, Audio, and Text.


Getting Started with LMS APIs

Step 1: Create (POST) content to customer content library

The Create LMS API allows partners to seamlessly add new media content to a client's LMS library. This endpoint enables users to send external content items directly to the library through a POST request. With this API, partners can provide essential content metadata, such as the content title, description, URL, and file details, ensuring a smooth integration into the client's LMS environment. Each content item will include a unique external content ID and an optional thumbnail URL to enrich the user's experience. The resource schema outlines the required properties, making content creation and management straightforward.

fileDetails.length needs to be the exact length when uploading the file, or the preview will not work.

URL: /apiHub/learningManagementSystem/v1/companies/{companyId}/content

Request:

{  
  "title": "test",  
  "description": "my test",  
  "url": "<https://test.com">,  
  "contentType": 3,  
  "fileDetails": {  
    "name": "myFile.zip",  
    "length": 1024,  
    "contentType": "zip"  
  }  
}

Response:

{  
    "message": "Request is accepted and being processed",  
    "externalContentId": "e6f2091a-b8ce-480b-a0bc-6027071c7b9e",  
    "fileUploadDetails": {  
        "file": {  
            "guid": "d7f0d607-00fa-4af8-83bd-0452f1077c95",  
            "name": "myFile.pdf",  
            "length": 0  
        },  
        "strategies": {  
            "signed": {  
                "httpMethod": "PUT",  
                "url": "<https://example.paylocity.com/companies/42570/lmsFlatFileMediaContent/d7f0d607-00fa-4af8-83bd-0452f1077c95/myFile.zip?signature=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.ey">  
            }  
        }  
    }  
}

Step 2: Upload (PUT) file into customer content library

The next step is to add the physical file to the customer content library. This can be accomplished by using the strategies - signed URL generated in the response in the previous step. The content type also needs to be the same as the content type in the header.

Example URL: https://example.paylocity.com/companies/42570/lmsFlatFileMediaContent/d7f0d607-00fa-4af8-83bd-0452f1077c95/myFile.zip?signature=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.ey

Example file upload script:

// Retrieve the signed upload URL from the creation response.
            var fileUploadUrl = createResponse.FileUploadDetails.Strategies.Signed.Url;
            
            // Create a PUT request to the signed URL using the file content.
            // The Content-Type header is set using the value from the payload's FileDetails.
            using (var httpClient = new HttpClient())
            {
                var fileUploadRequest = new HttpRequestMessage(HttpMethod.Put, fileUploadUrl)
                {
                    Content = new ByteArrayContent(fileContent)
                };
                fileUploadRequest.Content.Headers.ContentType = new MediaTypeHeaderValue(payload.FileDetails.ContentType);

                // Execute the file upload.
                var fileUploadResponse = await httpClient.SendAsync(fileUploadRequest);
                // The file upload response is expected to return an HTTP 200 (OK) status.
            }

Step 3: Delete content from customer library

The Delete LMS API allows partners to remove media content from a client's LMS library. This endpoint enables users to delete specific media items through a DELETE request, ensuring the library is kept current and free from outdated or unwanted content. Upon successful deletion, the API returns a 202 Accepted response, confirming the content has been scheduled for removal. If the request is unauthorized, a 401 Unauthorized response will be returned, indicating access issues.

URL: /apiHub/learningManagementSystem/v1/companies/{companyId}/contents/{contentId}

Response:

{
  202 accepted / 401 unauthorized"
}

Step 4: Read (GET) ALL content from customer library

The GET ALL LMS API allows partners to retrieve details about a client's media content library. By sending a GET request, users can access content metadata such as the external content ID, title, description, URL, file ID, duration, and optional thumbnail URL. This API provides an easy way for partners to manage and review individual content items within their LMS integration.

URL: /learningManagementSystem/v1/companies/{companyId}/contents

Response:

{
  "models": [
    {
      "contentId": "string",
      "title": "string",
      "description": "string",
      "url": "string",
      "fileId": "string",
      "duration": 0,
    }
  ]
}

Step 5: Read (GET) single content from customer library

The GET SINGLE LMS API allows partners to retrieve details about specific content in a client media content library. By sending a GET request, users can access content metadata such as the external content ID, title, description, URL, file ID, duration, and optional thumbnail URL. This API provides an easy way for partners to manage and review individual content items within their LMS integration.

URL: /learningManagementSystem/v1/companies/{companyId}/contents/{contentId}

Response:

"model": {
        "contentId": "b2d0db11-f6ed-4cfd-afa0-88a294a686a4",
        "title": "Mocked Title",
        "description": "Mocked Description",
        "url": "https://example.com/mocked",
        "fileId": "mockedFileId123",
        "duration": 120
    },
    "usage": {
        "companyId": "42570",
        "companyName": "test",
        "statistics": [
            {
                "trainingName": "TrainingName",
                "dueDates": [
                    "2025-02-12T00:00:00-06:00",
                    "2025-02-13T00:00:00-06:00"
                ],
                "totalAssigned": 10,
                "totalCompleted": 9
            }
        ]
    }
}

Copyright © 2025 Paylocity. All Rights Reserved. Privacy Center | Terms and Conditions | Accessibility