Authentification
Toutes les requetes API Proctorio necessitent une authentification a l'aide d'une API key. Votre API key identifie votre integration et autorise l'acces aux services Proctorio.
Obtenir une API Key
Les API keys sont fournies par votre gestionnaire de compte Proctorio lors de la configuration de l'integration. Chaque cle est :
- Liee au compte de votre organisation
- Limitee a des regions specifiques (AU, CA, DE, EU, IN, JP, SA, SG, UK, US)
- Activee pour les endpoints requis par votre integration
Format de l'API Key
Votre API key est composee de deux parties :
api_key = {consumer_key}{MD5(secret)} | Composant | Description |
|---|---|
consumer_key | Votre identifiant unique (fourni lors de la configuration) |
secret | Votre cle secrete (fournie lors de la configuration) |
MD5(secret) | Le hash MD5 de votre cle secrete, en hexadecimal en minuscules |
Formats de cle que vous pouvez recevoir
Selon la configuration de votre integration, vous pouvez recevoir des identifiants dans l'un des deux formats suivants :
Option 1 : API Key complete — Une chaine precalculee prete a l'emploi :
a1b2c3d4e5f67890a1b2c3d4e5f678906286c281a69bb4cd781276f71da08d53 Option 2 : Consumer Key + Secret — Deux valeurs separees que vous combinez :
Consumer Key: a1b2c3d4e5f67890a1b2c3d4e5f67890
Secret: 12345678abcdef0012345678abcdef00 Pour calculer l'API key complete a partir de l'Option 2 :
- Calculez le hash MD5 de votre cle secrete
- Concatenez : {consumer_key}{md5_hash}
Exemple : Calcul de l'API Key
import hashlib
consumer_key = "a1b2c3d4e5f67890a1b2c3d4e5f67890"
secret = "12345678abcdef0012345678abcdef00"
# Compute MD5 hash of secret
md5_hash = hashlib.md5(secret.encode()).hexdigest()
# md5_hash = "6286c281a69bb4cd781276f71da08d53"
# Combine to form API key
api_key = consumer_key + md5_hash
# Result: a1b2c3d4e5f67890a1b2c3d4e5f678906286c281a69bb4cd781276f71da08d53 import { createHash } from 'crypto';
const consumerKey = 'a1b2c3d4e5f67890a1b2c3d4e5f67890';
const secret = '12345678abcdef0012345678abcdef00';
// Compute MD5 hash of secret
const md5Hash = createHash('md5').update(secret).digest('hex');
// md5Hash = "6286c281a69bb4cd781276f71da08d53"
// Combine to form API key
const apiKey = consumerKey + md5Hash;
// Result: a1b2c3d4e5f67890a1b2c3d4e5f678906286c281a69bb4cd781276f71da08d53 Utiliser votre API Key
Incluez votre API key dans l'en-tete api_key de chaque requete :
curl -X POST https://us1.proctorapi.com/v2/candidate/launch \
-H "api_key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"launch_url": "https://..."}' Format de l'en-tete
| En-tete | Valeur | Obligatoire |
|---|---|---|
api_key | Votre API key | Oui |
Content-Type | application/json | Oui (pour les requetes POST) |
Endpoints regionaux
Votre API key est provisionnee pour des regions specifiques. Utilisez l'endpoint regional correspondant a votre cle :
| Region | URL de base |
|---|---|
| Australie | https://au1.proctorapi.com |
| Canada | https://ca1.proctorapi.com |
| Allemagne | https://de1.proctorapi.com |
| Europe | https://eu1.proctorapi.com |
| Inde | https://in1.proctorapi.com |
| Japon | https://jp1.proctorapi.com |
| Afrique du Sud | https://sa1.proctorapi.com |
| Singapour | https://sg1.proctorapi.com |
| Royaume-Uni | https://uk1.proctorapi.com |
| Etats-Unis | https://us1.proctorapi.com |
L'utilisation d'une mauvaise region renvoie une erreur 401 avec le code 2155 - Incorrect region.
Reponses d'erreur
Les echecs d'authentification renvoient 401 Unauthorized avec l'un de ces codes :
| Code | Message | Signification |
|---|---|---|
| 2154 | Compte non actif | Votre compte est desactive ou suspendu |
| 2155 | Region incorrecte | L'API key n'est pas valide pour cet endpoint regional |
| 2655 | api_key invalide | L'API key est manquante, malformee ou revoquee |
Bonnes pratiques de securite
- N'exposez jamais votre API key dans du code cote client, des depots publics ou des requetes navigateur
- Utilisez des variables d'environnement pour stocker les cles dans votre application serveur
- Effectuez une rotation des cles periodiquement en demandant une nouvelle cle a votre gestionnaire de compte
- Utilisez des cles separees pour les environnements de developpement/pre-production et de production
- Surveillez l'utilisation via votre tableau de bord Proctorio pour detecter toute activite inattendue
Exemple : Utilisation des variables d'environnement
import os
import requests
API_KEY = os.environ.get('PROCTORIO_API_KEY')
response = requests.post(
'https://us1.proctorapi.com/v2/candidate/launch',
headers={
'api_key': API_KEY,
'Content-Type': 'application/json'
},
json={'launch_url': 'https://...'}
) const API_KEY = process.env.PROCTORIO_API_KEY;
const response = await fetch('https://us1.proctorapi.com/v2/candidate/launch', {
method: 'POST',
headers: {
'api_key': API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({ launch_url: 'https://...' })
});