Afficher en Markdown

CandidateLaunch

POST/v2/candidate/launch
URL de base
https://us1.proctorapi.com
Régions disponibles10 régions
Crée une URL de candidat.
application/json

Body

La requête candidat pour créer une URL de candidat.

pre_auth
string
URL utilisée pour pré-authentifier le candidat sur l'application MobileExam.
launch_url
stringObligatoire
Doit contenir une URL absolue valide, qui lance directement la page de démarrage de l'examen sans authentification supplémentaire. La valeur "launch_url" doit être incluse dans le motif regex "exam_start", ainsi que dans toutes les redirections.
exam_start
stringObligatoire
Expression régulière pour correspondre à la page de démarrage de l'examen. Toutes les pages avant celle-ci seront considérées comme des pages pré-examen et seront ignorées. Il s'agit de l'URL sur laquelle se trouve le candidat avant de commencer l'examen. La valeur "launch_url" doit être incluse dans le motif regex "exam_start", ainsi que dans toutes les redirections.
exam_take
stringObligatoire

Doit être une expression régulière pour correspondre aux URL des pages en cours d'examen (l'URL de l'examen), ainsi qu'aux redirections. Dans les cas où les questions sont réparties sur plusieurs pages, cela est important. Tout autre site visité qui ne correspond pas à ce paramètre ou au paramètre exam_end sera considéré comme une sortie de l'examen et la session sera considérée comme terminée.

Dans le cas où les URL ne reflètent pas l'état de l'examen (applications monopage), la méthode postMessage peut être utilisée pour communiquer l'état exam_take à l'extension Proctorio via :

window.top.postMessage( ["exam_state_change", "exam_take"], "https://getproctorio.com" );

Lors de l'utilisation de la méthode postMessage, "exam_take" doit avoir une valeur "post_message_nofication".

exam_end
stringObligatoire

Doit être une expression régulière pour correspondre à la page de fin d'examen (l'URL vers laquelle le candidat est redirigé une fois l'examen terminé) ainsi qu'aux redirections possibles. Cela déclenche la fin de la session de surveillance et considère que l'examen a été soumis. Tout autre site visité qui ne correspond pas à ce paramètre ou au paramètre exam_take sera considéré comme une sortie de l'examen et la session de surveillance se terminera, mais la tentative ne sera pas considérée comme soumise correctement.

Dans le cas où les URL ne reflètent pas l'état de l'examen (applications monopage), la méthode postMessage peut être utilisée pour communiquer l'état exam_end à l'extension Proctorio via :

window.top.postMessage( ["exam_state_change", "exam_end"], "https://getproctorio.com" );

Lors de l'utilisation de la méthode postMessage, "exam_end" doit avoir une valeur "post_message_nofication".

expire
integer(int32)
Nombre de secondes avant que l'URL du candidat ne soit plus valide. La valeur par défaut de ce paramètre est de 18000 secondes. Si aucune valeur n'est passée, la valeur par défaut sera appliquée. Doit être une valeur entière.
Minimum value is 1, Maximum value is 18000.
exam_settings
objectObligatoire
Afficher 30 attributs exam_settingsMasquer les attributs exam_settings
record_video
boolean
Exige que le candidat dispose d'une webcam et enregistrera la vidéo pendant toute la durée de l'examen.
record_audio
boolean
Exige que le candidat dispose d'un microphone et enregistrera l'audio pendant toute la durée de l'examen.
record_screen
boolean
Capturera et enregistrera l'écran complet du bureau pendant toute la durée de l'examen.
record_web_traffic
boolean
Capturera des captures d'écran et les URL de tous les sites web visités pendant l'examen.
record_desk
integer(int32)

0 - Le paramètre est désactivé.

1 - Exige que le candidat effectue un scan du bureau à intervalles périodiques pendant l'examen, le premier scan ayant lieu au début de l'examen. Les scans suivants sont déclenchés à intervalles périodiques, généralement entre 30 et 45 minutes après le précédent. Exige que les paramètres suivants soient définis sur true : record_video, verify_video.

