Zum Hauptinhalt springen

TypeScript SDK

@neivi/iqx-lookup-typescript — TypeScript/JavaScript client for the IQX Lookup API using native fetch.

Installation

npm install @neivi/iqx-lookup-typescript

Quick Start

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);

Configuration

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
});

API Reference

All methods are async and return Promise<T>:

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

Error Handling

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');
}
}

Requirements

  • Node.js 18+ (uses native fetch)
  • Works in modern browsers (no polyfills needed)
  • Zero runtime dependencies