View as Markdown

ReviewerLaunch

POST/v2/reviewer/launch
Base URL
https://us1.proctorapi.com
Available Regions10 regions
Creates a Reviewer URL.
application/json

Body

The Reviewer request to create a Reviewer URL.

expire
integer(int32)
Number of seconds before the Reviewer URL is no longer valid. The default value for this parameter is 3600 seconds. If a value is not passed, the default value will be applied. Must be an integer value.
Minimum value is 1, Maximum value is 3600.
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.
exam_settings
objectRequired
Show 30 exam_settings attributesHide exam_settings attributes
record_video
boolean
Requires the Candidate to have a webcam and will record the video for the entire duration of the exam.
record_audio
boolean
Requires the Candidate to have a microphone and will record audio for the entire exam duration of the exam.
record_screen
boolean
Will capture and record the full desktop screen for the entire duration of the exam.
record_web_traffic
boolean
Will capture screenshots and URLs of any websites visited during the exam.
record_desk
integer(int32)

0 - Setting is turned off.

1 - Requires the Candidate to perform a desk scan at periodic intervals during the exam, first scan is at the start of the exam. Subsequent scans are triggered at periodic intervals, typically between 30 to 45 minutes after the previous one. Requires the following settings to be set to true: record_video, verify_video.

2 - Requires the Candidate to perform a desk scan at the start of the exam. Requires the following settings to be set to true: record_video, verify_video.

Values are 0, 1, 2.
verify_video
boolean
Will ensure that the webcam is working and it is not virtualized or broken. Requires the following settings to be set to true: record_video.
verify_audio
boolean
Will ensure that the microphone is working and it is not virtualized or muted. Requires the following settings to be set to true: record_audio.
verify_desktop
boolean
Will ensure that the desktop recording is working and is being properly recorded. Requires the following settings to be set to true: record_screen.
verify_id
integer(int32)

0 - Setting is turned off.

1 - Requires the Candidate to present photo identification prior to starting the exam which will be automatically scanned.

2 - Requires the Candidate to present photo identification prior to starting the exam. The ID is then reviewed and verified by a Proctorio agent before they are allowed into the exam. Requires the following settings to be set to true: record_video, verify_video.

Values are 0, 1, 2.
verify_signature
boolean
Requires the Candidate to sign an agreement before exam start.
full_screen
integer(int32)

0 - Setting is turned off.

1 - Forces the exam in fullscreen, preventing access to other applications and websites. Navigating away from the exam page for more than 15 seconds (cumulatively) results in removal from the exam. Requires the following settings to be set to true: close_tabs, one_screen. Requires that tabs has value 1.

2 - Forces the exam in fullscreen, preventing access to other applications and websites. Navigating away from the exam page for more than 30 seconds (cumulatively) results in removal from the exam. Requires the following settings to be set to true: close_tabs, one_screen. Requires that tabs has value 1.

3 - Forces the exam in fullscreen, preventing access to other applications and websites. Navigating away from the exam page results in instant removal from the exam. Requires the following settings to be set to true: close_tabs, one_screen. Requires that tabs has value 1.

Values are 0, 1, 2, 3.
disable_clipboard
boolean
Disables copy/paste functionality.
tabs
integer(int32)

0 - Setting is turned off.

1 - Disables new tabs or windows during the exam.

2 - Disables new tabs or windows during the exam except links embedded in the exam page.

Values are 0, 1, 2.
close_tabs
boolean
Forces all other tabs and windows to be closed before the exam starts.
one_screen
boolean
Forces the Candidate to disable all but one monitor before starting the exam and prevents them from connecting additional monitors during the exam.
disable_printing
boolean
Disables printing exam content to prevent exam distribution.
block_downloads
boolean
Prevents the Candidate from downloading files through the browser.
clear_cache
boolean
Empties system temporary files after the exam is submitted.
disable_right_click
boolean
Disables right click functionalities.
calculator
integer(int32)

0 - Setting is turned off.

1 - Provides the Candidate with an on-screen calculator with basic functions.

2 - Provides the Candidate with an on-screen calculator with scientific functions.

3 - Provides the Candidate with an on-screen calculator with graphing functions.

Values are 0, 1, 2, 3.
whiteboard
boolean
Provides the Candidate with a scratch pad and drawing tools on-screen.
disable_extensions
boolean
Will prevent the Candidate from using other browser extensions during the exam except for allowlisted ones.
live_proctor
boolean
This setting will allow a Proctor to monitor the Candidate during the exam and allow immediate intervention. Also, the full recording and report will be available via the Proctorio Review Center. Requires the following settings to be set to true: record_video, verify_video.
mobile
boolean
Allows exam to be taken on mobile device, using MobileExam application. Requires use of pre_auth in launch request. Not compatible with verify_id: 2 setting
advanced_program_detection
boolean
Prevents use of other applications during exam. Requires use of the Secure Companion application.
advanced_hardware_detection
boolean
Logs hardware changes during exam in the Review Center. Requires use of the Secure Companion application.
advanced_vm_detection
boolean
Prevents use of virtual machine to take exam. Requires use of the Secure Companion application.
allowed_macos_apps
array[string]
List maximum of 10 allowed applications that can remain open when advanced_program_detection is used. Applications are identified by bundle ID on MacOS.
allowed_windows_apps
array[object]
List maximum of 10 allowed applications that can remain open when advanced_program_detection is used. Applications are identified by binary_name, product_name and company_name on Windows.
Show 3 allowed_windows_apps attributesHide allowed_windows_apps attributes
binary_name
string
The binary name of the application.
product_name
string
The product name of the application.
company_name
string
The company name of the application.
strict_apps_validation
integer(int32)

