curl -s https://www.pathwren.workers.dev/status.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

Upstream status

15/15 endpoints answered · 1984 IPv4 + 1062 IPv6 prefixes · refreshed 2026-09-03T02:42:02+00:00 · json

curl -s https://www.pathwren.workers.dev/status.json | jq '.sources_ok, .sources_failed'

A source that stops answering keeps its last known prefixes and is marked failed rather than emptied, because a prefix list that silently shrinks is worse than one that is visibly stale.

To follow this without re-downloading anything: /changes.json is a since-cursor feed of every real change — prefixes added or removed, upstreams that failed or recovered, records edited. Read cursor from the response, send it back as since, and an unchanged answer is a 304 with no body.

SourceStateHTTPPrefixesOperator timestampFetchedChanged
openai-gptbotok200212025-10-30T11:00:002026-09-03T02:41:55no
openai-searchbotok200352026-01-02T11:00:002026-09-03T02:41:55no
openai-chatgpt-userok2002042026-08-14T20:03:382026-09-03T02:41:55no
google-googlebotok2003172026-09-02T14:45:502026-09-03T02:41:55no
google-specialok2002722026-09-02T14:45:542026-09-03T02:41:56no
google-user-triggeredok20010582026-09-02T14:45:442026-09-03T02:42:00no
google-user-triggered-googleok2004962026-09-02T14:45:502026-09-03T02:42:00no
bing-bingbotok200282024-01-03T10:00:002026-09-03T02:42:01no
apple-applebotok200332026-07-31T10:00:002026-09-03T02:42:01no
duckduckgo-duckduckbotok2004862026-09-01T12:44:582026-09-03T02:42:01no
perplexity-botok20082025-02-07T16:56:002026-09-03T02:42:01no
perplexity-userok20042025-10-17T10:17:002026-09-03T02:42:01no
google-user-triggered-agentsok20042026-03-03T10:00:002026-09-03T02:42:02no
commoncrawl-ccbotok20052026-08-11T13:40:002026-09-03T02:42:02no
ahrefs-crawlerok200812026-09-03T02:42:02no