2 - Exige que le candidat effectue un scan du bureau au début de l'examen. Exige que les paramètres suivants soient définis sur true : record_video, verify_video.

Values are 0, 1, 2.
verify_video
boolean
Vérifiera que la webcam fonctionne et qu'elle n'est pas virtualisée ou défectueuse. Exige que les paramètres suivants soient définis sur true : record_video.
verify_audio
boolean
Vérifiera que le microphone fonctionne et qu'il n'est pas virtualisé ou en sourdine. Exige que les paramètres suivants soient définis sur true : record_audio.
verify_desktop
boolean
Vérifiera que l'enregistrement du bureau fonctionne et est correctement enregistré. Exige que les paramètres suivants soient définis sur true : record_screen.
verify_id
integer(int32)

0 - Le paramètre est désactivé.

1 - Exige que le candidat présente une pièce d'identité avec photo avant de commencer l'examen, qui sera automatiquement scannée.

2 - Exige que le candidat présente une pièce d'identité avec photo avant de commencer l'examen. La pièce d'identité est ensuite vérifiée par un agent Proctorio avant que le candidat ne soit autorisé à passer l'examen. Exige que les paramètres suivants soient définis sur true : record_video, verify_video.

Values are 0, 1, 2.
verify_signature
boolean
Exige que le candidat signe un accord avant le début de l'examen.
full_screen
integer(int32)

0 - Le paramètre est désactivé.

1 - Force l'examen en plein écran, empêchant l'accès à d'autres applications et sites web. Quitter la page d'examen pendant plus de 15 secondes (cumulées) entraîne l'exclusion de l'examen. Exige que les paramètres suivants soient définis sur true : close_tabs, one_screen. Exige que tabs ait la valeur 1.

2 - Force l'examen en plein écran, empêchant l'accès à d'autres applications et sites web. Quitter la page d'examen pendant plus de 30 secondes (cumulées) entraîne l'exclusion de l'examen. Exige que les paramètres suivants soient définis sur true : close_tabs, one_screen. Exige que tabs ait la valeur 1.

3 - Force l'examen en plein écran, empêchant l'accès à d'autres applications et sites web. Quitter la page d'examen entraîne une exclusion immédiate de l'examen. Exige que les paramètres suivants soient définis sur true : close_tabs, one_screen. Exige que tabs ait la valeur 1.

Values are 0, 1, 2, 3.
disable_clipboard
boolean
Désactive la fonctionnalité copier/coller.
tabs
integer(int32)

0 - Le paramètre est désactivé.

1 - Désactive les nouveaux onglets ou fenêtres pendant l'examen.

2 - Désactive les nouveaux onglets ou fenêtres pendant l'examen, sauf les liens intégrés dans la page d'examen.

Values are 0, 1, 2.
close_tabs
boolean
Force la fermeture de tous les autres onglets et fenêtres avant le début de l'examen.
one_screen
boolean
Force le candidat à désactiver tous les moniteurs sauf un avant de commencer l'examen et l'empêche de connecter des moniteurs supplémentaires pendant l'examen.
disable_printing
boolean
Désactive l'impression du contenu de l'examen pour empêcher la distribution de l'examen.
block_downloads
boolean
Empêche le candidat de télécharger des fichiers via le navigateur.
clear_cache
boolean
Vide les fichiers temporaires du système après la soumission de l'examen.
disable_right_click
boolean
Désactive les fonctionnalités du clic droit.
calculator
integer(int32)

0 - Le paramètre est désactivé.

1 - Fournit au candidat une calculatrice à l'écran avec des fonctions de base.

2 - Fournit au candidat une calculatrice à l'écran avec des fonctions scientifiques.

3 - Fournit au candidat une calculatrice à l'écran avec des fonctions graphiques.

