GET /exams
List exams

Errors

Code Description
403 You are not authorized to access this page.

Examples

{
  'example_request_params': {
    'nonce': '1527500365',
    'timestamp': 1527500365052,
    'signature': '8aac70c9906ad0812f4fbc34617322f985b4ac978cec861724f142cb572b88ff'
  },
  'example_response': {
    'exams': [
      {
        'id': 1,
        'institute_id': 1,
        'name': 'New test',
        'terms': null,
        'created_at': '2018-11-21T00:54:59.934+01:00',
        'updated_at': '2018-11-25T21:26:08.664+01:00',
        'duration_minutes': 123,
        'clipboard': null,
        'start_time': '2018-11-21T00:54:00.000+01:00',
        'mode': '01110000',
        'upload_answers': false,
        'token': 'b1342678e28f2b895ff6834408a33bd7',
        'user_id': 5,
        'end_time': null,
        'restrictions': '[[false,['']],[false,['']],[false,['']],[false,['']],[false,['']],[false,['']],[true,['']]]',
        'published': false,
        'status': 'open',
        'for_reviewing': false,
        'uploaded_exam_documents_file_name': null,
        'uploaded_exam_documents_content_type': null,
        'uploaded_exam_documents_file_size': null,
        'uploaded_exam_documents_updated_at': null,
        'timezone': 0,
        'use_duration': true,
        'global_proctoring': true,
        'global_reviewing': true,
        'exam_language': 'fr,nl,es,ar,no',
        'web_cam': true,
        'mobile_cam': true,
        'screen_share': true,
        'live_proctoring': false
      }
    ]
  }
}

Params

Param name Description
timestamp
required

Timestamp of the request in milliseconds.

Validations:

  • Must be a number.

nonce
required

Random number unique between the api calls made in the previous 24 hours.

Validations:

  • Must be a number.

signature
required

HMAC sha256 hex encoded hash, using the user secret_key as key, of the query string build with all the other parameters in the format 'name=value' joined by '?' and ordered alphabethically by name. Do not use encoding scheme on the values you use to calculate the string

Validations:

  • Must be a String


GET /exams/:id
Show an exam

Errors

Code Description
404 Couldn't find Exam with 'id'=':id'
403 You are not authorized to access this page.

Examples

{
  'example_request_params': {
    'nonce': '1527500365',
    'timestamp': 1527500365052,
    'signature': '8aac70c9906ad0812f4fbc34617322f985b4ac978cec861724f142cb572b88ff'
  },
  'example_response': {
    'exam': {
      'id': 1,
      'institute_id': 1,
      'name': 'New test',
      'terms': null,
      'created_at': '2018-11-21T00:54:59.934+01:00',
      'updated_at': '2018-11-25T21:26:08.664+01:00',
      'duration_minutes': 123,
      'clipboard': null,
      'start_time': '2018-11-21T00:54:00.000+01:00',
      'mode': '01110000',
      'upload_answers': false,
      'token': 'b1342678e28f2b895ff6834408a33bd7',
      'user_id': 5,
      'end_time': null,
      'restrictions': '[[false,['']],[false,['']],[false,['']],[false,['']],[false,['']],[false,['']],[true,['']]]',
      'published': false,
      'status': 'open',
      'for_reviewing': false,
      'uploaded_exam_documents_file_name': null,
      'uploaded_exam_documents_content_type': null,
      'uploaded_exam_documents_file_size': null,
      'uploaded_exam_documents_updated_at': null,
      'timezone': 0,
      'use_duration': true,
      'global_proctoring': true,
      'global_reviewing': true,
      'exam_language': 'fr,nl,es,ar,no',
      'web_cam': true,
      'mobile_cam': true,
      'screen_share': true,
      'live_proctoring': false
    }
  }
}

Params

Param name Description
id
required

ID of the requested exam.

Validations:

  • Must be a number.


POST /exams
Create an exam

Errors

Code Description
403 You are not authorized to access this page.
422 Param is missing or the value is empty: 'param'

Examples

