Single verification
POST or GET /verify: request shapes and every response field.
Two equivalent endpoints verify one address:
# POST with JSON body
curl -X POST "https://api.kavik.email/api/v1/verify" \
-H "X-API-Key: eva_your_key" \
-H "Content-Type: application/json" \
-d '{"email": "jane@acmecorp.com"}'
# GET with query parameter
curl "https://api.kavik.email/api/v1/verify?email=jane@acmecorp.com" \
-H "X-API-Key: eva_your_key"
Repeat lookups for the same address may be served from a short-lived cache for speed; each call counts toward your usage once per call.
Response fields
| Field | Type | Meaning |
|---|---|---|
email |
string | The address as submitted |
score |
integer 0-100 | Composite deliverability score |
risk |
enum | safe (70-100), risky (40-69), invalid (0-39), unknown (no definitive answer; never billed) |
syntax_valid |
boolean | RFC-correct address syntax |
mx_found |
boolean | The domain publishes MX records. false with smtp_check: undeliverable means no mail server answers anywhere RFC 5321 falls back to |
smtp_check |
enum | deliverable, undeliverable, risky, unknown |
is_disposable |
boolean | Known disposable provider |
is_role_account |
boolean | Role address (info@, sales@, …) |
is_catch_all |
boolean | Domain accepts every local part |
is_free_provider |
boolean | Free mailbox provider (Gmail, Outlook, …) |
spam_trap_risk |
enum | low, medium, high |
suggested_correction |
string or null | Did-you-mean suggestion when a domain typo is detected. Suggestion only: we never verify the corrected address on your behalf |
mx_records |
array | The domain’s MX hosts |
is_security_gateway |
boolean | Mail routes through Mimecast, Proofpoint, etc. |
security_gateway |
string | Gateway name or empty |
has_gravatar |
boolean | A Gravatar profile exists for the address |
gravatar_url |
string | Present when has_gravatar is true |
catch_all_confidence |
integer 0-100 | 0 = definitively not catch-all, 100 = definitively catch-all |
Batch verification
For up to 100 addresses in one call, use POST /api/v1/verify/batch with {"emails": ["a@x.com", "b@y.com"]}. Duplicates are removed before anything is charged.