The Java database reader allows your Java application to use the on-premise IPQS email verification database and make informed decisions about email addresses.
- Proxy & VPN Detection API
- Email Verification API
- Phone Number Validation API
- Device Fingerprint API
- Malicious URL Scanner API
- Mobile Device Fingerprinting SDK
- Gaming Fraud Detection SDK
- Dark Web Leak API
- Malware File Scanner API
- Request List API
- Fraud Reporting API
- Account Management APIs
- Bulk Validation CSV API
- Allowlist & Blocklist APIs
- Plugins Platforms & Integrations
- IP Reputation Database
- Email Verification Database
- Custom Integrations
- Country List API
Install via Maven
Alternatively, you can use the IPQS Maven repository to install the Java database reader automatically.
- Add a dependency for the Java database reader to your pom.xml file. You will need to add a parent tag if none exists:
1<dependencies>
2...
3<dependency>
4<groupId>com.ipqualityscore</groupId>
5<artifactId>ipqualityscore-java-email-db-reader</artifactId>
6<version>1.0.0</version>
7</dependency>
8...
9</dependencies>
- Add the IPQS Maven repository to your pom.xml file. You will need to add a parent tag if none exists:
xxxxxxxxxx
91<repositories>
2...
3<repository>
4<id>ipqualityscore</id>
5<name>IPQualityScore Java Flat File Email DB Reader</name>
6<url>https://downloads.ipqualityscore.com/maven2</url>
7</repository>
8...
9</repositories>
-
Update your dependencies by running:
mvn dependency:resolve
Install via Gradle
- Add the IPQS Maven repository to your build.gradle:
xxxxxxxxxx
51repositories {
2...
3maven { url 'https://downloads.ipqualityscore.com/maven2' }
4...
5}
- Add a dependency for the Java database reader to your build.gradle:
xxxxxxxxxx
51dependencies {
2...
3implementation 'com.ipqualityscore:ipqualityscore-java-email-db-reader:1.0.0'
4...
5}
The following example shows how you can use the Java database reader in your application to retrieve data about a specific email address:
import com.ipqualityscore.dbreader.email.lookup.EmailLookup;
import com.ipqualityscore.dbreader.email.reader.Data;
public class MyLookup {
public static void main(String[] args) {
EmailLookup lookup = new EmailLookup(Paths.get("/path/to/folder/with/databases/"));
Data[] result = lookup.lookupEmail("some.email@ipqualityscore.com");
if(result != null) {
for(Data record : result) {
System.out.println("Found: " + record);
if(record.getFraudScore() != null) {
System.out.println("Fraud score: " + record.getFaudScore().getFraudScore());
} else {
System.out.println("Fraud score not found!");
}
}
}
}
}
Some of these methods may be unavailable depending on which database file you receive. If the method in question is unavailable in your database, the method will default to Java's default value for that type or false.
Method | Type | Description |
record.getBase().isValid() | bool | Does this email address appear valid? |
record.getBase().isDisposable() | bool | Is this email suspected of belonging to a temporary or disposable mail service? Usually associated with fraudsters and scammers. |
record.getBase().getSmtpScore() | byte | Validity score of email server's SMTP setup. Range: "0" to "3". 0x00 = mail server exists, but is rejecting all mail 0x01 = mail server exists, but is showing a temporary error 0x02 = mail server exists, but accepts all email 0x03 = mail server exists and has verified the email address |
record.getBase().isSuspect() | bool | This value indicates if the mail server is currently replying with a temporary mail server error or if the email verification system is unable to verify the email address due to a broken SMTP handshake. This status will also be true for "catch all" email addresses as defined below. 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. This status is rarely true for popular mailbox providers and typically only returns as true for a small percentage of business mail servers. |
record.getBase().isCatchAll() | bool | 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. |
record.getBase().getDeliverability() | byte | How likely is this email to be delivered to the user and land in their mailbox. Values can be "high", "medium", "low" or "none". 0x00 = none 0x01 = low 0x02 = medium 0x03 = high |
record.getFraudScore().getFraudScore() | int | The overall Fraud Score of the user based on the email's verification and recent behavior across the IPQS threat network. Fraud Scores >= 75 are suspicious, but not necessarily fraudulent. |
record.getLeaked().isLeaked() | bool | Was this email address associated with a recent database leak from a third party? Leaked accounts pose a risk as they may have become compromised during a database breach. |
record.getRecentAbuse().isRecentAbuse() | bool | 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. |
record.getUserVelocity().getUserVelocity() | byte | Frequency at which this email address makes legitimate purchases, account registrations, and engages in legitimate user behavior online. Values can be "high", "medium", "low", or "none". Values of "high" or "medium" are strong signals of healthy usage. New email addresses without a history of legitimate behavior will have a value as "none". This field is restricted to higher plan tiers. |
record.getFirstSeen().getFirstSeen() | LocalDateTime | When this email address was first seen online. |
record.getDomainAge().getDomainAge() | LocalDateTime | When this domain was registered. |
record.getDomainCommon().isDomainCommon() | bool | Is this email from common free email providers? ("gmail.com", "yahoo.com", "hotmail.com", etc.) |
record.getDomainVelocity().getDomainVelocity() | bool | Indicates the level of legitimate users interacting with the email address domain. Values can be "high", "medium", "low", or "none". Domains like "IBM.com", "Microsoft.com", "Gmail.com", etc. will have "high" scores as this value represents popular domains. New domains or domains that are not frequently visited by legitimate users will have a value as "none". This field is restricted to upgraded plans. |
record.getDomainDisposable().isDomainDisposable() | bool | Is this domain suspected of belonging to a temporary or disposable mail service? Usually associated with fraudsters and scammers. |
If you already have the Java database reader installed, you can update it by running:
mvn dependency:resolve