Endpoint proctoring verifies candidate identity, runs pre-exam checks, monitors a desktop Chrome exam session, and reports evidence back to your platform. Your platform owns the exam, the grade, and any decision to stop or invalidate an attempt.
| Path | Use when | What it gives you |
|---|---|---|
| LTI 1.3 Proctoring Services | Your platform can launch proctored attempts over LTI 1.3 | Full lifecycle: OIDC launch, candidate check-in, Start Assessment post-back, End Assessment receiver, ACS flags, AGS score evidence, and fallback disarm. |
| REST | Your platform is not launching Endpoint through LTI | Bearer-authenticated session creation, lifecycle updates, read endpoints, and webhooks. |
| Capability | Current support |
|---|---|
| Government ID capture, liveness selfie, and name match | Yes, unless policy skips identity verification. |
| Room scan | Yes: four still frames plus room-scan video, unless policy skips it. |
| Pre-exam system checks | Yes: camera, screen share, extension heartbeat, and a test violation. |
| Attempt recording | Camera recording. Screen upload to partner S3 requires explicit enablement. |
| Browser monitoring | Yes, through the Endpoint Chrome extension on registered exam hosts. |
| AI webcam frame analysis | Yes, during the attempt, capped per session. |
| Partner webhooks | Yes: violation.detected, recording.uploaded, and exam.completed. |
| Live human proctors supplied by Endpoint | No. |
| Mobile browser proctoring | No. Candidates need desktop Chrome. |
| Automatic exam termination | Disabled by default by ENDPOINT_EXAM_TERMINATION_ENABLED=false. Endpoint flags; your platform decides. |
scheduled -> check_in -> ready -> staging -> in_progress -> completed -> finalized
|
`-> stopping -> completed
| Status | Meaning |
|---|---|
scheduled |
Session exists; candidate has not started. |
check_in |
Candidate is completing consent, extension setup, identity, and room scan. |
ready |
Check-in passed; candidate has not entered staging. |
staging |
Pre-exam system checks are running. |
in_progress |
Exam monitoring is active. |
stopping |
Candidate ended locally; Endpoint is waiting for the platform stop signal. |
completed |
Attempt ended; score and recording finalization are in progress or done. |
finalized |
Partner/platform lifecycle marker after completion. Recording resolution is tracked separately. |
cancelled |
Session was cancelled before a completed attempt. |
terminated |
Reserved; not reachable in a default deployment. |
The candidate entry URL is /proctoring/candidate/start/:token. It is a bearer URL, not a single-use URL. It can be reopened during check-in and staging, and it stops working once the session reaches in_progress, completed, finalized, or cancelled.
Endpoint does not terminate exams in the default deployment. Code paths that would end an assessment require explicit enablement with ENDPOINT_EXAM_TERMINATION_ENABLED=true.
Accepted ID types are passport, driver_license, military_id, national_id, state_id, and residence_card.
The extension arms only on exam hosts registered for your account or LTI registration. Current normalized violation types include:
| Area | Types |
|---|---|
| Focus and navigation | tab_switch, window_blur, alt_tab_attempt, navigation_attempt, navigation_blocked, navigation_violation |
| Clipboard and interaction | copy_attempt, cut_attempt, paste_attempt, excessive_selection, right_click, drag_attempt, form_submission_blocked |
| Capture and developer tools | print_attempt, print_shortcut, screenshot_attempt, screen_capture_attempt, devtools_detected, devtools_shortcut, console_accessed |
| Device and permissions | multiple_displays_detected, camera_access_denied, screen_share_denied, screen_share_muted, screen_share_stopped |
| Page tampering | iframe_injection, suspicious_dom_injection, spoofed_end_signal |
AI webcam analysis can emit no_person_visible, multiple_people, phone_visible, ai_detected_violation, looking_away, suspicious_object, improper_lighting, and background_activity.
Severity is always one of low, medium, high, or critical. New type values can be added, so receivers should branch on severity and handle unknown types generically.
| Evidence | How you receive it |
|---|---|
| Live violations | violation.detected webhook. LTI Proctoring Services sessions also send ACS flag calls. |
| Completion summary | exam.completed webhook after the session is completed and no recording upload is pending. |
| Compliance score | REST assessment_ended response and exam.completed. LTI Proctoring Services sessions also post AGS score evidence. |
| Violation list | exam.completed or GET /proctoring/api/v1/sessions/{session_id}/violations. |
| Recordings | recording.uploaded, exam.completed, or GET /proctoring/api/v1/sessions/{session_id}/recordings, depending on storage state. |
exam.completed includes deliverable recordings: partner_s3 and local_only. Failed uploads appear in recording_errors. Skipped recordings are omitted. Camera upload to partner S3 happens when S3 is configured; screen upload requires explicit enablement.
The compliance score starts at 100 and deducts 5 for low, 10 for medium, 20 for high, and 40 for critical, floored at 0. It is an evidence signal, not a grade.
Last verified: 2026-09-03 against main.