Referencia para desarrolladores

Similitud de dominios

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

Similitud de dominios

Compara dos dominios para similitud visual y textual utilizando múltiples algoritmos incluyendo distancia de Levenshtein, similitud Jaro-Winkler y análisis visual de homoglifos. Esencial para detectar typosquatting, suplantación de marca y dominios de phishing.

GET /v1/similarity

Parámetros de consulta

ParámetroTipoDescripción
domain1 obligatorio string Primer dominio (normalmente el dominio legítimo)
domain2 obligatorio string Segundo dominio (dominio potencialmente sospechoso)

Algoritmos de similitud

AlgoritmoDescripción
levenshteinDistancia de edición normalizada (0-1)
jaro_winklerSimilitud de cadenas ponderada por prefijo
visualDetección de homoglifos/caracteres similares

Solicitud de ejemplo

curl -H "X-API-Key: your-api-key" "https://domscan.net/v1/similarity?domain1=paypal.com&domain2=paypa1.com"
import requests

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

# Check multiple suspicious domains
legit = "paypal.com"
suspects = ["paypa1.com", "paypaI.com", "pаypal.com"]  # Note: last one has Cyrillic 'а'

for suspect in suspects:
    response = domscan.get(
        "https://domscan.net/v1/similarity",
        params={"domain1": legit, "domain2": suspect}
    )
    data = response.json()
    print(f"{suspect}: {data['typosquatting_risk']} risk (visual: {data['similarity']['visual']:.2f})")

Respuesta de ejemplo

{
  "domain1": "paypal.com",
  "domain2": "paypa1.com",
  "similarity": {
    "levenshtein": 0.86,
    "jaro_winkler": 0.93,
    "visual": 0.95
  },
  "is_similar": true,
  "typosquatting_risk": "high",
  "homoglyphs_detected": ["l → 1"],
  "risk_factors": ["character_substitution", "high_visual_similarity"]
}

Campos de respuesta

Campo Tipo
domain1 string
domain2 string
similarity_score number
visual_similarity number
textual_similarity number
is_confusable boolean
risk_level string