Ver como Markdown

Autenticacion

Todas las solicitudes a la API de Proctorio requieren autenticacion mediante una API key. Su API key identifica su integracion y autoriza el acceso a los servicios de Proctorio.

Obtencion de una API Key

Las API keys son proporcionadas por su administrador de cuenta de Proctorio durante la configuracion de la integracion. Cada clave es:

  • Vinculada a la cuenta de su organizacion
  • Limitada a regiones especificas (AU, CA, DE, EU, IN, JP, SA, SG, UK, US)
  • Habilitada para los endpoints que su integracion requiere

Formato de la API Key

Su API key se compone de dos partes:

api_key = {consumer_key}{MD5(secret)}
ComponenteDescripcion
consumer_keySu identificador unico (proporcionado durante la configuracion)
secretSu clave secreta (proporcionada durante la configuracion)
MD5(secret)El hash MD5 de su clave secreta, en formato hexadecimal en minusculas

Formatos de clave que puede recibir

Dependiendo de la configuracion de su integracion, puede recibir credenciales en uno de dos formatos:

Opcion 1: API Key completa — Una cadena precalculada lista para usar:

a1b2c3d4e5f67890a1b2c3d4e5f678906286c281a69bb4cd781276f71da08d53

Opcion 2: Consumer Key + Secret — Dos valores separados que usted combina:

Consumer Key: a1b2c3d4e5f67890a1b2c3d4e5f67890
Secret:       12345678abcdef0012345678abcdef00

Para calcular la API key completa a partir de la Opcion 2:

  1. Calcule el hash MD5 de su clave secreta
  2. Concatene: {consumer_key}{md5_hash}

Ejemplo: Calculo de la 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

Uso de su API Key

Incluya su API key en el encabezado api_key de cada solicitud:

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://..."}'

Formato del encabezado

EncabezadoValorObligatorio
api_keySu API keySi
Content-Typeapplication/jsonSi (para solicitudes POST)

Endpoints regionales

Su API key esta aprovisionada para regiones especificas. Utilice el endpoint regional que corresponda a su clave:

RegionURL base
Australiahttps://au1.proctorapi.com
Canadahttps://ca1.proctorapi.com
Alemaniahttps://de1.proctorapi.com
Europahttps://eu1.proctorapi.com
Indiahttps://in1.proctorapi.com
Japonhttps://jp1.proctorapi.com
Sudafricahttps://sa1.proctorapi.com
Singapurhttps://sg1.proctorapi.com
Reino Unidohttps://uk1.proctorapi.com
Estados Unidoshttps://us1.proctorapi.com

Usar la region incorrecta devuelve un error 401 con el codigo 2155 - Incorrect region.

Respuestas de error

Los fallos de autenticacion devuelven 401 Unauthorized con uno de estos codigos:

CodigoMensajeSignificado
2154Cuenta no activaSu cuenta esta deshabilitada o suspendida
2155Region incorrectaLa API key no es valida para este endpoint regional
2655api_key invalidaLa API key falta, tiene un formato incorrecto o ha sido revocada

Mejores practicas de seguridad

  • Nunca exponga su API key en codigo del lado del cliente, repositorios publicos o solicitudes del navegador
  • Utilice variables de entorno para almacenar las claves en su aplicacion de servidor
  • Rote las claves periodicamente solicitando una nueva clave a su administrador de cuenta
  • Utilice claves separadas para los entornos de desarrollo/pruebas y produccion
  • Monitoree el uso a traves de su panel de Proctorio para detectar actividad inesperada

Ejemplo: Uso de variables de entorno

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://...' })
});