Als Markdown anzeigen

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.

GeltungsbereichLimit
Standardrate60 Anfragen pro Minute
Burst10 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.

GeltungsbereichLimit
Standard2.500 Anfragen pro Minute
Burst500 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:

HeaderBeschreibung
Retry-AfterSekunden, 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

  1. 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“)
  2. Stellen Sie Verkehrsmuster bereit: Teilen Sie historische Daten oder Prognosen, die Ihre typische und Spitzennutzung aufzeigen
  3. 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:

StufeKandidaten-Start
Standard2.500/Min
EnterpriseIndividuell

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