API voor e-mailverificatie.
Gebruik een controle per adres voor formulieren, of asynchrone taken voor klantlijsten. Behoud je huidige e-mailprovider.
Je eerste aanvraag.
Gebruik het gratis demo-endpoint zonder sleutel. Het heeft een aanvraaglimiet en is bedoeld om de dienst uit te proberen.
curl -X POST https://api.zbounce.net/v1/demo \
-H 'Content-Type: application/json' \
-d '{"email":"hello@example.com"}'
Voor betaalde controles koop je een pakket en gebruik je /v1/fast-verify met je sleutel in X-API-Key. Houd sleutels buiten URL's, versiebeheer en analysetools.
curl -X POST https://api.zbounce.net/v1/fast-verify \
-H 'Content-Type: application/json' \
-H "X-API-Key: $ZBOUNCE_API_KEY" \
-d '{"email":"hello@example.com"}'
Python-voorbeeld
import os, requests
response = requests.post(
"https://api.zbounce.net/v1/fast-verify",
headers={"X-API-Key": os.environ["ZBOUNCE_API_KEY"]},
json={"email": "hello@example.com"},
timeout=35,
)
response.raise_for_status()
print(response.json())
Node.js-voorbeeld
const response = await fetch("https://api.zbounce.net/v1/fast-verify", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": process.env.ZBOUNCE_API_KEY,
},
body: JSON.stringify({ email: "hello@example.com" }),
signal: AbortSignal.timeout(35000),
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
console.log(await response.json());
Verifieer een grotere lijst.
POST /v1/tasksDien tot 10.000 adressen per taak in. Bewaar de geretourneerde taak-ID en controleer accepted, skipped en invalids: niet elke invoer komt per se in de wachtrij. Duplicaten, onjuist opgemaakte en geblokkeerde adressen kunnen worden verwijderd, en bij een laag saldo kan de lijst gedeeltelijk worden geaccepteerd.
curl -X POST https://api.zbounce.net/v1/tasks \
-H 'Content-Type: application/json' \
-H "X-API-Key: $ZBOUNCE_API_KEY" \
-d '{"emails":["hello@example.com","contact@example.org"]}'
Vraag de status op en haal daarna elke resultaatpagina op. Een antwoord met alleen ongeldige invoer kan een lege taak-ID hebben; vraag die niet op.
curl "https://api.zbounce.net/v1/tasks/$TASK_ID" \
-H "X-API-Key: $ZBOUNCE_API_KEY"
curl "https://api.zbounce.net/v1/tasks-results/$TASK_ID?page=1&per_page=100" \
-H "X-API-Key: $ZBOUNCE_API_KEY"
Resultaten van voltooide taken zijn JSON. Blijf pagina's ophalen totdat de volledige geaccepteerde lijst is opgehaald. Voor automatische afronding geef je een webhook mee met mode: "completed" bij het aanmaken van de taak.
{
"emails": ["hello@example.com"],
"webhook": {
"url": "https://your-app.example/hooks/verification",
"mode": "completed",
"secret": "YOUR_PRIVATE_WEBHOOK_SECRET"
}
}
Raadpleeg het schema voor de webhookconfiguratie en de verificatie van handtekeningen voordat je dit in productie inschakelt.
Opmaak is geen bestaan.
Dit zijn aparte signalen. Een correct opgemaakt adres kan toch niet bestaan, tijdelijk zijn of onmogelijk te bevestigen.
| Veld | Betekenis |
|---|---|
valid
|
Het adres heeft de syntaxcontrole doorstaan. Dat alleen bevestigt de mailbox niet. |
exists
|
Het resultaat van de mailboxtest. Interpreteer het samen met fouten en catch-all-signalen. |
disposable
|
Het domein is herkend als aanbieder van tijdelijke e-mailadressen. |
accept_all
|
De server accepteert willekeurige adressen; de specifieke mailbox is niet betrouwbaar te bevestigen. |
error_category
|
Verklaart een fout of risico, zoals no_mx, risky of een tijdelijk serverprobleem. |
permanent_error
|
Tijdens de controle is een permanente fout geretourneerd. Een tijdelijke fout moet je niet als permanente weigering behandelen. |
ttl
|
Een tijdsindicatie in seconden voor opnieuw proberen of caching, indien geretourneerd. |
Verificatie kan geen aflevering garanderen, klachten niet uitsluiten en niet bewijzen wie eigenaar van een mailbox is.
Ken je saldo.
GET /v1/me
curl https://api.zbounce.net/v1/me \
-H "X-API-Key: $ZBOUNCE_API_KEY"
Het antwoord bevat resterende, gereserveerde en gebruikte credits, het sleuteltype en de vervaldatum. Een standaardverificatie kost één credit; de feitelijke filtering en afrekening hangen af van de route en de acceptatie van de taak. Controleer het antwoord voordat je een volledig geüploade lijst als verwerkt beschouwt.
Een 429-antwoord betekent dat aanvragen worden beperkt. Wacht even voordat je het opnieuw probeert. Andere fouten kunnen in de huidige API als JSON of tekst worden geretourneerd; interpreteer HTTP-fouten niet als verificatieresultaten.
Het verificatiecontract.
Het openbare contract omvat demo, snelle verificatie, taken, taakstatus, resultaten en accountsaldo. Endpoints voor verzending en beheer vallen buiten deze verificatiereferentie.
Hulp nodig bij het koppelen van je platform? support@zbounce.net