API: Single Verify
Verify a single email address and receive a detailed result object.
| Method | POST |
| Endpoint | /api/v1/verify |
| Credits used | 1 |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
| string | Yes | The email address to verify |
Response fields
| Field | Type | Description |
|---|---|---|
| data.status | string | safe | risky | invalid | unknown |
| data.syntax.isValid | boolean | RFC-compliant format check |
| data.syntax.domain | string | Domain extracted from the address |
| data.mx.acceptsMail | boolean | Domain has a working MX record |
| data.mx.records | string[] | MX hostnames sorted by priority |
| data.smtp.isDeliverable | boolean | null | Raw SMTP RCPT TO result; null if SMTP was skipped. Acceptance is not proof of existence — see data.smtp.mailboxConfirmed |
| data.smtp.mailboxConfirmed | boolean | True only when the SMTP acceptance actually corroborates that this mailbox exists (server is not a deferred-verification gateway or catch-all, and the probe was conclusive) |
| data.smtp.firewallDetected | boolean | True if port 25 was blocked |
| data.misc.isDisposable | boolean | Known disposable domain |
| data.misc.isRoleAccount | boolean | Role-based address |
| data.misc.isFreeEmail | boolean | Free consumer provider |
| data.misc.hasCatchAll | boolean | Server accepts all addresses on domain |
| data.misc.domainTypo | string | null | Suggested domain correction, or null |
| data.misc.isHoneypot | boolean | Spamtrap pattern detected |
| data.verification_time_ms | number | Total time to complete verification |
| data.cached | boolean | True if result was served from cache |
| credits_used | number | Credits consumed by this request |
| credits_remaining | number | Your balance after this request |
Code examples
curl -X POST https://pingovo.com/api/v1/verify \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]"}'