Ratenlimits
Die Proctorio API setzt Ratenlimits durch, um die Zuverlässigkeit des Dienstes für alle Kunden zu gewährleisten. Die Limits variieren je nach Endpoint basierend auf typischen Nutzungsmustern.
Standardlimits
Ratenlimits werden pro API key und pro Region angewendet. Wenn Sie das Limit überschreiten, antwortet die API mit HTTP 429 Too Many Requests.
| Geltungsbereich | Limit |
|---|---|
| Standardrate | 60 Anfragen pro Minute |
| Burst | 10 Anfragen pro Sekunde |
Endpoint-spezifische Limits
Einige Endpoints haben höhere Limits, um realen Nutzungsmustern gerecht zu werden.
Kandidaten-Start (/v2/candidate/launch)
Der Endpoint für den Kandidaten-Start unterstützt Prüfungsstarts mit hohem Volumen. Großangelegte Prüfungsveranstaltungen (z. B. Zertifizierungsprüfungen, Universitätsabschlussprüfungen) erfordern häufig Tausende gleichzeitiger Starts.
| Geltungsbereich | Limit |
|---|---|
| Standard | 2.500 Anfragen pro Minute |
| Burst | 500 Anfragen pro Sekunde |
Dies ermöglicht Szenarien, in denen mehr als 2.500 Kandidaten innerhalb derselben Minute eine Prüfung starten.
Andere Endpoints
Alle anderen Endpoints verwenden die Standardlimits (60/Min, 10/Sek Burst).
Header für Ratenlimits
Bei Erreichen des Ratenlimits antwortet die API mit HTTP 429 Too Many Requests und enthält:
| Header | Beschreibung |
|---|---|
Retry-After | Sekunden, die vor einem erneuten Versuch gewartet werden sollen |
Umgang mit Ratenlimits
Wenn Sie eine 429-Antwort erhalten, implementieren Sie exponentielles Backoff:
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") Höhere Limits anfordern
Wann höhere Limits angefordert werden sollten
- Großangelegte Prüfungsveranstaltungen: Zertifizierungsprüfungen, standardisierte Tests oder Universitätsabschlussprüfungen mit mehr als 5.000 gleichzeitigen Kandidaten
- Multi-Tenant-Plattformen: LMS-Anbieter, die mehrere Einrichtungen über eine einzige Integration bedienen
So stellen Sie eine Anfrage
- Kontaktieren Sie Ihren Account-Manager mit:
- Ihrer API key-Kennung (erste 8 Zeichen)
- Die spezifischen Endpoint(s), die höhere Limits benötigen
- Erwartetes Spitzenvolumen an Anfragen (Anfragen pro Minute)
- Beschreibung des Anwendungsfalls und Zeitplanung (z. B. „10.000 Kandidaten starten eine Zertifizierungsprüfung innerhalb von 5 Minuten“)
- Stellen Sie Verkehrsmuster bereit: Teilen Sie historische Daten oder Prognosen, die Ihre typische und Spitzennutzung aufzeigen
- Planen Sie voraus: Fordern Sie Limiterhöhungen mindestens 2 Wochen vor großen Veranstaltungen an, um eine ordnungsgemäße Bereitstellung sicherzustellen
Enterprise-Limits
Enterprise-Kunden können basierend auf ihren Anforderungen auf höhere Limits zugreifen:
| Stufe | Kandidaten-Start |
|---|---|
| Standard | 2.500/Min |
| Enterprise | Individuell |
Kontaktieren Sie [email protected] für Enterprise-Preise.
Best Practices
- Generierte URLs cachen — sie bleiben bis zu ihrer
expire-Zeit gültig - Doppelte Anfragen vermeiden — generieren Sie keine neuen URLs für denselben Benutzer und dieselbe Prüfung
- URLs vorab generieren — generieren Sie für geplante Prüfungen Kandidaten-URLs bis zu 5 Stunden im Voraus und Reviewer-/Live-URLs bis zu 1 Stunde im Voraus (maximale
expire-Werte) - Massenoperationen verteilen — verteilen Sie Anfragen über die Zeit, anstatt sie gebündelt zu senden
- Circuit Breaker implementieren — pausieren Sie Anfragen nach Erhalt von 429-Antworten
- Webhooks verwenden — anstatt Ergebnisse abzufragen, abonnieren Sie Webhooks für asynchrone Updates