SDKs & Libraries
Proctorio provides official client libraries and tools for integrating with the API.
Official SDKs
.NET SDK
The official Proctorio .NET client library for C# applications.
Installation
dotnet add package Proctorio.Client Or via Package Manager:
Install-Package Proctorio.Client Links
Requirements: .NET 8.0 or higher
Observe.js
Observe.js is a JavaScript SDK for monitoring Proctorio exam events in real-time. It enables learning platforms to subscribe to key lifecycle events during exam administration and implement custom logic.
Installation
Via npm:
npm install @proctorio/observe Via CDN:
<script src="https://cdn.jsdelivr.net/npm/@proctorio/observe@1/lib/index.min.js"></script> Usage
import { Observe } from '@proctorio/observe';
const observe = new Observe();
// Listen for exam start
observe.startExam((data) => {
console.log('Exam started at offset:', data.offset);
});
// Listen for security flags
observe.flags((data) => {
console.log('Security flags detected:', data.flagsData);
});
// Listen for exam end
observe.endExam((data) => {
console.log('Exam ended at offset:', data.offset);
});
// Listen for live proctor events
observe.proctorInterrupted((data) => {
console.log('Exam interrupted at offset:', data.offset);
}); Supported Events
| Event | Description |
|---|---|
startExam | Fired when the proctored exam begins |
endExam | Fired when the exam ends |
flags | Fired when security flags are detected |
proctorInterrupted | Live proctor interrupted the exam |
proctorResumed | Exam resumed after interruption |
proctorKickout | Candidate removed by live proctor |
deskScan | Desk scan completed |
breakStart | Candidate started a break |
breakEnd | Candidate returned from break |
Links
Code Examples
cURL
curl -X POST https://us1.proctorapi.com/v2/candidate/launch \
-H "api_key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d @request.json Python (requests)
import requests
response = requests.post(
"https://us1.proctorapi.com/v2/candidate/launch",
headers={"api_key": "YOUR_API_KEY"},
json=payload
)
candidate_url = response.json() Node.js (fetch)
const response = await fetch("https://us1.proctorapi.com/v2/candidate/launch", {
method: "POST",
headers: {
"api_key": process.env.PROCTORIO_API_KEY,
"Content-Type": "application/json"
},
body: JSON.stringify(payload)
});
const candidateUrl = await response.json(); C# (HttpClient)
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("api_key", apiKey);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync(
"https://us1.proctorapi.com/v2/candidate/launch", content);
var candidateUrl = await response.Content.ReadAsStringAsync();