Training generation, as an API call.
Drop documents at one endpoint and get back a complete training course — outline, scripts, and quizzes — every line traceable to its source page. Poll until it's ready, optionally auto-publish, and pull a versioned JSON export into your LMS, your app, or your own grading engine.
API access is available on Business and Enterprise plans.
Most “AI training” tools give you a chat box. Scormy One gives you an endpoint. You send documents — a handbook, an SOP, a product manual — and a background build turns them into a structured, multi-chapter course with narrated scripts and grounded quizzes. Nothing is generated from a vague summary: every claim is tied to verified facts pulled from your source, down to the page it came from. When the build finishes, you fetch a clean, versioned JSON contract and do whatever you want with it.
A three-call lifecycle
No SDK required — it's plain HTTPS and JSON. Build, then poll until ready, then export.
POST /api/v1/trainingsSend already-uploaded document IDs or inline document bytes, plus a few options. The call returns immediately with a build id and a plan id — the heavy work happens in the background.
POST /api/v1/trainings
Authorization: Bearer sk_live_…
Content-Type: application/json
{
"title": "Warehouse Safety Onboarding",
"audience": "new floor staff",
"format": "video",
"contentLength": "smart",
"documentIds": ["3fa85f64-5717-4562-b3fc-2c963f66afa6"],
"kind": "training",
"hasQuiz": true,
"autoPublish": true
}202 Accepted
{
"id": "8f14e45f-ea13-4a2b-9c9e-2dfe1f4d5c6a",
"status": "queued",
"planId": "7c9e6679-7425-40de-944b-e07fc1f90ae7"
}GET /api/v1/trainings/builds/{id}Check progress until it's done. The status payload tells you exactly where the build is and surfaces the published training id once it lands.
GET /api/v1/trainings/builds/8f14e45f-ea13-4a2b-9c9e-2dfe1f4d5c6a
{
"id": "8f14e45f-ea13-4a2b-9c9e-2dfe1f4d5c6a",
"status": "running",
"planId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"trainingId": null,
"publishError": null,
"progress": { "step": "scripts", "chaptersDone": 2, "chaptersTotal": 5 },
"failedStep": null,
"error": null,
"droppedReport": null
}GET /api/v1/trainings/{id}/exportPull the finished course as a single versioned JSON document.
Build options
documentIdsordocuments(inline base64) — exactly one. Inline up to 25 files; document IDs up to 100.format: video (scene structure, narration + figures) · audio (voice script only) · text (reading only) — the JSON shape, not rendered mediacontentLength: smart · concise · comprehensivekind: training (default) or quiz.hasQuiz(default on): include a grounded quiz in a training build.autoPublish(default on): publish the moment the draft is complete.knowledgeBaseIdis optional — omit to use the tenant's default.- The course is generated in the document's own language automatically.
One stable, versioned shape: export.v1
Every export is tagged with schemaVersion, the trainingId, and an integer version — so a consumer built today keeps working as you republish.
| Field | What it is |
|---|---|
| schemaVersion | Always "export.v1" — your contract pin. |
| trainingId / version | Identity + which published version this is. |
| title / synopsis / language | Course title, overview, and language. |
| chapters[] | Ordered chapters → ordered scenes (title, summary, narration, on-screen text, duration, linked figures). |
| quizzes[] | Quiz questions — prompt, type, options, scoring. |
| passingScorePct | The mastery threshold the quiz is graded against — a threshold, not an answer. |
With answer key
Authenticated with your API key, the full shape adds everything you need to grade on your own server: correctAnswer on every question, answerSource (the document name, page, and excerpt), and the raw source chunks each scene was grounded on. Use this when your backend owns the learner experience and the scoring.
No answers
The same export.v1 document with the answer key, answer sources, and raw source chunks stripped. This is what a browser or a learner-facing client should ever see. You never filter the payload yourself — the wire format is already safe.
Same schema, two trust levels. A learner client and a grading server read the exact same JSON structure — the only difference is whether the sensitive fields are present. Build one parser, use it everywhere.
Share links, no auth required
Publishing a training mints two unguessable share links. Append /versions/{v} to either to pin a specific version.
Public link
Returns the learner-safe export.v1. Hand it to anyone, embed it in a page, drop it in an email. No API key, no answer key, no source leakage.
Private link
Returns the full export.v1 including the answer key — the no-API-key path to the complete JSON when a trusted system needs to grade but you'd rather not provision a key. Rotate or revoke either link at any time.
The key is the tenant
API keys are tenant-scoped bearer tokens. Create a key in the dashboard, send it as Authorization: Bearer …, and it resolves to exactly one tenant.
- Every request that key makes reads and writes only that tenant's data. There is no tenant id in any URL — you can't reach another tenant's data even by accident, because the key is the boundary.
- Keys are created and revoked from the dashboard; revoking one cuts off access immediately. The key carries the same plan limits and isolation rules that apply in the app.
- No cross-tenant reads, ever. If access is ever uncertain, the request is denied.
Document-to-course generation, inside your own product
LMS ingestion pipeline
Accept a document upload in your own product, fire it at the build endpoint, and import the finished export.v1 into your LMS as structured chapters and quizzes.
Server-side graded assessments
Pull the full export with answer keys and score learner submissions on your backend, where the answer key never touches the browser.
White-label course generation
Let your customers drop documents into your UI and get back fully authored courses under your brand.
Bulk back-catalog conversion
Loop a folder of SOPs, handbooks, or manuals through the build API to turn an entire library into courses overnight.
Embeddable, no-auth distribution
Publish once and drop a public share link into any page or email for instant, learner-safe delivery.
Multi-tenant automation
Provision a tenant per brand or business unit, each with its own API key, and generate isolated catalogs in parallel.
What it returns — and what it isn't
- Versioned JSON export + share links are the only delivery — the JSON is shaped for a video, audio, or text course, but Scormy One returns structured data, not rendered video or audio. The JSON contract is the contract — there is no SCORM or xAPI packaging.
- Build → poll → export is the integration model shown here. Poll the build status until it is ready, then export.
- The export is the same
export.v1shape across versions, so you can pin to it and upgrade on your own schedule.
Wire it up in an afternoon.
Three endpoints — build, poll, export — and a JSON contract that doesn't move under you.
15-day Growth-tier trial · $10 in AI credit · no card to start.