Skip to content
OpenTrain AIOpenTrain AIOpenTrain AIDocs

Ask OpenTrain

Answers from the documentation, with sources.

What would you like to do with OpenTrain?

AI answers can be mistaken. Check the linked sources. Don’t include private account information.

Open app

DEVELOPER DOCUMENTATION

Quizzes API

HTTP reference for authoring, assigning, grading, full retakes, and selective coaching on native forms and quizzes.

Quizzes are native forms assigned to AI trainers as Project To-dos. Authoring produces immutable published versions; assignments pin exactly one version; results, grading, release, and retakes all live on this surface.

Base path: /api/public/v1/project-todos/quizzes
MethodPathPurpose
GET/quizzes/forms?jobId=…List the organization’s forms available to a job.
GET/quizzes/forms/{formId}Read one form: draft, settings, and published versions.
GET/quizzes/results?jobId=…&formId=…Attempt results across a form’s published versions.
GET/quizzes/attempts/{attemptId}One attempt with every answer.
GET/quizzes/roster?jobId=…&formId=…Per-person assignment and attempt status.
GET/quizzes/export-csv?jobId=…&formId=…All attempts as spreadsheet-safe CSV.
POST/quizzes/manageDiscriminated action union for authoring, assigning, grading, release, and retakes.
GET/POST/quizzes/preview/*Render one pinned draft or version through the real worker form runner without creating learner state.
GET/quizzes/coaching-queue?jobId=…Keyset-paged employer queue for submitted assignments.
GET/quizzes/coaching/{assignmentId}Bounded selective-coaching state for one assignment.
GET/quizzes/coaching/capabilitiesStatic coaching contract discovery, available before feature enablement.
GET/quizzes/coaching/exportBounded masked JSON, JSONL, or formula-neutral CSV export.
GET/POST/quizzes/worker/coaching/{assignmentId}Worker-owned coaching context and actions.
ActionPurpose
form_createCreate a draft form or quiz.
form_update_draftUpdate the draft (optimistic expectedRevision lock).
form_publishPublish an immutable numbered version.
form_duplicate / form_archiveCopy into a fresh draft / retire from new attempts.
quiz_todo_preflightNo-write preview of a quiz assignment, including the receipt broad audiences require.
quiz_todo_createCreate and assign the quiz to-do atomically.
gradeAward points for manually graded questions.
release / bulk_releaseMake held results visible to the AI trainer(s).
require_retakeReturn a submission and grant exactly one extra attempt.
require_retake_planNo-write validation of a retake batch, emitting ordered per-row commands.
require_retake_applyApply exactly the checksum-bound planned retake rows.
coaching_comment / coaching_redo_selectionDraft feedback and the exact question selection.
coaching_thread_resolve / coaching_thread_reopenManage feedback-thread state.
coaching_acceptAccept the reviewed submission with a stale-submission guard.
coaching_send_back_plan / coaching_send_back_confirmReview a no-write selective-return plan, then apply only its signed selection.

Employer reads require project_todos:read; employer manage actions require project_todos:write and a claimed account, plus access to the job or form. Worker coaching requires the separate worker-minted project_todos:respond scope and exact assignment ownership; employer keys and employer Full access never include it. Mutating actions require idempotencyKey (8–128 characters of letters, digits, ., _, :, or -).

Expected answers are grading material. Employer-authorized reads of an attempt may include a sanitized expected-answer projection; AI-trainer-facing surfaces never receive answer keys, and worker personal emails never appear in any quiz response.

For selective review cycles, threaded feedback, worker resubmission, exports, and feedback images, see Selective coaching.

For agent-readable desktop/mobile PNGs, ARIA, diagnostics, provenance, and short-lived employer review links, see Hosted quiz visual proof.