BondiCasa

The instrument / your request

This is how the edge classified you.

The same record was published to the live stream when you loaded this page. Addresses are truncated and unrecognised query parameters redacted before anything is published.

ClaudeBot · Anthropic

Measured

ClaudeBot is a training crawler. Asynchronous, carries no user, excluded from attribution by design (C1.1).

Actordeclared-agent · Anthropic · Training corpus collection
Purposetraining · not an attribution signal
Identitycircumstantial via ip-rangeaddress inside the operator's published range — circumstantial and maintenance-dependent, not proof of which agent
Counts asnothing
RequestGET /instrument/whoami · 216.73.216.0/24 · operator-published
User-agentMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)

Evidence

  • address-classinside a published operator range: Anthropic/ClaudeBot / Claude-User / Claude-SearchBot
    source: operator range snapshot
  • declared-agent user-agentuser-agent contains "claudebot" → ClaudeBot (Anthropic), declared purpose: training
    source: claude.com/crawling/bots.json
  • published IP rangesource address falls inside the operator's published range for this agent
    source: https://claude.com/crawling/bots.json (26 prefixes, operator creationTime 2026-08-18T23:56:36Z), 8 days old

If you opened this from inside an assistant's mobile app and the record above says browser rather than in-app-browser, that is a finding, not a failure — it means the app either uses a system browser handoff or sends a user-agent our registry does not have. Either way the user-agent above is the evidence, and it is what a validation record would be built from.

Raw record

{
  "schema": "vsb.classification.v1",
  "id": "mtb4b1jj-5cd3fd5fadbe",
  "ts": "2026-08-27T06:04:19.630Z",
  "request": {
    "method": "GET",
    "host": "www.bondi.casa",
    "path": "/instrument/whoami",
    "userAgent": "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)",
    "ipTruncated": "216.73.216.0/24",
    "networkClass": "operator-published",
    "asn": null,
    "asnName": null,
    "country": null
  },
  "actor": {
    "kind": "declared-agent",
    "operator": "Anthropic",
    "agentName": "ClaudeBot",
    "surface": "Training corpus collection",
    "label": "ClaudeBot · Anthropic"
  },
  "purpose": "training",
  "identity": {
    "method": "ip-range",
    "verdict": "circumstantial",
    "detail": "address inside the operator's published range — circumstantial and maintenance-dependent, not proof of which agent",
    "signaturePresent": false,
    "signatureAgent": null,
    "signatureKeyId": null
  },
  "source": {
    "assistant": null,
    "signal": "none",
    "confidence": "none",
    "detail": "an agent fetch is not a human arrival"
  },
  "metric": {
    "countsAs": "nothing",
    "provenance": "MEASURED",
    "inScopeForAttribution": false,
    "claim": "ClaudeBot is a training crawler. Asynchronous, carries no user, excluded from attribution by design (C1.1)."
  },
  "evidence": [
    {
      "check": "address-class",
      "result": "pass",
      "detail": "inside a published operator range: Anthropic/ClaudeBot / Claude-User / Claude-SearchBot",
      "reference": "operator range snapshot"
    },
    {
      "check": "declared-agent user-agent",
      "result": "pass",
      "detail": "user-agent contains \"claudebot\" → ClaudeBot (Anthropic), declared purpose: training",
      "reference": "claude.com/crawling/bots.json"
    },
    {
      "check": "published IP range",
      "result": "pass",
      "detail": "source address falls inside the operator's published range for this agent",
      "reference": "https://claude.com/crawling/bots.json (26 prefixes, operator creationTime 2026-08-18T23:56:36Z), 8 days old"
    }
  ],
  "notes": []
}

Same payload as GET /api/whoami.

Live classification streamClassify my request — Bondi Casa