Values are 0, 1, 2, 3.
whiteboard
boolean
Fournit au candidat un bloc-notes et des outils de dessin à l'écran.
disable_extensions
boolean
Empêchera le candidat d'utiliser d'autres extensions de navigateur pendant l'examen, à l'exception de celles figurant sur la liste autorisée.
live_proctor
boolean
Ce paramètre permettra à un surveillant de suivre le candidat pendant l'examen et d'intervenir immédiatement. De plus, l'enregistrement complet et le rapport seront disponibles via le Proctorio Review Center. Exige que les paramètres suivants soient définis sur true : record_video, verify_video.
mobile
boolean
Permet de passer l'examen sur un appareil mobile, en utilisant l'application MobileExam. Nécessite l'utilisation de pre_auth dans la requête de lancement. Non compatible avec le paramètre verify_id: 2.
advanced_program_detection
boolean
Empêche l'utilisation d'autres applications pendant l'examen. Nécessite l'utilisation de l'application Secure Companion.
advanced_hardware_detection
boolean
Enregistre les changements matériels pendant l'examen dans le Review Center. Nécessite l'utilisation de l'application Secure Companion.
advanced_vm_detection
boolean
Empêche l'utilisation d'une machine virtuelle pour passer l'examen. Nécessite l'utilisation de l'application Secure Companion.
allowed_macos_apps
array[string]
Liste de 10 applications autorisées maximum pouvant rester ouvertes lorsque advanced_program_detection est utilisé. Les applications sont identifiées par leur bundle ID sur MacOS.
allowed_windows_apps
array[object]
Liste de 10 applications autorisées maximum pouvant rester ouvertes lorsque advanced_program_detection est utilisé. Les applications sont identifiées par binary_name, product_name et company_name sur Windows.
Afficher 3 attributs allowed_windows_appsMasquer les attributs allowed_windows_apps
binary_name
string
Le nom binaire de l'application.
product_name
string
Le nom du produit de l'application.
company_name
string
Le nom de l'entreprise de l'application.
strict_apps_validation
integer(int32)

Définit le niveau de rigueur pour la validation des applications autorisées lorsque advanced_program_detection, allowed_macos_apps et allowed_windows_apps sont utilisés.

0 - Le paramètre est désactivé.

1 - Validation par défaut.

Values are 0, 1.
record_desk_option
integer(int32)
Values are 0, 1, 2.
redirect_url
string
Le paramètre redirect_url est facultatif. S'il est fourni, le candidat sera redirigé vers cette URL après avoir soumis l'examen avec succès. Il permettra également au candidat d'être redirigé vers cette URL lorsqu'il clique sur le bouton « OK » dans le message « Fin de tentative » si le candidat a terminé la tentative de manière non gracieuse.
redirect_settings
object
Afficher 2 attributs redirect_settingsMasquer les attributs redirect_settings
graceful_submission_url
string
Après une soumission réussie de l'examen, le candidat sera redirigé vers graceful_submission_url.
ungraceful_submission_url
string
Après une fin d'examen non gracieuse, le candidat sera redirigé vers ungraceful_submission_url lorsqu'il clique sur le bouton « OK » dans le message « Fin de tentative ».
attempt_id
string
L'identifiant unique pour une tentative spécifique du candidat. Doit contenir une valeur alphanumérique (les tirets sont également acceptés). La valeur "attempt_id" doit être réutilisée lors de la génération d'une nouvelle URL de candidat, pour le candidat qui reprend la même tentative sur la plateforme d'apprentissage.
Format should match: ^[a-zA-Z0-9-]*$.
domain
string

Le paramètre "domain" est facultatif. En utilisant "domain", les pages d'examen ainsi que le Review Center se chargeront avec votre domaine souhaité.

L'URL ne pointera plus vers la page https://getproctorio.com. Au lieu de cela, les candidats/examinateurs seront dirigés vers la nouvelle route que vous avez fournie dans le paramètre, exemple : https://yourdomain.com.

Cela permet l'utilisation de mécanismes de sécurité cross-origin supplémentaires, qui utilisent les cookies SameSite ou l'en-tête X-Frame-Options: SAMEORIGIN. Cela permettra également d'éviter la perte de données dans le stockage de session ou local liée à la fonctionnalité de partitionnement du stockage du navigateur.

