Snelheidslimieten
De Proctorio API hanteert snelheidslimieten om de betrouwbaarheid van de dienst voor alle klanten te waarborgen. Limieten variëren per endpoint op basis van gangbare gebruikspatronen.
Standaardlimieten
Snelheidslimieten worden toegepast per API key per regio. Als u de limiet overschrijdt, reageert de API met HTTP 429 Too Many Requests.
| Bereik | Limiet |
|---|---|
| Standaardsnelheid | 60 verzoeken per minuut |
| Burst | 10 verzoeken per seconde |
Endpoint-specifieke limieten
Sommige endpoints hebben hogere limieten om aan te sluiten bij praktijkgebruikspatronen.
Kandidaat lancering (/v2/candidate/launch)
Het endpoint voor kandidaat lancering ondersteunt examenstarts met een hoog volume. Grootschalige toetsevenementen (bijv. certificeringsexamens, universitaire eindexamens) vereisen vaak duizenden gelijktijdige lanceringen.
| Bereik | Limiet |
|---|---|
| Standaard | 2500 verzoeken per minuut |
| Burst | 500 verzoeken per seconde |
Dit maakt scenario's mogelijk waarin meer dan 2500 kandidaten binnen dezelfde minuut een examen starten.
Overige endpoints
Alle overige endpoints gebruiken de standaardlimieten (60/min, 10/sec burst).
Headers voor snelheidslimieten
Wanneer een snelheidslimiet wordt bereikt, reageert de API met HTTP 429 Too Many Requests en bevat:
| Header | Beschrijving |
|---|---|
Retry-After | Aantal seconden wachten voordat u het opnieuw probeert |
Omgaan met snelheidslimieten
Wanneer u een 429-respons ontvangt, implementeer exponentiële 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") Hogere limieten aanvragen
Wanneer hogere limieten aanvragen
- Grootschalige toetsevenementen: Certificeringsexamens, gestandaardiseerde toetsen of universitaire eindexamens met meer dan 5000 gelijktijdige kandidaten
- Multi-tenant platformen: LMS-aanbieders die meerdere instellingen bedienen via één enkele integratie
Hoe aan te vragen
- Neem contact op met uw accountmanager met:
- Uw API key-identificatie (eerste 8 tekens)
- De specifieke endpoint(s) waarvoor hogere limieten nodig zijn
- Verwacht piekvolume aan verzoeken (verzoeken per minuut)
- Beschrijving van het gebruiksscenario en planning (bijv. "10.000 kandidaten die binnen 5 minuten een certificeringsexamen starten")
- Verstrek verkeerspatronen: Deel historische gegevens of prognoses die uw gangbare en piekgebruik weergeven
- Plan vooruit: Vraag limietverhogingen ten minste 2 weken vóór grote evenementen aan om een juiste inrichting te garanderen
Enterprise-limieten
Enterprise-klanten hebben toegang tot hogere limieten op basis van hun vereisten:
| Niveau | Kandidaat lancering |
|---|---|
| Standaard | 2500/min |
| Enterprise | Aangepast |
Neem contact op met [email protected] voor enterprise-prijzen.
Best practices
- Cache gegenereerde URL's — ze blijven geldig tot hun
expire-tijd - Vermijd dubbele verzoeken — genereer geen nieuwe URL's voor dezelfde gebruiker en hetzelfde examen
- Genereer URL's vooraf — genereer voor geplande examens kandidaat-URL's tot 5 uur van tevoren en reviewer-/live-URL's tot 1 uur van tevoren (maximale
expire-waarden) - Spreid bulkbewerkingen — verdeel verzoeken over de tijd in plaats van ze in bursts te versturen
- Implementeer circuit breakers — pauzeer verzoeken na het ontvangen van 429-responsen
- Gebruik webhooks — in plaats van te pollen naar resultaten, abonneer u op webhooks voor asynchrone updates