# ForgeScanner

What this client asked https://www.pathwren.workers.dev for, from that host's own request log.
Window: 2026-09-03 08:01:04Z to 2026-09-14 01:09:38Z UTC. Generated 2026-09-14.

## User-agent strings, exactly as they arrived

- `Mozilla/5.0 (compatible; ForgeScanner/2.0)` — 1794 request(s), 1 address(es), 2026-09-03 08:01:04Z to 2026-09-14 01:09:38Z
- `Mozilla/5.0 (compatible; ForgeScanner/2.0; Puppeteer)` — 452 request(s), 1 address(es), 2026-09-03 08:01:04Z to 2026-09-14 01:09:30Z

- Requests: 2246
- Distinct addresses (salted hashes, never published): 1
- Distinct paths: 60
- Visits (30-minute gap rule): 34
- Status codes: 200×2242, 404×4
- Accept headers: application/json, text/plain, */*, image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8, text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
- Our classifier called it: agent×1794, unknown×452 (ours, from the user-agent)

## What it asked for, in order

1. `/c/aivisibility/api.json` — 2026-09-03 08:01:04Z — 200
2. `/favicon.ico` — 2026-09-03 08:01:04Z — 200
3. `/c/aivisibility/` — 2026-09-05 21:45:30Z — 200
4. `/px.gif` — 2026-09-05 21:45:30Z — 200
5. `/icon.png` — 2026-09-05 21:45:30Z — 200
6. `/pricing` — 2026-09-05 21:45:33Z — 200
7. `/about` — 2026-09-05 21:45:36Z — 200
8. `/services` — 2026-09-05 21:45:38Z — 200
9. `/contact` — 2026-09-05 21:45:41Z — 200
10. `/blog` — 2026-09-05 21:45:44Z — 200
11. `/` — 2026-09-05 21:45:46Z — 200
12. `/operator/` — 2026-09-05 21:45:46Z — 200
13. `/crawler/` — 2026-09-05 21:45:46Z — 200
14. `/policy/` — 2026-09-05 21:45:47Z — 200
15. `/ip-ranges/` — 2026-09-05 21:45:47Z — 200
16. `/data/` — 2026-09-05 21:45:47Z — 200
17. `/status.html` — 2026-09-05 21:45:47Z — 200
18. `/api.html` — 2026-09-05 21:45:47Z — 200
19. `/mcp.html` — 2026-09-05 21:45:47Z — 200
20. `/llms.txt` — 2026-09-05 21:45:47Z — 200
21. `/tools/` — 2026-09-05 21:45:47Z — 200
22. `/changes` — 2026-09-05 21:45:47Z — 200
23. `/documents.json` — 2026-09-05 21:45:48Z — 200
24. `/openapi.json` — 2026-09-05 21:45:48Z — 200
25. `/.well-known/agent-card.json` — 2026-09-05 21:45:48Z — 200
26. `/mcp` — 2026-09-05 21:45:48Z — 200
27. `/a2a` — 2026-09-05 21:45:48Z — 200
28. `/register` — 2026-09-05 21:45:48Z — 200
29. `/reference` — 2026-09-05 21:45:48Z — 200
30. `/crawler/gptbot.html` — 2026-09-05 21:45:48Z — 200
31. `/feed.json` — 2026-09-05 21:45:48Z — 200
32. `/crawler/oai-searchbot.html` — 2026-09-05 21:45:49Z — 200
33. `/crawler/claudebot.html` — 2026-09-05 21:45:49Z — 200
34. `/crawler/claude-searchbot.html` — 2026-09-05 21:45:49Z — 200
35. `/crawler/perplexitybot.html` — 2026-09-05 21:45:49Z — 200
36. `/crawler/google-extended.html` — 2026-09-05 21:45:49Z — 200
37. `/crawler/ccbot.html` — 2026-09-05 21:45:49Z — 200
38. `/crawler/index.html` — 2026-09-05 21:45:49Z — 200
39. `/crawler/bytespider.html` — 2026-09-05 21:45:49Z — 200
40. `/category/search.html` — 2026-09-05 21:45:49Z — 200

## What it asked for that did not exist

- `/services` — 404×2 — first asked 2026-09-05 21:45:38Z; answers 200 since 2026-09-05 22:24:32Z
- `/blog` — 404×2 — first asked 2026-09-05 21:45:44Z; answers 200 since 2026-09-05 22:25:31Z

## Verification

Not observed. This client publishes no address list we could read and no reverse-DNS convention we could test, so the user-agent is the only identity it has here — and a user-agent is a claim, not a proof. Anyone can send this string.

## Ask this page a question, with one GET

A question about this page, answered by a call you can make right now — no key, no account, no JSON-RPC, nothing to assemble. The query string is already filled in with this page's own subject.

- **What is Mozilla/5.0 (compatible; ForgeScanner/2.0)?**  
  `curl -s 'https://www.pathwren.workers.dev/tools/classify-ua?ua=Mozilla%2F5.0%20%28compatible%3B%20ForgeScanner%2F2.0%29&s=client-dossiers'`  
  This exact user-agent run through the catalogue: which crawler it is, who operates it, what the crawl is for, what blocking it costs — or an honest "not recognised" if it is nobody we know.

Every parameter above is a value the endpoint reads, not an address it visits: nothing is fetched on your behalf. Called without any parameter, each endpoint returns its own specification instead of an error.


## What it publishes about you

Not observed. We have not seen this client publish a grade, a listing or a record about this host anywhere, and we make no claim that it does or does not.

## Documentation it names

not observed — no URL in its user-agent

JSON: https://www.pathwren.workers.dev/bot/forgescanner.json · all clients: https://www.pathwren.workers.dev/data/observed-clients.json
