{
    "ok": true,
    "domain": "ubalt.edu",
    "generated_at": "2026-08-10T20:24:59-05:00",
    "cache": {
        "hit": true,
        "ttl": 0
    },
    "score": {
        "total": 74,
        "label": "Fair",
        "categories": {
            "dns": 70,
            "mail": 90,
            "security": 65,
            "network": 20,
            "availability": 100
        },
        "category_weights": {
            "dns": 25,
            "mail": 20,
            "security": 25,
            "network": 10,
            "availability": 20
        },
        "items": [
            {
                "category": "dns",
                "title": "IPv4 (A)",
                "max_points": 30,
                "earned_points": 30,
                "lost_points": 0,
                "detail": "1 IPv4 address(es) detected."
            },
            {
                "category": "dns",
                "title": "IPv6 (AAAA)",
                "max_points": 10,
                "earned_points": 0,
                "lost_points": 10,
                "detail": "0 IPv6 address(es) detected."
            },
            {
                "category": "dns",
                "title": "Name server redundancy",
                "max_points": 20,
                "earned_points": 20,
                "lost_points": 0,
                "detail": "4 NS record(s); 2 or more required."
            },
            {
                "category": "dns",
                "title": "SOA record",
                "max_points": 10,
                "earned_points": 10,
                "lost_points": 0,
                "detail": "Authoritative zone record."
            },
            {
                "category": "dns",
                "title": "DNSSEC chain",
                "max_points": 15,
                "earned_points": 0,
                "lost_points": 15,
                "detail": "Both DS and DNSKEY are required."
            },
            {
                "category": "dns",
                "title": "CAA policy",
                "max_points": 5,
                "earned_points": 0,
                "lost_points": 5,
                "detail": "Certificate authority restriction."
            },
            {
                "category": "dns",
                "title": "DNS propagation",
                "max_points": 10,
                "earned_points": 10,
                "lost_points": 0,
                "detail": "Agreement between public resolvers."
            },
            {
                "category": "mail",
                "title": "MX records",
                "max_points": 20,
                "earned_points": 20,
                "lost_points": 0,
                "detail": "1 MX record(s)."
            },
            {
                "category": "mail",
                "title": "SPF",
                "max_points": 25,
                "earned_points": 25,
                "lost_points": 0,
                "detail": "SPF policy published."
            },
            {
                "category": "mail",
                "title": "DMARC",
                "max_points": 25,
                "earned_points": 25,
                "lost_points": 0,
                "detail": "DMARC policy published."
            },
            {
                "category": "mail",
                "title": "DKIM",
                "max_points": 20,
                "earned_points": 20,
                "lost_points": 0,
                "detail": "A DKIM selector was verified."
            },
            {
                "category": "mail",
                "title": "MTA-STS",
                "max_points": 5,
                "earned_points": 0,
                "lost_points": 5,
                "detail": "Mail transport policy."
            },
            {
                "category": "mail",
                "title": "TLS-RPT",
                "max_points": 5,
                "earned_points": 0,
                "lost_points": 5,
                "detail": "TLS reporting policy."
            },
            {
                "category": "security",
                "title": "Valid TLS certificate",
                "max_points": 55,
                "earned_points": 55,
                "lost_points": 0,
                "detail": "183 day(s) remaining."
            },
            {
                "category": "security",
                "title": "Certificate lifetime",
                "max_points": 10,
                "earned_points": 10,
                "lost_points": 0,
                "detail": "Full points require at least 30 days remaining."
            },
            {
                "category": "security",
                "title": "HTTP security headers",
                "max_points": 35,
                "earned_points": 0,
                "lost_points": 35,
                "detail": "0 of 9 evaluated headers detected."
            },
            {
                "category": "network",
                "title": "PTR reverse DNS",
                "max_points": 30,
                "earned_points": 0,
                "lost_points": 30,
                "detail": "PTR not detected."
            },
            {
                "category": "network",
                "title": "IPv4 diversity",
                "max_points": 35,
                "earned_points": 20,
                "lost_points": 15,
                "detail": "Two or more IPv4 addresses receive full points."
            },
            {
                "category": "network",
                "title": "IPv6 connectivity",
                "max_points": 35,
                "earned_points": 0,
                "lost_points": 35,
                "detail": "AAAA availability."
            },
            {
                "category": "availability",
                "title": "DNS resolution",
                "max_points": 40,
                "earned_points": 40,
                "lost_points": 0,
                "detail": "At least one address family must resolve."
            },
            {
                "category": "availability",
                "title": "HTTP response",
                "max_points": 40,
                "earned_points": 40,
                "lost_points": 0,
                "detail": "HTTP/1.1 200 OK"
            },
            {
                "category": "availability",
                "title": "HTTPS final URL",
                "max_points": 20,
                "earned_points": 20,
                "lost_points": 0,
                "detail": "Final URL uses HTTPS."
            }
        ],
        "methodology": "Each category is normalized to 100. The total is the weighted sum: DNS 25%, Email 20%, Security 25%, Network 10%, Availability 20%.",
        "diagnostics": [
            {
                "level": "ok",
                "title": "IPv4 (A)",
                "detail": "1 IPv4 address(es) detected.",
                "category": "dns",
                "max_points": 30,
                "earned_points": 30,
                "lost_points": 0
            },
            {
                "level": "error",
                "title": "IPv6 (AAAA)",
                "detail": "0 IPv6 address(es) detected.",
                "category": "dns",
                "max_points": 10,
                "earned_points": 0,
                "lost_points": 10
            },
            {
                "level": "ok",
                "title": "Name server redundancy",
                "detail": "4 NS record(s); 2 or more required.",
                "category": "dns",
                "max_points": 20,
                "earned_points": 20,
                "lost_points": 0
            },
            {
                "level": "ok",
                "title": "SOA record",
                "detail": "Authoritative zone record.",
                "category": "dns",
                "max_points": 10,
                "earned_points": 10,
                "lost_points": 0
            },
            {
                "level": "error",
                "title": "DNSSEC chain",
                "detail": "Both DS and DNSKEY are required.",
                "category": "dns",
                "max_points": 15,
                "earned_points": 0,
                "lost_points": 15
            },
            {
                "level": "error",
                "title": "CAA policy",
                "detail": "Certificate authority restriction.",
                "category": "dns",
                "max_points": 5,
                "earned_points": 0,
                "lost_points": 5
            },
            {
                "level": "ok",
                "title": "DNS propagation",
                "detail": "Agreement between public resolvers.",
                "category": "dns",
                "max_points": 10,
                "earned_points": 10,
                "lost_points": 0
            },
            {
                "level": "ok",
                "title": "MX records",
                "detail": "1 MX record(s).",
                "category": "mail",
                "max_points": 20,
                "earned_points": 20,
                "lost_points": 0
            },
            {
                "level": "ok",
                "title": "SPF",
                "detail": "SPF policy published.",
                "category": "mail",
                "max_points": 25,
                "earned_points": 25,
                "lost_points": 0
            },
            {
                "level": "ok",
                "title": "DMARC",
                "detail": "DMARC policy published.",
                "category": "mail",
                "max_points": 25,
                "earned_points": 25,
                "lost_points": 0
            },
            {
                "level": "ok",
                "title": "DKIM",
                "detail": "A DKIM selector was verified.",
                "category": "mail",
                "max_points": 20,
                "earned_points": 20,
                "lost_points": 0
            },
            {
                "level": "error",
                "title": "MTA-STS",
                "detail": "Mail transport policy.",
                "category": "mail",
                "max_points": 5,
                "earned_points": 0,
                "lost_points": 5
            },
            {
                "level": "error",
                "title": "TLS-RPT",
                "detail": "TLS reporting policy.",
                "category": "mail",
                "max_points": 5,
                "earned_points": 0,
                "lost_points": 5
            },
            {
                "level": "ok",
                "title": "Valid TLS certificate",
                "detail": "183 day(s) remaining.",
                "category": "security",
                "max_points": 55,
                "earned_points": 55,
                "lost_points": 0
            },
            {
                "level": "ok",
                "title": "Certificate lifetime",
                "detail": "Full points require at least 30 days remaining.",
                "category": "security",
                "max_points": 10,
                "earned_points": 10,
                "lost_points": 0
            },
            {
                "level": "error",
                "title": "HTTP security headers",
                "detail": "0 of 9 evaluated headers detected.",
                "category": "security",
                "max_points": 35,
                "earned_points": 0,
                "lost_points": 35
            },
            {
                "level": "error",
                "title": "PTR reverse DNS",
                "detail": "PTR not detected.",
                "category": "network",
                "max_points": 30,
                "earned_points": 0,
                "lost_points": 30
            },
            {
                "level": "warning",
                "title": "IPv4 diversity",
                "detail": "Two or more IPv4 addresses receive full points.",
                "category": "network",
                "max_points": 35,
                "earned_points": 20,
                "lost_points": 15
            },
            {
                "level": "error",
                "title": "IPv6 connectivity",
                "detail": "AAAA availability.",
                "category": "network",
                "max_points": 35,
                "earned_points": 0,
                "lost_points": 35
            },
            {
                "level": "ok",
                "title": "DNS resolution",
                "detail": "At least one address family must resolve.",
                "category": "availability",
                "max_points": 40,
                "earned_points": 40,
                "lost_points": 0
            },
            {
                "level": "ok",
                "title": "HTTP response",
                "detail": "HTTP/1.1 200 OK",
                "category": "availability",
                "max_points": 40,
                "earned_points": 40,
                "lost_points": 0
            },
            {
                "level": "ok",
                "title": "HTTPS final URL",
                "detail": "Final URL uses HTTPS.",
                "category": "availability",
                "max_points": 20,
                "earned_points": 20,
                "lost_points": 0
            }
        ]
    },
    "dns": {
        "records": {
            "A": [
                "204.52.129.211"
            ],
            "AAAA": [],
            "CNAME": [],
            "MX": [
                "10 ubalt-edu.mail.protection.outlook.com."
            ],
            "TXT": [
                "\"adobe-idp-site-verification=ce43e38f-5282-4e7d-b2b4-6009a2fdeaa3\"",
                "\"MS=ms10075288\"",
                "\"ZOOM_verify_jSwZzP5EQ7qwN4U060A3TA\"",
                "\"C4E7FE000C192C2491EED516B94CA0AD856B3CD9\"",
                "\"docusign=c4133204-59a8-441b-ab83-b386ab6f188a\"",
                "\"d365mktkey=7BBNfcfkAx49B0M4SgSzXTvBntDxmiBQJ4EVmhzGGsAx\"",
                "\"d365mktkey=5N9h3OUrbN1hhHDKLtsAutYLQwpZuc3BiyrGya0ACrUx\"",
                "\"jamf-site-verification=D55-r55yOXMA4uBjGVZcWA\"",
                "\"9W4JyvEB/X97HsdrITP32hJVDH9f7ISZLkrbYhhKxLxbt63s3A9vl8XGmU+4J7AimQnld7kjtciPjhc63oUJhw==\"",
                "\"v=spf1 mx ip4:204.52.131.41/32 ip4:204.52.131.46/32 include:spf.protection.outlook.com include:spf1.ubalt.edu include:spf2.ubalt.edu include:spf3.ubalt.edu include:spf4.ubalt.edu include:mailgun.org ~all\"",
                "\"apple-domain-verification=8ziHJ6gGqCzOSVqI\"",
                "\"airtable-verification=3570bc35afd01ff82c12be8e9e4632f2\""
            ],
            "NS": [
                "ns-898.awsdns-48.net.",
                "ns-252.awsdns-31.com.",
                "ns-1065.awsdns-05.org.",
                "ns-1810.awsdns-34.co.uk."
            ],
            "SOA": [
                "ns-1810.awsdns-34.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400"
            ],
            "CAA": [],
            "DS": [],
            "DNSKEY": [],
            "RRSIG": [],
            "NSEC": [],
            "NSEC3": [],
            "SRV": [],
            "NAPTR": [],
            "TLSA": [],
            "SSHFP": []
        },
        "ipv4": [
            "204.52.129.211"
        ],
        "ipv6": []
    },
    "mail": {
        "spf": "v=spf1 mx ip4:204.52.131.41/32 ip4:204.52.131.46/32 include:spf.protection.outlook.com include:spf1.ubalt.edu include:spf2.ubalt.edu include:spf3.ubalt.edu include:spf4.ubalt.edu include:mailgun.org ~all",
        "dmarc": "v=DMARC1; p=none; rua=mailto:dmarc@ubalt.edu",
        "dkim_selector": "mx",
        "dkim_host": "mx._domainkey.ubalt.edu",
        "dkim": "k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA34k++gRDKQalgfvUFvBzgDa1wNm1D0L/Nx9PeVlstbXbqvqxK/2t6SJcCo2NpXsEYNTAnx0x0+BFZ8GKejETE0T821FA6kH/1iS64TD0C1N2VihaXqQxOkgh7iOFpSjOe9hAHtEoomtYuGzA6kKPk+PUznAQMyb6Ov6cdZbLkIqGWurQ0jVcV3JJCXrTo/Fb/KT65N+AXyZmUkHwsoiLRsKkxmpz0yilx/N1Jm0F6pMzGD8TTzdM8cVG9e9pAiL2SajxH0R10xR5pkAVbNluZDBt4u9z/pEV9e/4PCHDPvG86mMHBjhKmqTWhqxqND3kMaYSjryX1N0LRfEGqYDy9wIDAQAB",
        "spf_analysis": {
            "valid": true,
            "lookups": 7,
            "final": "~all",
            "message": "Within the estimated limit"
        },
        "dmarc_analysis": {
            "valid": true,
            "policy": "none"
        },
        "bimi": "",
        "mta_sts": "",
        "tls_rpt": ""
    },
    "advanced": {
        "ptr": "",
        "propagation": {
            "consistent": true,
            "results": [
                {
                    "provider": "Google",
                    "server": "8.8.8.8",
                    "result": [
                        "204.52.129.211"
                    ],
                    "time_ms": 93.06
                },
                {
                    "provider": "Cloudflare",
                    "server": "1.1.1.1",
                    "result": [
                        "204.52.129.211"
                    ],
                    "time_ms": 67.37
                },
                {
                    "provider": "Quad9",
                    "server": "9.9.9.9",
                    "result": [
                        "204.52.129.211"
                    ],
                    "time_ms": 79.46
                },
                {
                    "provider": "OpenDNS",
                    "server": "208.67.222.222",
                    "result": [
                        "204.52.129.211"
                    ],
                    "time_ms": 38.54
                },
                {
                    "provider": "AdGuard",
                    "server": "94.140.14.14",
                    "result": [
                        "204.52.129.211"
                    ],
                    "time_ms": 60.8
                }
            ]
        }
    },
    "ssl": {
        "available": true,
        "issuer": "DigiCert Inc",
        "subject": "*.ubalt.edu",
        "valid_from": "2026-07-26T19:00:00-05:00",
        "valid_to": "2027-02-10T17:59:59-06:00",
        "days_remaining": 183,
        "san": [
            "*.ubalt.edu",
            "ubalt.edu"
        ],
        "protocol": "TLSv1.2",
        "cipher": "ECDHE-RSA-AES128-GCM-SHA256"
    },
    "http": {
        "url": "https://www.ubalt.edu/",
        "status": "HTTP/1.1 200 OK",
        "http_version": "2",
        "headers": {
            "content-length": "145",
            "content-type": "text/html;charset=UTF-8",
            "location": "https://www.ubalt.edu/",
            "server": "Microsoft-IIS/10.0",
            "x-powered-by": "ASP.NET",
            "access-control-allow-origin": "*",
            "date": "Tue, 11 Aug 2026 01:24:47 GMT",
            "set-cookie": "f5avraaaaaaaaaaaaaaaa_session_=GOFJJAHGPHLLMBGKMLAPOJDLPFKKFGDDNNKBFJLNEFILDNHPKFMAKGFPHEKOGDIIJOGDJMLOIJJAADKLPPJAMHDHEHMBDNEKLEPFEMLPNOHGBKGICJLMGKLEOPNLDGJP; HttpOnly; secure;",
            "transfer-encoding": "chunked"
        },
        "security_checks": {
            "strict-transport-security": false,
            "content-security-policy": false,
            "x-content-type-options": false,
            "x-frame-options": false,
            "referrer-policy": false,
            "permissions-policy": false,
            "cross-origin-opener-policy": false,
            "cross-origin-embedder-policy": false,
            "cross-origin-resource-policy": false
        },
        "server": "Microsoft-IIS/10.0",
        "powered_by": "ASP.NET"
    },
    "webpage": {
        "url": "https://www.ubalt.edu/",
        "title": "The University of Baltimore",
        "description": "The University of Baltimore: A public university in the heart of Baltimore, Maryland, offering career-focused undergraduate and graduate programs in business, law, public affairs, and applied arts and sciences. Discover our diverse academic programs, learn about admissions and financial aid, explore student life, and get to know our vibrant urban campus.",
        "success": true,
        "error": "",
        "status": 200
    },
    "network": {
        "204.52.129.211": {
            "success": false,
            "country": "",
            "region": "",
            "city": "",
            "asn": "",
            "organization": "",
            "isp": ""
        }
    },
    "smtp": {
        "host": "ubalt-edu.mail.protection.outlook.com",
        "ports": [
            {
                "port": 25,
                "open": false,
                "time_ms": 24.8,
                "banner": "",
                "error": "Connection refused"
            },
            {
                "port": 465,
                "open": false,
                "time_ms": 4021,
                "banner": "",
                "error": "Connection timed out"
            },
            {
                "port": 587,
                "open": false,
                "time_ms": 4043.1,
                "banner": "",
                "error": "Connection timed out"
            }
        ]
    },
    "visitor": {
        "ip": "216.73.217.62",
        "reverse": "",
        "country": "",
        "country_code": "",
        "region": "",
        "city": "",
        "latitude": null,
        "longitude": null,
        "isp": "",
        "organization": "",
        "asn": "",
        "timezone": "",
        "browser": "Other",
        "os": "Other",
        "language": "",
        "user_agent": "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)",
        "is_bot": true,
        "cloudflare": false
    },
    "analysis_time_ms": 88.79
}