SDK de Java
es.neivi:iqx-lookup-java — Cliente Java 11+ para la API de IQX Lookup usando java.net.http.HttpClient.
Instalación
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'
Inicio Rápido
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());
Configuración
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();
Referencia de la API
| Método | Retorna | Descripción |
|---|---|---|
validateEmail(String address) | EmailValidationResult | Validación de formato de email, MX, desechable, proveedor gratuito |
validatePhone(String number, String countryCode) | PhoneValidationResult | Validación de teléfono (countryCode puede ser null) |
geolocateIp(String ip) | IpGeolocation | Geolocalización IP + ASN (ip null = IP del llamante) |
validateVat(String countryCode, String number) | VatValidationResult | Validación de IVA UE vía VIES |
parseUserAgent(String ua) | UserAgentResult | Análisis de UA — navegador, SO, marca y modelo del dispositivo |
validateIban(String iban) | IbanValidationResult | Estructura IBAN, suma de verificación, información del banco |
validateBic(String bic) | BicValidationResult | Formato BIC/SWIFT, información de la institución |
lookupDns(String domain, String types) | DnsLookupResult | Registros DNS, seguridad SPF/DKIM/DMARC |
checkSsl(String domain) | SslCertificateResult | Certificado SSL, cadena, calificación |
analyzePassword(String password) | PasswordStrengthResult | Puntuación de fortaleza, tiempo de descifrado, verificación de filtraciones |
validateCreditCard(String number) | CreditCardValidationResult | Verificación Luhn, red de tarjeta, consulta BIN |
getLastRateLimitInfo() | RateLimitInfo | Límite de peticiones de la última respuesta |
Manejo de Errores
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
Para aplicaciones Spring Boot, usa el Spring Boot Starter para configuración automática.