Riferimento per sviluppatori

Salute del dominio Documentazione API

Salute del dominio Documentazione API: Controllo completo della salute per un dominio incluso DNS, SSL, raggiungibilità del sito web e intestazioni di sicurezza.

Salute del dominio

Controllo completo della salute per un dominio incluso DNS, SSL, raggiungibilità del sito web e intestazioni di sicurezza.

GET /v1/health

Parametri di query

Parametro Tipo obbligatorio
domain string obbligatorio
details boolean facoltativo

Campi di risposta

Campo Tipo
domain string
health_score integer
grade string
checks object
checks.dns_configured boolean
checks.ssl_valid boolean
checks.email_deliverable boolean
checks.blacklist_status string
checks.age_years integer | null
checks.registration_stable boolean
checks.dnssec_enabled boolean
enriched object
enriched.tls object
enriched.tls.grade string
enriched.tls.protocol string | null
enriched.tls.cipher string | null
enriched.tls.chain_valid boolean
enriched.tls.days_to_expiry integer
enriched.tls.hostname_match boolean | null
enriched.tls.ocsp_stapling boolean
enriched.tls.grade_reasons[] string[]
enriched.http_versions object
enriched.http_versions.http1_1 boolean
enriched.http_versions.http2 boolean
enriched.http_versions.http3 boolean
enriched.http_versions.alt_svc string | null
enriched.http_versions.http3_advertised boolean
enriched.http_versions.alt_svc_protocols[] string[]
enriched.http_versions.curl_http3_supported boolean
enriched.http_versions.h2_alpn_accepted string | null
enriched.http_versions.h3_alpn_accepted string | null
enriched.hsts object
enriched.hsts.reachable boolean
enriched.hsts.final_url string | null
enriched.hsts.status_code integer | null
enriched.hsts.header_present boolean
enriched.hsts.hsts_header string | null
enriched.hsts.max_age integer | null
enriched.hsts.include_subdomains boolean | null
enriched.hsts.preload_directive boolean | null
enriched.hsts.preload_eligible boolean
enriched.hsts.preload_status string | null
enriched.hsts.preloaded_domain string | null
enriched.hsts.preload_bulk boolean | null
enriched.hsts.issues[] string[]
enriched.hsts.errors[] string[]
enriched.smtp object
enriched.smtp.host string
enriched.smtp.port integer
enriched.smtp.reachable boolean
enriched.smtp.tls_mode string
enriched.smtp.tls_negotiated boolean
enriched.smtp.tls_protocol string
enriched.smtp.tls_cipher string
enriched.smtp.starttls_offered boolean | null
enriched.smtp.banner string
enriched.smtp.error string
enriched.smtp.fcrdns object
enriched.smtp.fcrdns.addresses[] string[]
enriched.smtp.fcrdns.ptr_hostnames[] string[]
enriched.smtp.fcrdns.all_forward_confirmed boolean
enriched.smtp.fcrdns.confirmed_addresses[] string[]
enriched.smtp.fcrdns.unconfirmed_addresses[] string[]
warnings[] string[]
recommendations[] string[]
details object
health_checks[] object[]
health_checks[] object
health_checks[].category string
health_checks[].name string
health_checks[].passed boolean
health_checks[].score integer
health_checks[].weight integer
health_checks[].details string | null
checked_at string
meta object
meta.check_duration_ms integer
meta.served_by string
meta.worker_version string

Richiesta di esempio

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

Risposta di esempio