{
  'example_request_params': {
    'name':'Psychostasia',
    'type': 'record_review',
    'institute_id':1,
    'use_duration': true,
    'duration_minutes':90,
    'global_proctoring': true,
    'global_reviewing': true,
    'start_time':'2018-11-21T00:54:00.000+01:00',
    'for_reviewing':true,
    'upload_answers':false,
    'mobile_cam':true,
    'nonce': '1527500365',
    'timestamp': 1527500365052,
    'signature': '8aac70c9906ad0812f4fbc34617322f985b4ac978cec861724f142cb572b88ff'
  },
  'example_response': {
    'exam': {
      'id': 1,
      'institute_id': 1,
      'name': 'Psychostasia',
      'terms': null,
      'created_at': '2018-11-21T00:54:59.934+01:00',
      'updated_at': '2018-11-25T21:26:08.664+01:00',
      'duration_minutes': 90,
      'clipboard': null,
      'start_time': '2018-11-21T00:54:00.000+01:00',
      'mode': '01110000',
      'upload_answers': false,
      'token': 'b1342678e28f2b895ff6834408a33bd7',
      'user_id': 5,
      'end_time': null,
      'restrictions': '[[false,['']],[false,['']],[false,['']],[false,['']],[false,['']],[false,['']],[true,['']]]',
      'published': false,
      'status': 'open',
      'for_reviewing': true,
      'uploaded_exam_documents_file_name': null,
      'uploaded_exam_documents_content_type': null,
      'uploaded_exam_documents_file_size': null,
      'uploaded_exam_documents_updated_at': null,
      'timezone': 0,
      'use_duration': true,
      'global_proctoring': true,
      'global_reviewing': true,
      'exam_language': 'fr,nl,es,ar,no',
      'web_cam': true,
      'mobile_cam': true,
      'screen_share': true,
      'live_proctoring': false
    }
  }
}

Params

Param name Description
name
required

Name of the exam.

Validations:

  • Must be a String

type
required

Type of the exam, can be: demo, classroom, record_review, live_proctoring

Validations:

  • Must be a String

institute_id
optional

Institute of the exam, if omitted will be set to the user's institute_id

Validations:

  • Must be a number.

use_duration
optional

True if exam duration is required.

Validations:

  • Must be one of: true, false, 1, 0

duration_minutes
optional

Duration of the exam in minutes.

Validations:

  • Must be a number.

global_proctoring
optional

True if global proctoring is set for the exam. Only for superuser accounts

Validations:

  • Must be one of: true, false, 1, 0

global_reviewing
optional

True if global reviewing is set for the exam. Only for superuser accounts

Validations:

  • Must be one of: true, false, 1, 0

start_time
optional

The first start time of the exam in epoch format. Will default to create time.

Validations:

  • Must be a number.

end_time
optional

The last end time of the exam in epoch format. Will default to be nil.

Validations:

  • Must be a number.

for_reviewing
optional

True if you want to send the student videos to reviewers.

Validations:

  • Must be one of: true, false, 1, 0

restrictions
optional

The instructions for the reviewer, formatted in HTML.

Validations:

  • Must be a String

upload_answers
optional

True if student has to upload one or more document at the end of the exam through proctorexam platform.

Validations:

  • Must be one of: true, false, 1, 0

mobile_cam
optional

True if mobile recording is required.

Validations:

  • Must be one of: true, false, 1, 0

exam_language
optional

Languages in which the exam can be displayed.

Validations:

  • Must be a String

timestamp
required

Timestamp of the request in milliseconds.

Validations:

  • Must be a number.

nonce
required

Random number unique between the api calls made in the previous 24 hours.

Validations:

  • Must be a number.

signature
required

HMAC sha256 hex encoded hash, using the user secret_key as key, of the query string build with all the other parameters in the format 'name=value' joined by '?' and ordered alphabethically by name. Do not use encoding scheme on the values you use to calculate the string

Validations:

  • Must be a String


PATCH /exams/:id
Update an exam

PUT /exams/:id
Update an exam

Errors

Code Description
403 You are not authorized to access this page.
422 Param is missing or the value is empty: 'param'

Examples