Sets the strictness level for validating allowed applications when advanced_program_detection, allowed_macos_apps and allowed_windows_apps are used.

0 - Setting is turned off.

1 - Default validation.

Values are 0, 1.
record_desk_option
integer(int32)
Values are 0, 1, 2.
domain
string

The "domain" parameter is optional. By utilizing "domain", the exam pages as well as the Reviewer Center will load with your desired domain.

The URL will no longer point to the https://getproctorio.com page. Instead, the Candidates/Reviewers will be directed to the new route you provided in the parameter, example: https://yourdomain.com.

This allows the utilization of additional cross-origin security mechanisms, which use the SameSite cookies or X-Frame-Options: SAMEORIGIN header. It will also provide the ability to prevent data loss in session or local storage related to storage partitioning browser functionality.

The https://getproctorio.com page has the following functionalities: Check if a Candidate/Reviewer has the supported browser installed. Check if a Candidate/Reviewer has the Proctorio extension installed. To keep these functionalities, a link to https://getproctorio.com with content describing the purpose of getproctorio.com is necessary on the institution's page.

branding
object
Show 3 branding attributesHide branding attributes
primary_color
string
The hex color code specifies the primary color for some user-interface controls. The value must be a six-digit code, without the #. Allows a learning platform to align its own color scheme with Proctorio colors and emphasize its brand in the header. Must be a string value.
Format should match: ^[a-zA-Z0-9]*$.
secondary_color
string
The hex color code specifies the secondary color for some user-interface controls. The value must be a six-digit code, without the #. Allows a learning platform to align its own color scheme with Proctorio colors and emphasize its brand. Must be a string value.
Format should match: ^[a-zA-Z0-9]*$.
logo_url
string
Custom logo endpoint URL. Http Method: GET. The response should be an image. CORS safe. Height of the logo will be 32px, width is flexible.
user_id
stringRequired
Must contain an alphanumeric (hyphens also acceptable) value, unique to this specific user.
Format should match: ^[a-zA-Z0-9-]*$.
exam_tag
string
This is the exam ID tag and will be added to the end of the URL. The exam_tag can't contain spacing and it can't contain NON-ASCII characters. If used, then Proctorio factors it into the response. If it is not used, a URL will be generated without the hash and needs to be added by the learning platform prior to usage. Proctorio recommends using the roster_url when the exam_tag is not provided.
Format should match: ^(?!goodbye$|support$|update$|setup$|invalid$).*.
section_id
string

Represents a course ID or a section ID value. This parameter is optional. It provides a more granular sorting of the exams.

That means that exams that have the same "exam_tag" but different "section_id", will be treated like different exams.

The "section_id" parameter is dependent upon the "roster_url" parameter, and it can't be used without it.

roster_url
string

Roster endpoint URL. Http Method: GET. The response should be a JSON stringified array. For example: '[["id1","name1"],["id2","name2"]]'

The "id" value should correspond to the "userId" parameter, be unique to the Candidate, and non-repeatable within the roster.

The roster endpoint is validated by Proctorio, so that means that if an invalid endpoint is provided or if "userId" doesn't match any "id" value inside the array, the attempts will be marked as "Unmatched" in the Review Center.

The roster_url is only fetched by the end user accessing the Review Center or the Exam Agreement page, client-side, not by Proctorio directly. That means that it can be secured with the session for that particular user. This is intentional, and as such there is no need for the PII to be passed to Proctorio at any point, whether that be a Candidate Launch request or a Reviewer Launch request.

Responses

200application/json

Indicates success and returns a Reviewer URL.

400application/json

Indicates bad request.

401application/json

Indicates unauthorized response.

2154 - Account not active.

2155 - Incorrect region.

2655 - Invalid api_key.

POST/v2/reviewer/launch
curl --request POST \
  --url https://us1.proctorapi.com/v2/reviewer/launch \
  --header 'Content-Type: application/json' \
  --header 'api_key: $API_KEY' \
  --data '{"exam_settings":{"record_video":true,"record_audio":false,"record_screen":false,"verify_video":false},"user_id":"example-id-123"}'
import requests

url = "https://us1.proctorapi.com/v2/reviewer/launch"

payload = {
    "exam_settings": {
        "record_video": True,
        "record_audio": False,
        "record_screen": False,
        "verify_video": False
    },
    "user_id": "example-id-123"
}
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/reviewer/launch';
const options = {
  method: 'POST',
  headers: {api_key: '$API_KEY', 'Content-Type': 'application/json'},
  body: '{"exam_settings":{"record_video":true,"record_audio":false,"record_screen":false,"verify_video":false},"user_id":"example-id-123"}'
};

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/reviewer/launch"),
    Headers =
    {
        { "api_key", "$API_KEY" },
    },
    Content = new StringContent("{\"exam_settings\":{\"record_video\":true,\"record_audio\":false,\"record_screen\":false,\"verify_video\":false},\"user_id\":\"example-id-123\"}")
    {
        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
{
  "exam_settings": {
    "record_video": true,
    "record_audio": false,
    "record_screen": false,
    "verify_video": false
  },
  "user_id": "example-id-123"
}