Referencia para desarrolladores

Perfil de dominio

Consulta la documentación de la API de Perfil de dominio, con parámetros de solicitud, campos de respuesta, ejemplos de código y gestión de errores para integraciones con DomScan.

Perfil de dominio

Obtiene datos de registro RDAP normalizados incluyendo registrador, fecha de creación, expiración, servidores de nombres, estado DNSSEC y resumen de contactos. Incluye la antigüedad del dominio y los días hasta la expiración precalculados para mayor comodidad.

GET /v1/profile

Parámetros de consulta

ParámetroTipoDescripción
domain obligatorio string Nombre de dominio completo (ej., github.com)

Campos de respuesta

CampoTipoDescripción
age_daysnumberAntiguedad del dominio en dias desde el registro
days_until_expirynumberDias hasta que expire el dominio
dnssecbooleanSi DNSSEC esta habilitado
statusarrayCodigos de estado EPP (clientDeleteProhibited, etc.)

Solicitud de ejemplo

curl -H "X-API-Key: your-api-key" "https://domscan.net/v1/profile?domain=github.com"
const domscanFetch = (url, options = {}) =>
  fetch(url, {
    ...options,
    headers: { ...options.headers, "X-API-Key": "your-api-key" },
  });

const response = await domscanFetch(
  "https://domscan.net/v1/profile?domain=github.com"
);
const data = await response.json();

console.log(`Domain age: ${data.age_days} days`);
console.log(`Expires in: ${data.days_until_expiry} days`);
console.log(`DNSSEC: ${data.dnssec ? 'Enabled' : 'Disabled'}`);
import requests

domscan = requests.Session()
domscan.headers.update({"X-API-Key": "your-api-key"})

response = domscan.get(
    "https://domscan.net/v1/profile",
    params={"domain": "github.com"}
)
data = response.json()

print(f"Domain age: {data['age_days']} days ({data['age_days'] // 365} years)")
print(f"Expires in: {data['days_until_expiry']} days")

Respuesta de ejemplo

{
  "domain": "github.com",
  "registered": true,
  "registrar": "MarkMonitor Inc.",
  "registrar_url": "https://www.markmonitor.com",
  "created_date": "2007-10-09T18:20:50Z",
  "updated_date": "2024-09-08T09:19:27Z",
  "expiry_date": "2026-10-09T07:00:00Z",
  "age_days": 6310,
  "days_until_expiry": 628,
  "nameservers": ["dns1.p08.nsone.net", "dns2.p08.nsone.net"],
  "dnssec": true,
  "status": ["clientDeleteProhibited", "clientTransferProhibited"],
  "contacts": {
    "registrant_name": "GitHub, Inc.",
    "registrant_org": "GitHub, Inc.",
    "registrant_country": "US"
  },
  "privacy": {
    "is_private": false,
    "privacy_service": null
  }
}
GET /v1/overview

Parámetros de consulta

Parámetro Tipo obligatorio
domain string obligatorio

Campos de respuesta

Campo Tipo
domain string
health object
health.dns_ok boolean | null
health.https_ok boolean | null
dns object
dns.has_a boolean | null
dns.has_aaaa boolean | null
dns.has_mx boolean | null
dns.nameservers[] string[]
registration object
registration.registered boolean | null
registration.registrar string | null
registration.created_date string | null
registration.expiry_date string | null
registration.age_days integer | null
registration.days_until_expiry integer | null
registration.dnssec boolean | null
reputation object
reputation.score number | null
reputation.grade string | null
popularity object
popularity.rank integer | null
popularity.bucket string | null
component_freshness object
component_freshness.cache_status string
component_freshness.checked_at string
component_freshness.component_count integer
component_freshness.fresh_component_count integer
component_freshness.degraded_component_count integer
component_freshness.components object
component_freshness.components.health object
component_freshness.components.health.source string
component_freshness.components.health.state string
component_freshness.components.health.checked_at string
component_freshness.components.health.evidence_count integer
component_freshness.components.health.reason string | null
component_freshness.components.dns object
component_freshness.components.dns.source string
component_freshness.components.dns.state string
component_freshness.components.dns.checked_at string
component_freshness.components.dns.evidence_count integer
component_freshness.components.dns.reason string | null
component_freshness.components.registration object
component_freshness.components.registration.source string
component_freshness.components.registration.state string
component_freshness.components.registration.checked_at string
component_freshness.components.registration.evidence_count integer
component_freshness.components.registration.reason string | null
component_freshness.components.reputation object
component_freshness.components.reputation.source string
component_freshness.components.reputation.state string
component_freshness.components.reputation.checked_at string
component_freshness.components.reputation.evidence_count integer
component_freshness.components.reputation.reason string | null
component_freshness.components.popularity object
component_freshness.components.popularity.source string
component_freshness.components.popularity.state string
component_freshness.components.popularity.checked_at string
component_freshness.components.popularity.evidence_count integer
component_freshness.components.popularity.reason string | null
query_time_ms integer
checked_at string

Solicitud de ejemplo

curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/overview?domain=example.com"

Respuesta de ejemplo

{
  "domain": "example.com",
  "health": {
    "dns_ok": true,
    "https_ok": true
  },
  "dns": {
    "has_a": true,
    "has_aaaa": true,
    "has_mx": true,
    "nameservers": [
      "string"
    ]
  },
  "registration": {
    "registered": true,
    "registrar": "string",
    "created_date": "2026-04-15",
    "expiry_date": "2026-04-15",
    "age_days": 1,
    "days_until_expiry": 1,
    "dnssec": true
  },
  "reputation": {
    "score": 1,
    "grade": "string"
  },
  "popularity": {
    "rank": 1,
    "bucket": "string"
  },
  "component_freshness": {
    "cache_status": "hit",
    "checked_at": "2026-04-15T12:00:00Z",
    "component_count": 1,
    "fresh_component_count": 1,
    "degraded_component_count": 1,
    "components": {
      "health": {
        "source": "string",
        "state": "fresh",
        "checked_at": "2026-04-15T12:00:00Z",
        "evidence_count": 1,
        "reason": "upstream_unavailable"
      },
      "dns": {
        "source": "string",
        "state": "fresh",
        "checked_at": "2026-04-15T12:00:00Z",
        "evidence_count": 1,
        "reason": "upstream_unavailable"
      },
      "registration": {
        "source": "string",
        "state": "fresh",
        "checked_at": "2026-04-15T12:00:00Z",
        "evidence_count": 1,
        "reason": "upstream_unavailable"
      },
      "reputation": {
        "source": "string",
        "state": "fresh",
        "checked_at": "2026-04-15T12:00:00Z",
        "evidence_count": 1,
        "reason": "upstream_unavailable"
      },
      "popularity": {
        "source": "string",
        "state": "fresh",
        "checked_at": "2026-04-15T12:00:00Z",
        "evidence_count": 1,
        "reason": "upstream_unavailable"
      }
    }
  },
  "query_time_ms": "2026-04-15T12:00:00Z",
  "checked_at": "2026-04-15T12:00:00Z"
}