{
  "entity_a": {
    "slug": "claudebot",
    "name": "ClaudeBot"
  },
  "entity_b": {
    "slug": "oai-searchbot",
    "name": "OAI-SearchBot"
  },
  "fields_documented": 15,
  "claims": 22,
  "last_verified": "2026-09-15",
  "fields": [
    {
      "field": "anti_circumvention_stance",
      "value_a": "documented",
      "value_b": null,
      "claim_id_a": 53,
      "claim_id_b": null,
      "same": false
    },
    {
      "field": "cites_sources",
      "value_a": null,
      "value_b": "yes",
      "claim_id_a": null,
      "claim_id_b": 100,
      "same": false
    },
    {
      "field": "honours_crawl_delay",
      "value_a": "yes",
      "value_b": "not_documented",
      "claim_id_a": 48,
      "claim_id_b": 95,
      "same": false
    },
    {
      "field": "observed_arrival_before_sitemap",
      "value_a": null,
      "value_b": "yes",
      "claim_id_a": null,
      "claim_id_b": 148,
      "same": false
    },
    {
      "field": "observed_fetches_json",
      "value_a": "yes",
      "value_b": null,
      "claim_id_a": 143,
      "claim_id_b": null,
      "same": false
    },
    {
      "field": "observed_fetches_markdown",
      "value_a": "yes",
      "value_b": null,
      "claim_id_a": 142,
      "claim_id_b": null,
      "same": false
    },
    {
      "field": "observed_first_request_path",
      "value_a": "/sitemap.xml",
      "value_b": null,
      "claim_id_a": 144,
      "claim_id_b": null,
      "same": false
    },
    {
      "field": "observed_format_pass_order",
      "value_a": "html_json_md",
      "value_b": null,
      "claim_id_a": 145,
      "claim_id_b": null,
      "same": false
    },
    {
      "field": "publishes_ip_list",
      "value_a": "yes",
      "value_b": "yes",
      "claim_id_a": 49,
      "claim_id_b": 96,
      "same": true
    },
    {
      "field": "purpose_documented",
      "value_a": "training",
      "value_b": "search",
      "claim_id_a": 51,
      "claim_id_b": 98,
      "same": false
    },
    {
      "field": "reads_llms_txt",
      "value_a": null,
      "value_b": "not_documented",
      "claim_id_a": null,
      "claim_id_b": 101,
      "same": false
    },
    {
      "field": "respects_robots_txt",
      "value_a": "yes",
      "value_b": "yes",
      "claim_id_a": 47,
      "claim_id_b": 94,
      "same": true
    },
    {
      "field": "separate_search_and_training_tokens",
      "value_a": "yes",
      "value_b": "yes",
      "claim_id_a": 52,
      "claim_id_b": 99,
      "same": true
    },
    {
      "field": "user_agent_string_full",
      "value_a": "not_documented",
      "value_b": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.4; +https://openai.com/searchbot",
      "claim_id_a": 54,
      "claim_id_b": 102,
      "same": false
    },
    {
      "field": "verifiable_by_rdns",
      "value_a": "not_documented",
      "value_b": "not_documented",
      "claim_id_a": 50,
      "claim_id_b": 97,
      "same": true
    }
  ],
  "differences": [
    {
      "field": "anti_circumvention_stance",
      "statement_a": "ClaudeBot respects anti-circumvention technologies and does not bypass CAPTCHAs on crawled sites.",
      "statement_b": null,
      "claim_id_a": 53,
      "claim_id_b": null
    },
    {
      "field": "cites_sources",
      "statement_a": null,
      "statement_b": "OAI-SearchBot surfaces crawled websites as links in ChatGPT search answers.",
      "claim_id_a": null,
      "claim_id_b": 100
    },
    {
      "field": "honours_crawl_delay",
      "statement_a": "Anthropic supports the non-standard robots.txt Crawl-delay extension for ClaudeBot.",
      "statement_b": "OpenAI does not publish whether OAI-SearchBot honours the robots.txt Crawl-delay directive.",
      "claim_id_a": 48,
      "claim_id_b": 95
    },
    {
      "field": "observed_arrival_before_sitemap",
      "statement_a": null,
      "statement_b": "OAI-SearchBot first requested Rattlesnakes By Mail at 2026-09-13T21:41:14Z, before the Rattlesnakes By Mail sitemap was submitted to Bing Webmaster Tools shortly before 2026-09-15T08:38Z and to Google Search Console at 2026-09-15T09:00Z. OAI-SearchBot made 3 requests to Rattlesnakes By Mail between 2026-09-13T20:00Z and 2026-09-15T09:00Z, all 3 to /robots.txt.",
      "claim_id_a": null,
      "claim_id_b": 148
    },
    {
      "field": "observed_fetches_json",
      "statement_a": "ClaudeBot made 177 JSON requests to Rattlesnakes By Mail between 2026-09-13T20:00Z and 2026-09-15T09:00Z, covering the .json twin of 170 base paths. The .json URLs of Rattlesnakes By Mail appear in no entry of the 171 URL sitemap.",
      "statement_b": null,
      "claim_id_a": 143,
      "claim_id_b": null
    },
    {
      "field": "observed_fetches_markdown",
      "statement_a": "ClaudeBot fetched the .md twin of 170 base paths on Rattlesnakes By Mail between 2026-09-13T20:00Z and 2026-09-15T09:00Z, 170 Markdown requests of 542 ClaudeBot requests in that window. The .md URLs of Rattlesnakes By Mail appear in no entry of the 171 URL sitemap.",
      "statement_b": null,
      "claim_id_a": 142,
      "claim_id_b": null
    },
    {
      "field": "observed_first_request_path",
      "statement_a": "ClaudeBot's first request to Rattlesnakes By Mail between 2026-09-13T20:00Z and 2026-09-15T09:00Z was /sitemap.xml at 2026-09-14T19:53:45Z. ClaudeBot fetched /robots.txt on the second request to Rattlesnakes By Mail.",
      "statement_b": null,
      "claim_id_a": 144,
      "claim_id_b": null
    },
    {
      "field": "observed_format_pass_order",
      "statement_a": "ClaudeBot fetched Rattlesnakes By Mail in three format passes between 2026-09-13T20:00Z and 2026-09-15T09:00Z, HTML from 2026-09-14T20:52Z to 2026-09-14T20:57Z, then JSON from 2026-09-14T21:37Z to 2026-09-14T21:56Z, then Markdown from 2026-09-14T21:37Z to 2026-09-14T21:57Z. The same order holds on 170 of 170 base paths that ClaudeBot fetched in all three formats on Rattlesnakes By Mail.",
      "statement_b": null,
      "claim_id_a": 145,
      "claim_id_b": null
    },
    {
      "field": "purpose_documented",
      "statement_a": "ClaudeBot collects web content for training Anthropic generative AI models.",
      "statement_b": "OAI-SearchBot surfaces websites in search results in ChatGPT search features.",
      "claim_id_a": 51,
      "claim_id_b": 98
    },
    {
      "field": "reads_llms_txt",
      "statement_a": null,
      "statement_b": "OpenAI does not publish whether OAI-SearchBot reads llms.txt files.",
      "claim_id_a": null,
      "claim_id_b": 101
    },
    {
      "field": "user_agent_string_full",
      "statement_a": "Anthropic does not publish a full user agent string for ClaudeBot.",
      "statement_b": "OAI-SearchBot sends the user agent string Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.4; +https://openai.com/searchbot.",
      "claim_id_a": 54,
      "claim_id_b": 102
    }
  ],
  "sources": [
    "https://claude.com/crawling/bots.json",
    "https://developers.openai.com/api/docs/bots",
    "https://openai.com/searchbot.json",
    "https://rattlesnakesbymail.com/observed/claudebot",
    "https://rattlesnakesbymail.com/observed/oai-searchbot",
    "https://support.claude.com/en/articles/8896518-does-anthropic-crawl-content-from-the-web-and-how-can-site-owners-block-the-crawler"
  ]
}