View as Markdown

WebhooksSubscribe

POST/v2/whks/subscribe/{type}
Base URL
https://us1.proctorapi.com
Available Regions10 regions
The subscribe request formalizes the initiation of a subscription to proctorio webhook notifications.

Path Parameters

type
stringRequired
1 - suspicion calculation webhook type
application/json

Body

The subscribe request.

behavior_settings
object
Show 2 behavior_settings attributesHide behavior_settings attributes
frame_metrics
object
Show 8 frame_metrics attributesHide frame_metrics attributes
navigating_away
object
Depending on the weight of this frame metric, Proctorio will flag when the candidate leaves the exam page.
Minimum value is 0, Maximum value is 5.
keystrokes
object
Depending on the weight of this frame metric, Proctorio will flag anytime the candidate types within the exam window.
Minimum value is 0, Maximum value is 5.
copy_paste
object
Depending on the weight of this frame metric, Proctorio will flag when the candidate copies, cuts, or pastes within the exam window.
Minimum value is 0, Maximum value is 5.
browser_resize
object
Depending on the weight of this frame metric, Proctorio will flag when the candidate changes the browser size while taking an exam.
Minimum value is 0, Maximum value is 5.
audio_levels
object
Depending on the weight of this frame metric, Proctorio will flag when the ambient noise reaches a level above the white noise of the exam environment.
Minimum value is 0, Maximum value is 5.
head_movement
object
Depending on the weight of this frame metric, Proctorio will flag when the candidate moves their head away from the exam window.
Minimum value is 0, Maximum value is 5.
multiple_faces
object
Depending on the weight of this frame metric, Proctorio will flag when multiple people look at an exam.
Minimum value is 0, Maximum value is 5.
leaving_room
object
Depending on the weight of this frame metric, Proctorio will flag candidates who didn't interact with the keyboard and mouse for 20-30 seconds and whose face isn't clearly visible in the video feed.
Minimum value is 0, Maximum value is 5.
exam_metrics
object
Show 14 exam_metrics attributesHide exam_metrics attributes
navigating_away
boolean
Abnormal amounts of navigating away will highlight the candidates who are using external applications or materials differently than the rest of the group.
keystrokes
boolean
Abnormal amount of keystrokes will highlight the candidates who are relying on copy and paste or struggling with free response questions.
copy_paste
boolean
Abnormal amount of copy/paste activity will highlight the candidates who may have taken material from the exam or brought answers into the exam repeatedly.
browser_resize
boolean
Abnormal amount of browser resize will highlight the candidates who may have had notes or other material hidden behind the exam window.
audio_levels
boolean
Abnormal changes in audio levels will highlight the candidates that had significant changes in audio activity throughout the exam.
head_movement
boolean
Abnormal amount of head movement will highlight the candidates who looked away from the camera significantly more or significantly less than the rest of the group.
multiple_faces
boolean
Abnormal number of detected faces will highlight the candidates who may have received help from someone during the exam.
mouse_movement
boolean
Abnormal amount of mouse movement will highlight the candidates who interacted with the exam page less than the rest of the group.
scrolling
boolean
Abnormal amount of scrolling will highlight the candidates who interacted with the exam page less than the rest of the group.
clicking
boolean
Abnormal amount of clicking will highlight the candidates who interacted with the exam page less than the rest of the group.
exam_duration
boolean
Abnormal exam duration will highlight the candidates who have finished significantly faster or significantly slower than the rest of the group.
start_time
boolean
Start Times will highlight the candidates whose LMS start time does not match the Proctorio start time.
end_time
boolean
End Times will highlight the candidates whose LMS end time does not match the Proctorio end time.
exam_collusion
boolean
Exam Collusion will highlight the candidates who took the exam at the same time on the same network.
version
string
Version of the suspicion calculation webhook to subscribe to. Currently supported versions are '2' and '3'.
client
objectRequired
Show 2 client attributesHide client attributes
url
stringRequired
Represents client endpoint url.
key
string
Key parameter represents the client's API key value. This parameter is optional.

Responses

200application/json

Indicates success and returns subscribe response.

400application/json

Indicates bad request.

401application/json

Indicates unauthorized response.

2154 - Account not active.

2155 - Incorrect region.

2655 - Invalid api_key.

POST/v2/whks/subscribe/{type}
curl --request POST \
  --url https://us1.proctorapi.com/v2/whks/subscribe/%7Btype%7D \
  --header 'Content-Type: application/json' \
  --header 'api_key: $API_KEY' \
  --data '{"client":{"url":"https://example.com","key":"string"}}'
import requests

url = "https://us1.proctorapi.com/v2/whks/subscribe/%7Btype%7D"

payload = { "client": {
        "url": "https://example.com",
        "key": "string"
    } }
headers = {
    "api_key": "$API_KEY",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
const fetch = require('node-fetch');

const url = 'https://us1.proctorapi.com/v2/whks/subscribe/%7Btype%7D';
const options = {
  method: 'POST',
  headers: {api_key: '$API_KEY', 'Content-Type': 'application/json'},
  body: '{"client":{"url":"https://example.com","key":"string"}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
    Method = HttpMethod.Post,
    RequestUri = new Uri("https://us1.proctorapi.com/v2/whks/subscribe/%7Btype%7D"),
    Headers =
    {
        { "api_key", "$API_KEY" },
    },
    Content = new StringContent("{\"client\":{\"url\":\"https://example.com\",\"key\":\"string\"}}")
    {
        Headers =
        {
            ContentType = new MediaTypeHeaderValue("application/json")
        }
    }
};
using (var response = await client.SendAsync(request))
{
    response.EnsureSuccessStatusCode();
    var body = await response.Content.ReadAsStringAsync();
    Console.WriteLine(body);
}
Request examples
{
  "client": {
    "url": "https://example.com",
    "key": "string"
  }
}