The latest version of our client area includes several new features designed to enhance our email verification service and simplify its use: this blog post highlights the key updates.
Getting validation results
Not a developer?
Getting validation results
/email-validations/{id}
id
is the unique ID generated by
Verifalia upon receiving the email validation request.202
(Accepted) status code and
the client should reissue the request at a later time to retrieve an updated job snapshot: advanced API consumers may take advantage of the
estimated remaining time indication, if available, to limit the number of pollings.waitTime
query string
parameter, which defines the number of milliseconds to wait for a given email verification job completion.
The parameter accepts a value between 0
(the default value), meaning the API
will never wait for the job completion,
and 30000
, meaning the API
will wait for up to 30 seconds for the job completion. Under certain circumstances,
the API may choose to ignore this parameter and consider a lower waiting time (or no waiting time at all) instead.
/email-validations/{id}/overview
id
is the unique ID generated by
Verifalia upon receiving the email validation request.
Retrieve an email validation job
Language:
curl -u username:password \
--compressed \
https://api.verifalia.com/v2.6/email-validations/54375b5b-a399-4bc4-abd8-b8c02e109e53
var verifalia = new VerifaliaRestClient("username", "password");
// By default, GetAsync() automatically waits for job completion
var job = await verifalia
.EmailValidations
.GetAsync(Guid.Parse("54375b5b-a399-4bc4-abd8-b8c02e109e53"));
VerifaliaRestClient verifalia =
new VerifaliaRestClient("username", "password");
Validation job = verifalia
.getEmailValidations()
.get("54375b5b-a399-4bc4-abd8-b8c02e109e53");
const verifalia = new VerifaliaRestClient({
username: 'username',
password: 'password'
});
const job = await verifalia
.emailValidations
.get('54375b5b-a399-4bc4-abd8-b8c02e109e53');
use Verifalia\VerifaliaRestClient;
use Verifalia\VerifaliaRestClientOptions;
$verifalia = new VerifaliaRestClient([
VerifaliaRestClientOptions::USERNAME => 'your-username-here',
VerifaliaRestClientOptions::PASSWORD => 'your-password-here'
]);
$job = $verifalia->emailValidations->get('ec415ecd-0d0b-49c4-a5f0-f35c182e40ea');
package main
import (
"fmt"
"github.com/verifalia/verifalia-go-sdk/verifalia"
"github.com/verifalia/verifalia-go-sdk/verifalia/emailValidation"
)
func main() {
client := verifalia.NewClient("<USERNAME>", "<PASSWORD>") // See above
// Retrieve an email validation job, given its Id
validation, err := client.EmailValidation.Get("9ece66cf-916c-4313-9c40-b8a73f0ef872")
if err != nil {
panic(err)
}
if validation.Overview.Status == emailValidation.Status.Completed {
// validation.Entries will have the validation results!
} else {
// What about having a coffee?
}
}
verifalia = Verifalia::Client.new username: 'username', password: 'password'
job_id = 'ec415ecd-0d0b-49c4-a5f0-f35c182e40ea'
job = verifalia.email_validations.get job_id
Job snapshots
Property | Description |
---|---|
overview |
A structure with general details about the job. See structure details. |
entries? |
A structure with the validated email addresses and their results, when available. See structure details. |
Job overviews
/email-validations/{id}/overview
id
is the unique ID generated by
Verifalia upon receiving the email validation request.waitTime
query string
parameter, which defines the number of milliseconds to wait for a given email verification job completion.
The parameter accepts a value between 0
(the default value), meaning the API
will never wait for the job completion,
and 30000
, meaning the API
will wait for up to 30 seconds for the job completion. Under certain circumstances,
the API may choose to ignore this parameter and consider a lower waiting time (or no waiting time at all) instead.
Retrieve a job overview
Language:
curl -u username:password \
--compressed \
https://api.verifalia.com/v2.6/email-validations/54375b5b-a399-4bc4-abd8-b8c02e109e53/overview
var verifalia = new VerifaliaRestClient("username", "password");
// By default, GetOverviewAsync() automatically waits for job completion
var jobOverview = await verifalia
.EmailValidations
.GetOverviewAsync(Guid.Parse("54375b5b-a399-4bc4-abd8-b8c02e109e53"));
VerifaliaRestClient verifalia =
new VerifaliaRestClient("username", "password");
ValidationOverview jobOverview = verifalia
.getEmailValidations()
.getOverview("54375b5b-a399-4bc4-abd8-b8c02e109e53");
// The Javascript SDK does not support this feature yet.
// The PHP SDK does not support this feature yet.
// The Go SDK does not support this feature yet.
# The Ruby SDK does not support this feature yet.
Property | Description |
---|---|
id |
A string representing the unique identifier
for the job which Verifalia generates upon receiving an email validation
request. |
status |
A string with the status of the whole job.
Can be one of the following values:
|
name? |
A string with the user-defined name
eventually given to this job at the time of its submission: used for your own
internal reference. |
owner |
A string representing the unique identifier
of the user which created the job. |
clientIP |
A string with the IP address of the API
consumer which created the job. |
quality |
A string with the name of the results quality
level requested for the job; can be one of Standard , High and Extreme (or other values for custom quality
levels). |
deduplication |
A string with the name of the deduplication
algorithm requested for the job; can be one of Off , Safe
and Relaxed v2.1+. |
noOfEntries |
The number of email addresses included in
this job. |
createdOn |
A string representing the timestamp of the
creation of the job, in the ISO
8601 format. |
submittedOn? |
A string representing the timestamp of the
eventual submission of the job, in the ISO 8601 format. |
completedOn? |
A string representing the timestamp of the
eventual completion of the job, in the ISO 8601 format. |
priority? |
A number representing the priority (speed) of a validation job relative to the parent Verifalia account.
If there are multiple concurrent validation jobs in an account, this value allows you to adjust the processing speed of a specific job in comparison
to others. The valid range for this priority spans from 0 (lowest) to 255 (highest),
with 127 representing normal priority. If not specified, Verifalia processes all concurrent validation jobs for an
account at the same speed.
|
retention v2.1+ |
A string with the data retention period to
observe for the validation job, expressed in the format dd.hh:mm:ss (where dd : days, hh : hours, mm : minutes, ss : seconds); the initial dd. part is added only for periods of more than
24 hours. Verifalia deletes the job and its data once its retention period is
over, starting to count when the job gets completed. |
progress?.percentage |
The overall progress percentage for the job, when available, expressed as a
number between 0 and 1 .
|
progress?.estimatedTimeRemaining? |
A string representing the estimated remaining
time for completing the email validation job, expressed in the format dd.hh:mm:ss (where dd : days, hh : hours, mm : minutes, ss : seconds); the initial dd. part is added only for huge lists requiring
more than 24 hours to complete. |
Job overview structure example
{
"id": "18f5a933-af67-421c-b63a-1cbee297fa19",
"status": "Completed",
"owner": "c86d09f2-c0d4-4582-bc3e-bc97fdbb6579",
"clientIP": "2.21.41.70",
"quality": "Standard",
"deduplication": "Off",
"noOfEntries": 1,
"createdOn": "2023-01-21T08:52:21.53Z",
"submittedOn": "2023-01-21T08:52:21.53Z",
"completedOn": "2023-01-21T08:52:21.757Z",
"retention": "00:05:00"
}
Job entries
/email-validations/{id}/entries
id
is the unique ID generated by
Verifalia upon receiving the email validation request.waitTime
query string
parameter, which defines the number of milliseconds to wait for a given email verification job completion.
The parameter accepts a value between 0
(the default value), meaning the API
will never wait for the job completion,
and 30000
, meaning the API
will wait for up to 30 seconds for the job completion. Under certain circumstances,
the API may choose to ignore this parameter and consider a lower waiting time (or no waiting time at all) instead.
Retrieve job entries
Language:
# curl can retrieve a single result page at a time.
curl -u username:password \
--compressed \
https://api.verifalia.com/v2.6/email-validations/54375b5b-a399-4bc4-abd8-b8c02e109e53/entries
var verifalia = new VerifaliaRestClient("username", "password");
// Uses the C# 8.0 async enumerable feature; for previous language
// versions please check the SDK help.
var entries = verifalia
.EmailValidations
.ListEntriesAsync(Guid.Parse("54375b5b-a399-4bc4-abd8-b8c02e109e53"));
await foreach (var entry in entries)
{
// TODO: Use the validated entry
}
VerifaliaRestClient verifalia =
new VerifaliaRestClient("username", "password");
Iterable<ValidationEntry> validationEntries = verifalia
.getEmailValidations()
.listEntries("54375b5b-a399-4bc4-abd8-b8c02e109e53");
for (ValidationEntry validationEntry : validationEntries) {
// ...
}
// The Javascript SDK does not support this feature yet.
// The PHP SDK does not support this feature yet.
// The Go SDK does not support this feature yet.
# The Ruby SDK does not support this feature yet.
Filtering entries
Success
or ServerIsCatchAll
); it is also prossible to reverse the
condition and get all the entries excluding the ones with certain status code(s).Key | Description |
---|---|
status |
One or more email validation status codes representing the only values you wish
to get from the API. Multiple values are separated with the comma (, ) symbol. |
status:exclude |
One or more email validation status codes representing the values you wish to
exclude from the API result. Multiple values are separated with the comma (, ) symbol. |
Retrieve filtered job entries
Language:
# curl can retrieve a single result page at a time.
curl -u username:password \
--compressed \
"https://api.verifalia.com/v2.6/email-validations/54375b5b-a399-4bc4-abd8-b8c02e109e53/entries?status=Success,ServerIsCatchAll"
var verifalia = new VerifaliaRestClient("username", "password");
// Uses the C# 8.0 async enumerable feature; for previous language
// versions please check the SDK help.
var entries = verifalia
.EmailValidations
.ListEntriesAsync(Guid.Parse("54375b5b-a399-4bc4-abd8-b8c02e109e53"),
new ValidationEntryListingOptions
{
StatusFilter = new ValidationEntryStatusMatchPredicate
{
IncludedValues = new[]
{
ValidationEntryStatus.Success,
ValidationEntryStatus.ServerIsCatchAll
}
}
});
await foreach (var entry in entries)
{
// TODO: Use the validated entry
}
VerifaliaRestClient verifalia =
new VerifaliaRestClient("username", "password");
Iterable<ValidationEntry> validationEntries = verifalia
.getEmailValidations()
.listEntries("54375b5b-a399-4bc4-abd8-b8c02e109e53",
ValidationEntryListingOptions
.builder()
.statuses(
new SetInclusionPredicate<>(ValidationEntryStatus.Success,
ValidationEntryStatus.ServerIsCatchAll))
.build());
for (ValidationEntry validationEntry : validationEntries) {
// ...
}
// The Javascript SDK does not support this feature yet.
// The PHP SDK does not support this feature yet.
// The Go SDK does not support this feature yet.
# The Ruby SDK does not support this feature yet.
Limiting entries
Key | Description |
---|---|
limit |
An integer number specifying the desired maximum amount of validated entries to
be returned in a single results page; subsequent / previous pages can be
retrieved as described in the paginated
results, optionally in conjunction with the limit parameter to keep getting a limited
amount of results. |
Retrieve limited job entries
Language:
# curl can retrieve a single result page at a time.
curl -u username:password \
--compressed \
"https://api.verifalia.com/v2.6/email-validations/54375b5b-a399-4bc4-abd8-b8c02e109e53/entries?limit=1000"
var verifalia = new VerifaliaRestClient("username", "password");
// Uses the C# 8.0 async enumerable feature; for previous language
// versions please check the SDK help.
var entries = verifalia
.EmailValidations
.ListEntriesAsync(Guid.Parse("54375b5b-a399-4bc4-abd8-b8c02e109e53"),
new ValidationEntryListingOptions
{
// ListEntriesAsync() will automatically iterate over all the
// result pages, thus the specified Limit will only be used
// internally to the SDK and not as a way to constrain the
// overall number of returned items.
Limit = 1000
});
await foreach (var entry in entries)
{
// TODO: Use the validated entry
}
VerifaliaRestClient verifalia =
new VerifaliaRestClient("username", "password");
Iterable<ValidationEntry> validationEntries = verifalia
.getEmailValidations()
.listEntries("54375b5b-a399-4bc4-abd8-b8c02e109e53",
ValidationEntryListingOptions
.builder()
// listEntries() will automatically iterate over all the
// result pages, thus the specified limit will only be used
// internally to the SDK and not as a way to constrain the
// overall number of returned items.
.limit(1000)
.build());
for (ValidationEntry validationEntry : validationEntries) {
// ...
}
// The Javascript SDK does not support this feature yet.
// The PHP SDK does not support this feature yet.
// The Go SDK does not support this feature yet.
# The Ruby SDK does not support this feature yet.
Getting an entry from its index
/email-validations/{id}/entries/{index}
id
is the unique ID generated by Verifalia upon
receiving the email validation request and index
is the
zero-based index of the required entry in the whole email validation job.303
(see
other) status code, along with an HTTP Location
header
pointing at a job entries page which contains the required item.waitTime
query string
parameter, which defines the number of milliseconds to wait for a given email verification job completion.
The parameter accepts a value between 0
(the default value), meaning the API
will never wait for the job completion,
and 30000
, meaning the API
will wait for up to 30 seconds for the job completion. Under certain circumstances,
the API may choose to ignore this parameter and consider a lower waiting time (or no waiting time at all) instead.
Locate a job entries page by entry index
Language:
# curl automatically follows 303 redirects, so we will get the result
# entries page for the specified index, here:
curl -u username:password \
--compressed \
https://api.verifalia.com/v2.6/email-validations/54375b5b-a399-4bc4-abd8-b8c02e109e53/entries/42
// The .NET SDK does not support this feature yet.
// The Java SDK does not support this feature yet.
// The Javascript SDK does not support this feature yet.
// The PHP SDK does not support this feature yet.
// The Go SDK does not support this feature yet.
# The Ruby SDK does not support this feature yet.
Property | Description |
---|---|
index |
A number with the zero-based index of the
entry, with respect to the whole job; this value is mostly useful in the event
the API consumer requests a filtered entries set. |
inputData |
A string with the original input data
submitted for validation. |
classification |
A string representing the name of the
classification for the email validation, which groups related email validation
status codes; can be a custom string or one of the following values:
|
status |
A string representing the name of the
specific result status for the email validation. It can be any of the validation status codes described below.
|
emailAddress? |
A string with the eventually recognized email
address, without any comment or FWS (folding white space) symbol. |
emailAddressLocalPart? |
A string with the local part of the email
address. |
emailAddressDomainPart? |
A string with the domain part of the email
address. |
asciiEmailAddressDomainPart? |
A string with the domain part of the email
address converted to ASCII, using the |
hasInternationalMailboxName? |
A boolean which, if set, signals the email
address has an international, non-ASCII mailbox name. |
hasInternationalDomainName? |
A boolean which, if set, signals the email
address has an international, non-ASCII domain name. |
isDisposableEmailAddress? |
A boolean which, if set, signals the email
address is a temporary, throw-away, disposable address. |
isRoleAccount? |
A boolean which, if set, signals the local
part of the email address is possibly referring to a well-known group of people,
instead of a single person. |
isFreeEmailAddress? |
A boolean which, if set, signals the email
address is handled by a well-known Free email service provider (e.g. Gmail,
Yahoo, Outlook / Live / Hotmail, etc.). |
syntaxFailureIndex? |
A number which, if set, refers to the
zero-based position of the first syntax error in the inputData property. |
suggestions? v2.5+ |
A string[] which, if set, contains the AI-generated alternative spellings that are more likely to be the correct email. |
custom? |
A string with the eventual custom data
included with the entry at the job submission time. |
duplicateOf? |
A number with the eventual zero-based index
of the entry which appears to be duplicated by this item. Only present when the
status property equals to Duplicate . |
completedOn |
A string representing the timestamp of the
eventual completion of the entry, in the ISO 8601 format. |
Simple job entries structure example
{
"data": [
{
"index": 0,
"inputData": "batman@gmail.com",
"completedOn": "2019-07-31T10:49:20.5957669Z",
"emailAddress": "batman@gmail.com",
"asciiEmailAddressDomainPart": "gmail.com",
"emailAddressLocalPart": "batman",
"emailAddressDomainPart": "gmail.com",
"hasInternationalDomainName": false,
"hasInternationalMailboxName": false,
"isDisposableEmailAddress": false,
"isRoleAccount": false,
"isFreeEmailAddress": true,
"status": "Success",
"classification": "Deliverable"
}
]
}
Job entries structure example with multiple email addresses
{
"meta": {
"cursor": "14l/srjfPJo7fP0hFuHsXA==",
"isTruncated": true
},
"data": [
{
"index": 0,
"inputData": "batman@gmail.com",
"completedOn": "2019-07-31T10:49:20.5957669Z",
"emailAddress": "batman@gmail.com",
"asciiEmailAddressDomainPart": "gmail.com",
"emailAddressLocalPart": "batman",
"emailAddressDomainPart": "gmail.com",
"hasInternationalDomainName": false,
"hasInternationalMailboxName": false,
"isDisposableEmailAddress": false,
"isRoleAccount": false,
"isFreeEmailAddress": true,
"status": "Success",
"classification": "Deliverable"
},
{
// ...
},
{
"index": 999,
"inputData": "steve.vai@best.music",
"completedOn": "2019-07-31T10:49:23.1029945Z",
"emailAddress": "steve.vai@best.music",
"asciiEmailAddressDomainPart": "best.music",
"emailAddressLocalPart": "steve.vai",
"emailAddressDomainPart": "best.music",
"hasInternationalDomainName": false,
"hasInternationalMailboxName": false,
"isDisposableEmailAddress": false,
"isRoleAccount": false,
"isFreeEmailAddress": false,
"status": "DomainDoesNotExist",
"classification": "Undeliverable"
}
]
}
Exporting entries v2.3+
Accept
header:
Output format | Accept header value |
---|---|
Comma-Separated Values (CSV) | text/csv |
Microsoft Excel (.xlsx) | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
Microsoft Excel 97-2003 (.xls) | application/vnd.ms-excel |
Export job entries as a CSV file
Language:
curl -u username:password \
--compressed \
--header "Accept: text/csv" \
https://api.verifalia.com/v2.6/email-validations/54375b5b-a399-4bc4-abd8-b8c02e109e53/entries
var verifalia = new VerifaliaRestClient("username", "password");
var jobId = Guid.Parse("54375b5b-a399-4bc4-abd8-b8c02e109e53");
// Export the job to a stream
await using var stream = await verifalia
.EmailValidations
.ExportEntriesAsync(jobId, ExportedEntriesFormat.ExcelXlsx);
// Open the target output file stream
await using var target = File.Open(@"./export.xlsx",
FileMode.CreateNew);
// Copy the source into the target stream
stream.CopyToAsync(target);
// The Java SDK does not support this feature yet.
const verifalia = new VerifaliaRestClient({
username: 'username',
password: 'password'
});
const exportedData = await verifalia
.emailValidations
.export('dc21630a-6773-4bd0-b248-15e8b50c0d3e',
MimeContentType_TextCsv);
// In Node.js: save it to a file
exportedData.pipe(fs.createWriteStream('/home/lbanfi/my-list.csv'));
// Browser-only: show it inside an IFRAME
document
.getElementByID('myIFrame')
.src = exportedData.toBlobURL(MimeContentType_TextCsv);
// The PHP SDK does not support this feature yet.
// The Go SDK does not support this feature yet.
job_id = 'ec415ecd-0d0b-49c4-a5f0-f35c182e40ea'
format = 'text/csv'
data = verifalia.email_validations.export job_id, format
File.open('./export.csv', 'wb') do |fp|
fp.write(data)
end
Validation status codes
Status code | Description |
---|---|
AtSignNotFound |
Invalid email format: the @ symbol, used to separate the local part from the domain part of the address, has not been found. |
CatchAllValidationTimeout |
Validation failed due to a timeout while verifying the rejection of a fake email address by the mail server. Trying a higher results quality level is likely to provide a definitive response. |
DnsConnectionFailure |
Email verification failed due to a socket connection error while querying the DNS server(s) for records about the email address domain. Trying a higher results quality level is likely to provide a definitive response. |
DnsQueryTimeout |
A timeout occurred while querying the DNS servers for records about the domain. Trying a higher results quality level is likely to provide a definitive response. |
DomainDoesNotExist |
Invalid email address: the domain of the email address does not exist. |
DomainIsMisconfigured |
Invalid email address: the domain lacks valid DNS records and cannot receive messages from external hosts on the Internet. |
DomainHasNullMx v2.1+ |
Invalid email address, the domain intentionally does not have any mail servers configured to receive email messages. |
DomainIsWellKnownDea |
High-risk email type: the email address is associated with a well-known disposable email address (DEA). We strongly recommend removing DEAs from your lists. |
DomainPartCompliancyFailure |
Invalid email format: the domain part of the email address does not comply with IETF standards. |
DoubleDotSequence |
Invalid email format: an invalid sequence of two adjacent dots has been found. |
Duplicate |
The email is a duplicate of another entry that has been previously verified in this list; the duplicateOf property contains the zero-based
index of its first occurrence. |
InvalidAddressLength |
Invalid email format: the email address has an invalid total length. |
InvalidCharacterInSequence |
Invalid email format: an invalid character has been detected in the provided sequence. |
InvalidEmptyQuotedWord |
Invalid email format: an invalid quoted word with no content has been found. |
InvalidFoldingWhiteSpaceSequence |
Invalid email format: an invalid folding white space (FWS) sequence has been found. |
InvalidLocalPartLength |
Invalid email format: the local part of the email address has an invalid length. |
InvalidWordBoundaryStart |
Invalid email format: a new word boundary has been detected at an invalid position. |
IspSpecificSyntaxFailure |
Invalid email format: the email address does not comply with the specific formatting requirements of the target service provider. |
LocalEndPointRejected |
Validation failed because the external mail exchanger rejected the local endpoint. Trying a higher results quality level is likely to provide a definitive response. |
LocalSenderAddressRejected |
Validation failed because the external mail exchanger rejected the local sender address. Trying a higher results quality level is likely to provide a definitive response. |
MailboxDoesNotExist |
Invalid email address: the mailbox for the email address does not exist. |
MailboxHasInsufficientStorage |
The mailbox for the email address is either over its storage quota, or the mail exchanger has insufficient system storage. |
MailboxIsDea |
Risky email type: the email address is associated with a disposable / throw-away mailbox. We recommend removing disposable email addresses (DEAs) from your lists. |
MailboxTemporarilyUnavailable |
Validation failed because the requested mailbox is temporarily unavailable. This doesn't necessarily mean the mailbox doesn't exist; it's often a response from mail exchangers with greylisting enabled. Trying a higher results quality level is likely to provide a definitive response. |
MailboxValidationTimeout |
Validation failed due to a timeout while verifying the existence of the mailbox. Trying a higher results quality level is likely to provide a definitive response. |
MailExchangerIsHoneypot |
High-risk email type: the email address is a honeypot (also known as spamtrap). We strongly advise removing honeypots from your lists. |
MailExchangerIsParked v2.4+ |
High-risk email type: the email address is served by a parked or inactive mail exchanger, which may potentially resell collected email data. We strongly recommend removing this address from your lists. |
MailExchangerIsWellKnownDea |
High-risk email type: the email address is associated with a well-known disposable email address provider (DEA). We strongly recommend removing DEAs from your lists. |
OverrideMatch v2.5+ |
Input data matches a custom classifier rule expression of the submitter. |
ServerDoesNotAllowMultipleRecipients |
Possibly risky email type: the external mail exchanger may accept fake and nonexistent email addresses. Therefore, the provided email address may not exist, and the existence of the individual mailbox could not be verified. Trying a higher results quality level is likely to provide a definitive response. |
ServerDoesNotSupportInternationalMailboxes
|
Invalid email address: the external mail exchanger does not support international mailbox names. To support this feature, mail exchangers must comply with RFC 5336 and announce support for both the 8BITMIME and UTF8SMTP protocol extensions. |
ServerIsCatchAll |
Possibly risky email type: the external mail exchanger accepts fake and nonexistent email addresses. Therefore, the provided email address may not exist, and the existence of the individual mailbox cannot be verified. |
ServerTemporaryUnavailable |
Validation failed because the external mail exchanger is temporarily unavailable. Trying a higher results quality level is likely to provide a definitive response. Note: the presence of a typo in this status code is intentional and serves the purpose of maintaining backward compatibility with older API clients. |
SmtpConnectionFailure |
Possibly invalid email address: a socket connection error occurred while trying to connect to the mail exchanger that serves the email address domain. Trying a higher results quality level is likely to provide a definitive response. |
SmtpConnectionTimeout |
Possibly invalid email address: a timeout occurred while trying to connect to the mail exchanger that serves the email address domain. Trying a higher results quality level is likely to provide a definitive response. |
SmtpDialogError |
Validation failed because the external mail exchanger replied in a non-standard way. Trying a higher results quality level is likely to provide a definitive response. |
Success |
Valid email, with no high-risk factors detected: safe to send mail, which completes our multi-step verification process successfully. |
UnacceptableDomainLiteral |
Invalid email: the domain literal of the email address cannot accept messages from the Internet. While Verifalia supports them, domain literals are quite rare nowadays. |
UnbalancedCommentParenthesis |
Invalid email format: the number of parentheses used to open comments is not equal to the number used to close them. |
UnexpectedQuotedPairSequence |
Invalid email format: an unexpected quoted pair sequence has been found within a quoted word. |
UnhandledException |
Validation failed due to unexpected technical issues during the processing of this email address. Retry may provide a definitive response. |
UnmatchedQuotedPair |
Invalid email format: a quoted pair within a quoted word is not properly closed. |
Need Help?
We're here to assist you.
Visit Our Help Center
Send Us a Message
Want to chat?
Latest tweets - twitter.com/verifalia
We are excited to announce our updated client area! Now featuring multiple administrators, personalized contact settings, enhanced permissions, and improved navigation: learn more.
Verifying Yahoo email addresses is now 40% faster! We've just updated our email verification algorithms for quicker results.
🎉 We've just launched version 1.13 of our free email verification widget, which Google Tag Manager (GTM) now supports. Plus, this new version brings support for custom trusted origins and SamCart! 🚀✨
New year, new features! 🎉 We've just added support for trusted origins, making it easier for you to control which websites can host browser apps, in accordance with RFC 6454. This includes, of course, our embeddable email verification widget! 🪄
From our blog
Disposable or temporary Gmail and Outlook addresses may appear legitimate, but they should be removed from your mailing lists because they lead to fake registrations and false engagement.
Understanding the reasons behind email bounces is key to maintaining a successful email marketing strategy: by proactively verifying your email list, following best practices, and regularly monitoring your bounce rates, you can protect your sender reputation and ensure that your messages land where they’re meant to - your recipient’s inbox.