{
  'example_request_params': {
    'name':'Psychostasia',
    'type': 'record_review',
    'institute_id':1,
    'use_duration': true,
    'duration_minutes':90,
    'global_proctoring': true,
    'global_reviewing': true,
    'start_time':'2018-11-21T00:54:00.000+01:00',
    'for_reviewing':true,
    'upload_answers':false,
    'mobile_cam':true,
    'nonce': '1527500365',
    'timestamp': 1527500365052,
    'signature': '8aac70c9906ad0812f4fbc34617322f985b4ac978cec861724f142cb572b88ff'
  },
  'example_response': {
    'exam': {
      'id': 1,
      'institute_id': 1,
      'name': 'Psychostasia',
      'terms': null,
      'created_at': '2018-11-21T00:54:59.934+01:00',
      'updated_at': '2018-11-25T21:26:08.664+01:00',
      'duration_minutes': 90,
      'clipboard': null,
      'start_time': '2018-11-21T00:54:00.000+01:00',
      'mode': '01110000',
      'upload_answers': false,
      'token': 'b1342678e28f2b895ff6834408a33bd7',
      'user_id': 5,
      'end_time': null,
      'restrictions': '[[false,['']],[false,['']],[false,['']],[false,['']],[false,['']],[false,['']],[true,['']]]',
      'published': false,
      'status': 'open',
      'for_reviewing': true,
      'uploaded_exam_documents_file_name': null,
      'uploaded_exam_documents_content_type': null,
      'uploaded_exam_documents_file_size': null,
      'uploaded_exam_documents_updated_at': null,
      'timezone': 0,
      'use_duration': true,
      'global_proctoring': true,
      'global_reviewing': true,
      'exam_language': 'fr,nl,es,ar,no',
      'web_cam': true,
      'mobile_cam': true,
      'screen_share': true,
      'live_proctoring': false
    }
  }
}

Params

Param name Description
id
required

ID of the requested exam.

Validations:

  • Must be a number.

name
optional

Name of the exam.

Validations:

  • Must be a String

type
optional

Type of the exam, can be: demo, classroom, record_review, live_proctoring

Validations:

  • Must be a String

use_duration
optional

True if exam duration is required.

Validations:

  • Must be one of: true, false, 1, 0

duration_minutes
optional

Duration of the exam in minutes.

Validations:

  • Must be a number.

global_proctoring
optional

True if global proctoring is set for the exam.

Validations:

  • Must be one of: true, false, 1, 0

global_reviewing
optional

True if global reviewing is set for the exam.

Validations:

  • Must be one of: true, false, 1, 0

start_time
optional

The first start time of the exam in epoch format. Will default to create time.

Validations:

  • Must be a number.

end_time
optional

The last end time of the exam in epoch format. Will default to be nil.

Validations:

  • Must be a number.

for_reviewing
optional

True if you want to send the student videos to reviewers.

Validations:

  • Must be one of: true, false, 1, 0

restrictions
optional

The instructions for the reviewer, formatted in HTML.

Validations:

  • Must be a String

upload_answers
optional

True if student has to upload one or more document at the end of the exam through proctorexam platform.

Validations:

  • Must be one of: true, false, 1, 0

mobile_cam
optional

True if mobile recording is required.

Validations:

  • Must be one of: true, false, 1, 0

exam_language
optional

Languages in which the exam can be displayed.

Validations:

  • Must be a String

timestamp
required

Timestamp of the request in milliseconds.

Validations:

  • Must be a number.

nonce
required

Random number unique between the api calls made in the previous 24 hours.

Validations:

  • Must be a number.

signature
required

HMAC sha256 hex encoded hash, using the user secret_key as key, of the query string build with all the other parameters in the format 'name=value' joined by '?' and ordered alphabethically by name. Do not use encoding scheme on the values you use to calculate the string

Validations:

  • Must be a String


DELETE /exams/:id
Destroy an exam

Errors

Code Description
404 Couldn't find Exam with 'id'=':id'
403 You are not authorized to access this page.

Examples

{
  'example_request_params': {
    'nonce': '1527500365',
    'timestamp': 1527500365052,
    'signature': '8aac70c9906ad0812f4fbc34617322f985b4ac978cec861724f142cb572b88ff'
  },
  'example_response': {}
}

Params

Param name Description
id
required

ID of the requested exam.

Validations:

  • Must be a number.

timestamp
required

Timestamp of the request in milliseconds.

Validations:

  • Must be a number.

nonce
required

Random number unique between the api calls made in the previous 24 hours.

Validations:

  • Must be a number.

signature
required

HMAC sha256 hex encoded hash, using the user secret_key as key, of the query string build with all the other parameters in the format 'name=value' joined by '?' and ordered alphabethically by name. Do not use encoding scheme on the values you use to calculate the string

Validations:

  • Must be a String


GET /exams/:id/index_students
List the students in an exam

Errors

Code Description
403 You are not authorized to access this page.

Examples

