Skip to main content
POST
/
api
/
ext
/
generic
/
dns
/
dns-health-check
DNS Security Health Check
curl --request POST \
  --url https://app.spotzee.com/api/ext/generic/dns/dns-health-check \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data domain=example.com
{
  "status": "success",
  "data": {
    "dataCompleteness": {
      "percentage": 100,
      "missingChecks": [],
      "failureReason": null
    },
    "dnssec": {
      "score": 0,
      "maxScore": 25,
      "isEnabled": {
        "result": false,
        "points": 0
      },
      "hasValidChain": {
        "result": false,
        "points": 0
      },
      "hasNSEC3": {
        "result": false,
        "points": 0,
        "value": {
          "algorithm": "",
          "iterations": 0,
          "saltLength": 0
        }
      },
      "keyAlgorithm": {
        "value": "",
        "points": 0
      },
      "info": [
        "DNSSEC is not enabled for this domain"
      ],
      "warnings": []
    },
    "dane": {
      "score": 0,
      "maxScore": 0,
      "tlsaRecords": {
        "result": false,
        "points": 0,
        "value": []
      },
      "emailTLSA": {
        "result": false,
        "points": 0,
        "value": []
      }
    },
    "caa": {
      "score": 15,
      "maxScore": 15,
      "isExists": {
        "result": true,
        "points": 5
      },
      "records": [
        {
          "name": "example.com",
          "type": 257,
          "TTL": 300,
          "data": "0 issue \"letsencrypt.org\""
        }
      ],
      "analysis": {
        "hasIssueTag": true,
        "hasIssuewildTag": false,
        "hasIncidentReporting": true,
        "isRestrictive": true,
        "authorizedCAs": [
          "letsencrypt.org"
        ],
        "totalRecords": 1
      }
    },
    "registryLock": {
      "score": 0,
      "maxScore": 20,
      "isLocked": {
        "result": false,
        "points": 0,
        "statuses": []
      },
      "domainAge": {
        "days": 8765,
        "displayAge": "24 years"
      },
      "clientLocks": {
        "active": [
          "clientTransferProhibited"
        ],
        "protections": {
          "transferProtection": true,
          "updateProtection": false,
          "deleteProtection": false,
          "domainHold": false
        },
        "summary": "Registrar protections: transfer protection"
      }
    },
    "infrastructure": {
      "score": 65,
      "maxScore": 70,
      "anycast": {
        "result": true,
        "points": 20,
        "value": {
          "confidence": {
            "score": 420,
            "level": "confirmed"
          },
          "provider": {
            "id": "cloudflare",
            "name": "Cloudflare",
            "confidence": "confirmed"
          },
          "detectionMethods": [
            "hostname-regex",
            "ip-cidr"
          ],
          "nameservers": [],
          "mixedDeployment": false
        }
      },
      "providerDiversity": {
        "result": false,
        "points": 0,
        "value": {}
      },
      "ipv6Support": {
        "result": true,
        "points": 12,
        "value": {}
      },
      "performance": {
        "result": true,
        "points": 14,
        "value": {}
      },
      "ddosProtection": {
        "result": true,
        "points": 19,
        "value": {}
      }
    },
    "authentication": {
      "score": 16,
      "maxScore": 22,
      "zoneTransferRestricted": {
        "result": true,
        "points": 11
      },
      "queryPortRandomization": {
        "result": true,
        "points": 8
      },
      "openResolver": {
        "result": false,
        "isProblematic": false,
        "points": 5
      },
      "dnsSoftware": {
        "result": true,
        "points": 4.25
      }
    },
    "monitoring": {
      "score": 33,
      "maxScore": 55,
      "anomalyDetection": {
        "result": true,
        "points": 18,
        "value": {}
      },
      "changeMonitoring": {
        "result": true,
        "points": 8,
        "value": {}
      },
      "responseTimeConsistency": {
        "result": true,
        "points": 7,
        "value": {}
      },
      "incidentHistory": {
        "result": true,
        "points": 0,
        "value": {}
      }
    },
    "privacy": {
      "score": 10,
      "maxScore": 15,
      "queryLogging": {
        "result": true,
        "points": 8
      },
      "dnsFirewall": {
        "result": true,
        "points": 10
      },
      "dnsExposureAssessment": {
        "result": true,
        "points": 16
      }
    },
    "abusePrevention": {
      "score": 32,
      "maxScore": 35,
      "subdomainTakeover": {
        "result": true,
        "isProblematic": false,
        "points": 20
      },
      "dnsTunneling": {
        "result": false,
        "points": 12
      },
      "sinkholing": {
        "result": false,
        "points": 0
      }
    },
    "operational": {
      "score": 20,
      "maxScore": 30,
      "ttlConfiguration": {
        "result": true,
        "points": 8,
        "score": 8
      },
      "certificateTransparency": {
        "result": false,
        "points": 0,
        "value": {}
      },
      "emailAuthentication": {
        "score": 12,
        "maxScore": 15,
        "spf": {},
        "dmarc": {},
        "dkim": {}
      }
    },
    "thirdPartyRisk": {
      "score": 20,
      "maxScore": 20,
      "providerSecurity": {
        "result": true,
        "points": 20
      },
      "geographicRisk": {
        "result": false,
        "points": 0
      }
    },
    "grading": {
      "grade": "B",
      "gradeDescription": "Good - Meets industry security standards with solid fundamentals",
      "score": 71,
      "recommendations": [
        "Enable DNSSEC for authentication and integrity",
        "Implement registry lock for domain protection"
      ],
      "methodology": {
        "scoringMethod": "Simple weighted average scoring",
        "gradeScale": "A: 85-100 | B: 70-84 | C: 55-69 | D: 40-54 | F: 0-39"
      },
      "assessmentMetadata": {
        "completeness": 100,
        "categoriesChecked": 13,
        "categoriesAssessed": [
          "dnssec",
          "caa",
          "dane",
          "registryLock",
          "infrastructure",
          "authentication",
          "monitoring",
          "privacy",
          "abusePrevention",
          "operational",
          "thirdPartyRisk"
        ]
      }
    }
  }
}

Authorizations

Authorization
string
header
required

Bearer token authentication. Use format: Bearer YOUR_API_KEY

Body

application/x-www-form-urlencoded
domain
string
required

Domain name to assess for DNS security

Required string length: 1 - 255
Example:

"example.com"

check_mode
enum<string>
default:quick

Assessment depth: quick for essential checks only, full for comprehensive assessment with enhanced grading

Available options:
quick,
full
Example:

"full"

Response

DNS health check completed successfully. Enhanced grading is included only when requested and applicable.

status
enum<string>
required
Available options:
success
data
object
required