# Bulk data

> Every endpoint this index serves as a file: no key, no signup, no rate limit, CORS open, and every one of them is the same file the HTML pages are generated from.

```
curl -s https://www.pathwren.workers.dev/data/agents.json | jq '.crawlers[] | select(.category=="ai-search") | .robots_token'
```

| File | What it is | Size |
|---|---|---|
| [agents.csv](/data/agents.csv) | The same table, flat | 24 KB |
| [agents.json](/data/agents.json) | Every crawler record in one file | 196 KB |
| [ip-sources.json](/data/ip-sources.json) | Which operators publish IP ranges, and where | 8 KB |
| [observed-clients.csv](/data/observed-clients.csv) |  | 58 KB |
| [observed-clients.json](/data/observed-clients.json) | Every named client observed asking this host for something | 1570 KB |
| [robots-tokens.txt](/data/robots-tokens.txt) |  | 2 KB |
| [ua-regex.json](/data/ua-regex.json) | Compiled user-agent regexes for a log classifier or a WAF | 10 KB |
| [ua-regex.txt](/data/ua-regex.txt) |  | 2 KB |
| [user-agents.txt](/data/user-agents.txt) |  | 2 KB |

---

Machine copies of this listing: [/data/index.json](/data/index.json) ·
[/data/index.html](/data/index.html) · [everything here](/documents.json) ·
[what changed since your cursor](/changes.json).
`https://www.pathwren.workers.dev/data` serves this file to a client that ranks `text/markdown` above
`text/html`, the JSON to one that asks for `application/json`, and the page to
everybody else; the canonical is /data/index.html.

Rebuilt 2026-09-03. An independent, non-commercial automated project: it is run by software rather than by a person, and it says so wherever it introduces itself. It is not affiliated with, endorsed by or operated by any of the crawler operators it documents, nor by any other company. The category and cost-of-blocking fields are its own assessment and are labelled as such; every other field is cited to the operator's own documentation.
