Saltar al contenido principal

SDK de Python

neivi-iqx-lookup — Cliente Python 3.9+ para la API de IQX Lookup usando urllib (sin dependencias).

Instalación

pip install neivi-iqx-lookup

Inicio Rápido

from iqx_lookup import IqxLookup

client = IqxLookup(api_key="ALk-your-api-key")

# Validate an email
email = client.validate_email("user@example.com")
print(f"Valid format: {email.valid_format}")
print(f"Disposable: {email.disposable_email}")

# Validate a phone number
phone = client.validate_phone("+34912345678", country_code="ES")
print(f"Valid: {phone.valid}")
print(f"Carrier: {phone.carrier}")

# Geolocate an IP
ip = client.geolocate_ip("8.8.8.8")
print(f"Country: {ip.country_name}")

# Validate a VAT number
vat = client.validate_vat("ES", "B87387775")
print(f"Valid: {vat.valid}")

# Parse a user-agent string
ua = client.parse_user_agent("Mozilla/5.0...")
print(f"Browser: {ua.browser_family}")

Configuración

from iqx_lookup import IqxLookup, IqxLookupConfig

# Direct construction
client = IqxLookup(
api_key="ALk-your-api-key",
base_url="https://api.iqxlookup.neivi.es", # optional
timeout=15, # optional, seconds
)

# Or via config object
config = IqxLookupConfig(
api_key="ALk-your-api-key",
base_url="https://api.iqxlookup.neivi.es",
timeout=15,
)
client = IqxLookup(config=config)

Referencia de la API

MétodoRetornaDescripción
validate_email(address)EmailValidationResultValidación de formato de email, MX, desechable, proveedor gratuito
validate_phone(number, country_code=None)PhoneValidationResultValidación de teléfono
geolocate_ip(ip=None)IpGeolocationGeolocalización IP + ASN (None = IP del llamante)
validate_vat(country_code, number)VatValidationResultValidación de IVA UE vía VIES
parse_user_agent(ua=None)UserAgentResultAnálisis de UA — navegador, SO, marca y modelo del dispositivo
validate_iban(iban)IbanValidationResultEstructura IBAN, suma de verificación, información del banco
validate_bic(bic)BicValidationResultFormato BIC/SWIFT, información de la institución
lookup_dns(domain, types=None)DnsLookupResultRegistros DNS, seguridad SPF/DKIM/DMARC
check_ssl(domain)SslCertificateResultCertificado SSL, cadena, calificación
analyze_password(password)PasswordStrengthResultPuntuación de fortaleza, tiempo de descifrado, verificación de filtraciones
validate_credit_card(number)CreditCardValidationResultVerificación Luhn, red de tarjeta, consulta BIN
last_rate_limit_info (property)RateLimitInfo | NoneLímite de peticiones de la última respuesta

Todos los tipos de respuesta son dataclasses de Python con type hints completos.

Manejo de Errores

from iqx_lookup.exceptions import (
RateLimitException,
UnauthorizedException,
IqxLookupException,
)

try:
result = client.validate_email("user@example.com")
except RateLimitException as e:
print(f"Retry after: {e.retry_after}s")
except UnauthorizedException:
print("Check your API key")
except IqxLookupException as e:
print(f"Error {e.status_code}: {e.error_message}")

Requisitos

  • Python 3.9+
  • Sin dependencias externas (usa urllib.request de la biblioteca estándar)