For Agents
Manage courses, learners, learning paths, orders, and webhooks on a Firmwater LMS tenant — 80 endpoints scoped per client for white-label training operations.
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Firmwater LMS API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Firmwater LMS API API.
List, create, and update courses and course types within a client tenant
Build and assign learning paths combining multiple courses for role-specific training
Manage user records, departments, job titles, and locations across the org structure
Place and inspect orders for training products and seat allocations via /orders.json
GET STARTED
Use for: Create a new learning path combining three onboarding courses, List all users in the Sales department, I need to enroll a user in the Compliance Q3 course, Retrieve the order history for client_42
Not supported: Does not handle content authoring, SCORM packaging, or live virtual classrooms — use for course catalogue, learner, learning path, and order management only.
Jentic publishes the only available OpenAPI document for Firmwater LMS API, keeping it validated and agent-ready.
Jentic publishes the only available OpenAPI specification for Firmwater LMS API, keeping it validated and agent-ready. Firmwater LMS is a multi-tenant learning management system aimed at training providers and reseller channels. The 80-endpoint v2 API gives full programmatic control over courses, learning paths, departments, job titles, locations, orders, products, roles, sites, users, and webhooks. Endpoints are scoped per client via a path-level {clientId} placeholder, making it suitable for white-label training portals and channel-partner enablement workflows.
Register and manage webhooks at /webhooks.json for real-time notifications on enrolment and completion events
Manage child sites and roles for resold training portals under a parent client
Patterns agents use Firmwater LMS API API for, with concrete tasks.
★ White-Label Training Portal
Operate a multi-tenant training portal where each reseller has its own client/site under a parent. Manage sites via /sites.json, scope roles, and provision users at the right level. The path-level {clientId} keeps tenant isolation explicit, well-suited to channel-partner enablement.
POST /sites.json to create a new reseller site, then create roles via /roles.json and provision the reseller admin user via /users.json
Automated Onboarding Paths
Build role-based learning paths via /learning-paths.json, attach the relevant courses, and assign them to new hires automatically when they appear in /users.json. Webhooks at /webhooks.json fire on completion events so HR systems can update employee records without polling.
Create a learning path via POST /learning-paths.json with the three onboarding courses, then assign it to every user where job_title='Account Executive'
Compliance Reporting
Pull participant lists per course via /courses/participants.json, count progress, and generate compliance reports per department or job title. Useful for regulated industries that need audit-ready training records. The count endpoints (e.g. /courses/count.json) make pagination predictable.
GET /courses/participants.json filtered by course_id=88231, then summarise completion rate by department
AI Agent Training Operations
Use Firmwater through Jentic so an enablement agent can enrol learners, build paths, or pull progress without learning the 80-endpoint surface. Jentic exposes the operations as discoverable tools, with the API key in the vault. Get started at https://app.jentic.com/sign-up
Through Jentic, search 'enrol a user in a course', load the relevant Firmwater schema, and execute with userId and courseId
80 endpoints — jentic publishes the only available openapi specification for firmwater lms api, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/courses.json
List courses
/courses/participants.json
List course participants
/learning-paths.json
Create a learning path
/learning-paths/{id}.json
Update a learning path
/departments.json
Create a department
/job-titles.json
Create a job title
/webhooks.json
Register a webhook subscription
/courses.json
List courses
/courses/participants.json
List course participants
/learning-paths.json
Create a learning path
/learning-paths/{id}.json
Update a learning path
/departments.json
Create a department
Three things that make agents converge on Jentic-routed access.
Credential isolation
Firmwater API keys are stored encrypted in the Jentic vault. The Authorization header is injected at execution time, with the {clientId} path parameter supplied at call time so each agent run targets the right tenant.
Intent-based discovery
Agents search by intent (e.g. 'enrol a user' or 'create a learning path') and Jentic returns the matching Firmwater operation with the input schema, removing the need to walk 80 endpoints.
Time to first call
Direct Firmwater integration: 3-5 days for auth, tenant scoping, webhook setup, and pagination. Through Jentic: under 1 hour for the API surface.
Alternatives and complements available in the Jentic catalogue.
Fireflies.ai GraphQL API
Generates training material from sales-call transcripts to feed into Firmwater courses
Pair when an enablement agent turns Fireflies-extracted call insights into Firmwater learning content
Firebase Auth REST API
Authenticates learners in a custom front-end that delegates training to Firmwater
Use when the user-facing training app authenticates via Firebase but uses Firmwater as the LMS backend
Fitbit Web API
Different domain — health and activity tracking rather than training
Not a substitute; included only as a contrasting same-letter API in the catalogue
Specific to using Firmwater LMS API API through Jentic.
Why is there no official OpenAPI spec for Firmwater LMS API?
Firmwater publishes reference documentation but no OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Firmwater 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 Firmwater LMS API use?
The API uses an API key passed in the `Authorization` header on every request, scoped per client via the {clientId} path prefix. Through Jentic, the key is stored encrypted and injected at execution time.
Can I create learning paths with the Firmwater LMS API?
Yes. POST /learning-paths.json creates a learning path; PUT /learning-paths/{id}.json updates it. Each path bundles courses for role- or job-title-based assignment.
What are the rate limits for the Firmwater LMS API?
Firmwater applies per-client rate limits and returns standard 429 responses when exceeded. Specific quotas depend on your contract; Jentic surfaces 429s to the agent for back-off handling.
How do I enrol a user through Jentic?
Search Jentic for 'enrol a user in a course', load the matching Firmwater schema, and execute with the user and course identifiers. The structured response confirms enrolment and includes the participant record.
Does the Firmwater LMS API support webhooks?
Yes. POST /webhooks.json registers a webhook subscription, and the API delivers enrolment and completion events to your endpoint, removing the need to poll /courses/participants.json.
/job-titles.json
Create a job title
/webhooks.json
Register a webhook subscription