{
    "ok": true,
    "domain": "gavi.org",
    "generated_at": "2026-08-09T18:31:00-05:00",
    "cache": {
        "hit": true,
        "ttl": 0
    },
    "score": {
        "total": 83,
        "label": "Good",
        "categories": {
            "dns": 70,
            "mail": 90,
            "security": 88,
            "network": 50,
            "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": "2 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": "126 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": 23,
                "lost_points": 12,
                "detail": "6 of 9 evaluated headers detected."
            },
            {
                "category": "network",
                "title": "PTR reverse DNS",
                "max_points": 30,
                "earned_points": 30,
                "lost_points": 0,
                "detail": "PTR: ec2-52-209-189-171.eu-west-1.compute.amazonaws.com"
            },
            {
                "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": "2 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": "126 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": "6 of 9 evaluated headers detected.",
                "category": "security",
                "max_points": 35,
                "earned_points": 23,
                "lost_points": 12
            },
            {
                "level": "ok",
                "title": "PTR reverse DNS",
                "detail": "PTR: ec2-52-209-189-171.eu-west-1.compute.amazonaws.com",
                "category": "network",
                "max_points": 30,
                "earned_points": 30,
                "lost_points": 0
            },
            {
                "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": [
                "52.209.189.171"
            ],
            "AAAA": [],
            "CNAME": [],
            "MX": [
                "10 mxa-00475201.gslb.pphosted.com.",
                "10 mxb-00475201.gslb.pphosted.com."
            ],
            "TXT": [
                "\"MS=ms38081836\"",
                "\"docusign=aecc62a7-a3d8-4ab5-b121-45be15bd4da5\"",
                "\"swisssign-check=UwWqp1ishlXzp5ancK7vgn91hUGSFQIAW9HWEtzGFi\"",
                "\"_8zdu4zk9e9c8rs5g7cqft2rw78gdthc\"",
                "\"cisco-ci-domain-verification=497b1e42b20c14de323c001e4b0aeec7c20dacc4095b50564e9582e43f3d4674\"",
                "\"VVM+CxjYF13rZxhkIGmKHrKFH7QzQeVFNrZXiiINmpoNJj4ueAXJNFVr4S+Odvzs0qwV/9uLqyUS9dk6yX/pyA==\"",
                "\"cisco-ci-domain-verification=16979fd0abedb19e96d99be150994c64beaa72043d9318b28a7a9818ccefaec7\"",
                "\"_5hqa4k4jos5a06orghgxei7ng92t4od\"",
                "\"onetrust-domain-verification=349a079b46374709b46d830e4a32463e\"",
                "\"v=spf1 ip4:52.174.60.165 ip4:13.95.157.15 ip4:184.107.80.100 ip4:208.185.229.0/24 ip4:208.185.235.0/24 ip4:148.59.108.0/23 ip4:148.59.106.0/23 ip4:157.133.64.64 ip4:148.59.109.25 ip4:54.229.2.165 ip4:52.30.130.201 ip4:149.72.165.42 include:spf.protection.\" \"outlook.com include:_spf.salesforce.com include:_spf.zycus.com include:email.prnewswire.com include:spf-00475201.pphosted.com include:spf2.azavista.com -all\"",
                "\"g2nz92jtlpdfgpxctxpx39p4jvd6mhvq\"",
                "\"apple-domain-verification=ic9VJp9ht9j4Bagh\"",
                "\"00D0900000DYKEU=1TBVj00000001Dp\"",
                "\"_35l3w45hc9d5cw0kuc193q41gjunytb\"",
                "\"0l728zsc0tnh0dx8l4skwkxv3frwv18m\"",
                "\"atlassian-domain-verification=BpqdbYBBKfhxg8OuJmglxCqq6aBWuZW4IhJ52uqmRti4ly8I88nCWMFMM7va/mt/\"",
                "\"docusign=206fe3ae-97ed-442c-9a73-c30a6a6dac70\""
            ],
            "NS": [
                "dns102.register.com.",
                "dns101.register.com."
            ],
            "SOA": [
                "DNS101.REGISTER.COM. root.REGISTER.COM. 126071409 10800 3600 604800 3600"
            ],
            "CAA": [],
            "DS": [],
            "DNSKEY": [],
            "RRSIG": [],
            "NSEC": [],
            "NSEC3": [],
            "SRV": [],
            "NAPTR": [],
            "TLSA": [],
            "SSHFP": []
        },
        "ipv4": [
            "52.209.189.171"
        ],
        "ipv6": []
    },
    "mail": {
        "spf": "v=spf1 ip4:52.174.60.165 ip4:13.95.157.15 ip4:184.107.80.100 ip4:208.185.229.0/24 ip4:208.185.235.0/24 ip4:148.59.108.0/23 ip4:148.59.106.0/23 ip4:157.133.64.64 ip4:148.59.109.25 ip4:54.229.2.165 ip4:52.30.130.201 ip4:149.72.165.42 include:spf.protection.outlook.com include:_spf.salesforce.com include:_spf.zycus.com include:email.prnewswire.com include:spf-00475201.pphosted.com include:spf2.azavista.com -all",
        "dmarc": "v=DMARC1; p=reject; pct=100; rua=mailto:postmaster@gavi.org; ruf=mailto:postmaster@gavi.org; fo=1",
        "dkim_selector": "selector2",
        "dkim_host": "selector2._domainkey.gavi.org",
        "dkim": "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDfguqLfAsS0+AnNW3s2AnN6pRvggd66dcScAd39/IKiTYvWhcpf//AM6SBWCUwSUBFUnc3lAZ+ybD6ee/3gbmP6aRYPEuBs30blqPQUya78ACCv8CFA6TQ8eP7n7cIqeiKibEH0g+NbuuwtsedeVQUdfoyJK4uAwyX9GU1monFLQIDAQAB;",
        "spf_analysis": {
            "valid": true,
            "lookups": 6,
            "final": "-all",
            "message": "Within the estimated limit"
        },
        "dmarc_analysis": {
            "valid": true,
            "policy": "reject"
        },
        "bimi": "",
        "mta_sts": "",
        "tls_rpt": ""
    },
    "advanced": {
        "ptr": "ec2-52-209-189-171.eu-west-1.compute.amazonaws.com",
        "propagation": {
            "consistent": true,
            "results": [
                {
                    "provider": "Google",
                    "server": "8.8.8.8",
                    "result": [
                        "52.209.189.171"
                    ],
                    "time_ms": 117.78
                },
                {
                    "provider": "Cloudflare",
                    "server": "1.1.1.1",
                    "result": [
                        "52.209.189.171"
                    ],
                    "time_ms": 122.32
                },
                {
                    "provider": "Quad9",
                    "server": "9.9.9.9",
                    "result": [
                        "52.209.189.171"
                    ],
                    "time_ms": 164.33
                },
                {
                    "provider": "OpenDNS",
                    "server": "208.67.222.222",
                    "result": [
                        "52.209.189.171"
                    ],
                    "time_ms": 51.8
                },
                {
                    "provider": "AdGuard",
                    "server": "94.140.14.14",
                    "result": [
                        "52.209.189.171"
                    ],
                    "time_ms": 296.93
                }
            ]
        }
    },
    "ssl": {
        "available": true,
        "issuer": "DigiCert Inc",
        "subject": "*.gavi.org",
        "valid_from": "2025-11-17T18:00:00-06:00",
        "valid_to": "2026-12-13T17:59:59-06:00",
        "days_remaining": 126,
        "san": [
            "*.gavi.org",
            "gavi.org",
            "gavialliance.com",
            "gavialliance.org",
            "gotlife.gavi.org",
            "thevaccinealliance.org",
            "vaccineswork.org",
            "www.gavialliance.org",
            "www.thevaccinealliance.org",
            "www.vaccineswork.org"
        ],
        "protocol": "TLSv1.3",
        "cipher": "TLS_AES_256_GCM_SHA384"
    },
    "http": {
        "url": "https://www.gavi.org/",
        "status": "HTTP/2 200 ",
        "http_version": "3",
        "headers": {
            "server": "nginx",
            "date": "Sun, 09 Aug 2026 23:30:59 GMT",
            "content-type": "text/html; charset=UTF-8",
            "content-length": "229",
            "location": "https://www.gavi.org/",
            "x-content-type-options": "nosniff",
            "cache-control": "public, max-age=129, s-maxage=86400",
            "expires": "Sun, 09 Aug 2026 23:33:08 GMT",
            "x-request-id": "v-38a8016c-9402-11f1-b87c-037db364e6f7",
            "age": "203778",
            "via": "varnish",
            "x-cache": "HIT",
            "x-cache-hits": "10",
            "content-language": "en",
            "x-frame-options": "SAMEORIGIN",
            "surrogate-key": "kdn0 lsp8 mc97 6eu7 fu78 a4nn f23b o35s 997u ma8s 66gq a6g4 evnr hekm fhf5 25s8 vnbd sel6 de38 lh82 cab9 tsao su96 nd66 gp55 sflo i5a8 pa11 usdk dleg u9io c0c3 9ujh p6gj bufg 80d2 auia 930b 2s8d 3r7m reju 0p61 gvk0 j1s2 lk4j oneo cjsg k63u 2bi8 jk9q 1id1 kjsc o3bj 81v2 lnoe duee ftk6 jgcc vs2g adih ga6l 1n7f inbb g5or q72q vkum enea t9d3 6g0t lb2j 3p11 p34e jvgm b8mg 3c9c vvr2 kha9 7sa0 bs62 0tqu pce5 5nfn tu8o 4l6j cinl v8n5 drte 093c ig34 gd39 ro02 fec4 r3vg hmrm svb5 vcn5 lt4g hm80 p41r bdsg nq28 e2jr 9aah lrms g64a 5ud5 3a9i 1shp 7pr1 nt4i 2ut4 8jim no1j klm7 l4j8 qrid cmb5 5b2s s0rb q449 r8i3 r27q 96ia ltsj ibru 8heb p96m tgtm t0bo 9i0c 8jho mmjo l6u2 8vd0 c2i1 hb6j cojv vskf shm9 5ua2 u3d4 3e3b om42 nqs8 rk4t kqp4 n016 jbga l7ip qrf0 5d9q ld6b k0jt b5gs bhmp m984 rp9d 3utc mrmt 9dfh vg7j hn7h cnrn j0df gs10 vhu1 moul 4kim 2ues pgcu 2rkp cagj v0m0 ivgs 5s9j srao 22b8 l9c7 r1jd rtml n3o0 0aeo mok4 7se3 h2sv gi6n hpp7 lsii 4iro 5har phq1 kl0e 4hhq am8l 85cq nprf bqff s8dj m7ud nhp9 sl91 sp5o 62p3 i1ok pqcv upr3 egr8 vtnq 8rhp fa5c ktke ca26 6osa 45bh v0ur 2t67 bldo j4pr kff9 67o9 j8ce 6ngr gpsm qu4c 31ot 8ean pqc9 5h1q qkao 1ndq ukf8 hue4 2o51 22rn eu25 rrrq l1ur ak6i ohvb m421 s2h9 qvik eeqf 5s40 oh7c of8f iu14 550p l9tc cpnc 4d3s kn0l lkdd uuh9 9ck8 kpar l911 mmmv hdp2 5irh 202n t69o d4hc k6s8 j3df np63 s1bc 6aq5 28kc 2cqc ufk9 7np9 fe05 vap3 4h0d 5nvs 30ct",
            "content-security-policy": "script-src 'report-sample' 'self' 'unsafe-eval' https://js-agent.newrelic.com https://www.google-analytics.com https://www.googletagmanager.com  https://www.gstatic.com https://*.google.com https://platform-api.sharethis.com https://cdnjs.cloudflare.com https://bam.nr-data.net https://*.sharethis.com https://platform.twitter.com/widgets.js https://assets.juicer.io/embed.js https://pagecdn.io/ https://maps.googleapis.com https://cdn.jsdelivr.net https://www.recaptcha.net https://platform.twitter.com/ *.salesforce.com *.force.com *.visualforce.com *.documentforce.com https://www.googleoptimize.com/ https://connect.facebook.net *.flowpaper.com https://static.hotjar.com/ https://script.hotjar.com/ https://www.youtube.com/ https://static.userback.io/widget/v1.js https://px.ads.linkedin.com/ https://snap.licdn.com/ https://infogram.com https://datawrapper.dwcdn.net/ 'sha256-XDdTQDTSW9GXQm+oNV6uAR4kQd4sXVH7s10MJboO+MA=' 'sha256-dcgI0qvYUMPJvFFdu6Vg1ZCZqziJCmunVGLHLtSUdyk=' 'sha256-NZYcwTPcbCiVYxxtwylTLZHYsXaEo7x5EwQvIuOmQh0=' 'sha256-3JGWVJyLt18lW3doNTXQAovBsxqnDGMDpj+kUr0CfNU=' 'nonce-tNXYVOdupU3ipVSWSYLxwumcKTJTA1zh'; object-src 'none'; style-src 'report-sample' 'self' 'unsafe-inline' https://assets.juicer.io/embed.css https://fonts.googleapis.com/ https://tagmanager.google.com https://cdn.jsdelivr.net https://optimize.google.com *.flowpaper.com https://use.typekit.net/xys3hyc.css https://p.typekit.net/ https://static.userback.io/; img-src 'self' data: https:;; frame-src 'self' https://www.googletagmanager.com https://www.youtube.com https://*.google.com https://*.sharethis.com https://c.sharethis.mgr.consensu.org/ https://datawrapper.dwcdn.net/ https://player.vimeo.com/ https://platform.twitter.com/ *.salesforce.com *.force.com *.visualforce.com *.documentforce.com  https://www.slideshare.net/ *.flowpaper.com https://counter.theconversation.com https://www.recaptcha.net https://www.buzzsprout.com/ https://cdn.knightlab.com https://zhenmao.github.io/ https://syndication.twitter.com/ https://vars.hotjar.com/ https://value-of-vaccination-nepej.ondigitalocean.app/ https://www.facebook.com/ https://public.tableau.com/ https://www.tiktok.com/ https://audiovisual.ec.europa.eu/ https://ec.europa.eu/ https://infogram.com https://*.maptiler.com https://app.powerbi.com/ https://player.clevercast.com/ https://webble-cast.com/ *.salesforce-sites.com; frame-ancestors 'self'; child-src blob:; font-src 'self' data: https://fonts.gstatic.com https://static.juicer.io https://www.slideshare.net/ https://use.typekit.net https://zhenmao.github.io/ https://script.hotjar.com/; upgrade-insecure-requests",
            "x-xss-protection": "1; mode=block",
            "referrer-policy": "no-referrer-when-downgrade",
            "feature-policy": "camera 'none', microphone 'none', geolocation 'none'",
            "permissions-policy": "camera=(), microphone=(), geolocation=()",
            "surrogate-control": "max-age=86400",
            "access-control-allow-origin": "*",
            "last-modified": "Sun, 09 Aug 2026 14:54:28 GMT",
            "etag": "\"1786287268-gzip\"",
            "x-ah-environment": "prod",
            "x-age": "68",
            "strict-transport-security": "max-age=63072000"
        },
        "security_checks": {
            "strict-transport-security": true,
            "content-security-policy": true,
            "x-content-type-options": true,
            "x-frame-options": true,
            "referrer-policy": true,
            "permissions-policy": true,
            "cross-origin-opener-policy": false,
            "cross-origin-embedder-policy": false,
            "cross-origin-resource-policy": false
        },
        "server": "nginx",
        "powered_by": ""
    },
    "webpage": {
        "url": "https://www.gavi.org/",
        "title": "Gavi, the Vaccine Alliance",
        "description": "Gavi, the Vaccine Alliance is a public-private partnership that helps vaccinate more than half the world’s children against some of the world's deadliest diseases.",
        "success": true,
        "error": "",
        "status": 206
    },
    "network": {
        "52.209.189.171": {
            "success": true,
            "country": "Ireland",
            "country_code": "IE",
            "region": "Leinster",
            "city": "Dublin",
            "latitude": 53.3354479,
            "longitude": -6.2519983,
            "asn": 16509,
            "organization": "Amazon Data Services Ireland Limited",
            "isp": "Amazon.com, Inc.",
            "timezone": "Europe/Dublin"
        }
    },
    "smtp": {
        "host": "mxa-00475201.gslb.pphosted.com",
        "ports": [
            {
                "port": 25,
                "open": false,
                "time_ms": 42.6,
                "banner": "",
                "error": "Connection refused"
            },
            {
                "port": 465,
                "open": false,
                "time_ms": 124.8,
                "banner": "",
                "error": "Connection refused"
            },
            {
                "port": 587,
                "open": false,
                "time_ms": 146.6,
                "banner": "",
                "error": "Connection refused"
            }
        ]
    },
    "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": 89.77
}