Email Validation API — Real-Time Verification for Developers
Stop invalid emails from entering your system at the source. KillBounce's Email Validation API verifies any address in real-time — at signup, checkout, or form submission — before a single bad address ever touches your database.
Block disposable and invalid emails at registration. Reduce fake accounts and improve user quality from day one.
02
Lead capture forms
Validate emails on landing pages before leads enter your CRM. Keep your Salesforce or HubSpot database clean automatically.
03
E-commerce checkout
Verify customer email at checkout to ensure order confirmations, shipping updates, and receipts actually reach them.
04
Newsletter subscribe
Prevent bad emails from inflating your subscriber count and damaging your ESP sender score.
05·RATE LIMITS
Rate limits & quotas
API rate limits are designed to be generous for production traffic and tight enough to prevent runaway loops or abuse. Authenticated requests scale with your account's credit balance:
Endpoint
Authenticated limit
Anonymous limit
POST /verify/single
30 / minute / user
N/A (auth required)
POST /verify/public
N/A
3 / day / IP, 10 / week
POST /verify/bulk
10 / hour / user
N/A
GET /jobs/{id}
60 / minute / user
N/A
Exceeded limits return HTTP 429 with a standard Retry-After header. The header tells you how many seconds to wait before retrying — use it for exponential backoff rather than blind retries.
06·ERROR HANDLING
Error handling
Every error response follows the same shape so your error handler stays simple. Status codes map to real failure modes — none of this 'everything is 200 with status:error inside the body' nonsense:
Status
Meaning
Recommended action
200
Verification successful
Use the verdict in result.status
400
Malformed request (invalid email syntax in body)
Show inline form error
401
Missing or invalid API key
Check Bearer token / regenerate key
402
Out of credits
Prompt user to top up
429
Rate limit exceeded
Respect Retry-After header
500
Verifier infrastructure error
Retry once with backoff
503
Upstream SMTP timeout
Treat as "unknown" verdict
{
"error": {
"code": 402,
"message": "Insufficient credits. You have 0 credits remaining.",
"type": "PaymentRequiredException",
"path": "/api/v1/verify/single"
}
}
07·WEBHOOK CALLBACKS
Webhook callbacks for bulk jobs
Bulk verification jobs run asynchronously — they can take minutes to hours depending on list size. Instead of polling, register a webhook URL and KillBounce will POST to it the moment a job completes:
// You POST this to /verify/bulk
{
"file_url": "https://your-cdn.com/list.csv",
"webhook_url": "https://yourapp.com/webhooks/killbounce"
}
// We POST this to your webhook when it's done
{
"event": "job.completed",
"job_id": "job_a1b2c3d4",
"status": "completed",
"total_emails": 50000,
"valid": 42150,
"invalid": 5230,
"catch_all": 1620,
"disposable": 480,
"unknown": 520,
"download_url": "https://api.getkillbounce.com/jobs/job_a1b2c3d4/download"
}
Webhook payloads are signed with HMAC-SHA256 (Svix-compatible) — verify the signature before trusting the data. The download URL is signed and expires in 24 hours.
08·AUTHENTICATION &
Authentication & security
Bearer token authentication via Authorization header
X-API-Key header accepted as an alternative
Keys generated, rotated, and revoked from the dashboard
All traffic encrypted over HTTPS / TLS 1.2+
SOC 2-compliant infrastructure (Tier IV datacenter)
Email payloads never logged or retained beyond response time
Webhooks signed with HMAC-SHA256 for verification
API keys are prefixed with "kb_" so they're easy to spot in code reviews and incident logs. If a key leaks, rotate it from the dashboard and the old one is revoked instantly.
Frequently asked
Answers to the questions teams ask first
Does the API work in real-time on forms?
Yes. Average response time is under 2 seconds — fast enough to validate on blur or submit without noticeable UX delay.
What happens if the API is down?
We maintain 99.9% uptime. If a request times out, your application can fail-open (allow the email) or fail-closed (block until verified). We recommend fail-open with async re-verification for production forms.
Is there an SDK?
Plain HTTP works in every language. Official Node.js and Python wrappers are in development. The endpoint is fully RESTful so any HTTP client integrates in a few lines.
Can I test in sandbox mode?
Use any throwaway address with the @example.com domain to trigger predictable verdicts during development. No credits are charged for invalid syntax checks.
No card. No trial timer.
Verify your first 100 emails free.
Sign up in under 30 seconds. Paste your first list, hit verify, see the real SMTP-level result in seconds.