For developers
Email verification you call from your own code
Send an address to one REST endpoint and get back a status, a sub-status that explains it, a 0–100 quality score and flags. Verify at sign-up, or submit a batch and get a webhook when it finishes.
At a glance
- Endpoint
- POST /v1/verify
- Addresses per batch
- 100 on Free, up to 10,000 on Enterprise
- Rate limit
- 10 requests a minute on Free, up to 5,000 on Enterprise
- Packages
- kawaa on npm and PyPI
Where Kawaa fits
The problem, and what Kawaa does about it
The problem
Verification is more than a regex
A real check needs DNS and MX lookups, a conversation with the receiving mail server and knowledge of how the big providers behave.
What Kawaa does
One call runs every layer
Syntax, domain, MX, mailbox and risk checks run behind a single request, each where it applies, and the sub-status tells you what decided the result.
The problem
Mail servers do not always answer
Greylisting, temporary failures and catch-all domains turn a simple yes or no into a maybe.
What Kawaa does
Uncertainty is a field your code can read
Results that cannot be confirmed come back as risky, catch_all or unknown with a sub_status such as greylisted or temporary_failure, so you can branch on them.
The problem
Big lists do not fit in a request
Checking thousands of addresses inline would time out your own request long before the last one finishes.
What Kawaa does
Batches run in the background
Submit a batch or a file, then poll the job or subscribe a webhook endpoint to job.completed, and download the results as CSV or JSON, filtered by status if you want.
The problem
Integrations stall on missing detail
Undocumented errors and unclear limits turn an afternoon of work into a week.
What Kawaa does
Packages and a public reference
Install kawaa from npm or PyPI, or call the REST API from any language. Error codes are documented, and rate-limited responses carry X-RateLimit headers and Retry-After.
What you get
Included for this workflow
- Single, batch and file verification endpoints
- Webhook endpoints signed with HMAC-SHA256
- Job results as CSV or JSON, filterable by status
- Documented error codes and rate-limit headers
- Node.js and Python packages
- Source clients for PHP, Go, Ruby, Java, C# and Rust
- API reference and playground at kawaa.com/docs
- Live service health at status.kawaa.com
Get an API key and make your first call
100 free verifications with every check. No credit card required.