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étodo | Retorna | Descripción |
|---|---|---|
validate_email(address) | EmailValidationResult | Validación de formato de email, MX, desechable, proveedor gratuito |
validate_phone(number, country_code=None) | PhoneValidationResult | Validación de teléfono |
geolocate_ip(ip=None) | IpGeolocation | Geolocalización IP + ASN (None = IP del llamante) |
validate_vat(country_code, number) | VatValidationResult | Validación de IVA UE vía VIES |
parse_user_agent(ua=None) | UserAgentResult | Análisis de UA — navegador, SO, marca y modelo del dispositivo |
validate_iban(iban) | IbanValidationResult | Estructura IBAN, suma de verificación, información del banco |
validate_bic(bic) | BicValidationResult | Formato BIC/SWIFT, información de la institución |
lookup_dns(domain, types=None) | DnsLookupResult | Registros DNS, seguridad SPF/DKIM/DMARC |
check_ssl(domain) | SslCertificateResult | Certificado SSL, cadena, calificación |
analyze_password(password) | PasswordStrengthResult | Puntuación de fortaleza, tiempo de descifrado, verificación de filtraciones |
validate_credit_card(number) | CreditCardValidationResult | Verificación Luhn, red de tarjeta, consulta BIN |
last_rate_limit_info (property) | RateLimitInfo | None | Lí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.requestde la biblioteca estándar)