{
  'example_request_params': {
    'nonce': '1527500365',
    'timestamp': 1527500365052,
    'signature': '8aac70c9906ad0812f4fbc34617322f985b4ac978cec861724f142cb572b88ff'
  },
  'example_response': {
    'students': [
      {
        'id': 1,
        'session_id': null,
        'student_id': null,
        'time_slot': 1,
        'created_at': '2018-11-17T17:01:25.788+01:00',
        'updated_at': '2018-11-17T17:13:30.427+01:00',
        'email': 'student1@example.com',
        'pin_code': 803754,
        'operating_system': 'OS X 10.14.1',
        'browser': 'Chrome',
        'browser_version': '70.0.3538.102',
        'status': 'exam_finished',
        'token': null,
        'screenshare_check': 'not_started',
        'microphone_check': 'not_started',
        'speakers_check': 'not_started',
        'webcam_check': 'not_started',
        'mobile_check': 'not_started',
        'dummy_exam_survey': null,
        'skip_requirements': false,
        'send_confirmation': false,
        'name': 'Student 1',
        'start_time': '2018-11-17T17:09:39.373+01:00',
        'exam_id': 1,
        'expires_at': null,
        'end_time': '2018-11-17T17:10:19.477+01:00',
        'entered_room': true,
        'reservation_time': '2018-11-17T17:04:28.633+01:00',
        'exam_document_content_type': null,
        'exam_document_file_size': null,
        'exam_document_updated_at': null,
        'reviewed': '10',
        'id_card_file_name': 'data',
        'id_card_content_type': 'image/png',
        'id_card_file_size': 187297,
        'face_photo_file_name': 'data',
        'face_photo_content_type': 'image/png',
        'face_photo_file_size': 206025,
        'bandwidth_check': 'not_started',
        'bandwidth_speed': null,
        'open_time': '2018-11-13T11:13:00.000+01:00',
        'individual_info': 'individual_info for user 1',
        'rtc_session_id': 0,
        'in_setup': false,
        'in_check_requirements': false,
        'attempt': 0,
        'archived': true,
        'current_exam_mode': '01010000',
        'rtc_session_ids': [],
        'transcoding_status': 'not_sent_to_queue',
        'is_individual_info_html': true,
        'priority': '01',
        'recording_started_at': null,
        'recording_ended_at': null
      }
    ]
  }
}

Params

Param name Description
id
required

ID of the student's exam.

Validations:

  • Must be a number.

timestamp
required

Timestamp of the request in milliseconds.

Validations:

  • Must be a number.

nonce
required

Random number unique between the api calls made in the previous 24 hours.

Validations:

  • Must be a number.

signature
required

HMAC sha256 hex encoded hash, using the user secret_key as key, of the query string build with all the other parameters in the format 'name=value' joined by '?' and ordered alphabethically by name. Do not use encoding scheme on the values you use to calculate the string

Validations:

  • Must be a String


GET /exams/id/show_student
Show a student in an exam

Errors

Code Description
404 Couldn't find Student Session with 'id'=':student_session_id'
403 You are not authorized to access this page.

Examples

{
  'example_request_params': {
    'student_session_id': 1,
    'nonce': '1527500365',
    'timestamp': 1527500365052,
    'signature': '8aac70c9906ad0812f4fbc34617322f985b4ac978cec861724f142cb572b88ff'
  },
  'example_response': {
    'student': {
      'id': 1,
      'session_id': null,
      'student_id': null,
      'time_slot': 1,
      'created_at': '2018-11-17T17:01:25.788+01:00',
      'updated_at': '2018-11-17T17:13:30.427+01:00',
      'email': 'student1@example.com',
      'pin_code': 803754,
      'operating_system': 'OS X 10.14.1',
      'browser': 'Chrome',
      'browser_version': '70.0.3538.102',
      'status': 'exam_finished',
      'token': null,
      'screenshare_check': 'not_started',
      'microphone_check': 'not_started',
      'speakers_check': 'not_started',
      'webcam_check': 'not_started',
      'mobile_check': 'not_started',
      'dummy_exam_survey': null,
      'skip_requirements': false,
      'send_confirmation': false,
      'name': 'Student 1',
      'start_time': '2018-11-17T17:09:39.373+01:00',
      'exam_id': 1,
      'expires_at': null,
      'end_time': '2018-11-17T17:10:19.477+01:00',
      'entered_room': true,
      'reservation_time': '2018-11-17T17:04:28.633+01:00',
      'exam_document_content_type': null,
      'exam_document_file_size': null,
      'exam_document_updated_at': null,
      'reviewed': '10',
      'id_card_file_name': 'data',
      'id_card_content_type': 'image/png',
      'id_card_file_size': 187297,
      'face_photo_file_name': 'data',
      'face_photo_content_type': 'image/png',
      'face_photo_file_size': 206025,
      'bandwidth_check': 'not_started',
      'bandwidth_speed': null,
      'open_time': '2018-11-13T11:13:00.000+01:00',
      'individual_info': 'individual_info for user 1',
      'rtc_session_id': 0,
      'in_setup': false,
      'in_check_requirements': false,
      'attempt': 0,
      'archived': true,
      'current_exam_mode': '01010000',
      'rtc_session_ids': [],
      'transcoding_status': 'not_sent_to_queue',
      'is_individual_info_html': true,
      'priority': '01',
      'recording_started_at': null,
      'recording_ended_at': null
    }
  }
}

