{
    "ok": true,
    "domain": "plainenglish.io",
    "generated_at": "2026-08-10T21:24:24-05:00",
    "cache": {
        "hit": true,
        "ttl": 0
    },
    "score": {
        "total": 73,
        "label": "Fair",
        "categories": {
            "dns": 85,
            "mail": 65,
            "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": "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": 15,
                "lost_points": 0,
                "detail": "DS and DNSKEY detected."
            },
            {
                "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": "5 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": 0,
                "lost_points": 25,
                "detail": "DMARC policy not found."
            },
            {
                "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": "38 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": "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": "ok",
                "title": "DNSSEC chain",
                "detail": "DS and DNSKEY detected.",
                "category": "dns",
                "max_points": 15,
                "earned_points": 15,
                "lost_points": 0
            },
            {
                "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": "5 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": "error",
                "title": "DMARC",
                "detail": "DMARC policy not found.",
                "category": "mail",
                "max_points": 25,
                "earned_points": 0,
                "lost_points": 25
            },
            {
                "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": "38 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": [
                "216.150.1.1"
            ],
            "AAAA": [],
            "CNAME": [],
            "MX": [
                "5 alt1.aspmx.l.google.com.",
                "5 alt2.aspmx.l.google.com.",
                "10 alt3.aspmx.l.google.com.",
                "10 alt4.aspmx.l.google.com.",
                "1 aspmx.l.google.com."
            ],
            "TXT": [
                "\"v=DMARC1; p=none; rua=mailto:reports@dmarc.notify.cx::text\"",
                "\"bm-site-verification=87c7831c399aefbdad04d14e4178fe18b7e3cf99\"",
                "\"nfJc9JdXXUo9iGnKlPEfzXDxFN0cW387NNX8Xojy71U=\"",
                "\"v=spf1 include:_spf.google.com include:spf.revue.co include:amazonses.com ~all\""
            ],
            "NS": [
                "ns-cloud-b1.googledomains.com.",
                "ns-cloud-b4.googledomains.com.",
                "ns-cloud-b3.googledomains.com.",
                "ns-cloud-b2.googledomains.com."
            ],
            "SOA": [
                "ns-cloud-b1.googledomains.com. cloud-dns-hostmaster.google.com. 51 21600 3600 259200 300"
            ],
            "CAA": [],
            "DS": [
                "30694 8 2 8115BD08896C1AD43AAAC5EA625EA58FE5FD37C9BFFC1014FC17DD2A CC0A34A1"
            ],
            "DNSKEY": [
                "257 3 8 AwEAAYg7eQV10cM7stOLVHIOCFbfv3FWD7v1WMRZlEBBSfq93JOXm/Iq mOuEiXZHPVm59ri/NfAP/2NOFMe9YHeXRFJsU6LCr/VRL6A1Pgw3qwRo qOL2i8WQa+EBzF6M1jaCy31IzIMh3gEqgkG0WnbeOIuKRQhDib9MQx6L 0RW23crYXDB2ymxiFbqevqHWpz+T5mzOUMy6/p5Z+QrhVybSU0onrALl sWdVQRxeRXIeKoZU+GWoD/3v9uReiN6GrKhxqKC/vA8gXuACF+ytqpm9 AS/3W6/RdKoDUYS/YwY6xHsWHpTzl77JgMU5WuozqgwIooU2KdfZ+Kci OIKTA3kOVIk=",
                "256 3 8 AwEAAZ3MgK6ZNCcUweA/UZs4/E+tC+ZHNKS/SvSAf6t6sKiA43wUHDfv Hk9Fgia7RZkz3G6yb2ieqFwLFhgh+eB4RVlHkCQxg5IjDmUSZcY3uYIO 5JNh9Ybg+IVmDbDOadGovi7GkXbLPDSxYVjTQ0gmJzd/whswt5/43Fcp rTla3XdF"
            ],
            "RRSIG": [
                "DS 8 2 3600 20260830160952 20260809150952 46863 io. Iem8YkYvOL/L5AuBelA1Lc5dDpje6rYkd1BHtcGsJubWqPpzg0So7xkG ChQrZP2kEneynpMtUiewLSYqqEdL89GJg82uhFW8L75mrT725JiL9YZl Ed6+AdEsLRaCfraL8J0bCqY6QGyRsDsyGKAqmk0QDKc6u1kLeNOSUfW7 LUM=",
                "NS 8 2 21600 20260829194442 20260807194442 5085 plainenglish.io. jZFEs4KFAqjstU+mRK8n2d6KpEiiUEeaaWy8lCBXTCJdaMA/wORYRlp7 kM40v8dJ06yLkdsmtJepkBLpAUQAsWO/4rP8ZkIv5I3fWgFGM39wH/Bw KPBWMfbUHja3XkXzLRbhESiQ2SHUyedG2Td0Ncy3IuFgvelblWQQu1wj keA=",
                "SOA 8 2 21600 20260829194442 20260807194442 5085 plainenglish.io. UjrtgSHNWt3sQnwQW0OO8qnOuxmycFCwm9cqXPYDFk+G7BIprUcMgriQ TMDOfV4KSXIFJPRN3j62h1Lxhz6A6ll65Lxw3WlnRK+UpKOqgg9Ivh9F Iq2qnfgy4hH477JF0JPtOx4mjP1SS2CnmVv0w4lzJ8mRRPx/Z3cFVJ/a fbw=",
                "MX 8 2 14400 20260829194442 20260807194442 5085 plainenglish.io. QFf+vLz4LAvIhgZdv36ggXmP2Gq50fcvDyd57o87gAIiSIXoQxnA8HaJ ju6Cl3WbSR0RQsORWqqDI/W4kA74TnJ4B1hmV1ZR0+Wt1iSUnjUAiPVa jZcuw4DbRftQ6KO+ye861keVwbYmF4KZudtIJffdDAmhTOQ8W2k2vHt8 bDc=",
                "A 8 2 14400 20260829194442 20260807194442 5085 plainenglish.io. iQENRDsEXVrs+D0B1jBYXUbRJYs4aAffPPe/G5b/msa4EzNuUW8dg11R 95M/Vemg5RtqJ3XXQXI4M6foG99AuWHc6lVe7TmN7g0XGz1K7hJM5y5Y 7MW8WultsDyXOuquA6x+GfoCV2G8gEAQMp2pxfgv0Q9uuG56btiy2b2h oqM="
            ],
            "NSEC": [],
            "NSEC3": [],
            "SRV": [],
            "NAPTR": [],
            "TLSA": [],
            "SSHFP": []
        },
        "ipv4": [
            "216.150.1.1"
        ],
        "ipv6": []
    },
    "mail": {
        "spf": "v=spf1 include:_spf.google.com include:spf.revue.co include:amazonses.com ~all",
        "dmarc": "",
        "dkim_selector": "google",
        "dkim_host": "google._domainkey.plainenglish.io",
        "dkim": "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs3FdfjjOWEZjtbD5X/F7BdjjN3P586fBytpoZsumYd+I7SHAQlUGtPfIwgt+Q2AD2Wrl2M84lwPVQ0NHbfrcPUS7X6KCX5lpjLbQJGpEvTIR5XVgbIcTJc8WYaOZ4reeeVW3x+9m7atAMl1FLhYGcBk5pbY/CHAQaUUa+2NRA1diXznCo8XXTSGBjn+OqGuh9jj1C4L8GqcnFz1pStajfABQnlgCQhmEh2TK3gGRBfDgsLCrTW7o7JZsbbmtxCiXd/FWsr0YJHxsXJK8V5U9MHSt8Gj6//tfUeixA615a449N40JXasa6PcDGvoKrUzYH5LuQGRKr7XNdKbgmikghQIDAQAB",
        "spf_analysis": {
            "valid": true,
            "lookups": 3,
            "final": "~all",
            "message": "Within the estimated limit"
        },
        "dmarc_analysis": {
            "valid": false,
            "policy": ""
        },
        "bimi": "",
        "mta_sts": "",
        "tls_rpt": ""
    },
    "advanced": {
        "ptr": "",
        "propagation": {
            "consistent": true,
            "results": [
                {
                    "provider": "Google",
                    "server": "8.8.8.8",
                    "result": [
                        "216.150.1.1"
                    ],
                    "time_ms": 61.74
                },
                {
                    "provider": "Cloudflare",
                    "server": "1.1.1.1",
                    "result": [
                        "216.150.1.1"
                    ],
                    "time_ms": 77.31
                },
                {
                    "provider": "Quad9",
                    "server": "9.9.9.9",
                    "result": [
                        "216.150.1.1"
                    ],
                    "time_ms": 50.28
                },
                {
                    "provider": "OpenDNS",
                    "server": "208.67.222.222",
                    "result": [
                        "216.150.1.1"
                    ],
                    "time_ms": 138.03
                },
                {
                    "provider": "AdGuard",
                    "server": "94.140.14.14",
                    "result": [
                        "216.150.1.1"
                    ],
                    "time_ms": 143.25
                }
            ]
        }
    },
    "ssl": {
        "available": true,
        "issuer": "Let's Encrypt",
        "subject": "plainenglish.io",
        "valid_from": "2026-06-20T02:14:41-05:00",
        "valid_to": "2026-09-18T02:14:40-05:00",
        "days_remaining": 38,
        "san": [
            "plainenglish.io"
        ],
        "protocol": "TLSv1.3",
        "cipher": "TLS_AES_128_GCM_SHA256"
    },
    "http": {
        "url": "https://plainenglish.io/",
        "status": "HTTP/2 200 ",
        "http_version": "3",
        "headers": {
            "age": "262",
            "cache-control": "public, max-age=0, must-revalidate",
            "content-type": "text/html; charset=utf-8",
            "date": "Tue, 11 Aug 2026 01:19:42 GMT",
            "etag": "\"is7krfj5d773px\"",
            "server": "Vercel",
            "strict-transport-security": "max-age=63072000",
            "vary": "RSC, Next-Router-State-Tree, Next-Router-Prefetch",
            "x-matched-path": "/",
            "x-powered-by": "Next.js",
            "x-vercel-cache": "HIT",
            "x-vercel-id": "cle1::iad1::s7th4-1786415056020-3e22b0c341da",
            "content-length": "331621"
        },
        "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": "Vercel",
        "powered_by": "Next.js"
    },
    "webpage": {
        "url": "https://plainenglish.io/",
        "title": "In Plain English",
        "description": "In Plain English is a leading tech media company founded in 2018. We're home to some of the world's most recognized tech publications, including JavaScript In Plain English, Python In Plain English and AI in Plain English. With contributions from over 50,000 writers and over 80,000 published articles, we've helped educate millions of readers globally. Today, our platform reaches audiences in over 190 countries and has surpassed 200 million views across all content.",
        "success": true,
        "error": "",
        "status": 200
    },
    "network": {
        "216.150.1.1": {
            "success": false,
            "country": "",
            "region": "",
            "city": "",
            "asn": "",
            "organization": "",
            "isp": ""
        }
    },
    "smtp": {
        "host": "alt1.aspmx.l.google.com",
        "ports": [
            {
                "port": 25,
                "open": false,
                "time_ms": 0.7,
                "banner": "",
                "error": "Network is unreachable"
            },
            {
                "port": 465,
                "open": false,
                "time_ms": 4019.8,
                "banner": "",
                "error": "Connection timed out"
            },
            {
                "port": 587,
                "open": false,
                "time_ms": 4020.6,
                "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": 80.8
}