{
    "ok": true,
    "domain": "resy.com",
    "generated_at": "2026-08-10T05:00:11-05:00",
    "cache": {
        "hit": true,
        "ttl": 0
    },
    "score": {
        "total": 79,
        "label": "Good",
        "categories": {
            "dns": 70,
            "mail": 90,
            "security": 77,
            "network": 35,
            "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": "2 IPv4 address(es) detected."
            },
            {
                "category": "dns",
                "title": "IPv6 (AAAA)",
                "max_points": 10,
                "earned_points": 0,
                "lost_points": 10,
                "detail": "0 IPv6 address(es) detected."
            },
            {
                "category": "dns",
                "title": "Name server redundancy",
                "max_points": 20,
                "earned_points": 20,
                "lost_points": 0,
                "detail": "4 NS record(s); 2 or more required."
            },
            {
                "category": "dns",
                "title": "SOA record",
                "max_points": 10,
                "earned_points": 10,
                "lost_points": 0,
                "detail": "Authoritative zone record."
            },
            {
                "category": "dns",
                "title": "DNSSEC chain",
                "max_points": 15,
                "earned_points": 0,
                "lost_points": 15,
                "detail": "Both DS and DNSKEY are required."
            },
            {
                "category": "dns",
                "title": "CAA policy",
                "max_points": 5,
                "earned_points": 0,
                "lost_points": 5,
                "detail": "Certificate authority restriction."
            },
            {
                "category": "dns",
                "title": "DNS propagation",
                "max_points": 10,
                "earned_points": 10,
                "lost_points": 0,
                "detail": "Agreement between public resolvers."
            },
            {
                "category": "mail",
                "title": "MX records",
                "max_points": 20,
                "earned_points": 20,
                "lost_points": 0,
                "detail": "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": "94 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": 12,
                "lost_points": 23,
                "detail": "3 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": 35,
                "lost_points": 0,
                "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": "2 IPv4 address(es) detected.",
                "category": "dns",
                "max_points": 30,
                "earned_points": 30,
                "lost_points": 0
            },
            {
                "level": "error",
                "title": "IPv6 (AAAA)",
                "detail": "0 IPv6 address(es) detected.",
                "category": "dns",
                "max_points": 10,
                "earned_points": 0,
                "lost_points": 10
            },
            {
                "level": "ok",
                "title": "Name server redundancy",
                "detail": "4 NS record(s); 2 or more required.",
                "category": "dns",
                "max_points": 20,
                "earned_points": 20,
                "lost_points": 0
            },
            {
                "level": "ok",
                "title": "SOA record",
                "detail": "Authoritative zone record.",
                "category": "dns",
                "max_points": 10,
                "earned_points": 10,
                "lost_points": 0
            },
            {
                "level": "error",
                "title": "DNSSEC chain",
                "detail": "Both DS and DNSKEY are required.",
                "category": "dns",
                "max_points": 15,
                "earned_points": 0,
                "lost_points": 15
            },
            {
                "level": "error",
                "title": "CAA policy",
                "detail": "Certificate authority restriction.",
                "category": "dns",
                "max_points": 5,
                "earned_points": 0,
                "lost_points": 5
            },
            {
                "level": "ok",
                "title": "DNS propagation",
                "detail": "Agreement between public resolvers.",
                "category": "dns",
                "max_points": 10,
                "earned_points": 10,
                "lost_points": 0
            },
            {
                "level": "ok",
                "title": "MX records",
                "detail": "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": "94 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": "3 of 9 evaluated headers detected.",
                "category": "security",
                "max_points": 35,
                "earned_points": 12,
                "lost_points": 23
            },
            {
                "level": "error",
                "title": "PTR reverse DNS",
                "detail": "PTR not detected.",
                "category": "network",
                "max_points": 30,
                "earned_points": 0,
                "lost_points": 30
            },
            {
                "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": "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": [
                "45.60.206.128",
                "45.60.196.128"
            ],
            "AAAA": [],
            "CNAME": [],
            "MX": [
                "10 mx0b-0023b801.pphosted.com.",
                "10 mx0a-0023b801.pphosted.com."
            ],
            "TXT": [
                "\"mongodb-site-verification=xzjH9EuTmelR5qq3YYqFNiFWxf7SeAoN\"",
                "\"apple-domain-verification=ma146C9KsxGLvJ5_2Lq8fl1FhfxawDHTURa7-wBW7kw\"",
                "\"openai-domain-verification=dv-xjLkW1GctZKaSAHlfDsAi2jT\"",
                "\"atlassian-domain-verification=olpcnEwZIB2SYPJZE8x12kWM90/R0Nv198d9lC1vwyVV1jKCllLxDvZNpaU3A9Kj\"",
                "\"mixpanel-domain-verify=abbd437a-ac4c-4274-98b0-0de4e18e1f36\"",
                "\"globalsign-domain-verification=860A3A5C15A51DB5681B03B15D4C74CB\"",
                "\"docusign=1fbd3bf5-2ce6-414a-a29a-f3704f6316dc\"",
                "\"stripe-verification=3b57a009b3932b56d859d0636dd3658fe51bd4b8b237c60fddcff066091c8783\"",
                "\"v=spf1 mx exists:%{ir}.spf.americanexpress.com include:amazonses.com include:spf.braintreegateway.com include:spf.mandrillapp.com include:_spf.salesforce.com include:_spf.qemailserver.com a:zgateway.zuora.com -all\"",
                "\"adobe-idp-site-verification=9018ee4f118d4fc1e75c5c2df0a11f8e38548b82eeb542fca1c1d14f5d790453\"",
                "\"applause-verification:dc0bbb73-89fb-4280-96a7-d621b86df2e1\"",
                "\"cisco-ci-domain-verification=7c4c5d72e21e7ca07794c4b3aad7fc9216a21ebd24d19e04ddee48b9dfdee0a7\"",
                "\"anthropic-domain-verification-6bm3f0=Spd4lPp2Q22gFPzxePTsuGcMj\"",
                "\"stripe-verification=ab446969e63ef2ffadc98cf236a8464703b8795ed7f6e350694e0cae7c082fe5\""
            ],
            "NS": [
                "ns-188.awsdns-23.com.",
                "ns-1305.awsdns-35.org.",
                "ns-1623.awsdns-10.co.uk.",
                "ns-992.awsdns-60.net."
            ],
            "SOA": [
                "ns-1623.awsdns-10.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400"
            ],
            "CAA": [],
            "DS": [],
            "DNSKEY": [],
            "RRSIG": [],
            "NSEC": [],
            "NSEC3": [],
            "SRV": [],
            "NAPTR": [],
            "TLSA": [],
            "SSHFP": []
        },
        "ipv4": [
            "45.60.206.128",
            "45.60.196.128"
        ],
        "ipv6": []
    },
    "mail": {
        "spf": "v=spf1 mx exists:%{ir}.spf.americanexpress.com include:amazonses.com include:spf.braintreegateway.com include:spf.mandrillapp.com include:_spf.salesforce.com include:_spf.qemailserver.com a:zgateway.zuora.com -all",
        "dmarc": "v=DMARC1; p=reject; fo=1; rua=mailto:dmarc_rua@emaildefense.proofpoint.com; ruf=mailto:dmarc_ruf@emaildefense.proofpoint.com",
        "dkim_selector": "mandrill",
        "dkim_host": "mandrill._domainkey.resy.com",
        "dkim": "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrLHiExVd55zd/IQ/J/mRwSRMAocV/hMB3jXwaHH36d9NaVynQFYV8NaWi69c1veUtRzGt7yAioXqLj7Z4TeEUoOLgrKsn8YnckGs9i3B3tVFB+Ch/4mPhXWiNfNdynHWBcPcbJ8kjEQ2U8y78dHZj1YeRXXVvWob2OaKynO8/lQIDAQAB;",
        "spf_analysis": {
            "valid": true,
            "lookups": 8,
            "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": [
                        "45.60.196.128",
                        "45.60.206.128"
                    ],
                    "time_ms": 34.84
                },
                {
                    "provider": "Cloudflare",
                    "server": "1.1.1.1",
                    "result": [
                        "45.60.196.128",
                        "45.60.206.128"
                    ],
                    "time_ms": 20.02
                },
                {
                    "provider": "Quad9",
                    "server": "9.9.9.9",
                    "result": [
                        "45.60.196.128",
                        "45.60.206.128"
                    ],
                    "time_ms": 26.59
                },
                {
                    "provider": "OpenDNS",
                    "server": "208.67.222.222",
                    "result": [
                        "45.60.196.128",
                        "45.60.206.128"
                    ],
                    "time_ms": 28.53
                },
                {
                    "provider": "AdGuard",
                    "server": "94.140.14.14",
                    "result": [
                        "45.60.196.128",
                        "45.60.206.128"
                    ],
                    "time_ms": 40.59
                }
            ]
        }
    },
    "ssl": {
        "available": true,
        "issuer": "DigiCert Inc",
        "subject": "www.resy.com",
        "valid_from": "2026-05-27T19:00:00-05:00",
        "valid_to": "2026-11-12T17:59:59-06:00",
        "days_remaining": 94,
        "san": [
            "www.resy.com",
            "resy.com"
        ],
        "protocol": "TLSv1.3",
        "cipher": "TLS_AES_128_GCM_SHA256"
    },
    "http": {
        "url": "https://resy.com/",
        "status": "HTTP/2 200 ",
        "http_version": "3",
        "headers": {
            "date": "Mon, 10 Aug 2026 10:00:10 GMT",
            "content-type": "text/html",
            "content-length": "4959",
            "server": "nginx/1.25.1",
            "last-modified": "Thu, 06 Aug 2026 18:30:08 GMT",
            "etag": "\"6a74d2b0-135f\"",
            "strict-transport-security": "max-age=31536000; includeSubDomains",
            "x-frame-options": "DENY",
            "cache-control": "max-age=0, no-cache, no-store, must-revalidate",
            "pragma": "no-cache",
            "report-to": "{u'max_age': 10886400, u'endpoints': [{u'url': u'https://browser-intake-datadoghq.com/api/v2/logs?dd-api-key=pub6398a4c636ff6803345df9156eedeefa&dd-evp-origin=content-security-policy&ddsource=csp-report'}], u'group': u'browser-intake-datadoghq'}",
            "reporting-endpoints": "browser-intake-datadoghq='https://browser-intake-datadoghq.com/api/v2/logs?dd-api-key=pub6398a4c636ff6803345df9156eedeefa&dd-evp-origin=content-security-policy&ddsource=csp-report'",
            "content-security-policy": "default-src 'self'; script-src 'self' 'unsafe-inline' widgets.demo.resy.com widgets.dev.resy.com widgets.sandbox.resy.com widgets.staging.resy.com widgets.resy.com cdaas-dev.americanexpress.com cdaas-dev.aexp.com qwww.aexp-static.com www.aexp-static.com assets.adobedtm.com cdn.amplitude.com d2zah9y47r7bi2.cloudfront.net www.datadoghq-browser-agent.com connect.facebook.net www.google.com maps.googleapis.com www.googletagmanager.com maps.gstatic.com www.gstatic.com cdn4.mxpnl.com static.simonsignal.com tr.snapchat.com tr6.snapchat.com *.js.stripe.com js.stripe.com js.adsrvr.org sc-static.net cdn.trackjs.com api.chilipiper.com apps.chilipiper.com fire.chilipiper.com js.chilipiper.com static.cloudflareinsights.com js.hsforms.net js.hs-scripts.com js.hubspot.com *.hubspot.com amex-sandbox.chilipiper.com *.hs-analytics.net *.hs-banner.com *.hs-scripts.com *.hsadspixel.net *.hscollectedforms.net *.usemessages.com snap.licdn.com googleads.g.doubleclick.net resy.chilipiper.com *.reddit.com *.redditstatic.com securepubads.g.doubleclick.net; connect-src 'self' annotation.demo.resy.com annotation.dev.resy.com annotation.staging.resy.com annotation.sandbox.resy.com annotation.resy.com api.demo.resy.com api.dev.resy.com api.staging.resy.com api.sandbox.resy.com api.resy.com image.demo.resy.com image.dev.resy.com image.staging.resy.com image.sandbox.resy.com image.resy.com item.demo.resy.com item.dev.resy.com item.staging.resy.com item.sandbox.resy.com item.resy.com blog.resy.com api.demo.resyos.com api.dev.resyos.com api.staging.resyos.com api.sandbox.resyos.com api.resyos.com survey.resy.com survey.dev.resy.com survey.staging.resy.com survey.sandbox.resy.com survey.demo.resy.com functions.americanexpress.com functions-qa.americanexpress.com functions-dev.americanexpress.com functions.aexp.com functions-qa.aexp.com functions-dev.aexp.com eob-dev.aexp.com eob-qa.aexp.com eob.aexp.com datapoint-deveusw1.americanexpress.com datapoint-qaeusw1.americanexpress.com datapoint.americanexpress.com omns.americanexpress.com ucmapi-dev.americanexpress.com ucmapi-qa.americanexpress.com ucmapi.americanexpress.com dpresydining-deveusw1.americanexpress.com dpresydining-qaeusw1.americanexpress.com dpresydining.americanexpress.com cdaas-dev.americanexpress.com qwww.aexp-static.com s3.amazonaws.com browser-intake-datadoghq.com preview.ff-cdn.datadoghq.com rum.browser-intake-datadoghq.com session-replay.browser-intake-datadoghq.com www.googleadservices.com ad.doubleclick.net www.google.com adservice.google.com maps.googleapis.com api-js.mixpanel.com api2.amplitude.com cdn.amplitude.com gs.amplitude.com blog-live.offload-resy.com staging.simonsignal.com simonsignal.com tr.snapchat.com tr6.snapchat.com api.stripe.com capture.trackjs.com www.facebook.com insight.adsrvr.org d14rvb61uksiqz.cloudfront.net dw5imgvvi8wn1.cloudfront.net api.chilipiper.com apps.chilipiper.com fire.chilipiper.com js.chilipiper.com resy.chilipiper.com tracking.chilipiper.com forms.hsforms.com forms-na1.hubspot.com hubspot-forms-static-embed.s3.amazonaws.com *.hs-scripts.com *.hscollectedforms.net *.hsforms.com *.hubapi.com *.hubspot.com amex-sandbox.chilipiper.com static.hsappstatic.net cta-service-cms2.hubspot.com *.reddit.com *.googlesyndication.com securepubads.g.doubleclick.net bff-web-staging.exploretock.com bff-web.dev.resy.com; worker-src 'self' blob:; style-src 'self' 'unsafe-inline' fonts.googleapis.com www.gstatic.com www.aexp-static.com; frame-src 'self' widgets.demo.resy.com widgets.dev.resy.com widgets.sandbox.resy.com widgets.staging.resy.com widgets.resy.com insight.adsrvr.org match.adsrvr.org 189445.fls.doubleclick.net td.doubleclick.net www.google.com *.js.stripe.com js.stripe.com tr.snapchat.com tr6.snapchat.com www.facebook.com api.chilipiper.com apps.chilipiper.com fire.chilipiper.com js.chilipiper.com resy.chilipiper.com tracking.chilipiper.com resy.us.getbridge.video forms.hsforms.com *.hubspot.com amex-sandbox.chilipiper.com www.youtube.com *.googlesyndication.com; font-src 'self' data: fonts.gstatic.com www.aexp-static.com; img-src 'self' blob: data: 'unsafe-inline' image.demo.resy.com image.dev.resy.com image.staging.resy.com image.sandbox.resy.com image.resy.com blog.resy.com omns.americanexpress.com icm.aexp-static.com qicm.aexp-static.com origin-pqgemapp.americanexpress.com static-dev.americanexpress.com qwww.aexp-static.com www.aexp-static.com www.americanexpress.com *.googleusercontent.com ib.adnxs.com insight.adsrvr.org s3.amazonaws.com dsum-sec.casalemedia.com ad.doubleclick.net cm.g.doubleclick.net www.facebook.com maps.googleapis.com mapsresources-pa.googleapis.com www.googletagmanager.com www.googleadservices.com www.googleads.g.doubleclick.net maps.gstatic.com www.gstatic.com pixel.rubiconproject.com storage.googleapis.com usage.trackjs.com d14rvb61uksiqz.cloudfront.net dw5imgvvi8wn1.cloudfront.net adservice.google.com api.chilipiper.com apps.chilipiper.com fire.chilipiper.com js.chilipiper.com resy.chilipiper.com tracking.chilipiper.com *.hsforms.com *.hubspot.com storage.googleapis.com tock-public.imgix.net www.google.com track.hubspot.com googleads.g.doubleclick.net *.reddit.com *.googlesyndication.com; media-src 'self' d14rvb61uksiqz.cloudfront.net dw5imgvvi8wn1.cloudfront.net storage.googleapis.com; manifest-src 'self' tock-public.imgix.net; frame-ancestors 'self' resy.com; report-uri https://browser-intake-datadoghq.com/api/v2/logs?dd-api-key=pub6398a4c636ff6803345df9156eedeefa&dd-evp-origin=content-security-policy&ddsource=csp-report; report-to browser-intake-datadoghq;",
            "accept-ranges": "bytes",
            "set-cookie": "incap_ses_349_3089194=KNnvY9LT6h+WvZdIVebXBCqheWoAAAAA/6bysp06UcP9swRp6R3heQ==; path=/; Domain=.resy.com; Secure; SameSite=None",
            "x-cdn": "Imperva",
            "x-iinfo": "10-2761541-2761543 NNNN CT(18 39 0) RT(1786356010809 47) q(0 0 1 0) r(1 1) U24"
        },
        "security_checks": {
            "strict-transport-security": true,
            "content-security-policy": true,
            "x-content-type-options": false,
            "x-frame-options": true,
            "referrer-policy": false,
            "permissions-policy": false,
            "cross-origin-opener-policy": false,
            "cross-origin-embedder-policy": false,
            "cross-origin-resource-policy": false
        },
        "server": "nginx/1.25.1",
        "powered_by": ""
    },
    "webpage": {
        "url": "https://resy.com/",
        "title": "Resy | Right This Way",
        "description": "Discover restaurants to love in your city and beyond. Get the latest restaurant intel and explore Resy’s curated guides to find the right spot for any occasion. Book your table now through the Resy iOS app or Resy.com.",
        "success": true,
        "error": "",
        "status": 200
    },
    "network": {
        "45.60.206.128": {
            "success": false,
            "country": "",
            "region": "",
            "city": "",
            "asn": "",
            "organization": "",
            "isp": ""
        },
        "45.60.196.128": {
            "success": false,
            "country": "",
            "region": "",
            "city": "",
            "asn": "",
            "organization": "",
            "isp": ""
        }
    },
    "smtp": {
        "host": "mx0b-0023b801.pphosted.com",
        "ports": [
            {
                "port": 25,
                "open": false,
                "time_ms": 8.5,
                "banner": "",
                "error": "Connection refused"
            },
            {
                "port": 465,
                "open": false,
                "time_ms": 21.4,
                "banner": "",
                "error": "Connection refused"
            },
            {
                "port": 587,
                "open": false,
                "time_ms": 21.4,
                "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": 83.32
}