IPQS
Email Verification SDK
About the Email Verification SDK

IPQS's SDK allows your Android app to easily integrate our Email Verification API services. Accurately validate new users with email validation and comprehensive reputation checks to identify disposable and abusive emails.

Setup

To use the IP Address Reputation portion of our SDK framework, follow the setup instructions in the Android Fingerprinting SDK documentation. Once you have integrated the IPQS library into your build, you can make IP Reputation checks via our API.

Calling the Email Verification API

You can perform a lookup for any given email address by calling 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
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? It makes results faster but less accurate.     Boolean, defaults to false
setTimeout request.setTimeout(10) The timeout in seconds before we 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. A default level of 0 provides good coverage; however, if you filter account applications and face advanced fraudsters, 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. String, String
Result Methods

Our SDK offers various result methods and 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, 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 time out with a "valid" result as false are most likely false and should 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 is 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" to "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" to "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 whether the address is valid in these scenarios since the email's server will not confirm the account's status. Boolean
getGeneric result.getGeneric() Is this email suspected of 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 blocklisted 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 replying with a temporary error and cannot verify the email address. This status will also be true for "catch-all" email addresses. If this value is true, we suspect the "valid" result may be tainted and there is no guarantee that the email address is indeed 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 replying with a temporary error and cannot verify the email address. This status will also be true for "catch-all" email addresses. If this value is true, we suspect the "valid" result may be tainted, and there is no guarantee that the email address is indeed valid.     Boolean
getSuggestedDomain result.getSuggestedDomain() Default value is "N/A". Indicates if this email's domain should be corrected to a popular mail service. This field helps catch 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 IPQS.     java.time.LocalDateTime Object
getDomainAge result.getDomainAge() The date/time this domain was registered.     java.time.LocalDateTime Object
getSpamTrapScore result.getSpamTrapScore() The confidence level of the email address as 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

Ready to eliminate fraud?

Start fighting fraud now with 5,000 Free Lookups!

We're happy to answer any questions or concerns.

Chat with our fraud detection experts any day of the week.

Call us at: (800) 713-2618