Params

Param name Description
id
required

ID of the student's exam.

Validations:

  • Must be a number.

student_session_id
required

ID of the student_session.

Validations:

  • Must be a number.

timestamp
required

Timestamp of the request in milliseconds.

Validations:

  • Must be a number.

nonce
required

Random number unique between the api calls made in the previous 24 hours.

Validations:

  • Must be a number.

signature
required

HMAC sha256 hex encoded hash, using the user secret_key as key, of the query string build with all the other parameters in the format 'name=value' joined by '?' and ordered alphabethically by name. Do not use encoding scheme on the values you use to calculate the string

Validations:

  • Must be a String


GET /exams/id/show_lti_student
Show a student in an lti exam

Errors

Code Description
404 Couldn't find Student Session with 'id'=':student_lms_id' and 'resource_link_id'=':resource_link_id'
403 You are not authorized to access this page.

Examples

{
  'example_request_params': {
    'student_lms_id':'student_1',
    'resource_link_id':'-4cd10a07a82a4bd6afc8ff27ad2981b8',
    'nonce': '1527500365',
    'timestamp': 1527500365052,
    'signature': '8aac70c9906ad0812f4fbc34617322f985b4ac978cec861724f142cb572b88ff'
  },
  'example_response': {
    'student': {
      'id': 1,
      'session_id': null,
      'student_id': null,
      'time_slot': 1,
      'created_at': '2018-11-17T17:01:25.788+01:00',
      'updated_at': '2018-11-17T17:13:30.427+01:00',
      'email': 'student1@example.com',
      'pin_code': 803754,
      'operating_system': 'OS X 10.14.1',
      'browser': 'Chrome',
      'browser_version': '70.0.3538.102',
      'status': 'exam_finished',
      'token': null,
      'screenshare_check': 'not_started',
      'microphone_check': 'not_started',
      'speakers_check': 'not_started',
      'webcam_check': 'not_started',
      'mobile_check': 'not_started',
      'dummy_exam_survey': null,
      'skip_requirements': false,
      'send_confirmation': false,
      'name': 'Student 1',
      'start_time': '2018-11-17T17:09:39.373+01:00',
      'exam_id': 1,
      'expires_at': null,
      'end_time': '2018-11-17T17:10:19.477+01:00',
      'entered_room': true,
      'reservation_time': '2018-11-17T17:04:28.633+01:00',
      'exam_document_content_type': null,
      'exam_document_file_size': null,
      'exam_document_updated_at': null,
      'reviewed': '10',
      'id_card_file_name': 'data',
      'id_card_content_type': 'image/png',
      'id_card_file_size': 187297,
      'face_photo_file_name': 'data',
      'face_photo_content_type': 'image/png',
      'face_photo_file_size': 206025,
      'bandwidth_check': 'not_started',
      'bandwidth_speed': null,
      'open_time': '2018-11-13T11:13:00.000+01:00',
      'individual_info': 'individual_info for user 1',
      'rtc_session_id': 0,
      'in_setup': false,
      'in_check_requirements': false,
      'attempt': 0,
      'archived': true,
      'current_exam_mode': '01010000',
      'rtc_session_ids': [],
      'transcoding_status': 'not_sent_to_queue',
      'is_individual_info_html': true,
      'priority': '01',
      'recording_started_at': null,
      'recording_ended_at': null
    }
  }
}

