API Reference
Complete email checker API reference. Endpoints, parameters, response codes for email verification and validation.
De EmailVerify API is een RESTful service die krachtige e-mailverificatiemogelijkheden biedt. Alle API-verzoeken moeten via HTTPS worden gedaan.
Basis-URL
https://api.emailverify.ai/v1Authenticatie
Alle API-verzoeken vereisen authenticatie met behulp van een Bearer-token in de Authorization-header:
Authorization: Bearer YOUR_API_KEYVerkrijg uw API-sleutel via het EmailVerify-dashboard.
Voorbeeld
curl -X POST https://api.emailverify.ai/v1/verify \
-H "Authorization: Bearer bv_live_xxx" \
-H "Content-Type: application/json" \
-d '{"email": "test@example.com"}'Snelheidslimieten
| Abonnement | Verzoeken/uur | Verzoeken/dag |
|---|---|---|
| Gratis | 100 | 1.000 |
| Starter | 1.000 | 10.000 |
| Professional | 10.000 | 100.000 |
| Enterprise | Aangepast | Aangepast |
Informatie over snelheidslimieten is opgenomen in de antwoordheaders:
| Header | Beschrijving |
|---|---|
X-RateLimit-Limit | Maximum toegestane verzoeken |
X-RateLimit-Remaining | Resterende verzoeken in venster |
X-RateLimit-Reset | Unix-timestamp wanneer limiet reset |
Bij overschrijding van de snelheidslimiet ontvangt u een 429 Too Many Requests-antwoord:
{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Snelheidslimiet overschreden. Probeer het later opnieuw.",
"retry_after": 3600
}
}Eindpunten
Enkelvoudige e-mailverificatie
Verifieer een enkel e-mailadres met gedetailleerde resultaten.
POST /verifyVerzoek
{
"email": "user@example.com",
"smtp_check": true,
"timeout": 5000
}Parameters
| Parameter | Type | Verplicht | Standaard | Beschrijving |
|---|---|---|---|---|
email | string | Ja | - | Te verifiëren e-mailadres |
smtp_check | boolean | Nee | true | SMTP-mailboxverificatie uitvoeren |
timeout | integer | Nee | 5000 | Verzoek-timeout in milliseconden (max: 30000) |
Antwoord
{
"email": "user@example.com",
"status": "valid",
"result": {
"deliverable": true,
"valid_format": true,
"valid_domain": true,
"valid_mx": true,
"disposable": false,
"role": false,
"catchall": false,
"free": false,
"smtp_valid": true
},
"score": 0.95,
"reason": null,
"credits_used": 1
}Antwoordvelden
| Veld | Type | Beschrijving |
|---|---|---|
email | string | Het geverifieerde e-mailadres |
status | string | Verificatiestatus: valid, invalid, unknown, accept_all |
result | object | Gedetailleerde verificatieresultaten |
score | number | Betrouwbaarheidsscore (0.0 - 1.0) |
reason | string | Reden voor invalid/unknown status (nullable) |
credits_used | integer | Aantal verbruikte credits |
Resultaatobjectvelden
| Veld | Type | Beschrijving |
|---|---|---|
deliverable | boolean | Of e-mail berichten kan ontvangen |
valid_format | boolean | Of e-mail geldige syntaxis heeft |
valid_domain | boolean | Of domein bestaat |
valid_mx | boolean | Of domein MX-records heeft |
disposable | boolean | Of e-mail van wegwerpdienst is |
role | boolean | Of e-mail rol-gebaseerd is (info@, support@) |
catchall | boolean | Of domein alle e-mails accepteert |
free | boolean | Of e-mail van gratis provider is |
smtp_valid | boolean | Of SMTP-verificatie geslaagd is |
Bulk e-mailverificatie
Verzend meerdere e-mailadressen voor verificatie. Retourneert een taak-ID voor voortgangscontrole.
POST /verify/bulkVerzoek
{
"emails": [
"user1@example.com",
"user2@example.com",
"user3@example.com"
],
"smtp_check": true,
"webhook_url": "https://your-app.com/webhooks/emailverify"
}Parameters
| Parameter | Type | Verplicht | Standaard | Beschrijving |
|---|---|---|---|---|
emails | array | Ja | - | Array van e-mailadressen (max: 10.000) |
smtp_check | boolean | Nee | true | SMTP-verificatie uitvoeren |
webhook_url | string | Nee | - | URL om voltooiingsmelding te ontvangen |
Antwoord
{
"job_id": "job_abc123xyz",
"status": "processing",
"total": 3,
"processed": 0,
"valid": 0,
"invalid": 0,
"unknown": 0,
"credits_used": 3,
"created_at": "2025-01-15T10:30:00Z"
}Bulktaakstatus ophalen
Controleer de status van een bulkverificatietaak.
GET /verify/bulk/{job_id}Antwoord (in uitvoering)
{
"job_id": "job_abc123xyz",
"status": "processing",
"total": 1000,
"processed": 450,
"valid": 380,
"invalid": 50,
"unknown": 20,
"progress_percent": 45,
"created_at": "2025-01-15T10:30:00Z"
}Antwoord (voltooid)
{
"job_id": "job_abc123xyz",
"status": "completed",
"total": 1000,
"processed": 1000,
"valid": 850,
"invalid": 100,
"unknown": 50,
"progress_percent": 100,
"created_at": "2025-01-15T10:30:00Z",
"completed_at": "2025-01-15T10:35:00Z"
}Taakstatuswaarden
| Status | Beschrijving |
|---|---|
pending | Taak staat in wachtrij |
processing | Taak wordt verwerkt |
completed | Taak succesvol voltooid |
failed | Taak mislukt (zie error-veld) |
Bulktaakresultaten ophalen
Haal verificatieresultaten op voor een voltooide bulktaak.
GET /verify/bulk/{job_id}/resultsQueryparameters
| Parameter | Type | Standaard | Beschrijving |
|---|---|---|---|
limit | integer | 100 | Resultaten per pagina (max: 1000) |
offset | integer | 0 | Startpositie |
status | string | - | Filteren op status: valid, invalid, unknown |
Antwoord
{
"job_id": "job_abc123xyz",
"total": 1000,
"limit": 100,
"offset": 0,
"results": [
{
"email": "user1@example.com",
"status": "valid",
"result": {
"deliverable": true,
"disposable": false,
"role": false
},
"score": 0.95
},
{
"email": "user2@example.com",
"status": "invalid",
"result": {
"deliverable": false,
"reason": "mailbox_not_found"
},
"score": 0.10
}
]
}Credits controleren
Haal huidige creditsaldo en gebruiksinformatie op.
GET /creditsAntwoord
{
"available": 9500,
"used": 500,
"total": 10000,
"plan": "Professional",
"resets_at": "2025-02-01T00:00:00Z",
"rate_limit": {
"requests_per_hour": 10000,
"remaining": 9850
}
}Webhooks
Webhook aanmaken
POST /webhooks{
"url": "https://your-app.com/webhooks/emailverify",
"events": ["verification.completed", "bulk.completed"],
"secret": "your-webhook-secret"
}Webhooks weergeven
GET /webhooksWebhook verwijderen
DELETE /webhooks/{webhook_id}Webhook-events
| Event | Beschrijving |
|---|---|
verification.completed | Enkelvoudige e-mailverificatie voltooid |
bulk.completed | Bulktaak voltooid |
bulk.failed | Bulktaak mislukt |
credits.low | Credits onder drempelwaarde |
Webhook-payload
{
"event": "bulk.completed",
"timestamp": "2025-01-15T10:35:00Z",
"data": {
"job_id": "job_abc123xyz",
"status": "completed",
"total": 1000,
"valid": 850,
"invalid": 100,
"unknown": 50
},
"signature": "sha256=..."
}Verificatiestatus
| Status | Betekenis | Aanbevolen actie |
|---|---|---|
valid | E-mail bestaat en kan berichten ontvangen | Veilig om te verzenden |
invalid | E-mail bestaat niet of kan niet ontvangen | Verwijderen van lijst |
unknown | Kon geldigheid niet bepalen | Later opnieuw proberen of voorzichtig zijn |
accept_all | Domein accepteert alle e-mails (catch-all) | Controleren op bounces |
Foutantwoorden
Alle fouten volgen een consistent formaat:
{
"error": {
"code": "ERROR_CODE",
"message": "Leesbare foutmelding",
"details": "Aanvullende context (optioneel)"
}
}HTTP-statuscodes
| Code | Beschrijving |
|---|---|
200 | Succes |
400 | Bad Request - Ongeldige parameters |
401 | Unauthorized - Ongeldige of ontbrekende API-sleutel |
403 | Forbidden - Onvoldoende rechten |
404 | Not Found - Resource bestaat niet |
429 | Too Many Requests - Snelheidslimiet overschreden |
500 | Internal Server Error |
503 | Service Unavailable |
Foutcodes
| Code | HTTP-status | Beschrijving |
|---|---|---|
INVALID_API_KEY | 401 | API-sleutel is ongeldig of ontbreekt |
RATE_LIMIT_EXCEEDED | 429 | Te veel verzoeken |
INSUFFICIENT_CREDITS | 403 | Niet genoeg credits |
INVALID_EMAIL | 400 | E-mailformaat is ongeldig |
INVALID_REQUEST | 400 | Verzoekbody is onjuist geformatteerd |
JOB_NOT_FOUND | 404 | Bulktaak-ID niet gevonden |
TIMEOUT | 504 | Verificatie time-out |
Best practices
1. Gebruik omgevingsvariabelen
Codeer API-sleutels nooit hard:
// Goed
const apiKey = process.env.EMAILVERIFY_API_KEY;
// Fout - doe dit niet
const apiKey = 'bv_live_xxx';2. Snelheidslimieten afhandelen
Implementeer exponential backoff:
async function verifyWithRetry(email, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
return await verify(email);
} catch (error) {
if (error.code === 'RATE_LIMIT_EXCEEDED') {
await sleep(Math.pow(2, i) * 1000);
continue;
}
throw error;
}
}
}3. Gebruik bulk voor meerdere e-mails
Gebruik voor het verifiëren van meer dan 10 e-mails het bulk-eindpunt:
// Goed - enkele API-aanroep
const job = await client.verifyBulk(emails);
// Fout - veel individuele aanroepen
for (const email of emails) {
await client.verify(email);
}4. Implementeer webhooks voor bulktaken
Poll niet constant; gebruik webhooks:
// Verzenden met webhook
const job = await client.verifyBulk(emails, {
webhookUrl: 'https://your-app.com/webhook',
});SDK's
Gebruik onze officiele SDK's voor eenvoudigere integratie: