Limites de débit
L'API Proctorio applique des limites de débit pour garantir la fiabilité du service pour tous les clients. Les limites varient selon l'endpoint en fonction des schémas d'utilisation habituels.
Limites par défaut
Les limites de débit sont appliquées par API key et par région. Si vous dépassez la limite, l'API répond avec HTTP 429 Too Many Requests.
| Portée | Limite |
|---|---|
| Débit par défaut | 60 requêtes par minute |
| Rafale | 10 requêtes par seconde |
Limites spécifiques par endpoint
Certains endpoints ont des limites plus élevées pour s'adapter aux schémas d'utilisation réels.
Lancement du candidat (/v2/candidate/launch)
L'endpoint de lancement du candidat prend en charge les démarrages d'examens à haut volume. Les événements d'évaluation à grande échelle (par exemple, examens de certification, examens finaux universitaires) nécessitent souvent des milliers de lancements simultanés.
| Portée | Limite |
|---|---|
| Par défaut | 2 500 requêtes par minute |
| Rafale | 500 requêtes par seconde |
Cela permet des scénarios où plus de 2 500 candidats démarrent un examen dans la même minute.
Autres endpoints
Tous les autres endpoints utilisent les limites par défaut (60/min, 10/sec en rafale).
En-têtes de limite de débit
Lorsqu'une limite de débit est atteinte, l'API répond avec HTTP 429 Too Many Requests et inclut :
| En-tête | Description |
|---|---|
Retry-After | Secondes à attendre avant de réessayer |
Gestion des limites de débit
Lorsque vous recevez une réponse 429, implémentez un backoff exponentiel :
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") Demander des limites plus élevées
Quand demander des limites plus élevées
- Événements d'évaluation à grande échelle : Examens de certification, tests standardisés ou examens finaux universitaires avec plus de 5 000 candidats simultanés
- Plateformes multi-tenant : Fournisseurs de LMS desservant plusieurs établissements via une intégration unique
Comment faire la demande
- Contactez votre gestionnaire de compte avec :
- L'identifiant de votre API key (8 premiers caractères)
- Le(s) endpoint(s) spécifique(s) nécessitant des limites plus élevées
- Volume de requêtes de pointe prévu (requêtes par minute)
- Description du cas d'utilisation et calendrier (par exemple, « 10 000 candidats démarrant un examen de certification en 5 minutes »)
- Fournissez les schémas de trafic : Partagez des données historiques ou des projections montrant votre utilisation habituelle et de pointe
- Anticipez : Demandez des augmentations de limites au moins 2 semaines avant les événements importants pour assurer un provisionnement adéquat
Limites entreprise
Les clients entreprise peuvent accéder à des limites plus élevées selon leurs besoins :
| Niveau | Lancement du candidat |
|---|---|
| Standard | 2 500/min |
| Entreprise | Personnalisé |
Contactez [email protected] pour les tarifs entreprise.
Bonnes pratiques
- Mettez en cache les URL générées — elles restent valides jusqu'à leur temps d'
expire - Évitez les requêtes en double — ne régénérez pas d'URL pour le même utilisateur et le même examen
- Pré-générez les URL — pour les examens planifiés, générez les URL des candidats jusqu'à 5 heures à l'avance et les URL des réviseurs/en direct jusqu'à 1 heure à l'avance (valeurs maximales d'
expire) - Répartissez les opérations en masse — distribuez les requêtes dans le temps plutôt que de les envoyer en rafale
- Implémentez des disjoncteurs — suspendez les requêtes après avoir reçu des réponses 429
- Utilisez les webhooks — au lieu d'interroger les résultats, abonnez-vous aux webhooks pour les mises à jour asynchrones