Params

Param name Description
id
required

ID of the student's exam.

Validations:

  • Must be a number.

student_lms_id
required

ID of the student in the lms

Validations:

  • Must be a String

resource_link_id
required

unique id of the lti endpoint

Validations:

  • Must be a String

context_id
optional

unique id of the context of the exam

Validations:

  • Must be a String

timestamp
required

Timestamp of the request in milliseconds.

Validations:

  • Must be a number.

nonce
required

Random number unique between the api calls made in the previous 24 hours.

Validations:

  • Must be a number.

signature
required

HMAC sha256 hex encoded hash, using the user secret_key as key, of the query string build with all the other parameters in the format 'name=value' joined by '?' and ordered alphabethically by name. Do not use encoding scheme on the values you use to calculate the string

Validations:

  • Must be a String


POST /exams/:id/add_student
Create and add a student to an exam

Errors

Code Description
403 You are not authorized to access this page.
422 Param is missing or the value is empty: 'param'
422 'email':['has already been taken']

Examples

{
  'example_request_params': {
    'name':'Student 1',
    'email':'student1@example.com',
    'individual_info':'individual_info for user 1',
    'is_individual_info_html': true,
    'nonce': '1527500365',
    'timestamp': 1527500365052,
    'signature': '8aac70c9906ad0812f4fbc34617322f985b4ac978cec861724f142cb572b88ff'
  },
  'example_response': {
    'student': {
      'id': 1,
      'session_id': null,
      'student_id': null,
      'time_slot': 1,
      'created_at': '2018-11-17T17:01:25.788+01:00',
      'updated_at': '2018-11-17T17:13:30.427+01:00',
      'email': 'student1@example.com',
      'pin_code': 803754,
      'operating_system': 'OS X 10.14.1',
      'browser': 'Chrome',
      'browser_version': '70.0.3538.102',
      'status': 'exam_finished',
      'token': null,
      'screenshare_check': 'not_started',
      'microphone_check': 'not_started',
      'speakers_check': 'not_started',
      'webcam_check': 'not_started',
      'mobile_check': 'not_started',
      'dummy_exam_survey': null,
      'skip_requirements': false,
      'send_confirmation': false,
      'name': 'Student 1',
      'start_time': '2018-11-17T17:09:39.373+01:00',
      'exam_id': 1,
      'expires_at': null,
      'end_time': '2018-11-17T17:10:19.477+01:00',
      'entered_room': true,
      'reservation_time': '2018-11-17T17:04:28.633+01:00',
      'exam_document_content_type': null,
      'exam_document_file_size': null,
      'exam_document_updated_at': null,
      'reviewed': '10',
      'id_card_file_name': 'data',
      'id_card_content_type': 'image/png',
      'id_card_file_size': 187297,
      'face_photo_file_name': 'data',
      'face_photo_content_type': 'image/png',
      'face_photo_file_size': 206025,
      'bandwidth_check': 'not_started',
      'bandwidth_speed': null,
      'open_time': '2018-11-13T11:13:00.000+01:00',
      'individual_info': 'individual_info for user 1',
      'rtc_session_id': 0,
      'in_setup': false,
      'in_check_requirements': false,
      'attempt': 0,
      'archived': true,
      'current_exam_mode': '01010000',
      'rtc_session_ids': [],
      'transcoding_status': 'not_sent_to_queue',
      'is_individual_info_html': true,
      'priority': '01',
      'recording_started_at': null,
      'recording_ended_at': null
    }
  }
}

Params

Param name Description
id
required

ID of the student's exam.

Validations:

  • Must be a number.

name
required

Name of the student.

Validations:

  • Must be a String

email
required

Email of the student.

Validations:

  • Must be a String

individual_info
optional

Individual information for the student.

Validations:

  • Must be a String

is_individual_info_html
optional

Individual information display mode: html or plain text

Validations:

  • Must be one of: true, false, 1, 0

open_time
optional

The earliest time in EPOCH format that a student is allowed to begin their exam.

Validations:

  • Must be a number.

timestamp
required

Timestamp of the request in milliseconds.

Validations:

  • Must be a number.

nonce
required

Random number unique between the api calls made in the previous 24 hours.

Validations:

  • Must be a number.

signature
required

HMAC sha256 hex encoded hash, using the user secret_key as key, of the query string build with all the other parameters in the format 'name=value' joined by '?' and ordered alphabethically by name. Do not use encoding scheme on the values you use to calculate the string

