curl -s https://www.pathwren.workers.dev/services.json # this page, as JSON
No key, no account, no handshake — every page here has a JSON twin one hop away. Machine doors: 6 keyless GET tools · documents.json · changes · llms.txt · openapi.json · agent card · mcp · a2a
12 services, every one of them a public endpoint that answers right now, without an account or a key, for nothing. This is a catalogue of what this host runs — not an agency page: there is no company here and nobody to hire. The list below is generated from the same structures that build the endpoints, so it cannot name a service that has stopped existing.
curl -s https://www.pathwren.workers.dev/services.json | jq -r '.services[].name' curl -s https://www.pathwren.workers.dev/data/agents.json | head -c 200
Machine copy of this page: /services.json · what it costs: /pricing · access and keys: /register · formal description: /openapi.json · terms: /terms.html
| Service | Where | Price | Auth |
|---|---|---|---|
| AI crawler index — 150 records, 74 operators One record per crawler and AI user agent: robots.txt token, user-agent string, how its operator says to verify it, and what blocking it costs you. 9 categories. | /crawler/ · /data/agents.json · /data/agents.csv | 0 | none |
| Operator IP-range mirror — 1987 IPv4 + 1062 IPv6 prefixes 15 operator-published range endpoints normalised into one schema, each with the upstream timestamp and a SHA-256 of the bytes received. Re-fetched every six hours; a stale source says so rather than disappearing. | /ip-ranges/ · /ip-ranges/all.json · /ip-ranges/all.txt · /status.json | 0 | none |
| Eight ready-made robots.txt files Each names every relevant crawler explicitly, so a later change is a one-line diff. Pick the trade-off, curl the file, append it. | /policy/ · /robots/block-ai-training.txt · /robots/allow-ai-search-only.txt | 0 | none |
| Five generated config snippets The same policies as nginx, Caddy, Cloudflare and .htaccess rules, generated from the index rather than typed. | /snippet/ | 0 | none |
| HTTP API, described formally Every read endpoint in OpenAPI 3.1 (and Swagger 2.0, and YAML), with a human reference beside it. No key, no account, CORS open. | /openapi.json · /reference · /api/v1 | 0 | none |
| 8 keyless GET tools The read-only tools of this host as plain GET endpoints — verify a crawler, lint a robots.txt, classify a user-agent — for a client that cannot speak JSON-RPC. | /tools/ · /tools/whoami · /tools/example · /tools/verify-crawler | 0 | none |
| Six MCP servers Model Context Protocol over JSON-RPC (POST), no key and no quota: /mcp, /mcp/doctor, /mcp/lint, /mcp/netcheck, /mcp/robots, /mcp/triage. | /mcp · /mcp/doctor · /mcp/lint · /mcp/netcheck · /mcp/robots · /mcp/triage | 0 | none |
| Seven A2A agents The same capabilities as Agent2Agent skills, each with a published agent card at | /a2a · /.well-known/agent-card.json | 0 | none |
| Since-cursor change feed Poll instead of re-crawling: send back the cursor you were given and get only what moved. It advances only on a real change, so an unchanged answer is proof rather than luck. | /changes.json · /feed.xml · /feed.json | 0 | none |
| Observed-client dossiers One page per named client that has actually asked this host for something: what it fetched, when it was first and last seen, how many addresses it came from. It says "not observed" rather than guessing. | /bot/ · /data/observed-clients.json · /data/observed-clients.csv | 0 | none |
| Machine discovery documents llms.txt, AGENTS.md, the document ledger with a strong ETag per file, the sitemap, and the .well-known family — so an agent can map this host in one request. | /llms.txt · /documents.json · /AGENTS.md · /sitemap.xml | 0 | none |
| Writing Long-form pieces about crawler and agent traffic, and what it costs to block it. | /blog/ · /blog/index.json | 0 | none |
| You may be looking for | The honest answer |
|---|---|
| Consulting, contracting or an agency engagement | There is no company here and nobody to hire. This is software that runs by itself; there is no person to book, no rate card and no statement of work. |
| A managed service, hosting or anything installed for you | Every service above is a public read endpoint. Nothing is deployed on your behalf and nothing runs inside your infrastructure. |
| An SLA, a support contract or a paid support tier | Best effort, and stated as such. The edge serves static files and the index rebuilds every six hours; when an upstream source fails, /status.json says so rather than hiding it. There is no ticket queue and no promise of a response time. |
| Custom development, integrations or data work for hire | Not offered at any price. The data is CC0 — build the integration yourself, or fork the whole dataset, which is one JSON file. |
| Accounts, API keys, seats or quota | None exist. Nothing here is metered per client and no request is refused for being frequent. See /register for the full access answer. |
| A sales route, an enterprise tier or a demo | Nothing on this host is for sale, so there is nothing to demonstrate and nobody to talk to about buying it. Corrections and questions go to /contact. |
/hits.json needs an export key and answers 401 without one. It is
not priced, because it is not sold: the rows are other visitors' requests with salted
address hashes. The aggregate of the same data is public at
/stats.json for nothing.
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.
Every document is CC0-1.0 — public domain, commercial use included, no attribution required. Terms: /terms.html · privacy: /privacy.html · security contact: /.well-known/security.txt · who this is: /about.
A readiness scanner calling itself
Mozilla/5.0 (compatible; ForgeScanner/2.0) — and its headless twin
…; Puppeteer) — asked this host for /services at
2026-09-05 21:45:38Z and took a 404, six seconds before taking one on
/blog. The same walk fetched /pricing,
/about and /contact and got a 200 on each: it
checks the conventional pages of a site and grades what is missing. Every service it was
looking for was already running; only the address where the question is asked was
missing.