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
MeasuredClaudeBot is a training crawler. Asynchronous, carries no user, excluded from attribution by design (C1.1).
| Actor | declared-agent · Anthropic · Training corpus collection |
|---|
| Purpose | training · not an attribution signal |
|---|
| Identity | circumstantial via ip-range — address inside the operator's published range — circumstantial and maintenance-dependent, not proof of which agent |
|---|
| Counts as | nothing |
|---|
| Request | GET /instrument/whoami · 216.73.216.0/24 · operator-published |
|---|
| User-agent | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |
|---|
Evidence
- ✓address-class — inside a published operator range: Anthropic/ClaudeBot / Claude-User / Claude-SearchBot
source: operator range snapshot
- ✓declared-agent user-agent — user-agent contains "claudebot" → ClaudeBot (Anthropic), declared purpose: training
source: claude.com/crawling/bots.json
- ✓published IP range — source 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.