La API de webatla
Traiga la base de datos de dominios directamente a su propio stack. Autentíquese con una clave Bearer, descargue un dataset completo o un segmento como JSONL comprimido, y fíltrelo localmente. Sin medición por fila.
Cómo funciona la API
La API entrega archivos completos, no un endpoint de consulta en vivo. Usted descarga un dataset completo o un único segmento, y después lo segmenta y filtra en su propia máquina. Esto mantiene las descargas rápidas y no impone ningún límite a sus consultas.
1. Crear una clave
Genere una clave de API Bearer en su cuenta, opcionalmente restringida a una lista blanca de IP. Envíela como encabezado Authorization.
2. Descargar archivos
Obtenga la exportación completa, o un segmento por TLD, sufijo de TLD, país o tecnología. Reanude las descargas interrumpidas con una solicitud Range.
3. Filtrar localmente
Descomprima con zstd y consulte con jq, un data warehouse o su propio código. Una dimensión por segmento, cruce el resto usted mismo.
Autenticación
La mayoría de los endpoints requieren una clave API Bearer. El catálogo público y los endpoints de preview y sample no necesitan autenticación.
- Cree y gestione sus claves en su cuenta. La clave completa se muestra una sola vez, en el momento de la creación, guárdela por tanto en un lugar seguro.
- Envíela como
Authorization: Bearer wbtl_…en cada solicitud autenticada. - Puede restringir opcionalmente una clave a una lista blanca de IP. Las solicitudes de otras direcciones reciben
401. - El límite de solicitudes se aplica por clave. Puede rotar o revocar una clave en cualquier momento.
Endpoints
El contrato completo, legible por máquina, está disponible en /api/v1/openapi.json (especificación OpenAPI 3.1).
| Método | Endpoint | Autenticación | Límite de tasa | Propósito |
|---|---|---|---|---|
| GET | /api/v1/datasets | Público | 60/min | Lista de datasets publicados con precio y número de filas |
| GET | /api/v1/preview?dataset={slug} | Público | 30/min | Muestra gratuita de 10.000 filas de un dataset completo |
| GET | /api/v1/sample/{scope}/{key}?dataset={slug} | Público | 30/min | Muestra gratuita de 20 filas para una entidad (TLD, sufijo, país, tecnología) |
| GET | /api/v1/me | Bearer | 200/min | El usuario y los scopes de la clave actual |
| GET | /api/v1/me/orders | Bearer | 200/min | Sus pedidos y su estado |
| GET | /api/v1/me/downloads | Bearer | 200/min | Su historial de descargas (?limit= hasta 500) |
| GET | /api/download/{slug} | Bearer | 240/min | Exportación completa del dataset en formato .jsonl.zst |
| GET | /api/download/{slug}/{scope}/{key} | Bearer | 240/min | Un segmento de dataset por scope |
scope es uno de tld, tld_suffix, country o technology. Los endpoints de descarga requieren un acceso de pago vigente a ese dataset.
Inicio rápido
Cada descarga es un único archivo. Descargue el dataset completo o límitelo primero a una sola dimensión.
Descargar la exportación completa
Descargar un único segmento
curl, reanudación y filtrado local
Liste sus descargas anteriores con GET https://webatla.com/api/v1/me/downloads. Pruebe una vista previa gratuita sin clave: GET https://webatla.com/api/v1/preview?dataset=all-data.
Formato de datos
Los archivos son JSON Lines (un objeto JSON por línea), comprimidos con zstd. El esquema es común a todos los datasets, por lo que las señales se alinean en la misma clave de dominio.
- Cada línea es un dominio. Descomprima con
zstd -do transmita en flujo conzstdcat. - Los nombres de columna pueden contener espacios, así que léalos con claves entre corchetes en jq, por ejemplo
.["Country by IP"]. - Los campos pueden faltar o ser null. Asígneles un valor por defecto, por ejemplo
.Registrar // "". - Las fechas son cadenas ISO 8601, por ejemplo
"2026-11-18T04:47:13.573"o"2026-04-22".
Referencia de columnas
| Columna | Tipo | Ejemplo | Datasets |
|---|---|---|---|
| Domain | string | "arriva.com.hr" | d1–d7 |
| TLD suffix | string | "com.hr" | d1–d7 |
| TLD | string | "hr" | d1–d7 |
| Domain type | string: "ICANN" | "PRIVATE" | "ICANN" | d1–d4, d6, d7 |
| HTTP status | integer | null | 200 | d3, d6, d7 |
| IP address | string | null | "31.13.236.27" | d3, d6, d7 |
| Country by IP | string (ISO-2) | null | "DE" | d2, d3, d6, d7 |
| Social networks | object | null | {"facebook": ["https://…"]} | d3, d6, d7 |
| Technologies last data checked | string (date) | null | "2026-04-22" | d3, d6, d7 |
| Technologies | array | object | null | ["WordPress"] / {"PHP": "4.4.9"} | d3, d6, d7 |
| DNS last data checked | string (date) | "2026-06-03" | d4, d6, d7 |
| DNS Status | string: "TRUE" | "FALSE" | "TRUE" | d4, d6, d7 |
| DNS records | object | null | {"A": ["31.13.236.27"], "MX": [{"host": "…", "priority": 0}]} | d4, d6, d7 |
| PR value | number | 4.808574e-9 / 0 | d2, d3, d6, d7 |
| Harmonic value | number | 10305265 / 0 | d2, d3, d6, d7 |
| RDAP/WHOIS last date checked | string (date) | "2026-01-04" | d5, d7, d6* |
| RDAP/WHOIS method | string: "rdap" | "whois" | "whois" | d5, d7, d6* |
| Domain creation date | string (ISO 8601) | null | "2024-12-12T14:04:04" | d2, d3, d5, d6, d7 |
| Domain expiration date | string (ISO 8601) | null | "2026-12-12T14:04:04" | d2, d3, d5, d6, d7 |
| Domain last changed | string (ISO 8601) | null | "2026-01-04T04:43:01" | d5, d7, d6* |
| Registrar | string | null | "REGRU-RU" | d5, d6, d7 |
| RDAP/WHOIS Record | object | null | {"raw_response": "% TCI Whois…"} | d5, d6* |
| Response Status RDAP/WHOIS | string | "Domain is active" | d5, d6* |
Datasets: d1 All active domains · d2 Websites + Ranking · d3 Technologies · d4 DNS · d5 RDAP & WHOIS · d6 All data · d7 Domain Investor.
* En el dataset All data (d6) los campos RDAP/WHOIS solo están presentes en los dominios que cuentan con una ficha de registro.
Formas de los campos anidados
Technologieses una lista de nombres o un objeto que asocia cada nombre con su versión.DNS Statuses la cadena"TRUE"o"FALSE", no un booleano.DNS recordsasocia un tipo de record a sus valores:A, AAAA, NS, SOA, TXT, MX, CNAME, CAA, HTTPS, DNSKEY, DS, SRV, PTR….MXes[{"host", "priority"}].Social networksasocia una plataforma a enlaces de perfil:facebook, instagram, x-twitter, linkedin, youtube, whatsapp, telegram, tiktok, github…. Son los enlaces públicos propios del sitio, no el contacto de una persona.RDAP/WHOIS Recordcontiene el registro de inscripción en bruto, con los campos personales redactados según las normas de la ICANN.
Recetas
Verificado con archivos de exportación reales. Todo se ejecuta localmente después de descargar un archivo.
Contar, extraer y exportar a CSV
Filtrar por tecnología
DNS y caducidad
Python
Códigos de respuesta y límites
Los errores devuelven un cuerpo JSON con la forma {"error": "…"}. Las cabeceras de límite de solicitudes se devuelven en cada petición.
| Código | Significado |
|---|---|
| 200 / 206 | Éxito. 206 corresponde a una descarga parcial (reanudada). |
| 302 | Falta una sesión de navegador en una ruta de descarga. Las claves API reciben 401 en su lugar. |
| 401 | Clave API ausente, no válida o bloqueada por IP. |
| 403 | Sin acceso de pago activo a este dataset. |
| 404 | Dataset o entidad desconocidos, o el archivo aún no está subido. |
| 416 | Solicitud Range mal formada o multipart. |
| 429 | Límite de solicitudes superado. Espere un momento y vuelva a intentarlo. |
Los endpoints públicos están limitados por IP. Los endpoints autenticados están limitados por clave o por usuario, como se indica arriba.
Empiece a construir
Cree una clave en su cuenta, o explore los datasets y consiga antes una muestra gratuita. ¿Preguntas sobre un extracto a medida? Escriba a support@webatla.com.