For teams with their own LMS
Our accredited courses, inside your LMS.
Import one small package into the LMS you already run — Moodle, Cornerstone, Workday Learning, or any CMI5/SCORM-conformant system. Your people launch training from the place they already know; completions and scores land in your gradebook; certificates and verification stay handled by us. Content updates reach every learner instantly, with nothing to re-import.
How it works
The package your LMS imports is a signed launcher, not course files — about the size of a small photo. The course itself always runs from our servers, current and accredited, wearing your organization's branding.
What rollout actually looks like
- Step 1
The import
Your LMS admin uploads one 24 KB file per course, on the same screen they'd use for any SCORM import — no plugin, no API keys. If your network filters outbound traffic, allowlisting our course domain is usually the only ticket.
- Step 2
The first launch
A new hire finds the course in your catalog and clicks Launch like they would for anything else. The accredited course opens under your branding, on whatever device they're holding — and if you operate across state lines, they pick their jurisdiction right there. Same package.
- Step 3
The results
Completions and scores post to your gradebook the moment each learner finishes — nothing to export, nothing to reconcile. Certificates are issued by us and publicly verifiable, and your reports keep running where they've always run.
See the real thing — right now
The button below performs exactly the handshake your LMS performs when a learner clicks Launch: it submits the sample package's signed token to our launch endpoint, receives a single-use session, and opens the course. Same endpoint, same token, same machinery — the only thing missing is your LMS around it.
This is a multi-state package, so the launch opens our jurisdiction selector first — the same screen a learner sees launching from your LMS. Pick one and you're in the course; the telemetry below connects itself once you do.
Live: what your LMS sees
polling every 10s — the package's own interval- Status
- —
- Completion
- —
- Score
- —
- Gradebook
- —
Raw payload — exactly what the runtime delivers
The sample is published for a fictional client, "Aspen Hospitality Group," from our staging environment. Unzip the download and look inside: a manifest, a signed configuration, and a launcher — no course content. That's the point.
A learner launches the activity from Moodle's course page, lands in our hosted player via the signed handshake, and — after completing the course — Moodle's own gradebook receives the 95% score through the standard SCORM writeback.
For your IT team
The details your technical reviewer will want before saying yes.
- Thin dispatch, not content export. The package holds an HMAC-signed launch token and a launcher. Your LMS never stores our course content — and never serves stale versions.
- Single-use launch sessions. Each launch exchanges the package token for a one-time session token (30-minute expiry, replay-guarded). Stolen links die on arrival.
- Central revoke & pause. Any publication can be paused or revoked on our side; every installed copy stops launching immediately, with a friendly message to the learner.
- Results writeback. Completion, success, and score post to your gradebook through the standard SCORM/CMI5 runtime — the same path any conformant course uses.
- Delivery you can verify. A status channel your LMS can poll, plus a confirm step on delivery — a dropped connection can't silently swallow a result.
- xAPI / LRS friendly. With CMI5, statements can additionally forward to your LRS for your own analytics.
- Least data. The launch carries the learner id and name your LMS already holds — no SSO project required, no credentials shared, nothing to provision in advance.
- Network requirements. Learner browsers need standard HTTPS (443) to our course domain — on filtered networks, that's one hostname to allowlist. No server-to-server firewall rules: your LMS backend never calls us.
POST /scorm-cloud/self-hosted/launch
{
"package_token": "eyJwdWJsaWNhdGlvbl9rZXki…", // HMAC-signed
"publication_key": "HpVu3TSa…",
"host_registration_id": "moodle-reg-8841",
"learner": {
"host_learner_id": "jdoe",
"name": "Jordan Doe",
"email": "jdoe@yourcompany.com"
}
}200 OK
{
"launch_status": "ready",
"content_url": "https://…/auth/token/oKMT…", // single-use
"status": {
"completion_status": "incomplete",
"score_scaled": null,
"host_writeback_status": "not_ready"
},
"status_token": "eyJyZWdpc3RyYXRpb25…", // gradebook channel
"expires_at": "2026-08-06T16:39:06Z"
}Common questions
Which LMSs are supported?
Any system conformant with CMI5 or SCORM 1.2/2004 — Moodle, Cornerstone, Workday Learning, TalentLMS, Docebo, SAP SuccessFactors, and most others. If it can import a SCORM package, it can run our courses.
How do course updates reach us?
Instantly and automatically. Because content runs from our servers, every learner gets the current accredited version — you never re-import a package.
We operate in several states — one package or many?
One. Multi-jurisdiction packages let the learner (or your enrollment rules) pick the correct state's course at launch.
Do certificates still work?
Yes — certificates are issued by us on completion, downloadable by the learner, and publicly verifiable by health inspectors at our verification page, exactly as with direct enrollment.
Can the content be tailored for us?
Within reason, yes — a welcome video from your team at the start is a quick add, and larger programs can carry their own lessons alongside the accredited core. Because content runs from our servers, your tailoring reaches every learner with nothing to re-import.
