What this guide covers
This is a practical integration guide for technical teams deploying ProctorSafe with an LMS (Learning Management System). By the end, you'll have:
- The SDK running in an exam session
- LTI 1.3 authentication configured
- Trust score events flowing to the review dashboard
Estimated time: under one hour. No prior experience with proctoring systems required.
Prerequisites
Before you start, you'll need:
- A ProctorSafe account with an active institution key
- Access to your LMS as an administrator
- A development or staging environment for initial testing
Step 1: Add the SDK to your exam page
The ProctorSafe SDK is loaded with a single script tag. Add it to the HTML template your LMS uses for proctored exam pages:
<script
src="https://sdk.proctorsafe.eu/v2/loader.js"
data-institution-key="YOUR_INSTITUTION_KEY"
data-session-mode="lms"
async
></script>
The SDK initialises automatically when the page loads. It runs entirely client-side — no server-side components to deploy.
Step 2: Configure LTI 1.3 launch
ProctorSafe uses LTI 1.3 (IMS Global) for secure authentication and session context. Your LMS must be configured as an LTI 1.3 Platform.
LMS-side configuration:
- In your LMS admin panel, navigate to Integrations → LTI Advantage
- Create a new LTI 1.3 registration for ProctorSafe
- Set the launch URL to
https://sdk.proctorsafe.eu/lti/launch - Set the deep-link URL to
https://sdk.proctorsafe.eu/lti/deep-link - Note your Client ID, Platform ID, and Deployment ID
ProctorSafe-side configuration:
- In your ProctorSafe admin panel, navigate to Institutions → LTI Settings
- Enter your LMS platform details and the required OAuth 2.0 endpoints
- Paste your Public JWK from the LMS
The handshake is automated after this point. LTI launch messages will include the candidate's identity, course context, and exam assignment — all scoped to the specific assessment.
Step 3: Define your exam policy
Each exam can have a distinct proctoring policy. Configure it via the ProctorSafe dashboard or the LTI launch parameters:
{
"exam_id": "CS101-final-2026",
"trust_threshold": 0.7,
"flags_enabled": ["focus_loss", "tab_switch", "devtools_open"],
"log_retention_days": 30,
"allow_mobile": false
}
Key settings:
trust_threshold: The score below which a session is flagged for review (0.0–1.0)flags_enabled: Which event types trigger score deductionslog_retention_days: How long event logs are retained — shorter is better for privacyallow_mobile: Whether to permit tablet or mobile browsers (disabled by default)
Step 4: Test in staging
Before deploying to students:
- Create a test assignment in your LMS mapped to the proctored exam configuration
- Open the exam as a student in a staging account — use a different browser or incognito window
- Trigger a few flags deliberately — open a new tab, switch applications — to see how events appear in the dashboard
- Check the event log — verify that only event metadata is present, no video or biometric data
The staging dashboard is available at https://dashboard.staging.proctorsafe.eu during development.
Step 5: Deploy to production
When you're satisfied with the staging test:
- Promote the exam configuration to production in the ProctorSafe dashboard
- Enable proctoring on the live assignment in your LMS
- Run a small pilot first — 5–10 students — before a full cohort
- Monitor the first session reviews in real time and adjust thresholds if needed
What "under one hour" actually means
The one-hour estimate assumes:
- You have LTI 1.3 already configured on your LMS (most modern LMS instances do)
- You're testing in a staging environment with non-production data
- The LMS team and the ProctorSafe admin are both available to configure their respective sides
The longest step is typically the LMS-side LTI configuration — not the SDK integration itself. If LTI is new to your team, budget an additional 30–60 minutes for the first-time setup.
What's included in the SDK
| Feature | Details |
|---|---|
| Loading time | 6–10 seconds on typical broadband |
| Browser support | Chrome 90+, Firefox 88+, Edge 90+, Safari 15+ |
| No plugins required | WebAssembly, runs natively in browser |
| Data transmitted | Signed event log only |
| Data NOT transmitted | Video, audio, images, keystrokes, face data |
| Session encryption | TLS 1.3, E2E HMAC signing |
Next steps
Once you've completed the integration, explore:
- Threshold calibration — adjusting flag sensitivity based on your student population
- Review workflow setup — configuring who receives flagged session alerts and how
- Reporting — aggregate integrity analytics across your exam sessions
Questions during integration? The docs at proctorsafe.eu/docs cover each step in detail, or reach out to the integration team.