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.
Endpoint proctoring integrates through LTI 1.3 Proctoring Services. Your platform launches proctored attempts over LTI 1.3 and receives the full lifecycle: OIDC launch, candidate check-in, Start Assessment post-back, End Assessment receiver, ACS flags, AGS score evidence, outbound webhooks, and fallback disarm.
| 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 LtiEndAssessment. |
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.
LtiEndAssessment when the attempt ends. Endpoint calculates the compliance score, resolves recordings, and sends completion evidence.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 | exam.completed; LTI Proctoring Services sessions also post AGS score evidence. |
| Violation list | exam.completed. |
| Recordings | recording.uploaded and exam.completed, 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.