{
  "domain": "cloudflare.com",
  "health_score": 94,
  "grade": "A",
  "checks": {
    "dns_configured": true,
    "ssl_valid": true,
    "email_deliverable": true,
    "blacklist_status": "clean",
    "age_years": 15,
    "registration_stable": true,
    "dnssec_enabled": true
  },
  "enriched": {
    "tls": {
      "grade": "A+",
      "protocol": "TLSv1.3",
      "cipher": "TLS_AES_256_GCM_SHA384",
      "chain_valid": true,
      "days_to_expiry": 72,
      "hostname_match": true,
      "ocsp_stapling": true,
      "grade_reasons": [
        "TLS 1.3 enabled",
        "Valid certificate chain"
      ]
    },
    "http_versions": {
      "http1_1": true,
      "http2": true,
      "http3": true,
      "alt_svc": "h3=\":443\"; ma=86400",
      "http3_advertised": true,
      "alt_svc_protocols": [
        "h3"
      ],
      "curl_http3_supported": true,
      "h2_alpn_accepted": "h2",
      "h3_alpn_accepted": "h3"
    },
    "hsts": {
      "reachable": true,
      "final_url": "https://cloudflare.com/",
      "status_code": 200,
      "header_present": true,
      "hsts_header": "max-age=31536000; includeSubDomains",
      "max_age": 31536000,
      "include_subdomains": true,
      "preload_directive": false,
      "preload_eligible": true,
      "preload_status": "preloaded",
      "preloaded_domain": "cloudflare.com",
      "preload_bulk": false,
      "issues": [
        "missing preload directive"
      ],
      "errors": []
    }
  },
  "warnings": [],
  "recommendations": [
    "Publish the HSTS preload directive if you want preload-list eligibility."
  ],
  "checked_at": "2026-04-18T21:00:00Z",
  "details": {
    "dns": {
      "has_a_record": true,
      "has_aaaa_record": true,
      "has_nameservers": true,
      "has_mx_record": true,
      "nameservers": [
        "ns3.cloudflare.com",
        "ns5.cloudflare.com"
      ],
      "mx_records": [
        "route1.mx.cloudflare.net"
      ],
      "a_records": [
        "104.16.132.229",
        "104.16.133.229"
      ],
      "aaaa_records": [
        "2606:4700::6810:84e5",
        "2606:4700::6810:85e5"
      ]
    },
    "ssl": {
      "https_works": true,
      "certificate_valid": true,
      "days_until_expiry": 72,
      "issuer": "Google Trust Services"
    },
    "email": {
      "has_mx": true,
      "has_spf": true,
      "has_dmarc": true,
      "has_dkim_selector": true,
      "spf_record": "v=spf1 include:_spf.google.com ~all",
      "dmarc_policy": "reject",
      "mx_hosts": [
        "route1.mx.cloudflare.net"
      ]
    },
    "security": {
      "dnssec_enabled": true,
      "has_caa_record": true,
      "caa_issuers": [
        "digicert.com",
        "letsencrypt.org"
      ],
      "http_to_https_redirect": true,
      "has_security_txt": true,
      "security_txt_fields": [
        "Contact",
        "Expires",
        "Preferred-Languages"
      ],
      "security_headers": {
        "has_hsts": true,
        "hsts_max_age": 31536000,
        "has_csp": true,
        "has_x_frame_options": true,
        "has_x_content_type_options": true,
        "has_referrer_policy": true,
        "has_permissions_policy": true,
        "score": 92
      }
    },
    "age": {
      "registration_date": "2010-07-06T00:00:00Z",
      "expiration_date": "2030-07-06T00:00:00Z",
      "last_updated": "2025-07-06T00:00:00Z",
      "age_days": 5766,
      "age_years": 15,
      "days_until_expiry": 1540,
      "registrar": "Cloudflare Registrar"
    },
    "blacklist": {
      "clean": true,
      "status": "clean",
      "listed_on": [],
      "checked_lists": [
        "spamhaus",
        "surbl"
      ],
      "domain_listed_on": [],
      "ip_listed_on": [],
      "check_type": "mixed"
    }
  },
  "health_checks": [
    {
      "category": "dns",
      "name": "Authoritative DNS records present",
      "passed": true,
      "score": 100,
      "weight": 15
    }
  ],
  "meta": {
    "check_duration_ms": 248,
    "served_by": "pop=MAD country=ES",
    "worker_version": "2.0.0"
  }
}
GET /v1/health/quick

Parametri di query

Parametro Tipo obbligatorio
domain string obbligatorio

Campi di risposta

Campo Tipo
domain string
dns_ok boolean
https_ok boolean
checked_at string
meta object
meta.check_duration_ms integer

Richiesta di esempio

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

Risposta di esempio

{
  "domain": "example.com",
  "dns_ok": true,
  "https_ok": true,
  "checked_at": "2026-04-18T21:00:00Z",
  "meta": {
    "check_duration_ms": 89
  }
}

Utilizzato da persone di aziende straordinarie

VercelLLM PulseOLXCasa ModernaPipeCal.comBeehiivSnykTogglRemoteSprigDeel