View as Markdown

Getting Started

This guide walks through integrating Proctorio into your learning platform from scratch.

Prerequisites

  • A Proctorio API key (contact your account manager)
  • An LMS or exam platform with URL-addressable exam pages
  • HTTPS-enabled exam URLs (required for proctoring)

Integration Flow

The integration follows a simple pattern:

  1. Your platform sends a POST request to the Proctorio API with exam configuration
  2. Proctorio API returns a secure URL
  3. Your platform redirects the student to that URL
  4. Proctorio handles pre-checks, monitoring, and recording
  5. The exam ends when the student reaches the exam_end URL pattern

URL Pattern Matching

Proctorio uses regex patterns to understand the exam lifecycle:

  • exam_start — Where the exam begins (the launch page)
  • exam_take — Pages that are part of the exam (questions, navigation)
  • exam_end — Where the exam has been submitted

Important: The launch_url value must match the exam_start pattern. All redirects between exam pages must match the exam_take pattern.

Single-Page Applications

For SPAs where the URL doesn't change between exam states, use the postMessage API:

// Transition to exam-taking state
window.top.postMessage(
  ["exam_state_change", "exam_take"],
  "https://getproctorio.com"
);

// Exam completed
window.top.postMessage(
  ["exam_state_change", "exam_end"],
  "https://getproctorio.com"
);

When using postMessage, set the corresponding parameter value to "post_message_notification".

Exam Settings Quick Reference

SettingPurposeDependencies
record_videoRecord webcamNone
record_audioRecord microphoneNone
record_screenRecord full desktopNone
verify_videoValidate webcamrecord_video
verify_idID verificationrecord_video, verify_video (for level 2)
full_screenForce fullscreenclose_tabs, one_screen, tabs: 1
live_proctorReal-time monitoringrecord_video, verify_video

Error Handling

All API errors return structured JSON. See the Error Handling guide for details.