{
    "ok": true,
    "domain": "staffs.ac.uk",
    "generated_at": "2026-08-12T15:39:47-05:00",
    "cache": {
        "hit": true,
        "ttl": 0
    },
    "score": {
        "total": 75,
        "label": "Good",
        "categories": {
            "dns": 70,
            "mail": 90,
            "security": 69,
            "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": "2 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": "192 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": 4,
                "lost_points": 31,
                "detail": "1 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/2 200 "
            },
            {
                "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": "2 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": "192 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": "warning",
                "title": "HTTP security headers",
                "detail": "1 of 9 evaluated headers detected.",
                "category": "security",
                "max_points": 35,
                "earned_points": 4,
                "lost_points": 31
            },
            {
                "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/2 200 ",
                "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": [
                "185.18.139.26"
            ],
            "AAAA": [],
            "CNAME": [],
            "MX": [
                "30 staffs-ac-uk.mail.protection.outlook.com."
            ],
            "TXT": [
                "\"google-site-verification=JVXA8KxKdW87BjBwjGY3Mvm-m6ufL0qvrPdJuFqHMxs\"",
                "\"autodesk-domain-verification=3SMLIzNe-1RITFTlFt3I\"",
                "\"google-site-verification=sPF_JWPLlPPVT-OdQ6bgMqShv7B_XucDWrboOjwe_zE\"",
                "\"QuoVadis=a00827a8-cdf6-4ee6-9d20-57164ed17296\"",
                "\"docusign=bd0bcba3-f854-426f-93eb-4d5d6beeb38c\"",
                "\"google-site-verification=Tn2mlSY2uwLUWTrzAhAAcbelTbXvD4i1cRewWZS5vto\"",
                "\"d365mktkey=xBPoggQ8FRXHCSo4utzyTbuSww1jcbju2Qi6CLcPwkkx\"",
                "\"MS=ms90379497\"",
                "\"cisco-ci-domain-verification=6afb3f3db23eb9420baced319e8cebd6ea12fa82a9b18a37f22fd73de1f0212f\"",
                "\"access-domain-verification=904f01d6c93c4eb9a26a2a98e332e794db57394d0f2a3900037b4555a9285949\"",
                "\"apple-domain-verification=0Gs8YCKZWIlWg2xM\"",
                "\"v=spf1 include:spf1.staffs.ac.uk include:spf2.staffs.ac.uk include:spf3.staffs.ac.uk ~all\""
            ],
            "NS": [
                "ns2.staffs.ac.uk.",
                "ns0.staffs.ac.uk."
            ],
            "SOA": [
                "ns0.staffs.ac.uk. postmaster.staffs.ac.uk. 2007088179 10800 3600 604800 3600"
            ],
            "CAA": [],
            "DS": [],
            "DNSKEY": [],
            "RRSIG": [],
            "NSEC": [],
            "NSEC3": [],
            "SRV": [],
            "NAPTR": [],
            "TLSA": [],
            "SSHFP": []
        },
        "ipv4": [
            "185.18.139.26"
        ],
        "ipv6": []
    },
    "mail": {
        "spf": "v=spf1 include:spf1.staffs.ac.uk include:spf2.staffs.ac.uk include:spf3.staffs.ac.uk ~all",
        "dmarc": "v=DMARC1; p=reject; rua=mailto:dmarc-rua@dmarc.service.gov.uk,mailto:postmaster@staffs.ac.uk; ruf=mailto:postmaster@staffs.ac.uk;sp=reject; aspf=r; adkim=r; ri=86400; fo=1",
        "dkim_selector": "selector1",
        "dkim_host": "selector1._domainkey.staffs.ac.uk",
        "dkim": "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2A0XfZqAkRzo1Tw7vcfc1S6EMXvR22Iqny2MvF86zg3HGavd10xnrY5W7TXDc7m1TZx5hHppm8nDmgNtpZgujW68UPgkVrPVw4ISetvKbEpA5NPrJnslEhpBVvomC/gKtbb1E994lCiXt6CtrGaY7u486NqL6XE2yWvfADRiD6QIDAQAB;",
        "spf_analysis": {
            "valid": true,
            "lookups": 3,
            "final": "~all",
            "message": "Within the estimated limit"
        },
        "dmarc_analysis": {
            "valid": true,
            "policy": "reject"
        },
        "bimi": "",
        "mta_sts": "",
        "tls_rpt": ""
    },
    "advanced": {
        "ptr": "",
        "propagation": {
            "consistent": true,
            "results": [
                {
                    "provider": "Google",
                    "server": "8.8.8.8",
                    "result": [
                        "185.18.139.26"
                    ],
                    "time_ms": 276.87
                },
                {
                    "provider": "Cloudflare",
                    "server": "1.1.1.1",
                    "result": [
                        "185.18.139.26"
                    ],
                    "time_ms": 160.22
                },
                {
                    "provider": "Quad9",
                    "server": "9.9.9.9",
                    "result": [
                        "185.18.139.26"
                    ],
                    "time_ms": 172.8
                },
                {
                    "provider": "OpenDNS",
                    "server": "208.67.222.222",
                    "result": [
                        "185.18.139.26"
                    ],
                    "time_ms": 210.48
                },
                {
                    "provider": "AdGuard",
                    "server": "94.140.14.14",
                    "result": [
                        "185.18.139.26"
                    ],
                    "time_ms": 220.79
                }
            ]
        }
    },
    "ssl": {
        "available": true,
        "issuer": "Sectigo Limited",
        "subject": "www.staffs.ac.uk",
        "valid_from": "2026-08-05T19:00:00-05:00",
        "valid_to": "2027-02-20T17:59:59-06:00",
        "days_remaining": 192,
        "san": [
            "www.staffs.ac.uk",
            "staffs.ac.uk"
        ],
        "protocol": "TLSv1.3",
        "cipher": "TLS_AES_128_GCM_SHA256"
    },
    "http": {
        "url": "https://www.staffs.ac.uk/",
        "status": "HTTP/2 200 ",
        "http_version": "3",
        "headers": {
            "content-length": "248496",
            "location": "https://www.staffs.ac.uk/",
            "content-type": "text/html; charset=utf-8",
            "x-contensis-viewer-groups": "0",
            "x-node": "14358",
            "x-depends": "14351 14310 16678 980 1258 16196 47051 16720 47689 793 14353 16680 56048 56049",
            "surrogate-control": "max-age=1800",
            "access-control-allow-origin": "*",
            "access-control-allow-methods": "GET, OPTIONS",
            "access-control-allow-headers": "*",
            "date": "Wed, 12 Aug 2026 20:29:50 GMT",
            "x-origin-server": "z-staffs-uni-WEB2",
            "x-host": "live-staffs-uni.cloud.contensis.com",
            "x-grace": "72h",
            "x-backend-ttl": "1800.000",
            "vary": "Accept-Encoding",
            "x-varnish": "343155016 316359441",
            "x-varnish-authentication": "skip",
            "x-age": "587",
            "cache-control": "no-cache, no-store",
            "pragma": "no-cache",
            "x-cache-aspx": "true",
            "expires": "-1",
            "accept-ranges": "bytes",
            "x-server-name": "z-staffs-uni-CACHE1",
            "strict-transport-security": "max-age=15768000",
            "x-geoip-country-code": "US"
        },
        "security_checks": {
            "strict-transport-security": true,
            "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": "",
        "powered_by": ""
    },
    "webpage": {
        "url": "https://www.staffs.ac.uk/",
        "title": "Home - University of Staffordshire",
        "description": "We are University of Staffordshire. We're connected to the needs of our students, to business and to society. Our city campus in Stoke-on-Trent is the University's nerve centre. We deliver world class healthcare education at our specialist Centre for Health Innovation in Stafford, and digital first courses at our London campus. We are also the educational home to a global network of more than 20,000 people study our degrees internationally.",
        "success": true,
        "error": "",
        "status": 206
    },
    "network": {
        "185.18.139.26": {
            "success": false,
            "country": "",
            "region": "",
            "city": "",
            "asn": "",
            "organization": "",
            "isp": ""
        }
    },
    "smtp": {
        "host": "staffs-ac-uk.mail.protection.outlook.com",
        "ports": [
            {
                "port": 25,
                "open": false,
                "time_ms": 27.3,
                "banner": "",
                "error": "Network is unreachable"
            },
            {
                "port": 465,
                "open": false,
                "time_ms": 4055.9,
                "banner": "",
                "error": "Connection timed out"
            },
            {
                "port": 587,
                "open": false,
                "time_ms": 4020.8,
                "banner": "",
                "error": "Connection timed out"
            }
        ]
    },
    "visitor": {
        "ip": "216.73.216.220",
        "reverse": "",
        "country": "United States",
        "country_code": "US",
        "region": "Ohio",
        "city": "Columbus",
        "latitude": 39.9586885,
        "longitude": -82.9986903,
        "isp": "Amazon.com, Inc.",
        "organization": "Anthropic, PBC",
        "asn": 16509,
        "timezone": "America/New_York",
        "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": 84.46
}