# Email Verifier `POST https://api.getprospect.com/v2/email/verify` Check whether an email address is deliverable. Costs 1 email verification credit per valid or invalid verdict, once per address per workspace; 1 enrich rate-limit unit. Pass the email inside `data`; the response reports its verification status along with domain health and whether the mailbox is free or disposable. Accept_all and unknown verdicts and syntactically invalid emails are free. Verification runs live and can take up to 75 seconds: set the client timeout to at least 80 seconds. A 408 is never charged; ask again after `Retry-After` seconds. Authenticate with your API key in the x-api-key header. > **How are credits spent?** > > 1 email verification credit per check. Syntactically invalid emails are > rejected immediately without spending a credit. ## Mailbox status vs domain status `status` is the verdict for the exact mailbox you asked about; `domain_status` describes the domain in general (`accept_all` when the domain accepts mail to any address, plus `disposable`, `invalid`, and `unknown`), independent of what happened to that specific mailbox. A `status: "valid"` result with `domain_status: "accept_all"` means this exact mailbox was positively confirmed deliverable even though its domain generally accepts everything - it remains valid, and should not be read as a mailbox-level accept-all result. Unlike [Email Finder](https://getprospect.com/api-docs/email-finder.md), Email Verifier does not filter or rewrite the mailbox verdict: `status` can itself come back as `"accept_all"` when the probe of that specific mailbox was inconclusive (the server accepted it only because it accepts everything) - that is a different situation from a `valid` mailbox on an accept-all domain, described above. ## Authentication Pass your API key in the `x-api-key` header. ## Body parameters - `data` (object, required): Lookup identifiers. - `email` (string, required): The email address you want to verify. ## Example request ```bash curl --request POST \ --url https://api.getprospect.com/v2/email/verify \ --header 'Content-Type: application/json' \ --header 'x-api-key: YOUR_API_KEY' \ --data ' { "data": { "email": "emily.carter.sample@intercom.com" } } ' ``` ## Response 200 The verdict. When the verifier failed, `success` is false, `data.status` is `unknown` (not charged) and `errors[0].name` is `VERIFICATION_ERROR`: retry later. ```json { "success": true, "data": { "email": "emily.carter.sample@intercom.com", "status": "valid", "account": "emily.carter.sample", "domain": "intercom.com", "domain_status": "valid", "smtp_provider": "google", "free_email": false }, "metadata": { "timestamp": "2026-07-25T14:08:20.000Z", "credits": { "email_search": 482, "email_verification": 499, "reset_at": "2026-08-01T00:00:00.000Z" } } } ``` ## Response 400 Invalid request (`VALIDATION_ERROR`). A malformed `data.email` carries `payload.code` (`wrong_type`); an empty one answers without a code. A syntactically invalid address is not an error: it is a free `invalid` verdict. ```json { "success": false, "data": null, "metadata": { "timestamp": "2026-10-08T14:07:55.000Z" }, "errors": [ { "name": "VALIDATION_ERROR", "message": "email must be a string", "payload": { "field": "data.email", "code": "wrong_type", "received_type": "undefined", "constraints": { "isString": "email must be a string" } } } ] } ``` ## Response 401 Missing, unknown or inactive credentials (`UNAUTHORIZED`). ## Response 402 Not enough credits (`PAYMENT_REQUIRED`). ```json { "success": false, "data": null, "metadata": { "timestamp": "2026-10-08T14:07:55.000Z" }, "errors": [ { "name": "PAYMENT_REQUIRED", "message": "Workspace has reached its credit limit" } ] } ``` ## Response 408 The verifier did not answer in time (`TIMEOUT`). Not charged; ask again after `Retry-After` seconds. ```json { "success": false, "data": null, "metadata": { "timestamp": "2026-10-08T14:07:55.000Z", "credits": { "email_search": 482, "email_verification": 499, "reset_at": "2026-11-01T00:00:00.000Z" } }, "errors": [ { "name": "TIMEOUT", "message": "Email verification is taking longer than expected. Please retry your request in a few minutes." } ] } ``` ## Response 429 Over the `enrich` rate limit (`RATE_LIMIT`); wait `Retry-After` seconds. Sent only where rate limits are enforced. ## Response 500 Unexpected server error.