{
    "ok": true,
    "domain": "canonical.com",
    "generated_at": "2026-08-09T08:39:41-05:00",
    "cache": {
        "hit": true,
        "ttl": 0
    },
    "score": {
        "total": 90,
        "label": "Excellent",
        "categories": {
            "dns": 85,
            "mail": 70,
            "security": 100,
            "network": 100,
            "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": "3 IPv4 address(es) detected."
            },
            {
                "category": "dns",
                "title": "IPv6 (AAAA)",
                "max_points": 10,
                "earned_points": 10,
                "lost_points": 0,
                "detail": "3 IPv6 address(es) detected."
            },
            {
                "category": "dns",
                "title": "Name server redundancy",
                "max_points": 20,
                "earned_points": 20,
                "lost_points": 0,
                "detail": "3 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": 5,
                "lost_points": 0,
                "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": 0,
                "lost_points": 20,
                "detail": "No tested DKIM selector responded."
            },
            {
                "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": "51 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": 35,
                "lost_points": 0,
                "detail": "9 of 9 evaluated headers detected."
            },
            {
                "category": "network",
                "title": "PTR reverse DNS",
                "max_points": 30,
                "earned_points": 30,
                "lost_points": 0,
                "detail": "PTR: website-content-cache-1.ps5.canonical.com"
            },
            {
                "category": "network",
                "title": "IPv4 diversity",
                "max_points": 35,
                "earned_points": 35,
                "lost_points": 0,
                "detail": "Two or more IPv4 addresses receive full points."
            },
            {
                "category": "network",
                "title": "IPv6 connectivity",
                "max_points": 35,
                "earned_points": 35,
                "lost_points": 0,
                "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": "3 IPv4 address(es) detected.",
                "category": "dns",
                "max_points": 30,
                "earned_points": 30,
                "lost_points": 0
            },
            {
                "level": "ok",
                "title": "IPv6 (AAAA)",
                "detail": "3 IPv6 address(es) detected.",
                "category": "dns",
                "max_points": 10,
                "earned_points": 10,
                "lost_points": 0
            },
            {
                "level": "ok",
                "title": "Name server redundancy",
                "detail": "3 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": "ok",
                "title": "CAA policy",
                "detail": "Certificate authority restriction.",
                "category": "dns",
                "max_points": 5,
                "earned_points": 5,
                "lost_points": 0
            },
            {
                "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": "error",
                "title": "DKIM",
                "detail": "No tested DKIM selector responded.",
                "category": "mail",
                "max_points": 20,
                "earned_points": 0,
                "lost_points": 20
            },
            {
                "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": "51 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": "ok",
                "title": "HTTP security headers",
                "detail": "9 of 9 evaluated headers detected.",
                "category": "security",
                "max_points": 35,
                "earned_points": 35,
                "lost_points": 0
            },
            {
                "level": "ok",
                "title": "PTR reverse DNS",
                "detail": "PTR: website-content-cache-1.ps5.canonical.com",
                "category": "network",
                "max_points": 30,
                "earned_points": 30,
                "lost_points": 0
            },
            {
                "level": "ok",
                "title": "IPv4 diversity",
                "detail": "Two or more IPv4 addresses receive full points.",
                "category": "network",
                "max_points": 35,
                "earned_points": 35,
                "lost_points": 0
            },
            {
                "level": "ok",
                "title": "IPv6 connectivity",
                "detail": "AAAA availability.",
                "category": "network",
                "max_points": 35,
                "earned_points": 35,
                "lost_points": 0
            },
            {
                "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.125.190.20",
                "185.125.190.21",
                "185.125.190.29"
            ],
            "AAAA": [
                "2620:2d:4000:1::28",
                "2620:2d:4000:1::26",
                "2620:2d:4000:1::27"
            ],
            "CNAME": [],
            "MX": [
                "10 mx.canonical.com."
            ],
            "TXT": [
                "\"atlassian-domain-verification=EfMI3zSzpIoFk2/QhOqWVwC3swzqP9UryHYJFB0SyITHLVntyXkupk6prHjka48F\"",
                "\"site24x7-signals-domain-verification=b658d86f83932f4ad589595687cf5f20\"",
                "\"stripe-verification=98BE42870B792CFFB903D0F2C986A63D047CAF3801CE7667CEEC65F4EB8F2C79\"",
                "\"google-site-verification=RFZCSssfnIjPnBo0k6W72VsUfYqbknSNqIgy2TrcMms\"",
                "\"bw=FUPOteh4WFoKj2FJCprEWcFcZYwSQOSwgn2njwUTAlAn\"",
                "\"atlassian-sending-domain-verification=adfabc77-12fb-4350-9795-580e34414532\"",
                "\"google-site-verification=987aj5PIoVpH3ybA_tMmNcCZ7sY64IUEGaeafo_hrFk\"",
                "\"cloudflare_dashboard_sso=832571caa260c125c86848c30922073a\"",
                "\"miro-verification=2a474c203a12d0d3bdedb1dbfd7df2350d60c43d\"",
                "\"apple-domain-verification=p5U0KoYntPjPy6ah\"",
                "\"v=spf1 include:_spf.canonical.com -all\"",
                "\"anthropic-domain-verification-acs462=LlGDnnFKyomJuHagTQM5lRKTc\"",
                "\"site24x7-signals-domain-verification=b053701422ea32428dc87e6d694abea7\""
            ],
            "NS": [
                "ns3.canonical.com.",
                "ns2.canonical.com.",
                "ns1.canonical.com."
            ],
            "SOA": [
                "ns1.canonical.com. hostmaster.canonical.com. 2018078542 10800 3600 604800 3600"
            ],
            "CAA": [
                "0 issuewild \"letsencrypt.org\"",
                "0 iodef \"mailto:is-admin@canonical.com\"",
                "0 issue \"letsencrypt.org; accounturi=https://acme-v01.api.letsencrypt.org/acme/reg/32541290\"",
                "0 issue \"digicert.com\"",
                "0 issuewild \"digicert.com\"",
                "0 issue \"letsencrypt.org\""
            ],
            "DS": [],
            "DNSKEY": [],
            "RRSIG": [],
            "NSEC": [],
            "NSEC3": [],
            "SRV": [],
            "NAPTR": [],
            "TLSA": [],
            "SSHFP": []
        },
        "ipv4": [
            "185.125.190.20",
            "185.125.190.21",
            "185.125.190.29"
        ],
        "ipv6": [
            "2620:2d:4000:1::28",
            "2620:2d:4000:1::26",
            "2620:2d:4000:1::27"
        ]
    },
    "mail": {
        "spf": "v=spf1 include:_spf.canonical.com -all",
        "dmarc": "v=DMARC1; p=reject; pct=100; rua=mailto:dmarc-rua@admin.canonical.com",
        "dkim_selector": "x",
        "dkim_host": "",
        "dkim": "",
        "spf_analysis": {
            "valid": true,
            "lookups": 1,
            "final": "-all",
            "message": "Within the estimated limit"
        },
        "dmarc_analysis": {
            "valid": true,
            "policy": "reject"
        },
        "bimi": "",
        "mta_sts": "",
        "tls_rpt": ""
    },
    "advanced": {
        "ptr": "website-content-cache-1.ps5.canonical.com",
        "propagation": {
            "consistent": true,
            "results": [
                {
                    "provider": "Google",
                    "server": "8.8.8.8",
                    "result": [
                        "185.125.190.20",
                        "185.125.190.21",
                        "185.125.190.29"
                    ],
                    "time_ms": 51.52
                },
                {
                    "provider": "Cloudflare",
                    "server": "1.1.1.1",
                    "result": [
                        "185.125.190.20",
                        "185.125.190.21",
                        "185.125.190.29"
                    ],
                    "time_ms": 41.41
                },
                {
                    "provider": "Quad9",
                    "server": "9.9.9.9",
                    "result": [
                        "185.125.190.20",
                        "185.125.190.21",
                        "185.125.190.29"
                    ],
                    "time_ms": 132.26
                },
                {
                    "provider": "OpenDNS",
                    "server": "208.67.222.222",
                    "result": [
                        "185.125.190.20",
                        "185.125.190.21",
                        "185.125.190.29"
                    ],
                    "time_ms": 52.01
                },
                {
                    "provider": "AdGuard",
                    "server": "94.140.14.14",
                    "result": [
                        "185.125.190.20",
                        "185.125.190.21",
                        "185.125.190.29"
                    ],
                    "time_ms": 134.72
                }
            ]
        }
    },
    "ssl": {
        "available": true,
        "issuer": "Let's Encrypt",
        "subject": "www.canonical.com",
        "valid_from": "2026-07-01T23:13:38-05:00",
        "valid_to": "2026-09-29T23:13:37-05:00",
        "days_remaining": 51,
        "san": [
            "canonical.com",
            "www.canonical.com"
        ],
        "protocol": "TLSv1.3",
        "cipher": "TLS_AES_256_GCM_SHA384"
    },
    "http": {
        "url": "https://canonical.com/",
        "status": "HTTP/2 200 ",
        "http_version": "3",
        "headers": {
            "server": "nginx/1.14.0 (Ubuntu)",
            "date": "Sun, 09 Aug 2026 13:39:32 GMT",
            "content-type": "text/html; charset=utf-8",
            "content-length": "342484",
            "vary": "Cookie, Accept-Encoding",
            "cache-control": "max-age=3600, stale-while-revalidate=86400, stale-if-error=300",
            "content-security-policy": "default-src 'self'; img-src data: blob: *; script-src-elem 'self' 'strict-dynamic' assets.ubuntu.com www.google-analytics.com www.googletagmanager.com www.youtube.com asciinema.org player.vimeo.com script.crazyegg.com www.googleadservices.com js.zi-scripts.com *.g.doubleclick.net www.google.com www.gstatic.com www.brighttalk.com snap.licdn.com connect.facebook.net maps.googleapis.com www.redditstatic.com munchkin.marketo.net *.googlesyndication.com cdn.jsdelivr.net https://esm.sh https://cdn.jsdelivr.net buttons.github.io cdn.livechatinc.com api.livechatinc.com secure.livechatinc.com www.tfaforms.com 'nonce-DMVMiMzPE7PqWykifZ0tHA'; font-src 'self' assets.ubuntu.com fonts.google.com cdn.livechatinc.com secure.livechatinc.com; script-src 'self' blob: 'unsafe-eval' 'wasm-unsafe-eval' 'nonce-DMVMiMzPE7PqWykifZ0tHA'; connect-src 'self' ubuntu.com analytics.google.com www.googletagmanager.com o4510662863749120.ingest.de.sentry.io www.google-analytics.com *.crazyegg.com *.g.doubleclick.net ad.doubleclick.net *.clarity.ms bat.bing.com bat.bing.net www.googleadservices.com js.zi-scripts.com *.google-analytics.com px.ads.linkedin.com ws.zoominfo.com youtube.com google.com www.google.com www.google.at www.google.be www.google.ch www.google.co.uk www.google.cz www.google.de www.google.dk www.google.es www.google.fi www.google.fr www.google.gr www.google.hu www.google.ie www.google.it www.google.nl www.google.no www.google.pl www.google.pt www.google.ro www.google.se www.google.ca www.google.cl www.google.co www.google.com.ar www.google.com.br www.google.com.mx www.google.com.pe www.google.co.id www.google.co.in www.google.co.jp www.google.co.kr www.google.co.nz www.google.co.th www.google.com.au www.google.com.hk www.google.com.my www.google.com.ph www.google.com.sg www.google.com.tw www.google.com.vn fonts.google.com maps.googleapis.com pixel-config.reddit.com www.redditstatic.com conversions-config.reddit.com https://esm.sh https://lottie.host https://cdn.jsdelivr.net *.analytics.google.com www.facebook.com *.googlesyndication.com *.mktoresp.com assets.ubuntu.com api.github.com raw.githubusercontent.com api.livechatinc.com cdn.livechatinc.com secure.livechatinc.com web.facebook.com www.tfaforms.com unpkg.com; frame-src 'self' *.doubleclick.net *.crazyegg.com www.youtube.com/ asciinema.org player.vimeo.com www.googletagmanager.com www.google.com www.brighttalk.com cdn.livechatinc.com secure.livechatinc.com cdn.livechat-static.com; style-src 'self' cdn.jsdelivr.net www.tfaforms.com 'unsafe-inline'; media-src 'self' res.cloudinary.com assets.ubuntu.com; child-src 'self' blob: youtube.com google.com fonts.google.com api.livechatinc.com cdn.livechatinc.com secure.livechatinc.com; form-action 'self' https://pages.ubuntu.com https://ubuntu.com https://www.tfaforms.com; object-src 'none'; base-uri 'self'; worker-src 'self' blob:; report-uri /csp-report;",
            "content-security-policy-report-only": "default-src 'self'; img-src data: blob: *; script-src-elem 'self' 'strict-dynamic' assets.ubuntu.com www.google-analytics.com www.googletagmanager.com www.youtube.com asciinema.org player.vimeo.com script.crazyegg.com www.googleadservices.com js.zi-scripts.com *.g.doubleclick.net www.google.com www.gstatic.com www.brighttalk.com snap.licdn.com connect.facebook.net maps.googleapis.com www.redditstatic.com munchkin.marketo.net *.googlesyndication.com cdn.jsdelivr.net https://esm.sh https://cdn.jsdelivr.net buttons.github.io cdn.livechatinc.com api.livechatinc.com secure.livechatinc.com www.tfaforms.com 'nonce-DMVMiMzPE7PqWykifZ0tHA'; font-src 'self' assets.ubuntu.com fonts.google.com cdn.livechatinc.com secure.livechatinc.com; script-src 'self' blob: 'wasm-unsafe-eval' 'nonce-DMVMiMzPE7PqWykifZ0tHA'; connect-src 'self' ubuntu.com analytics.google.com www.googletagmanager.com o4510662863749120.ingest.de.sentry.io www.google-analytics.com *.crazyegg.com *.g.doubleclick.net ad.doubleclick.net *.clarity.ms bat.bing.com bat.bing.net www.googleadservices.com js.zi-scripts.com *.google-analytics.com px.ads.linkedin.com ws.zoominfo.com youtube.com google.com www.google.com www.google.at www.google.be www.google.ch www.google.co.uk www.google.cz www.google.de www.google.dk www.google.es www.google.fi www.google.fr www.google.gr www.google.hu www.google.ie www.google.it www.google.nl www.google.no www.google.pl www.google.pt www.google.ro www.google.se www.google.ca www.google.cl www.google.co www.google.com.ar www.google.com.br www.google.com.mx www.google.com.pe www.google.co.id www.google.co.in www.google.co.jp www.google.co.kr www.google.co.nz www.google.co.th www.google.com.au www.google.com.hk www.google.com.my www.google.com.ph www.google.com.sg www.google.com.tw www.google.com.vn fonts.google.com maps.googleapis.com pixel-config.reddit.com www.redditstatic.com conversions-config.reddit.com https://esm.sh https://lottie.host https://cdn.jsdelivr.net *.analytics.google.com www.facebook.com *.googlesyndication.com *.mktoresp.com assets.ubuntu.com api.github.com raw.githubusercontent.com api.livechatinc.com cdn.livechatinc.com secure.livechatinc.com web.facebook.com www.tfaforms.com unpkg.com; frame-src 'self' *.doubleclick.net *.crazyegg.com www.youtube.com/ asciinema.org player.vimeo.com www.googletagmanager.com www.google.com www.brighttalk.com cdn.livechatinc.com secure.livechatinc.com cdn.livechat-static.com; style-src 'self' cdn.jsdelivr.net www.tfaforms.com 'unsafe-inline'; media-src 'self' res.cloudinary.com assets.ubuntu.com; child-src 'self' blob: youtube.com google.com fonts.google.com api.livechatinc.com cdn.livechatinc.com secure.livechatinc.com; form-action 'self' https://pages.ubuntu.com https://ubuntu.com https://www.tfaforms.com; object-src 'none'; base-uri 'self'; worker-src 'self' blob:; report-uri /csp-report;",
            "referrer-policy": "strict-origin-when-cross-origin",
            "cross-origin-embedder-policy": "unsafe-none",
            "cross-origin-opener-policy": "same-origin-allow-popups",
            "cross-origin-resource-policy": "cross-origin",
            "x-permitted-cross-domain-policies": "none",
            "x-view-name": "webapp.app.index",
            "x-clacks-overhead": "GNU Terry Pratchett",
            "permissions-policy": "interest-cohort=()",
            "x-frame-options": "SAMEORIGIN",
            "x-content-type-options": "NOSNIFF",
            "strict-transport-security": "max-age=31536000; includeSubDomains",
            "x-cache-status": "HIT from content-cache-il3/1",
            "accept-ranges": "bytes"
        },
        "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": true,
            "cross-origin-embedder-policy": true,
            "cross-origin-resource-policy": true
        },
        "server": "nginx/1.14.0 (Ubuntu)",
        "powered_by": ""
    },
    "webpage": {
        "url": "https://canonical.com/",
        "title": "Trusted open source for enterprises | Canonical",
        "description": "Drive innovation in your enterprise with trusted open source from Canonical — simple, cost-effective, and supported.",
        "success": true,
        "error": "",
        "status": 206
    },
    "network": {
        "185.125.190.20": {
            "success": false,
            "country": "",
            "region": "",
            "city": "",
            "asn": "",
            "organization": "",
            "isp": ""
        },
        "185.125.190.21": {
            "success": false,
            "country": "",
            "region": "",
            "city": "",
            "asn": "",
            "organization": "",
            "isp": ""
        },
        "185.125.190.29": {
            "success": false,
            "country": "",
            "region": "",
            "city": "",
            "asn": "",
            "organization": "",
            "isp": ""
        }
    },
    "smtp": {
        "host": "mx.canonical.com",
        "ports": [
            {
                "port": 25,
                "open": false,
                "time_ms": 94.9,
                "banner": "",
                "error": "Connection refused"
            },
            {
                "port": 465,
                "open": false,
                "time_ms": 4005.8,
                "banner": "",
                "error": "Connection timed out"
            },
            {
                "port": 587,
                "open": false,
                "time_ms": 4110.4,
                "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": 93.65
}