Validations:

  • Must be a String


DELETE /exams/:id/delete_student
Destroy and remove a student from an exam

Errors

Code Description
404 Couldn't find Student Session with 'id'=':student_session_id'
403 You are not authorized to access this page.

Examples

{
  'example_request_params': {
    'name':'Student 1',
    'email':'student1@example.com',
    'individual_info':'individual_info for user 1',
    'is_individual_info_html': true,
    'nonce': '1527500365',
    'timestamp': 1527500365052,
    'signature': '8aac70c9906ad0812f4fbc34617322f985b4ac978cec861724f142cb572b88ff'
  },
  'example_response': {}
}

Params

Param name Description
id
required

ID of the student's exam.

Validations:

  • Must be a number.

student_session_id
required

ID of the student_session.

Validations:

  • Must be a number.

timestamp
required

Timestamp of the request in milliseconds.

Validations:

  • Must be a number.

nonce
required

Random number unique between the api calls made in the previous 24 hours.

Validations:

  • Must be a number.

signature
required

HMAC sha256 hex encoded hash, using the user secret_key as key, of the query string build with all the other parameters in the format 'name=value' joined by '?' and ordered alphabethically by name. Do not use encoding scheme on the values you use to calculate the string

Validations:

  • Must be a String


POST /exams/:id/send_emails
Send the exam emails for all the students in an exam

Errors

Code Description
404 Couldn't find Exam with 'id'=':id'
403 You are not authorized to access this page.

Examples

{
  'example_request_params': {
    'nonce': '1527500365',
    'timestamp': 1527500365052,
    'signature': '8aac70c9906ad0812f4fbc34617322f985b4ac978cec861724f142cb572b88ff'
  },
  'example_response': {
    'students': [
      {
        'id': 1,
        'session_id': null,
        'student_id': null,
        'time_slot': 1,
        'created_at': '2018-11-17T17:01:25.788+01:00',
        'updated_at': '2018-11-17T17:13:30.427+01:00',
        'email': 'student1@example.com',
        'pin_code': 803754,
        'operating_system': 'OS X 10.14.1',
        'browser': 'Chrome',
        'browser_version': '70.0.3538.102',
        'status': 'exam_finished',
        'token': null,
        'screenshare_check': 'not_started',
        'microphone_check': 'not_started',
        'speakers_check': 'not_started',
        'webcam_check': 'not_started',
        'mobile_check': 'not_started',
        'dummy_exam_survey': null,
        'skip_requirements': false,
        'send_confirmation': false,
        'name': 'Student 1',
        'start_time': '2018-11-17T17:09:39.373+01:00',
        'exam_id': 1,
        'expires_at': null,
        'end_time': '2018-11-17T17:10:19.477+01:00',
        'entered_room': true,
        'reservation_time': '2018-11-17T17:04:28.633+01:00',
        'exam_document_content_type': null,
        'exam_document_file_size': null,
        'exam_document_updated_at': null,
        'reviewed': '10',
        'id_card_file_name': 'data',
        'id_card_content_type': 'image/png',
        'id_card_file_size': 187297,
        'face_photo_file_name': 'data',
        'face_photo_content_type': 'image/png',
        'face_photo_file_size': 206025,
        'bandwidth_check': 'not_started',
        'bandwidth_speed': null,
        'open_time': '2018-11-13T11:13:00.000+01:00',
        'individual_info': 'individual_info for user 1',
        'rtc_session_id': 0,
        'in_setup': false,
        'in_check_requirements': false,
        'attempt': 0,
        'archived': true,
        'current_exam_mode': '01010000',
        'rtc_session_ids': [],
        'transcoding_status': 'not_sent_to_queue',
        'is_individual_info_html': true,
        'priority': '01',
        'recording_started_at': null,
        'recording_ended_at': null
      }
    ] 
  }
}

Params

Param name Description
id
required

ID of the requested exam.

Validations:

  • Must be a number.

timestamp
required

Timestamp of the request in milliseconds.

Validations:

  • Must be a number.

nonce
required

Random number unique between the api calls made in the previous 24 hours.

Validations:

  • Must be a number.

signature
required

HMAC sha256 hex encoded hash, using the user secret_key as key, of the query string build with all the other parameters in the format 'name=value' joined by '?' and ordered alphabethically by name. Do not use encoding scheme on the values you use to calculate the string

