개발자 참고자료
도메인 건강 상태 API 문서
도메인 건강 상태 API 문서: DNS, SSL, 웹사이트 도달성 및 보안 헤더를 포함한 도메인의 종합 건강 상태 확인입니다.
도메인 건강 상태
DNS, SSL, 웹사이트 도달성 및 보안 헤더를 포함한 도메인의 종합 건강 상태 확인입니다.
GET
/v1/health
쿼리 매개변수
| 매개변수 | 유형 | 필수 |
|---|---|---|
| domain | string | 필수 |
| details | boolean | 선택 사항 |
응답 필드
| 필드 | 유형 |
|---|---|
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 |
예제 요청
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/health?domain=example.com&details=example.com"
예제 응답
{
"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
쿼리 매개변수
| 매개변수 | 유형 | 필수 |
|---|---|---|
| domain | string | 필수 |
응답 필드
| 필드 | 유형 |
|---|---|
domain |
string |
dns_ok |
boolean |
https_ok |
boolean |
checked_at |
string |
meta |
object |
meta.check_duration_ms |
integer |
예제 요청
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/health/quick?domain=example.com"
예제 응답
{
"domain": "example.com",
"dns_ok": true,
"https_ok": true,
"checked_at": "2026-04-18T21:00:00Z",
"meta": {
"check_duration_ms": 89
}
}