{
 "$comment": "The access document: how a caller gets access to this host, at the path a scanner asks for it. It is the machine copy of https://www.pathwren.workers.dev/register and is served at /signup, /api-keys, /account/api and /developers as well, each with a canonical link home. It is deliberately NOT an RFC 7591 client registration response: it carries no client_id, no client_secret and no registration_access_token, because nothing is registered here.",
 "name": "AI Crawler Index",
 "url": "https://www.pathwren.workers.dev/register",
 "canonical": "https://www.pathwren.workers.dev/register",
 "also_served_at": [
  "https://www.pathwren.workers.dev/signup",
  "https://www.pathwren.workers.dev/api-keys",
  "https://www.pathwren.workers.dev/account/api",
  "https://www.pathwren.workers.dev/developers"
 ],
 "human_readable": "https://www.pathwren.workers.dev/register",
 "modified": "2026-09-01",
 "summary": "There is no account, no API key and no sign-up on this host. Every endpoint is public, read-only, CORS-open and CC0. Send the request.",
 "registration": {
  "required": false,
  "available": false,
  "accounts": false,
  "api_keys_issued": false,
  "signup_url": null,
  "login_url": null,
  "oauth_dynamic_client_registration": false,
  "note": "Nothing on this host can be registered, so no registration endpoint exists. A non-read method on any of these paths answers 405 with reason `not_a_registration_endpoint` rather than a bare 405 that would assert one."
 },
 "authentication": {
  "required": false,
  "type": "none",
  "note": "There is no key, no token, no signup and no account. Send the GET."
 },
 "rate_limits": {
  "per_client_limit": null,
  "note": "None imposed by this API: every path is a static file on an edge cache, and no request is rejected for being frequent. The host's free plan allows 100,000 requests a day across the whole site, so the only real limit is that one — please fetch /data/agents.json once (about 300 KB, everything in it) rather than 56 per-crawler files, and remember the data changes at most every six hours, which /status.json tells you exactly.",
  "conditional_requests": "Every response carries an ETag and honours If-None-Match with a 304. There is no Last-Modified header, so If-Modified-Since is ignored — revalidate on the ETag.",
  "cors": "Access-Control-Allow-Origin: * on everything — callable straight from a browser."
 },
 "start_here": [
  {
   "what": "The whole dataset in one fetch, no credential",
   "curl": "curl -s https://www.pathwren.workers.dev/data/agents.json"
  },
  {
   "what": "The same index as an MCP server, no key, no session",
   "curl": "curl -s https://www.pathwren.workers.dev/mcp -H 'content-type: application/json' -H 'accept: application/json, text/event-stream' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/list\"}'"
  },
  {
   "what": "This answer, as JSON",
   "curl": "curl -s https://www.pathwren.workers.dev/register.json | jq -r '.authentication.note'"
  }
 ],
 "credentialed_endpoints": [
  {
   "path": "/hits.json",
   "url": "https://www.pathwren.workers.dev/hits.json",
   "requires": "an export key, as ?key= or Authorization: Bearer",
   "status_without_it": 401,
   "self_service": false,
   "why_not": "The rows are other visitors' requests, with salted address hashes. Publishing an issuing form would hand out other people's traffic; the aggregate of the same data is public instead.",
   "public_alternative": "https://www.pathwren.workers.dev/stats.json"
  }
 ],
 "everything_else": {
  "authentication": "none",
  "methods": [
   "GET",
   "HEAD",
   "OPTIONS"
  ],
  "cors": "Access-Control-Allow-Origin: *",
  "cost": "free",
  "license": "CC0-1.0"
 },
 "not_a_registration_endpoint": "RFC 7591 dynamic client registration registers a client with an authorization server. This host runs none — /.well-known/oauth-authorization-server and /.well-known/oauth-protected-resource are 404 by decision, with the reason in the body — so there is nothing to register a client with, and this document names no issuer, no registration_endpoint and no client credentials.",
 "documentation": {
  "human": "https://www.pathwren.workers.dev/api.html",
  "getting_started": "https://www.pathwren.workers.dev/.well-known/api-onboarding",
  "openapi": "https://www.pathwren.workers.dev/openapi.json",
  "mcp": "https://www.pathwren.workers.dev/mcp",
  "for_models": "https://www.pathwren.workers.dev/llms.txt",
  "terms": "https://www.pathwren.workers.dev/terms.json",
  "privacy": "https://www.pathwren.workers.dev/privacy.json"
 },
 "asked_by": {
  "user_agent": "AgentDisco/1.0 (+https://agentdisco.io/bot)",
  "paths": [
   "/register",
   "/signup",
   "/api-keys",
   "/account/api",
   "/developers"
  ],
  "requests": "5 per path, one address, Accept: */*",
  "first_seen": "2026-09-01T02:28:37+00:00",
  "last_seen": "2026-09-01T13:53:23+00:00",
  "took": "404 on every one, before this document existed",
  "their_check": "https://agentdisco.io/checks/onboarding.api_key_path",
  "their_words": "Looks for API-key signup discoverability: probes conventional paths (/signup, /register, /developers, /api-keys, /account/api) plus anchors on the homepage and docs landing whose text matches \"api key\", \"get started\", \"authenticate\", or \"sign up\"."
 },
 "license": {
  "document": "CC0-1.0",
  "url": "https://creativecommons.org/publicdomain/zero/1.0/"
 },
 "who_runs_it": "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."
}