SDK de TypeScript
@neivi/iqx-lookup-typescript — Cliente TypeScript/JavaScript para la API de IQX Lookup usando fetch nativo.
Instalación
npm install @neivi/iqx-lookup-typescript
Inicio Rápido
import { IqxLookup } from '@neivi/iqx-lookup-typescript';
const client = new IqxLookup({ apiKey: 'ALk-your-api-key' });
// Validate an email
const email = await client.validateEmail('user@example.com');
console.log('Valid format:', email.validFormat);
console.log('Disposable:', email.disposableEmail);
// Validate a phone number
const phone = await client.validatePhone('+34912345678', 'ES');
console.log('Valid:', phone.valid);
console.log('Carrier:', phone.carrier);
// Geolocate an IP
const ip = await client.geolocateIp('8.8.8.8');
console.log('Country:', ip.countryName);
// Validate a VAT number
const vat = await client.validateVat('ES', 'B87387775');
console.log('Valid:', vat.valid);
// Parse a user-agent string
const ua = await client.parseUserAgent('Mozilla/5.0...');
console.log('Browser:', ua.browserFamily);
Configuración
const client = new IqxLookup({
apiKey: 'ALk-your-api-key', // required
baseUrl: 'https://api.iqxlookup.neivi.es', // optional, default shown
timeout: 15000, // optional, ms, default 10000
});
Referencia de la API
Todos los métodos son async y devuelven Promise<T>:
| Método | Retorna | Descripción |
|---|---|---|
validateEmail(address) | EmailValidationResult | Validación de formato de email, MX, desechable, proveedor gratuito |
validatePhone(number, countryCode?) | PhoneValidationResult | Validación de teléfono |
geolocateIp(ip?) | IpGeolocation | Geolocalización IP + ASN (omitir ip = IP del llamante) |
validateVat(countryCode, number) | VatValidationResult | Validación de IVA UE vía VIES |
parseUserAgent(ua?) | UserAgentResult | Análisis de UA — navegador, SO, marca y modelo del dispositivo |
validateIban(iban) | IbanValidationResult | Estructura IBAN, suma de verificación, información del banco |
validateBic(bic) | BicValidationResult | Formato BIC/SWIFT, información de la institución |
lookupDns(domain, types?) | DnsLookupResult | Registros DNS, seguridad SPF/DKIM/DMARC |
checkSsl(domain) | SslCertificateResult | Certificado SSL, cadena, calificación |
analyzePassword(password) | PasswordStrengthResult | Puntuación de fortaleza, tiempo de descifrado, verificación de filtraciones |
validateCreditCard(number) | CreditCardValidationResult | Verificación Luhn, red de tarjeta, consulta BIN |
rateLimitInfo (getter) | RateLimitInfo | null | Límite de peticiones de la última respuesta |
Manejo de Errores
import { IqxLookup, RateLimitError, UnauthorizedError } from '@neivi/iqx-lookup-typescript';
try {
const result = await client.validateEmail('user@example.com');
} catch (error) {
if (error instanceof RateLimitError) {
console.log(`Retry after: ${error.retryAfter}s`);
} else if (error instanceof UnauthorizedError) {
console.log('Check your API key');
}
}
Requisitos
- Node.js 18+ (usa
fetchnativo) - Funciona en navegadores modernos (sin polyfills necesarios)
- Cero dependencias en tiempo de ejecución