Deliverable
Accept the address
The mailbox check completed and the address can continue through your normal signup, checkout, or lead flow.
State: "Deliverable"
Check mailbox deliverability in real time, detect risky email patterns, retry greylisted results safely, and get more useful answers for supported catch-all business domains.
10 free verification credits with every new account. One request uses one credit.
curl "https://api.ValidEmail.net/?email=user@example.com&token=YOUR_API_KEY"
State: DeliverableRetryAfterSecondsScore 0A safer integration contract
A temporary response is not the same as an invalid mailbox. Route by State, then use RetryAfterSeconds whenever the answer is still being resolved.
Deliverable
The mailbox check completed and the address can continue through your normal signup, checkout, or lead flow.
State: "Deliverable"
Unknown
The mail server gave a temporary answer. Keep the user moving with a softer path, then retry after the returned interval.
Reason: "PENDING" or "GREYLISTED"
Not Deliverable
The domain or mailbox produced a permanent negative result. Ask for a correction or keep it out of sending workflows.
State: "Not Deliverable"
IsValid: false response.An Unknown result is intentionally non-final. Checking the state prevents temporary SMTP behavior from becoming a false rejection in your product.
if (result.State === "Deliverable") allow();
else if (result.State === "Unknown" && result.RetryAfterSeconds) retryLater();
else blockOrReview();
One request, one response
Developers search for different names but need the same answer at signup or import time. Here is where each question is answered in the JSON response.
The address is checked against its domain and mail server without sending a message. Temporary replies come back as Unknown with a retry hint instead of a guess.
StateReasonRetryAfterSecondsDisposable inboxes, role addresses such as info@ and free webmail providers are flagged on every response, so your form can decide how to treat them.
DisposableRoleFreeAcceptAllA 0–100 score and a single validity flag turn the checks into a decision you can apply in one line of code.
ScoreIsValidChecking a whole list instead of one address at a time? Upload it for bulk email verification
Why the answer is more useful
ValidEmail combines familiar deliverability signals with provider-aware checks and a real temporary-result lifecycle.
Transport failures and inconclusive SMTP responses stay Unknown. They are not cached as permanent negatives.
Delayed re-verification reuses a stable SMTP identity, while the API tells your integration when to query again.
Supported Google Workspace and Microsoft 365 domains can receive a mailbox-level existence check beyond the domain's accept-all behavior.
Catch-all business email
Catch-all SMTP behavior can hide whether a specific mailbox exists. For supported Google Workspace and Microsoft 365 domains, ValidEmail asks for a mailbox-level answer and uses it only when it is definitive.
Quick start
The public endpoint is versionless. Send an HTTPS request from any language, then branch on the response state.
const params = new URLSearchParams({
email: "user@example.com",
token: process.env.VALIDEMAIL_API_KEY
});
const response = await fetch(`https://api.ValidEmail.net/?${params}`);
if (response.status === 429) throw new Error("Rate limited");
const result = await response.json();
if (result.State === "Deliverable") return allow();
if (result.State === "Unknown" && result.RetryAfterSeconds) {
return retryAfter(result.RetryAfterSeconds);
}
return blockOrReview(result.Reason);
Your data
Before you send your users’ email addresses to any API, you should know where they go. The short version: an address is used to verify that address, and nothing else.
Each address is processed to produce its result. Addresses are not sold, rented or shared for marketing.
Verification checks the domain and the mail server without delivering a message, so your users are never contacted.
The API does not keep your checked addresses as a list in your account. An address is held only temporarily: minutes for a cached result, up to a week for a greylisted check that is being retried. Request logs are kept for operations and security.
Call the HTTPS endpoint from your backend so the API key stays out of browsers and client code. Each key is tied to your account and its credits.
Card details are entered with PayPal, never on this site. Purchased credits do not expire.
Write to info@validemail.net or use the contact form. A person answers, not a bot.
Straightforward pricing
New accounts include free verification credits. Purchased credits do not expire and work across API and bulk verification.
Developer FAQ
Both. An email validation API, an email verification API and an email checker API answer the same question: can this address receive mail, and should you accept it? One request returns the deliverability verdict (State, Reason), a 0–100 Score, and Disposable, Role, Free and AcceptAll flags.
Use https://api.ValidEmail.net/ with email and token query parameters. The root endpoint runs the current verification system.
GREYLISTED means the mail server explicitly delayed the mailbox check. PENDING covers other temporary or still-running outcomes. Both remain Unknown and may include a retry hint.
Not as a permanent invalid address. Use a softer product path and retry after RetryAfterSeconds when it is present.
ValidEmail detects accept-all behavior first. Supported Google Workspace and Microsoft 365 domains may then receive a mailbox-level check. If that check is inconclusive, the API keeps a conservative catch-all result.
IsValid, Score, Email, State, Reason, Domain, Free, Role, Disposable, AcceptAll, Tag, MXRecord, RetryAfterSeconds, and EmailAdditionalInfo.
No. ValidEmail checks deliverability signals without sending a message to the address.
Every new account gets 10 free verification credits to test your integration. One request uses one credit; purchased credits do not expire and work for both the API and bulk verification.
One request uses one credit. Each API key has a per-second request limit; a request over it returns HTTP 429 with the limit in the error message, so wait a moment and retry. If your workload needs a higher limit, contact support.
Addresses sent to the API are used only to verify them. They are not sold, rented or shared for marketing, and no email is sent to them. The API does not build a list of your checks in your account; an address is held only temporarily (minutes for a cached result, up to a week for a greylisted check that is being retried), and request logs are kept for operations and security as described in the privacy policy.
Use the API guide, response guide, or contact support.
Start with free verification credits
Get your API key, make one request, and handle deliverable, temporary, and not-deliverable results correctly from the start.
Get Your API Key