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.
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.
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.
The EmailRequest object has the following methods/functions.
|setEmail||request.setEmail("firstname.lastname@example.org")||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|
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.
|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|
Validity score of email server's SMTP setup. Range: "-1" - "3". Scores above "-1" can be associated with a valid email.
Overall email validity score. Range: "0" - "4". Scores above "1" can be associated with a valid email.
|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|