View as Markdown

LiveLaunch

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

Body

The Proctor request to create a Proctor Live URL.

expire
integer(int32)
Number of seconds before the Proctor 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.
exam_name
string
Represents the name of the exam that is being reviewed or proctored. It allows easier navigation if reviewing or proctoring multiple exams at the same time.
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.
proctor_settings
object
Show 4 proctor_settings attributesHide proctor_settings attributes
break_allowed
boolean
This option allows a proctor to give a candidate a break by selecting "Give break" in the options menu. This option will only be available when a candidate has been claimed by proctor.
desk_scan_allowed
boolean
This option allows a proctor to initiate a desk scan by selecting "Initiate Desk Scan" in the options menu. Initiate a desk scan will prompt the candidate to scan their desk or environment during their exam. This option will only be available when a candidate has been claimed by a proctor.
interrupt_allowed
boolean
This option allows a proctor to interrupt/resume a candidate's attempt. This option will only be available when a candidate has been claimed by proctor.
kickout_allowed
boolean
This option allows a proctor to kick-out a candidate from their attempt. This option will only be available when a candidate has been claimed by proctor.
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 Proctor URL.

400application/json

Indicates bad request.

401application/json

Indicates unauthorized response.

2154 - Account not active.

2155 - Incorrect region.

2655 - Invalid api_key.

POST/v2/live/launch
curl --request POST \
  --url https://us1.proctorapi.com/v2/live/launch \
  --header 'Content-Type: application/json' \
  --header 'api_key: $API_KEY' \
  --data '{"user_id":"example-id-123"}'
import requests

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

payload = { "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/live/launch';
const options = {
  method: 'POST',
  headers: {api_key: '$API_KEY', 'Content-Type': 'application/json'},
  body: '{"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/live/launch"),
    Headers =
    {
        { "api_key", "$API_KEY" },
    },
    Content = new StringContent("{\"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
{
  "user_id": "example-id-123"
}