Límites de frecuencia
La API de Proctorio aplica límites de frecuencia para garantizar la fiabilidad del servicio para todos los clientes. Los límites varían según el endpoint en función de los patrones de uso habituales.
Límites predeterminados
Los límites de frecuencia se aplican por API key y por región. Si supera el límite, la API responde con HTTP 429 Too Many Requests.
| Ámbito | Límite |
|---|---|
| Frecuencia predeterminada | 60 solicitudes por minuto |
| Ráfaga | 10 solicitudes por segundo |
Límites específicos por endpoint
Algunos endpoints tienen límites más altos para adaptarse a los patrones de uso reales.
Lanzamiento de candidato (/v2/candidate/launch)
El endpoint de lanzamiento de candidato admite inicios de exámenes de alto volumen. Los eventos de evaluación a gran escala (por ejemplo, exámenes de certificación, finales universitarios) a menudo requieren miles de lanzamientos simultáneos.
| Ámbito | Límite |
|---|---|
| Predeterminado | 2500 solicitudes por minuto |
| Ráfaga | 500 solicitudes por segundo |
Esto permite escenarios en los que más de 2500 candidatos inician un examen en el mismo minuto.
Otros endpoints
Todos los demás endpoints utilizan los límites predeterminados (60/min, 10/seg en ráfaga).
Encabezados de límite de frecuencia
Cuando se aplica un límite de frecuencia, la API responde con HTTP 429 Too Many Requests e incluye:
| Encabezado | Descripción |
|---|---|
Retry-After | Segundos de espera antes de reintentar |
Gestión de los límites de frecuencia
Cuando reciba una respuesta 429, implemente un retroceso exponencial:
import time
import requests
def call_api_with_retry(url, headers, payload, max_retries=3):
for attempt in range(max_retries):
response = requests.post(url, headers=headers, json=payload)
if response.status_code == 429:
retry_after = int(response.headers.get("Retry-After", 2 ** attempt))
time.sleep(retry_after)
continue
return response
raise Exception("Rate limit exceeded after retries") Solicitar límites más altos
Cuándo solicitar límites más altos
- Eventos de evaluación a gran escala: Exámenes de certificación, pruebas estandarizadas o finales universitarios con más de 5000 candidatos simultáneos
- Plataformas multi-tenant: Proveedores de LMS que atienden a múltiples instituciones a través de una única integración
Cómo solicitarlo
- Contacte a su administrador de cuenta con:
- El identificador de su API key (primeros 8 caracteres)
- El/los endpoint(s) específico(s) que requieren límites más altos
- Volumen máximo esperado de solicitudes (solicitudes por minuto)
- Descripción del caso de uso y calendario (por ejemplo, "10 000 candidatos iniciando un examen de certificación en 5 minutos")
- Proporcione patrones de tráfico: Comparta datos históricos o proyecciones que muestren su uso habitual y pico
- Planifique con anticipación: Solicite aumentos de límites con al menos 2 semanas de anticipación antes de eventos grandes para garantizar el aprovisionamiento adecuado
Límites empresariales
Los clientes empresariales pueden acceder a límites más altos según sus requisitos:
| Nivel | Lanzamiento de candidato |
|---|---|
| Estándar | 2500/min |
| Empresarial | Personalizado |
Contacte a [email protected] para precios empresariales.
Mejores prácticas
- Almacene en caché las URL generadas — permanecen válidas hasta su tiempo de
expire - Evite solicitudes duplicadas — no regenere URL para el mismo usuario y examen
- Pre-genere las URL — para exámenes programados, genere las URL de candidatos con hasta 5 horas de anticipación y las URL de revisores/en vivo con hasta 1 hora de anticipación (valores máximos de
expire) - Distribuya las operaciones masivas — distribuya las solicitudes a lo largo del tiempo en lugar de enviarlas en ráfagas
- Implemente interruptores automáticos — pause las solicitudes después de recibir respuestas 429
- Use webhooks — en lugar de sondear resultados, suscríbase a webhooks para actualizaciones asíncronas