La page https://getproctorio.com possède les fonctionnalités suivantes : Vérifier si un candidat/examinateur a installé le navigateur pris en charge. Vérifier si un candidat/examinateur a installé l'extension Proctorio. Pour conserver ces fonctionnalités, un lien vers https://getproctorio.com avec un contenu décrivant l'objectif de getproctorio.com est nécessaire sur la page de l'institution.

display_name
string
À utiliser uniquement lorsque "roster_url" et "user_id" ne contiennent pas le nom du candidat. Les informations "display_name" ne sont PAS enregistrées et ne seront pas disponibles dans le Review Center pour l'examinateur ou le surveillant. Elles sont utilisées uniquement pour la vérification d'identité en direct et l'accord d'examen côté candidat.
extension_allowlist_url
string

URL du endpoint de la liste d'extensions autorisées. Méthode HTTP : GET. La réponse doit être un tableau JSON sous forme de chaîne. Par exemple : '[extensionID1,extensionID2]'.

Le extension_allowlist_url peut être utilisé pour les candidats dont les extensions sont activées de force dans le navigateur par l'institution. Ces extensions ne peuvent pas être désactivées manuellement par le candidat.

La valeur 'extensionID' doit correspondre à l'identifiant de l'extension qui sera autorisée à rester active pendant la tentative surveillée.

break_settings
object
Afficher 5 attributs break_settingsMasquer les attributs break_settings
number
objectObligatoire
Définit le nombre de pauses autorisées.
Minimum value is 1, Maximum value is 10.
duration
objectObligatoire
Définit la durée de la pause.
Minimum value is 1, Maximum value is 30.
cumulative
boolean
Indique si la durée de la pause est partagée entre les pauses (true) ou définie par pause (false).
on_time_exceeded
integer(int32)

Action à effectuer si le temps de pause est dépassé.

0 - Le temps de pause peut être dépassé.

1 - Si le temps de pause est dépassé, le candidat sera exclu de l'examen.

Values are 0, 1.
desk_scan_after_break
boolean
Indique si un scan du bureau est requis après la pause.
branding
object
Afficher 3 attributs brandingMasquer les attributs branding
primary_color
string
Le code couleur hexadécimal spécifie la couleur principale de certains contrôles d'interface utilisateur. La valeur doit être un code à six chiffres, sans le #. Permet à une plateforme d'apprentissage d'harmoniser son propre schéma de couleurs avec les couleurs Proctorio et de mettre en valeur sa marque dans l'en-tête. Doit être une valeur de type chaîne.
Format should match: ^[a-zA-Z0-9]*$.
secondary_color
string
Le code couleur hexadécimal spécifie la couleur secondaire de certains contrôles d'interface utilisateur. La valeur doit être un code à six chiffres, sans le #. Permet à une plateforme d'apprentissage d'harmoniser son propre schéma de couleurs avec les couleurs Proctorio et de mettre en valeur sa marque. Doit être une valeur de type chaîne.
Format should match: ^[a-zA-Z0-9]*$.
logo_url
string
URL du endpoint du logo personnalisé. Méthode HTTP : GET. La réponse doit être une image. Compatible CORS. La hauteur du logo sera de 32px, la largeur est flexible.
post_auth
string
Post_auth nécessite pre_auth. Il est utilisé après la pré-authentification, une fois que le candidat est déjà connecté à la plateforme. Ce paramètre définit le moment où les vérifications préalables doivent commencer. Une fois les vérifications préalables terminées, le candidat est redirigé vers le launch_url.
pre_auth_bypass
boolean
Le pre_auth_bypass est facultatif. Lorsqu'il est utilisé et défini sur true, il permet de contourner la pré-authentification pour le candidat sur l'application MobileExam.
user_id
stringObligatoire
Doit contenir une valeur alphanumérique (les tirets sont également acceptés), unique pour cet utilisateur spécifique.
Format should match: ^[a-zA-Z0-9-]*$.
exam_tag
string
Il s'agit du tag d'identifiant d'examen qui sera ajouté à la fin de l'URL. Le exam_tag ne peut pas contenir d'espaces et ne peut pas contenir de caractères NON-ASCII. S'il est utilisé, Proctorio le prend en compte dans la réponse. S'il n'est pas utilisé, une URL sera générée sans le hash et devra être ajoutée par la plateforme d'apprentissage avant utilisation. Proctorio recommande d'utiliser le roster_url lorsque le exam_tag n'est pas fourni.
Format should match: ^(?!goodbye$|support$|update$|setup$|invalid$).*.
section_id
string

