{
  "entity_a": {
    "slug": "claude-searchbot",
    "name": "Claude-SearchBot"
  },
  "entity_b": {
    "slug": "oai-adsbot",
    "name": "OAI-AdsBot"
  },
  "fields_documented": 10,
  "claims": 17,
  "last_verified": "2026-09-13",
  "fields": [
    {
      "field": "cites_sources",
      "value_a": "not_documented",
      "value_b": null,
      "claim_id_a": 34,
      "claim_id_b": null,
      "same": false
    },
    {
      "field": "honours_crawl_delay",
      "value_a": "yes",
      "value_b": "not_documented",
      "claim_id_a": 29,
      "claim_id_b": 87,
      "same": false
    },
    {
      "field": "publishes_ip_list",
      "value_a": "yes",
      "value_b": "yes",
      "claim_id_a": 30,
      "claim_id_b": 88,
      "same": true
    },
    {
      "field": "purpose_documented",
      "value_a": "search",
      "value_b": "ads",
      "claim_id_a": 32,
      "claim_id_b": 90,
      "same": false
    },
    {
      "field": "reads_llms_txt",
      "value_a": "not_documented",
      "value_b": null,
      "claim_id_a": 35,
      "claim_id_b": null,
      "same": false
    },
    {
      "field": "respects_robots_txt",
      "value_a": "yes",
      "value_b": "not_documented",
      "claim_id_a": 28,
      "claim_id_b": 86,
      "same": false
    },
    {
      "field": "scope_of_crawling",
      "value_a": null,
      "value_b": "limited to submitted ad landing pages",
      "claim_id_a": null,
      "claim_id_b": 93,
      "same": false
    },
    {
      "field": "separate_search_and_training_tokens",
      "value_a": "yes",
      "value_b": "not_documented",
      "claim_id_a": 33,
      "claim_id_b": 91,
      "same": false
    },
    {
      "field": "user_agent_string_full",
      "value_a": "not_documented",
      "value_b": "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-AdsBot/1.0; +https://openai.com/adsbot",
      "claim_id_a": 36,
      "claim_id_b": 92,
      "same": false
    },
    {
      "field": "verifiable_by_rdns",
      "value_a": "not_documented",
      "value_b": "not_documented",
      "claim_id_a": 31,
      "claim_id_b": 89,
      "same": true
    }
  ],
  "differences": [
    {
      "field": "cites_sources",
      "statement_a": "Anthropic does not publish whether Claude search responses cite pages crawled by Claude-SearchBot.",
      "statement_b": null,
      "claim_id_a": 34,
      "claim_id_b": null
    },
    {
      "field": "honours_crawl_delay",
      "statement_a": "Claude-SearchBot respects the Crawl-delay directive in robots.txt when crawling domains.",
      "statement_b": "OpenAI does not publish whether OAI-AdsBot honours the robots.txt Crawl-delay directive.",
      "claim_id_a": 29,
      "claim_id_b": 87
    },
    {
      "field": "purpose_documented",
      "statement_a": "Claude-SearchBot analyses online content to improve the relevance and accuracy of Claude search responses.",
      "statement_b": "OAI-AdsBot visits landing pages submitted as ads on ChatGPT to check compliance with OpenAI policies.",
      "claim_id_a": 32,
      "claim_id_b": 90
    },
    {
      "field": "reads_llms_txt",
      "statement_a": "Anthropic does not publish whether Claude-SearchBot reads llms.txt files.",
      "statement_b": null,
      "claim_id_a": 35,
      "claim_id_b": null
    },
    {
      "field": "respects_robots_txt",
      "statement_a": "Claude-SearchBot honours industry standard robots.txt directives that signal do not crawl.",
      "statement_b": "OpenAI does not publish whether OAI-AdsBot honours robots.txt disallow rules.",
      "claim_id_a": 28,
      "claim_id_b": 86
    },
    {
      "field": "scope_of_crawling",
      "statement_a": null,
      "statement_b": "OAI-AdsBot visits only pages submitted as ads on ChatGPT.",
      "claim_id_a": null,
      "claim_id_b": 93
    },
    {
      "field": "separate_search_and_training_tokens",
      "statement_a": "Anthropic separates search and training controls into two robots.txt tokens: Claude-SearchBot for search and ClaudeBot for training.",
      "statement_b": "OpenAI does not document OAI-AdsBot as part of a search and training token split.",
      "claim_id_a": 33,
      "claim_id_b": 91
    },
    {
      "field": "user_agent_string_full",
      "statement_a": "Anthropic does not publish a full user agent string for Claude-SearchBot.",
      "statement_b": "OAI-AdsBot sends the user agent string Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-AdsBot/1.0; +https://openai.com/adsbot.",
      "claim_id_a": 36,
      "claim_id_b": 92
    }
  ],
  "sources": [
    "https://claude.com/crawling/bots.json",
    "https://developers.openai.com/api/docs/bots",
    "https://openai.com/adsbot.json",
    "https://support.claude.com/en/articles/8896518-does-anthropic-crawl-content-from-the-web-and-how-can-site-owners-block-the-crawler"
  ]
}