Skip to main content
scormy One
For developers

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.

Read the API docsTalk to us about API access

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.

The core flow

A three-call lifecycle

No SDK required — it's plain HTTPS and JSON. Build, then poll until ready, then export.

1BuildPOST /api/v1/trainings

Send 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.

request
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
}
response
202 Accepted

{
  "id": "8f14e45f-ea13-4a2b-9c9e-2dfe1f4d5c6a",
  "status": "queued",
  "planId": "7c9e6679-7425-40de-944b-e07fc1f90ae7"
}
2PollGET /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.

status
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
}
3ExportGET /api/v1/trainings/{id}/export

Pull the finished course as a single versioned JSON document.

Build options

  • documentIds or documents (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 media
  • contentLength: smart · concise · comprehensive
  • kind: 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.
The export contract

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.

FieldWhat it is
schemaVersionAlways "export.v1" — your contract pin.
trainingId / versionIdentity + which published version this is.
title / synopsis / languageCourse 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.
passingScorePctThe mastery threshold the quiz is graded against — a threshold, not an answer.
Full shapevia API key

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.

Learner-safe shapevia share token

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.

Distribution

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.

Auth, in plain terms

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.
What you can build

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.v1 shape 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.