Représente un identifiant de cours ou une valeur d'identifiant de section. Ce paramètre est facultatif. Il permet un tri plus granulaire des examens.

Cela signifie que les examens ayant le même "exam_tag" mais un "section_id" différent seront traités comme des examens différents.

Le paramètre "section_id" dépend du paramètre "roster_url" et ne peut pas être utilisé sans celui-ci.

roster_url
string

URL du endpoint du roster. Méthode HTTP : GET. La réponse doit être un tableau JSON sous forme de chaîne. Par exemple : '[["id1","name1"],["id2","name2"]]'

La valeur "id" doit correspondre au paramètre "userId", être unique pour le candidat et non répétable dans le roster.

Le endpoint du roster est validé par Proctorio, ce qui signifie que si un endpoint invalide est fourni ou si "userId" ne correspond à aucune valeur "id" dans le tableau, les tentatives seront marquées comme « Non appariées » dans le Review Center.

Le roster_url est uniquement récupéré par l'utilisateur final accédant au Review Center ou à la page d'accord d'examen, côté client, et non par Proctorio directement. Cela signifie qu'il peut être sécurisé avec la session de cet utilisateur particulier. C'est intentionnel, et il n'est donc pas nécessaire de transmettre les données personnelles à Proctorio à aucun moment, que ce soit dans une requête de lancement candidat ou une requête de lancement examinateur.

Réponses

200application/json

Indique le succès et renvoie une URL de candidat.

400application/json

Indique une requête incorrecte.

401application/json

Indique une réponse non autorisée.

2154 - Compte non actif.

2155 - Région incorrecte.

2655 - api_key invalide.

POST/v2/candidate/launch
curl --request POST \
  --url https://us1.proctorapi.com/v2/candidate/launch \
  --header 'Content-Type: application/json' \
  --header 'api_key: $API_KEY' \
  --data '{"launch_url":"https://example.com/exam","exam_start":"https://example.com/exam","exam_take":"https://example.com/exam","exam_end":"https://example.com/exam","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/candidate/launch"

payload = {
    "launch_url": "https://example.com/exam",
    "exam_start": "https://example.com/exam",
    "exam_take": "https://example.com/exam",
    "exam_end": "https://example.com/exam",
    "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/candidate/launch';
const options = {
  method: 'POST',
  headers: {api_key: '$API_KEY', 'Content-Type': 'application/json'},
  body: '{"launch_url":"https://example.com/exam","exam_start":"https://example.com/exam","exam_take":"https://example.com/exam","exam_end":"https://example.com/exam","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/candidate/launch"),
    Headers =
    {
        { "api_key", "$API_KEY" },
    },
    Content = new StringContent("{\"launch_url\":\"https://example.com/exam\",\"exam_start\":\"https://example.com/exam\",\"exam_take\":\"https://example.com/exam\",\"exam_end\":\"https://example.com/exam\",\"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);
}
Exemples de requête
{
  "launch_url": "https://example.com/exam",
  "exam_start": "https://example.com/exam",
  "exam_take": "https://example.com/exam",
  "exam_end": "https://example.com/exam",
  "exam_settings": {
    "record_video": true,
    "record_audio": false,
    "record_screen": false,
    "verify_video": false
  },
  "user_id": "example-id-123"
}