EmailVerify LogoEmailVerify

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/v1

Authenticatie

Alle API-verzoeken vereisen authenticatie met behulp van een Bearer-token in de Authorization-header:

Authorization: Bearer YOUR_API_KEY

Verkrijg 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

AbonnementVerzoeken/uurVerzoeken/dag
Gratis1001.000
Starter1.00010.000
Professional10.000100.000
EnterpriseAangepastAangepast

Informatie over snelheidslimieten is opgenomen in de antwoordheaders:

HeaderBeschrijving
X-RateLimit-LimitMaximum toegestane verzoeken
X-RateLimit-RemainingResterende verzoeken in venster
X-RateLimit-ResetUnix-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 /verify

Verzoek

{
  "email": "user@example.com",
  "smtp_check": true,
  "timeout": 5000
}

Parameters

ParameterTypeVerplichtStandaardBeschrijving
emailstringJa-Te verifiëren e-mailadres
smtp_checkbooleanNeetrueSMTP-mailboxverificatie uitvoeren
timeoutintegerNee5000Verzoek-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

VeldTypeBeschrijving
emailstringHet geverifieerde e-mailadres
statusstringVerificatiestatus: valid, invalid, unknown, accept_all
resultobjectGedetailleerde verificatieresultaten
scorenumberBetrouwbaarheidsscore (0.0 - 1.0)
reasonstringReden voor invalid/unknown status (nullable)
credits_usedintegerAantal verbruikte credits

Resultaatobjectvelden

VeldTypeBeschrijving
deliverablebooleanOf e-mail berichten kan ontvangen
valid_formatbooleanOf e-mail geldige syntaxis heeft
valid_domainbooleanOf domein bestaat
valid_mxbooleanOf domein MX-records heeft
disposablebooleanOf e-mail van wegwerpdienst is
rolebooleanOf e-mail rol-gebaseerd is (info@, support@)
catchallbooleanOf domein alle e-mails accepteert
freebooleanOf e-mail van gratis provider is
smtp_validbooleanOf SMTP-verificatie geslaagd is

Bulk e-mailverificatie

Verzend meerdere e-mailadressen voor verificatie. Retourneert een taak-ID voor voortgangscontrole.

POST /verify/bulk

Verzoek

{
  "emails": [
    "user1@example.com",
    "user2@example.com",
    "user3@example.com"
  ],
  "smtp_check": true,
  "webhook_url": "https://your-app.com/webhooks/emailverify"
}

Parameters

ParameterTypeVerplichtStandaardBeschrijving
emailsarrayJa-Array van e-mailadressen (max: 10.000)
smtp_checkbooleanNeetrueSMTP-verificatie uitvoeren
webhook_urlstringNee-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

StatusBeschrijving
pendingTaak staat in wachtrij
processingTaak wordt verwerkt
completedTaak succesvol voltooid
failedTaak mislukt (zie error-veld)

Bulktaakresultaten ophalen

Haal verificatieresultaten op voor een voltooide bulktaak.

GET /verify/bulk/{job_id}/results

Queryparameters

ParameterTypeStandaardBeschrijving
limitinteger100Resultaten per pagina (max: 1000)
offsetinteger0Startpositie
statusstring-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 /credits

Antwoord

{
  "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 /webhooks

Webhook verwijderen

DELETE /webhooks/{webhook_id}

Webhook-events

EventBeschrijving
verification.completedEnkelvoudige e-mailverificatie voltooid
bulk.completedBulktaak voltooid
bulk.failedBulktaak mislukt
credits.lowCredits 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

StatusBetekenisAanbevolen actie
validE-mail bestaat en kan berichten ontvangenVeilig om te verzenden
invalidE-mail bestaat niet of kan niet ontvangenVerwijderen van lijst
unknownKon geldigheid niet bepalenLater opnieuw proberen of voorzichtig zijn
accept_allDomein 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

CodeBeschrijving
200Succes
400Bad Request - Ongeldige parameters
401Unauthorized - Ongeldige of ontbrekende API-sleutel
403Forbidden - Onvoldoende rechten
404Not Found - Resource bestaat niet
429Too Many Requests - Snelheidslimiet overschreden
500Internal Server Error
503Service Unavailable

Foutcodes

CodeHTTP-statusBeschrijving
INVALID_API_KEY401API-sleutel is ongeldig of ontbreekt
RATE_LIMIT_EXCEEDED429Te veel verzoeken
INSUFFICIENT_CREDITS403Niet genoeg credits
INVALID_EMAIL400E-mailformaat is ongeldig
INVALID_REQUEST400Verzoekbody is onjuist geformatteerd
JOB_NOT_FOUND404Bulktaak-ID niet gevonden
TIMEOUT504Verificatie 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:

Volgende stappen

On this page