Email Validation SDK Documentation - Verify Emails


IPQualityScore's SDK allows your Android app to easily integrate our Email Validation API services. Accurately validate new user's with email validation and deep reputation checks to identify disposable and abusive emails.



SDK Setup

To use the IP Address Reputation portion of our SDK framework, please follow the Download, Gradle Setup and App Integration steps of the IPQS Mobile Device Fingerprinting SDK Documentation. Once the IPQS library is integrated into your build, you can begin making IP Reputation checks via our API.



Calling The IPQS Email Validation API

Perform a lookup for any given email address by calling upon Email.performFraudCheck(). This portion of the SDK does not require that you have set access to context, unless you need to display something to the user. Additional permissions are not required.



Request Methods

The EmailRequest object has the following methods/functions.

Name Function Description Type
setEmail request.setEmail("noreply@ipqualityscore.com") The email you wish to validate. Required for a valid response from this API. String
setFast request.setFast(true) Should this request be optimized for speed. Makes results faster, but less accurate. Boolean, defaults to false
setTimeout request.setTimeout(10) The timeout in seconds before we should consider this email "timed out". Integer, 0 - 100
setSuggestDomain request.setSuggestDomain(true) Should this request attempt to suggest a domain if the domain is uncommon? Boolean, defaults to false
setAbuseStrictness request.setAbuseStrictness(true) Set the strictness level for machine learning pattern recognition of abusive email addresses with the "recent_abuse" data point. Default level of 0 provides good coverage, however if you are filtering account applications and facing advanced fraudsters then we recommend increasing this value to level 1 or 2. Integer, 0 - 3
setCustom request.setCustom("custom", "value") Allows you to set custom variables to be passed to our API. For a full list of possible variables click here String, String


Result Methods

Our SDK offers a wide range of result methods/functions to enhance your experience and help prevent fraudulent activity. The variable "result" below signifies an object of com.ipqualityscore.FraudEngine.Results.EmailResult.

Name Function Description Type
getRaw result.getRaw() Get the raw json string response from our API. This can be useful for debugging purposes, providing feedback and long term storage. String
getMessage result.getMessage() Get the response message string for this request. This is generally 'Success', but can include administrator level information on why a request failed. (Out of credits, etc...) String
getSuccess result.getSuccess() A boolean containing the request's success or failure status. True on success, false on failure. Boolean
getRequestID result.getRequestID() The unique ID associated with this request. Helpful for debugging and postbacks. String
getTimedOut result.getTimedOut() Did the connection to the mail service provider timeout during the verification? If so, we recommend increasing the "timeout" variable above the default 7 second value. Lookups that timeout with a "valid" result as false are most likely false and should be not be trusted. Boolean
getDisposable result.getDisposable() Is this email suspected of belonging to a temporary or disposable mail service? Usually associated with fraudsters and scammers. Boolean
getFirstName result.getFirstName() Suspected first name based on email. Returns "CORPORATE" if the email is suspected of being a generic company email. Returns "UNKNOWN" if the first name was not determinable. String
getDeliverability result.getDeliverability() How likely is this email to be delivered to the user and land in their mailbox. Values can be "high", "medium", or "low". String
getSMTPScore result.getSMTPScore() Validity score of email server's SMTP setup. Range: "-1" - "3". Scores above "-1" can be associated with a valid email.
  • -1 = invalid email address
  • 0 = mail server exists, but is rejecting all mail
  • 1 = mail server exists, but is showing a temporary error
  • 2 = mail server exists, but accepts all email
  • 3 = mail server exists and has verified the email address
Integer
getOverallScore result.getOverallScore() Overall email validity score. Range: "0" - "4". Scores above "1" can be associated with a valid email.
  • 0 = invalid email address
  • 1 = dns valid, unreachable mail server
  • 2 = dns valid, temporary mail rejection error
  • 3 = dns valid, accepts all mail
  • 4 = dns valid, verified email exists
Integer
getCatchAll result.getCatchAll() Is this email likely to be a "catch all" where the mail server verifies all emails tested against it as valid? It is difficult to determine if the address is truly valid in these scenarios, since the email's server will not confirm the account's status. Boolean
getGeneric result.getGeneric() Is this email suspected as being a catch all or shared email for a domain? ("admin@", "webmaster@", "newsletter@", "sales@", "contact@", etc.) Boolean
getCommon result.getCommon() Is this email from a common email provider? ("gmail.com", "yahoo.com", "hotmail.com", etc.) Boolean
getIsCrawler result.getIsCrawler() Returns true if this user's IP is from a known search engine crawler. Boolean
getDNSValid result.getDNSValid() Does the email's hostname have valid DNS entries? Partial indication of a valid email. Boolean
getHoneypot result.getHoneypot() Is this email believed to be a "honeypot" or "SPAM trap"? Bulk mail sent to these emails increases your risk of being blacklisted by large ISPs & ending up in the spam folder. Boolean
getFrequentComplainer result.getFrequentComplainer() Indicates if this email frequently unsubscribes from marketing lists or reports email as SPAM. Boolean
getSuspect result.getSuspect() This value indicates if the mail server is currently replying with a temporary error and unable to verify the email address. This status will also be true for "catch all" email addresses as defined above. If this value is true, then we suspect the "valid" result may be tainted and there is not a guarantee that the email address is truly valid. Boolean
getRecentAbuse result.getRecentAbuse() This value will indicate if there has been any recently verified abuse across our network for this email address. Abuse could be a confirmed chargeback, fake signup, compromised device, fake app install, or similar malicious behavior within the past few days. Boolean
getLeaked result.getLeaked() This value indicates if the mail server is currently replying with a temporary error and unable to verify the email address. This status will also be true for "catch all" email addresses as defined above. If this value is true, then we suspect the "valid" result may be tainted and there is not a guarantee that the email address is truly valid. Boolean
getSuggestedDomain result.getSuggestedDomain() Default value is "N/A". Indicates if this email's domain should in fact be corrected to a popular mail service. This field is useful for catching user typos. For example, an email address with "gmai.com", would display a suggested domain of "gmail.com". This feature supports all major mail service providers. String
getFirstSeen result.getFirstSeen() The time this email was first analyzed by IPQualityScore. java.time.LocalDateTime Object
getDomainAge result.getDomainAge() The date/time this domain was registered. java.time.LocalDateTime Object
getSpamTrapScore result.getSpamTrapScore() Confidence level of the email address being an active SPAM trap. Values can be "high", "medium", "low", or "none". We recommend scrubbing emails with "high" or "medium" statuses. Avoid "low" emails whenever possible for any promotional mailings. String
getSanitizedEmail result.getSanitizedEmail() Sanitized email address with all aliases and masking removed, such as multiple periods for Gmail.com. String