Rate limits
Begrijp de requestlimieten van de API, het creditverbruik en hoe je throttling netjes afhandelt.
Huidige limieten
| Onderdeel | Limiet | Wat het betekent |
|---|---|---|
| Requests met API-sleutel | 60 requests / minuut en 5,000 requests / dag | Standaardquotum voor geauthenticeerde API-sleutels. |
/api/batch | Tot 500 e-mails / request | Dien batches in binnen de e-maillimiet per request. |
| Anonieme checker | 5 checks / dag / IP-adres | Geldt voor de openbare checker als er geen API-sleutel van een account wordt gebruikt. |
| Verificatievolume | Beschikbare accountcredits | Credits bepalen hoeveel verificaties je kunt uitvoeren. |
| Bulk-CSV-uploads | Credits nodig voor elke e-mail in het bestand | Voor uploads heb je genoeg credits nodig voor het aantal e-mails dat wordt geverifieerd. |
Requestquota en credits zijn aparte controles. API-sleutels hebben standaard 60 requests per minuut en 5,000 requests per dag. Die quota bepalen hoe snel een geauthenticeerde integratie de API kan aanroepen. Accountcredits bepalen hoeveel verificaties je kunt uitvoeren.
Voor lijstwerk met hoog volume accepteert /api/batch tot 500 e-mails in één request. Bulk-CSV-uploads worden begrensd door credits in plaats van door het aantal requests: het account moet genoeg credits hebben voor het aantal e-mails in het geüploade bestand voordat de verificatiejob kan starten.
De openbare anonieme checker is beperkt tot 5 checks per dag per IP-adres. Voor de regels rond je accountsaldo, zie Credits en verbruik. Voor grote imports gebruik je Bulkverificatie; voor het gedrag van integraties, bekijk Foutafhandeling, Snel aan de slag, en prijzen.
Response bij rate limit
Als een API-sleutel zijn requestquotum overschrijdt, retourneert de API een 429 Too Many Requests -response. De response bevat Retry-After zodat de client weet hoe lang hij moet wachten voordat hij het opnieuw probeert.
{
"error": "Too Many Requests",
"message": "Rate limit exceeded. Please retry after the indicated delay.",
"status_code": 429,
"retry_after": 15
}
Retry-After-header
Het Retry-After -responseheader geeft aan hoeveel seconden je moet wachten voordat je een API-sleutelrequest dat het quotum overschreed opnieuw probeert:
HTTP/1.1 429 Too Many Requests
Retry-After: 15
Content-Type: application/json
Rate limits afhandelen in code
Lees eerst de header, wacht het aangegeven aantal seconden en probeer het dan opnieuw. Ontbreekt de header, gebruik dan een voorzichtige standaardwachttijd.
import requests, time
def verify_with_retry(email, api_key, max_retries=3):
for attempt in range(max_retries):
response = requests.post(
"https://verimails.com/api/verify/single",
headers={"Authorization": f"Bearer {api_key}"},
json={"email": email}
)
if response.status_code == 200:
return response.json()
if response.status_code == 429:
retry_after = int(response.headers.get("Retry-After", 15))
print(f"Rate limited. Waiting {retry_after}s...")
time.sleep(retry_after)
continue
response.raise_for_status()
raise Exception("Max retries exceeded")
Best practices
- Houd geauthenticeerde API-integraties onder 60 requests per minuut en 5,000 requests per dag, tenzij je account andere limieten heeft.
- Houd
/api/batch-payloads op maximaal 500 e-mails. - Respecteer altijd de
Retry-After-header als een API-sleutelrequest een 429 krijgt. - Controleer je beschikbare credits voordat je een grote verificatierun start.
- Gebruik Bulkverificatie voor CSV-lijsten en zorg dat het account genoeg credits heeft voor het aantal e-mails in het bestand.