Skip to main content

Java SDK

es.neivi:iqx-lookup-java — Java 11+ client for the IQX Lookup API using java.net.http.HttpClient.

Installation

Maven:

<dependency>
<groupId>es.neivi</groupId>
<artifactId>iqx-lookup-java</artifactId>
<version>0.2.1</version>
</dependency>

Gradle:

implementation 'es.neivi:iqx-lookup-java:0.2.1'

Quick Start

import es.neivi.iqx.lookup.IqxLookup;
import es.neivi.iqx.lookup.model.*;

var client = IqxLookup.builder()
.apiKey("ALk-your-api-key")
.buildClient();

// Validate an email
var email = client.validateEmail("user@example.com");
System.out.println("Valid format: " + email.isValidFormat());
System.out.println("Disposable: " + email.isDisposableEmail());

// Validate a phone number
var phone = client.validatePhone("+34912345678", "ES");
System.out.println("Valid: " + phone.isValid());
System.out.println("Carrier: " + phone.getCarrier());

// Geolocate an IP
var ip = client.geolocateIp("8.8.8.8");
System.out.println("Country: " + ip.getCountryName());

// Validate a VAT number
var vat = client.validateVat("ES", "B87387775");
System.out.println("Valid: " + vat.isValid());

// Parse a user-agent string
var ua = client.parseUserAgent("Mozilla/5.0...");
System.out.println("Browser: " + ua.getBrowserFamily());

Configuration

import java.time.Duration;

var client = IqxLookup.builder()
.apiKey("ALk-your-api-key") // required
.baseUrl("https://api.iqxlookup.neivi.es") // optional, default shown
.timeout(Duration.ofSeconds(15)) // optional, default 10s
.buildClient();

API Reference

MethodReturnsDescription
validateEmail(String address)EmailValidationResultEmail format, MX, disposable, free provider checks
validatePhone(String number, String countryCode)PhoneValidationResultPhone validation (countryCode nullable)
geolocateIp(String ip)IpGeolocationIP geolocation + ASN (ip nullable = caller's IP)
validateVat(String countryCode, String number)VatValidationResultEU VIES VAT validation
parseUserAgent(String ua)UserAgentResultUA parsing — browser, OS, device brand & model
validateIban(String iban)IbanValidationResultIBAN structure, checksum, bank info
validateBic(String bic)BicValidationResultBIC/SWIFT format, institution info
lookupDns(String domain, String types)DnsLookupResultDNS records, SPF/DKIM/DMARC security
checkSsl(String domain)SslCertificateResultSSL certificate, chain, grade
analyzePassword(String password)PasswordStrengthResultStrength score, crack time, breach check
validateCreditCard(String number)CreditCardValidationResultLuhn check, card network, BIN lookup
getLastRateLimitInfo()RateLimitInfoRate limit from last response

Error Handling

import es.neivi.iqx.lookup.exception.*;

try {
var result = client.validateEmail("user@example.com");
} catch (RateLimitException e) {
System.out.println("Retry after: " + e.getRetryAfter() + "s");
} catch (UnauthorizedException e) {
System.out.println("Check your API key");
} catch (IqxLookupException e) {
System.out.println("Error " + e.getStatusCode() + ": " + e.getErrorMessage());
}
Spring Boot

For Spring Boot applications, use the Spring Boot Starter for automatic configuration.