{
 "tool": "verification-methods",
 "endpoint": "https://www.pathwren.workers.dev/tools/verification-methods",
 "asked": {
  "crawler": "perplexitybot"
 },
 "summary": "1 crawler(s) matching \"perplexitybot\".\n\nBy method: published ranges 1, reverse DNS 0, none 0.\n\nPerplexityBot (Perplexity): published-ranges — Verifiable by published ranges. Check the address against the operator's own published list at https://www.perplexity.ai/perplexitybot.json; this server mirrors it (8 IPv4 + 0 IPv6 prefixes, last fetched 2026-09-14T03:51:08+00:00) and verify_batch does exactly that check. Presence is consistent with the claim; pair it with the user-agent.",
 "answer": {
  "query": "perplexitybot",
  "crawlers": [
   {
    "slug": "perplexitybot",
    "name": "PerplexityBot",
    "operator": "Perplexity",
    "verification_method": "published-ranges",
    "verification_label": "published IP ranges",
    "how": "Verifiable by published ranges. Check the address against the operator's own published list at https://www.perplexity.ai/perplexitybot.json; this server mirrors it (8 IPv4 + 0 IPv6 prefixes, last fetched 2026-09-14T03:51:08+00:00) and verify_batch does exactly that check. Presence is consistent with the claim; pair it with the user-agent.",
    "published_ip_ranges_url": "https://www.perplexity.ai/perplexitybot.json",
    "mirrored_prefixes": {
     "ipv4": 8,
     "ipv6": 0,
     "mirrored_at": "2026-09-14T03:51:08+00:00"
    },
    "respects_robots_txt": "documented",
    "user_agent_substring": "PerplexityBot"
   }
  ],
  "tally": {
   "published-ranges": 1,
   "reverse-dns": 0,
   "none": 0,
   "other": 0
  },
  "what_this_is_for": "Before you read anything into a miss from verify_batch, find out whether the crawler can be verified by prefix at all. Of the crawlers in this index, only those with verification_method 'published-ranges' can.",
  "reverse_dns_is_not_performed_here": "This server makes no outbound request of any kind, so reverse DNS is handed back as a command to run, never as a result. A tool that fetched or resolved on request could be aimed at anything.",
  "index": {
   "crawlers_indexed": 150,
   "generated_at": "2026-09-14T09:49:20+00:00",
   "source": "https://www.pathwren.workers.dev/data/agents.json"
  },
  "source": "https://www.pathwren.workers.dev/mcp/netcheck"
 },
 "answered_by": {
  "note": "The MCP tool itself answered this. One implementation, two doors — this endpoint holds no copy of it.",
  "server": "crawler-ip-verifier",
  "endpoint": "https://www.pathwren.workers.dev/mcp/netcheck",
  "tool": "verification_methods",
  "protocol": "MCP streamable-http, JSON-RPC 2.0 tools/call"
 },
 "caveats": [
  "Reverse DNS is never performed here — no request leaves this host — so the command is handed back, labelled as not run."
 ],
 "docs": "https://www.pathwren.workers.dev/tools/verification-methods.html?s=client-dossiers",
 "catalogue": "https://www.pathwren.workers.dev/tools/index.json?s=client-dossiers",
 "more": {
  "who actually crawls this host": "https://www.pathwren.workers.dev/bot/index.html?s=client-dossiers",
  "every named client as one file": "https://www.pathwren.workers.dev/data/observed-clients.json?s=client-dossiers"
 },
 "auth": "none — no account, no key, no handshake. CORS open, cacheable, CC0-1.0.",
 "license": "CC0-1.0",
 "independent": true,
 "_about": {
  "page": "https://www.pathwren.workers.dev/bot/claudebot.html?s=client-dossiers",
  "what": "What this host recorded about the client that made this request — the requests, the status codes and the user-agent string, from its own log. Nothing else: no address is published, nothing is looked up anywhere, and there is no account to close.",
  "matched_on": "the User-Agent header you sent. If we have no page for it yet this points at the index of all of them.",
  "index": "https://www.pathwren.workers.dev/bot/index.html?s=client-dossiers"
 }
}
