For Agents
Manage Absorb LMS users, courses, enrollments, and departments through the Absorb REST API. Returns user, course, enrollment, and department records across 13 operations.
Get started with Absorb LMS API in minutes using your preferred integration method.
# Add to your MCP client config (Claude Desktop, Cursor, Windsurf)
{
"jentic": {
"url": "https://api.jentic.com/mcp",
"auth": "oauth"
}
}
# Then ask your agent:
"enroll a learner in an Absorb course"
# → Jentic returns the GET /events tool with parameter schema, agent executes.What an agent can do with Absorb LMS API API.
Authenticate against an Absorb tenant to obtain an access token
List learners in the LMS and read individual user profiles
Create new learner accounts with role and department assignments
Browse the available course catalog and read course detail
Enroll a learner in a course and read enrollment progress
GET STARTED
Use for: I need to enroll a new hire in onboarding courses, List all active learners in our Absorb tenant, Create a department for the new sales region, Retrieve the course catalog for the compliance team
Not supported: Does not handle payroll, performance reviews, or content authoring — use for LMS user management, course enrollment, and department structure only.
Jentic publishes the only available OpenAPI document for Absorb LMS API, keeping it validated and agent-ready.
Jentic publishes the only available OpenAPI specification for Absorb LMS API, keeping it validated and agent-ready. The Absorb LMS API exposes the core resources for managing a corporate or institutional learning program: users, courses, enrollments, and departments. It supports authentication, listing and creating users, browsing the course catalog, enrolling learners in courses, and managing the department structure that organizes those learners. Together the 13 endpoints cover the day-to-day operations of an Absorb LMS tenant.
Create and manage departments that organize learners
Update existing user records with new attributes
Patterns agents use Absorb LMS API API for, with concrete tasks.
★ New Hire Onboarding Automation
Automatically create an Absorb learner record and enroll the new hire in the required onboarding courses on day one. The integration calls POST /users to create the account, then POST /enrollments for each required course. This collapses an HR onboarding step that L&D teams traditionally handle manually for every new starter.
On a new hire event, call POST /users to provision the learner, then POST /enrollments for each course in the onboarding bundle and confirm each enrollment was created.
Compliance Training Tracking
Track which employees have completed mandatory compliance courses and surface gaps to managers. The integration lists enrollments via GET /enrollments filtered to compliance courses, joins the results to /users to read department, and outputs a completion report. This replaces manual spreadsheet tracking that compliance teams maintain alongside the LMS.
Page through GET /enrollments for the compliance course IDs, group by department from /users, and emit a list of incomplete learners per department.
Department Restructure Sync
Reflect a corporate org-structure change in Absorb so reporting and assignment rules continue to map correctly. POST /departments creates the new units; GET /users plus PUT /users/{userId} reassigns affected learners. Doing this through the API keeps Absorb in sync with the system of record without admin clicks per user.
Create new departments via POST /departments, then for each affected user PUT /users/{userId} with the new departmentId.
Course Catalog Surface
Surface the Absorb course catalog in an internal portal or chat tool so employees can browse and self-enroll without logging into the LMS. GET /courses returns the catalog; GET /courses/{courseId} returns detail; POST /enrollments enrolls the requesting user. This pattern improves discoverability for L&D content that often gets ignored in the LMS UI.
Render results from GET /courses in an internal portal; on click, call POST /enrollments with the user ID and courseId to self-enroll.
AI Agent Learning Assistant
Equip a Jentic-driven assistant that recommends and enrolls employees in Absorb courses based on a development conversation. The agent searches Jentic for 'enroll a learner in an Absorb course', loads POST /enrollments, and creates the enrollment. Jentic injects the bearer token at execution time so the agent never sees the LMS credential.
Through Jentic, search for 'enroll a learner in a course', load POST /enrollments, and submit the user and course identified during the development conversation.
13 endpoints — jentic publishes the only available openapi specification for absorb lms api, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/authenticate
Authenticate and obtain a token
/users
List users
/users
Create a user
/users/{userId}
Update a user
/courses
List courses
/enrollments
List enrollments
/enrollments
Create an enrollment
/departments
List departments
/authenticate
Authenticate and obtain a token
/users
List users
/users
Create a user
/users/{userId}
Update a user
/courses
List courses
/enrollments
List enrollments
Three things that make agents converge on Jentic-routed access.
Credential isolation
Absorb tenant credentials and the bearer tokens issued from /authenticate are stored encrypted in the Jentic vault. Tokens are refreshed automatically and applied at execution time, so agents never see raw LMS credentials.
Intent-based discovery
Agents search Jentic with intents like 'enroll a learner' or 'list courses' and Jentic returns the matching Absorb operation with its input schema, so the agent can call it without browsing Absorb's docs portal.
Time to first call
Direct integration including authenticate-and-refresh handling and pagination typically takes 1-2 days. Through Jentic the search, load, execute flow runs in under an hour.
Alternatives and complements available in the Jentic catalogue.
TalentLMS API
TalentLMS is a competing cloud LMS with its own user, course, and enrollment API.
Choose TalentLMS for smaller teams that prefer its simpler UX; Absorb is positioned for larger enterprise programs.
LearnUpon API
LearnUpon is another corporate LMS with similar enrollment and reporting capabilities.
Choose LearnUpon when partner or extended-enterprise training is the primary use case rather than internal employee training.
BambooHR API
BambooHR holds the employee record of truth that Absorb learner records sync from.
Use BambooHR for HRIS data and provision Absorb learners from it to keep the LMS in sync with the source of employment truth.
Specific to using Absorb LMS API API through Jentic.
Why is there no official OpenAPI spec for Absorb LMS API?
Absorb LMS does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Absorb LMS API via structured tooling. It is validated against the live API and kept up to date. Get started at https://app.jentic.com/sign-up.
What authentication does the Absorb LMS API use?
Absorb uses HTTP bearer authentication. Clients first call POST /authenticate with tenant credentials to obtain a token, then send it on subsequent requests. Through Jentic, the credentials and token rotation are handled in the Jentic vault, so agents never hold raw secrets.
Can I enroll learners with the Absorb LMS API?
Yes. POST /enrollments creates an enrollment for a user in a specific course. Use GET /enrollments to verify the enrollment was created and read its progress.
How do I list users through Jentic?
Through Jentic, search for 'list Absorb learners', load GET /users, and call it with optional filters. Jentic forwards the bearer token from its vault and returns the user list to your agent.
What are the rate limits for the Absorb LMS API?
Rate limits are not declared in the OpenAPI spec. Absorb enforces tenant-level limits at the gateway; respect 429 responses and the Retry-After header when running bulk syncs.
Can I create departments via the Absorb LMS API?
Yes. POST /departments creates a new department, and GET /departments lists existing departments. Use PUT /users/{userId} to reassign learners as the org structure changes.
/enrollments
Create an enrollment
/departments
List departments