Validations:

  • Must be a String


PUT /exams/:id/add_comanager
Add a user as a comanager to an exam

Errors

Code Description
403 You are not authorized to access this page.
422 Param is missing or the value is empty: 'param'

Examples

{
  'example_request_params': {
    'comanager_id':'5',
    'nonce': '1527500365',
    'timestamp': 1527500365052,
    'signature': '8aac70c9906ad0812f4fbc34617322f985b4ac978cec861724f142cb572b88ff'
  },
  'example_response': {
    'comanager': {
      'id': 5,
      'institute_id': 1,
      'email': 'teacher@institute.com',
      'student_number': null,
      'name': 'Teacher name',
      'created_at': '2019-01-23T12:05:52.391+01:00',
      'updated_at': '2019-01-23T12:05:52.391+01:00',
      'role': 'teacher',
      'invitation_token': null,
      'invitation_created_at': null,
      'invitation_sent_at': null,
      'invitation_accepted_at': null,
      'invitation_limit': null,
      'invited_by_id': null,
      'invited_by_type': null,
      'api_token': 'jq560vN9KZdAdFtOYH5xXw',
      'secret_key': 'NNAK4kQK3hveFpuuRMeC-DFRgn0nnUn4XpPSWofvXxY',
      'receives_reports': true,
      'report_frequency': 'week',
      'first_visit_guide': true,
      'global_proctor': true,
      'global_reviewer': true,
      'logo_image': '/logo_images/original/missing.png',
      'institute_name': 'ProctorExam'
    }
  }
}

Params

Param name Description
id
required

ID of the exam.

Validations:

  • Must be a number.

comanager_id
required

User ID of the comanager.

Validations:

  • Must be a number.

timestamp
required

Timestamp of the request in milliseconds.

Validations:

  • Must be a number.

nonce
required

Random number unique between the api calls made in the previous 24 hours.

Validations:

  • Must be a number.

signature
required

HMAC sha256 hex encoded hash, using the user secret_key as key, of the query string build with all the other parameters in the format 'name=value' joined by '?' and ordered alphabethically by name. Do not use encoding scheme on the values you use to calculate the string

Validations:

  • Must be a String


DELETE /exams/:id/remove_comanager
Remove a user as a comanger to an exam

Errors

Code Description
403 You are not authorized to access this page.
422 Param is missing or the value is empty: 'param'

Examples

{
  'example_request_params': {
    'comanager_id':'5',
    'nonce': '1527500365',
    'timestamp': 1527500365052,
    'signature': '8aac70c9906ad0812f4fbc34617322f985b4ac978cec861724f142cb572b88ff'
  },
  'example_response': {
    'comanager': {
      'id': 5,
      'institute_id': 1,
      'email': 'teacher@institute.com',
      'student_number': null,
      'name': 'Teacher name',
      'created_at': '2019-01-23T12:05:52.391+01:00',
      'updated_at': '2019-01-23T12:05:52.391+01:00',
      'role': 'teacher',
      'invitation_token': null,
      'invitation_created_at': null,
      'invitation_sent_at': null,
      'invitation_accepted_at': null,
      'invitation_limit': null,
      'invited_by_id': null,
      'invited_by_type': null,
      'api_token': 'jq560vN9KZdAdFtOYH5xXw',
      'secret_key': 'NNAK4kQK3hveFpuuRMeC-DFRgn0nnUn4XpPSWofvXxY',
      'receives_reports': true,
      'report_frequency': 'week',
      'first_visit_guide': true,
      'global_proctor': true,
      'global_reviewer': true,
      'logo_image': '/logo_images/original/missing.png',
      'institute_name': 'ProctorExam'
    }
  }
}

Params

Param name Description
id
required

ID of the exam.

Validations:

  • Must be a number.

comanager_id
required

User ID of the comanager.

Validations:

  • Must be a number.

timestamp
required

Timestamp of the request in milliseconds.

Validations:

  • Must be a number.

nonce
required

Random number unique between the api calls made in the previous 24 hours.

Validations:

  • Must be a number.

signature
required

HMAC sha256 hex encoded hash, using the user secret_key as key, of the query string build with all the other parameters in the format 'name=value' joined by '?' and ordered alphabethically by name. Do not use encoding scheme on the values you use to calculate the string

Validations:

  • Must be a String