{
  "bot_auth": {
    "absent_total": 8074,
    "by_name": [
      {
        "name": "(no claimed name)",
        "records_with_signature_headers": 28
      },
      {
        "name": "meta-webindexer",
        "records_with_signature_headers": 24
      }
    ],
    "note": "Signature-header presence (Signature, Signature-Input, or Signature-Agent) by claimed name. Presence is a claim, not a verification: no signature has been verified, and the platform's verified-bot verdict cannot fire on this hosting tier. signature_agent_hosts is deployment-forward from Oct 18, 2026 (evening): the hostnames signers name for their key directories, stored as claims.",
    "present_total": 52,
    "signature_agent_hosts": [
      {
        "host": "ahrefs.com",
        "records": 24
      },
      {
        "host": "www.meta.com",
        "records": 19
      },
      {
        "host": "crawler.exa.ai",
        "records": 2
      },
      {
        "host": "probe.example.org",
        "records": 1
      }
    ]
  },
  "columns": [
    "name",
    "claimed",
    "verified-range",
    "wrong-range",
    "unverifiable-no-list",
    "not-checked",
    "verified_share_of_checkable"
  ],
  "decomposition": {
    "note": "Per claimed name: operator and dictionary class, requests, the purpose split, the verdict split, Web Bot Auth signature presence, and the reverse-DNS split. The rDNS split covers component-era records only (from the Oct 19, 2026 W6 deployment); rdns_era_records says how many of the name's records carry it. Purposes on records written before the same day's W4 split keep their era's labels. Bases differ by column and are stated here once: requests and the verdict split count verdict-era records (from Oct 18, 2026); by_purpose and wba_present count every record whose user-agent matches the name, all eras, so they can exceed requests.",
    "rows": [
      {
        "by_purpose": {
          "(none recorded)": 374
        },
        "kind": "link-preview",
        "name": "facebookexternalhit",
        "operator": "Meta",
        "rdns": {
          "not-offered": 366
        },
        "rdns_era_records": 366,
        "requests": 369,
        "top_class": "agent-claimed",
        "verdicts": {
          "not-checked": 0,
          "unverifiable-no-list": 369,
          "verified-range": 0,
          "wrong-range": 0
        },
        "verified_share_of_checkable": "\u2014",
        "wba_present": 0
      },
      {
        "by_purpose": {
          "(none recorded)": 265
        },
        "kind": "search-engine",
        "name": "Googlebot",
        "operator": "Google",
        "rdns": {
          "match": 147
        },
        "rdns_era_records": 147,
        "requests": 245,
        "top_class": "agent-claimed",
        "verdicts": {
          "not-checked": 0,
          "unverifiable-no-list": 0,
          "verified-range": 245,
          "wrong-range": 0
        },
        "verified_share_of_checkable": "100.0%",
        "wba_present": 0
      },
      {
        "by_purpose": {
          "(none recorded)": 87
        },
        "kind": "search-engine",
        "name": "Applebot",
        "operator": "Apple",
        "rdns": {
          "match": 75
        },
        "rdns_era_records": 75,
        "requests": 84,
        "top_class": "agent-claimed",
        "verdicts": {
          "not-checked": 0,
          "unverifiable-no-list": 84,
          "verified-range": 0,
          "wrong-range": 0
        },
        "verified_share_of_checkable": "\u2014",
        "wba_present": 0
      },
      {
        "by_purpose": {},
        "kind": "(unlisted)",
        "name": "MJ12bot",
        "operator": "(unlisted)",
        "rdns": {},
        "rdns_era_records": 0,
        "requests": 47,
        "top_class": "agent-claimed",
        "verdicts": {
          "not-checked": 0,
          "unverifiable-no-list": 47,
          "verified-range": 0,
          "wrong-range": 0
        },
        "verified_share_of_checkable": "\u2014",
        "wba_present": 0
      },
      {
        "by_purpose": {
          "training": 31
        },
        "kind": "training",
        "name": "Meta-ExternalAgent",
        "operator": "Meta",
        "rdns": {},
        "rdns_era_records": 0,
        "requests": 31,
        "top_class": "agent-claimed",
        "verdicts": {
          "not-checked": 0,
          "unverifiable-no-list": 31,
          "verified-range": 0,
          "wrong-range": 0
        },
        "verified_share_of_checkable": "\u2014",
        "wba_present": 0
      },
      {
        "by_purpose": {
          "mixed": 12,
          "other": 23
        },
        "kind": "mixed",
        "name": "GoogleOther",
        "operator": "Google",
        "rdns": {
          "match": 12
        },
        "rdns_era_records": 12,
        "requests": 29,
        "top_class": "agent-claimed",
        "verdicts": {
          "not-checked": 0,
          "unverifiable-no-list": 0,
          "verified-range": 29,
          "wrong-range": 0
        },
        "verified_share_of_checkable": "100.0%",
        "wba_present": 0
      },
      {
        "by_purpose": {},
        "kind": "(unlisted)",
        "name": "AhrefsBot",
        "operator": "(unlisted)",
        "rdns": {
          "not-offered": 24
        },
        "rdns_era_records": 24,
        "requests": 24,
        "top_class": "agent-claimed",
        "verdicts": {
          "not-checked": 0,
          "unverifiable-no-list": 24,
          "verified-range": 0,
          "wrong-range": 0
        },
        "verified_share_of_checkable": "\u2014",
        "wba_present": 0
      },
      {
        "by_purpose": {},
        "kind": "(unlisted)",
        "name": "Meta Web Indexer",
        "operator": "(unlisted)",
        "rdns": {
          "not-offered": 8
        },
        "rdns_era_records": 8,
        "requests": 20,
        "top_class": "agent-claimed",
        "verdicts": {
          "not-checked": 0,
          "unverifiable-no-list": 20,
          "verified-range": 0,
          "wrong-range": 0
        },
        "verified_share_of_checkable": "\u2014",
        "wba_present": 0
      },
      {
        "by_purpose": {
          "search": 13
        },
        "kind": "search",
        "name": "OAI-SearchBot",
        "operator": "OpenAI",
        "rdns": {
          "not-offered": 8
        },
        "rdns_era_records": 8,
        "requests": 11,
        "top_class": "agent-claimed",
        "verdicts": {
          "not-checked": 0,
          "unverifiable-no-list": 0,
          "verified-range": 11,
          "wrong-range": 0
        },
        "verified_share_of_checkable": "small n (11 checkable)",
        "wba_present": 0
      },
      {
        "by_purpose": {
          "undeclared": 7
        },
        "kind": "undeclared",
        "name": "Amazonbot",
        "operator": "Amazon",
        "rdns": {
          "not-offered": 7
        },
        "rdns_era_records": 7,
        "requests": 7,
        "top_class": "agent-claimed",
        "verdicts": {
          "not-checked": 0,
          "unverifiable-no-list": 7,
          "verified-range": 0,
          "wrong-range": 0
        },
        "verified_share_of_checkable": "\u2014",
        "wba_present": 0
      },
      {
        "by_purpose": {
          "training": 24
        },
        "kind": "training",
        "name": "GPTBot",
        "operator": "OpenAI",
        "rdns": {
          "not-offered": 3
        },
        "rdns_era_records": 3,
        "requests": 6,
        "top_class": "agent-claimed",
        "verdicts": {
          "not-checked": 0,
          "unverifiable-no-list": 0,
          "verified-range": 5,
          "wrong-range": 1
        },
        "verified_share_of_checkable": "small n (6 checkable)",
        "wba_present": 0
      },
      {
        "by_purpose": {},
        "kind": "(unlisted)",
        "name": "SemrushBot",
        "operator": "(unlisted)",
        "rdns": {
          "not-offered": 3
        },
        "rdns_era_records": 3,
        "requests": 3,
        "top_class": "agent-claimed",
        "verdicts": {
          "not-checked": 0,
          "unverifiable-no-list": 3,
          "verified-range": 0,
          "wrong-range": 0
        },
        "verified_share_of_checkable": "\u2014",
        "wba_present": 0
      },
      {
        "by_purpose": {},
        "kind": "(unlisted)",
        "name": "Internet Archive",
        "operator": "(unlisted)",
        "rdns": {},
        "rdns_era_records": 0,
        "requests": 2,
        "top_class": "agent-claimed",
        "verdicts": {
          "not-checked": 0,
          "unverifiable-no-list": 2,
          "verified-range": 0,
          "wrong-range": 0
        },
        "verified_share_of_checkable": "\u2014",
        "wba_present": 0
      },
      {
        "by_purpose": {
          "training": 1
        },
        "kind": "training",
        "name": "Bytespider",
        "operator": "ByteDance",
        "rdns": {},
        "rdns_era_records": 0,
        "requests": 1,
        "top_class": "agent-claimed",
        "verdicts": {
          "not-checked": 0,
          "unverifiable-no-list": 1,
          "verified-range": 0,
          "wrong-range": 0
        },
        "verified_share_of_checkable": "\u2014",
        "wba_present": 0
      }
    ]
  },
  "era_note": "Verdicts exist only on records written since the verdict fields began (the Oct 18, 2026 deployment). Earlier records carry no verdict and are not counted here.",
  "format": "swarm-garden-data/v1",
  "generated_at_pt": "Oct 23, 2026, 7:53:03 AM PT",
  "generated_at_utc": "2026-10-23T14:53:03Z",
  "rows": [
    {
      "claimed": 369,
      "name": "facebookexternalhit",
      "not-checked": 0,
      "unverifiable-no-list": 369,
      "verified-range": 0,
      "verified_share_of_checkable": "\u2014",
      "wrong-range": 0
    },
    {
      "claimed": 245,
      "name": "Googlebot",
      "not-checked": 0,
      "unverifiable-no-list": 0,
      "verified-range": 245,
      "verified_share_of_checkable": "100.0%",
      "wrong-range": 0
    },
    {
      "claimed": 84,
      "name": "Applebot",
      "not-checked": 0,
      "unverifiable-no-list": 84,
      "verified-range": 0,
      "verified_share_of_checkable": "\u2014",
      "wrong-range": 0
    },
    {
      "claimed": 47,
      "name": "MJ12bot",
      "not-checked": 0,
      "unverifiable-no-list": 47,
      "verified-range": 0,
      "verified_share_of_checkable": "\u2014",
      "wrong-range": 0
    },
    {
      "claimed": 31,
      "name": "Meta-ExternalAgent",
      "not-checked": 0,
      "unverifiable-no-list": 31,
      "verified-range": 0,
      "verified_share_of_checkable": "\u2014",
      "wrong-range": 0
    },
    {
      "claimed": 29,
      "name": "GoogleOther",
      "not-checked": 0,
      "unverifiable-no-list": 0,
      "verified-range": 29,
      "verified_share_of_checkable": "100.0%",
      "wrong-range": 0
    },
    {
      "claimed": 24,
      "name": "AhrefsBot",
      "not-checked": 0,
      "unverifiable-no-list": 24,
      "verified-range": 0,
      "verified_share_of_checkable": "\u2014",
      "wrong-range": 0
    },
    {
      "claimed": 20,
      "name": "Meta Web Indexer",
      "not-checked": 0,
      "unverifiable-no-list": 20,
      "verified-range": 0,
      "verified_share_of_checkable": "\u2014",
      "wrong-range": 0
    },
    {
      "claimed": 11,
      "name": "OAI-SearchBot",
      "not-checked": 0,
      "unverifiable-no-list": 0,
      "verified-range": 11,
      "verified_share_of_checkable": "small n (11 checkable)",
      "wrong-range": 0
    },
    {
      "claimed": 7,
      "name": "Amazonbot",
      "not-checked": 0,
      "unverifiable-no-list": 7,
      "verified-range": 0,
      "verified_share_of_checkable": "\u2014",
      "wrong-range": 0
    },
    {
      "claimed": 6,
      "name": "GPTBot",
      "not-checked": 0,
      "unverifiable-no-list": 0,
      "verified-range": 5,
      "verified_share_of_checkable": "small n (6 checkable)",
      "wrong-range": 1
    },
    {
      "claimed": 3,
      "name": "SemrushBot",
      "not-checked": 0,
      "unverifiable-no-list": 3,
      "verified-range": 0,
      "verified_share_of_checkable": "\u2014",
      "wrong-range": 0
    },
    {
      "claimed": 2,
      "name": "Internet Archive",
      "not-checked": 0,
      "unverifiable-no-list": 2,
      "verified-range": 0,
      "verified_share_of_checkable": "\u2014",
      "wrong-range": 0
    },
    {
      "claimed": 1,
      "name": "Bytespider",
      "not-checked": 0,
      "unverifiable-no-list": 1,
      "verified-range": 0,
      "verified_share_of_checkable": "\u2014",
      "wrong-range": 0
    }
  ],
  "site": "garden",
  "sources": {
    "days": {
      "2026-10-19": {
        "digest_requests": 240,
        "distinct_sources": 111,
        "names_per_source": {
          "0": 101,
          "1": 10,
          "2": 0,
          "3": 0,
          "4+": 0
        },
        "names_per_source_by_origin": {
          "cloud-hosting": {
            "0": 1,
            "1": 0,
            "2": 0,
            "3": 0,
            "4+": 0
          },
          "named-other": {
            "0": 1,
            "1": 0,
            "2": 0,
            "3": 0,
            "4+": 0
          },
          "none": {
            "0": 98,
            "1": 3,
            "2": 0,
            "3": 0,
            "4+": 0
          },
          "not-checked": {
            "0": 1,
            "1": 0,
            "2": 0,
            "3": 0,
            "4+": 0
          },
          "operator-crawler": {
            "0": 0,
            "1": 7,
            "2": 0,
            "3": 0,
            "4+": 0
          }
        },
        "sources_by_name": {
          "Applebot": 1,
          "Googlebot": 6,
          "Meta Web Indexer": 3
        }
      },
      "2026-10-20": {
        "digest_requests": 1141,
        "distinct_sources": 278,
        "names_per_source": {
          "0": 253,
          "1": 22,
          "2": 3,
          "3": 0,
          "4+": 0
        },
        "names_per_source_by_origin": {
          "cloud-hosting": {
            "0": 35,
            "1": 0,
            "2": 0,
            "3": 0,
            "4+": 0
          },
          "named-other": {
            "0": 16,
            "1": 0,
            "2": 0,
            "3": 0,
            "4+": 0
          },
          "none": {
            "0": 198,
            "1": 10,
            "2": 0,
            "3": 0,
            "4+": 0
          },
          "not-checked": {
            "0": 4,
            "1": 0,
            "2": 0,
            "3": 0,
            "4+": 0
          },
          "operator-crawler": {
            "0": 0,
            "1": 12,
            "2": 3,
            "3": 0,
            "4+": 0
          }
        },
        "sources_by_name": {
          "Applebot": 2,
          "GPTBot": 1,
          "GoogleOther": 3,
          "Googlebot": 13,
          "Meta Web Indexer": 4,
          "OAI-SearchBot": 2,
          "facebookexternalhit": 3
        }
      },
      "2026-10-21": {
        "digest_requests": 915,
        "distinct_sources": 214,
        "names_per_source": {
          "0": 178,
          "1": 34,
          "2": 2,
          "3": 0,
          "4+": 0
        },
        "names_per_source_by_origin": {
          "cloud-hosting": {
            "0": 22,
            "1": 0,
            "2": 0,
            "3": 0,
            "4+": 0
          },
          "named-other": {
            "0": 9,
            "1": 0,
            "2": 0,
            "3": 0,
            "4+": 0
          },
          "none": {
            "0": 140,
            "1": 8,
            "2": 0,
            "3": 0,
            "4+": 0
          },
          "not-checked": {
            "0": 7,
            "1": 1,
            "2": 0,
            "3": 0,
            "4+": 0
          },
          "operator-crawler": {
            "0": 0,
            "1": 25,
            "2": 2,
            "3": 0,
            "4+": 0
          }
        },
        "sources_by_name": {
          "Applebot": 11,
          "GPTBot": 1,
          "GoogleOther": 2,
          "Googlebot": 16,
          "Meta Web Indexer": 1,
          "OAI-SearchBot": 3,
          "facebookexternalhit": 4
        }
      },
      "2026-10-22": {
        "digest_requests": 1349,
        "distinct_sources": 390,
        "names_per_source": {
          "0": 94,
          "1": 294,
          "2": 2,
          "3": 0,
          "4+": 0
        },
        "names_per_source_by_origin": {
          "cloud-hosting": {
            "0": 9,
            "1": 0,
            "2": 0,
            "3": 0,
            "4+": 0
          },
          "commercial-bot": {
            "0": 0,
            "1": 3,
            "2": 0,
            "3": 0,
            "4+": 0
          },
          "named-other": {
            "0": 12,
            "1": 27,
            "2": 0,
            "3": 0,
            "4+": 0
          },
          "none": {
            "0": 69,
            "1": 231,
            "2": 0,
            "3": 0,
            "4+": 0
          },
          "not-checked": {
            "0": 4,
            "1": 4,
            "2": 0,
            "3": 0,
            "4+": 0
          },
          "operator-crawler": {
            "0": 0,
            "1": 29,
            "2": 2,
            "3": 0,
            "4+": 0
          }
        },
        "sources_by_name": {
          "AhrefsBot": 24,
          "Amazonbot": 3,
          "Applebot": 19,
          "GPTBot": 1,
          "GoogleOther": 2,
          "Googlebot": 12,
          "OAI-SearchBot": 2,
          "SemrushBot": 3,
          "facebookexternalhit": 232
        }
      },
      "2026-10-23": {
        "digest_requests": 392,
        "distinct_sources": 181,
        "names_per_source": {
          "0": 59,
          "1": 122,
          "2": 0,
          "3": 0,
          "4+": 0
        },
        "names_per_source_by_origin": {
          "cloud-hosting": {
            "0": 2,
            "1": 0,
            "2": 0,
            "3": 0,
            "4+": 0
          },
          "named-other": {
            "0": 2,
            "1": 3,
            "2": 0,
            "3": 0,
            "4+": 0
          },
          "none": {
            "0": 55,
            "1": 96,
            "2": 0,
            "3": 0,
            "4+": 0
          },
          "not-checked": {
            "0": 0,
            "1": 6,
            "2": 0,
            "3": 0,
            "4+": 0
          },
          "operator-crawler": {
            "0": 0,
            "1": 17,
            "2": 0,
            "3": 0,
            "4+": 0
          }
        },
        "sources_by_name": {
          "Amazonbot": 3,
          "Applebot": 11,
          "Googlebot": 6,
          "OAI-SearchBot": 1,
          "facebookexternalhit": 101
        }
      }
    },
    "note": "Distinct source addresses per Pacific day, from the source digest (a one-way digest of the Pacific date and the source address only \u2014 no user-agent). Digest values are never published; only these aggregates. A distinct source address is not a visitor, an agent, or an operator, and daily distincts are never summed into a longer span. Era-forward from the Oct 19, 2026 W10 deployment; earlier records carry no source digest and are outside the series."
  },
  "subclasses": {
    "folds": {
      "agent_claimed_operator_purpose": {
        "Amazon": {
          "undeclared": 7
        },
        "Apple": {
          "(none recorded)": 87
        },
        "ByteDance": {
          "training": 1
        },
        "Google": {
          "(none recorded)": 265,
          "mixed": 12,
          "other": 23
        },
        "Meta": {
          "(none recorded)": 398,
          "training": 31
        },
        "OpenAI": {
          "search": 13,
          "training": 24
        }
      },
      "asn_operator_type": {
        "cdn": 2963,
        "cloud-hosting": 771,
        "education": 1,
        "other": 3091,
        "search-platform": 1274,
        "telecom-isp": 27
      },
      "by_class": {
        "agent-claimed": {},
        "automation": {
          "generic-bot-token": 195,
          "http-library/tool: axios": 4,
          "http-library/tool: curl": 745,
          "http-library/tool: go-http-client": 2,
          "http-library/tool: headless-chrome": 1,
          "http-library/tool: python-aiohttp": 16,
          "http-library/tool: python-httpx": 9,
          "http-library/tool: python-requests": 41,
          "named-crawler (dictionary)": 376
        },
        "browser": {
          "chrome": 2758,
          "edge": 55,
          "firefox": 81,
          "opera": 7,
          "safari": 353
        },
        "unknown": {
          "library/tool: scrapy": 1,
          "no-UA": 1549,
          "token: (all other tokens, small-n folded)": 18,
          "token: Bun": 30,
          "token: Dalvik": 4,
          "token: Google-Lens": 6,
          "token: Mozilla": 723,
          "token: Mozlila": 12,
          "token: Opera": 3,
          "token: a2a-census-research": 8,
          "token: facebookexternalhit": 374,
          "token: http:": 432,
          "token: metabase-cve-2026-72898-detect": 7,
          "token: swarm-garden-export": 64,
          "token: swarm-garden-snapshot": 141
        }
      },
      "header_profile": {
        "browser-like": 94,
        "minimal": 2777,
        "partial": 1189
      },
      "headless_markers_by_class": {
        "automation": 1
      },
      "origin_category": {
        "cloud-hosting": 651,
        "commercial-bot": 3,
        "named-other": 187,
        "none": 2914,
        "not-checked": 71,
        "operator-crawler": 234
      },
      "protocol": {
        "h1.0": 20,
        "h1.1": 2815,
        "h2": 1192,
        "h3": 33
      },
      "ua_completeness": {
        "comment-no-version": 1,
        "empty": 1549,
        "full": 5035,
        "product+version": 1097,
        "product-only": 444
      },
      "ua_family": {
        "axios": 4,
        "curl": 745,
        "go-http-client": 2,
        "headless-chrome": 1,
        "other": 7307,
        "python-aiohttp": 16,
        "python-httpx": 9,
        "python-requests": 41,
        "scrapy": 1
      }
    },
    "note": "Cross-tab views over the frozen top classes \u2014 never reclassifications. UA-derived folds are computed from the stored UA strings; origin, header-profile and protocol folds are era-forward from the Oct 19, 2026 W6 deployment. The ASN operator type is a descriptive keyword heuristic over the AS organisation string."
  }
}
