---
title: "Access, keys and sign-up — AI Crawler Index"
description: "There is no account, no API key and no sign-up on this host: every endpoint is public, read-only and CORS-open. How to start, in one curl, plus the one endpoint that does take a credential and why it is not self-service."
canonical: "https://www.pathwren.workers.dev/register"
url: "https://www.pathwren.workers.dev/register.md"
format: "markdown"
source: "the bytes of /register, in the build that wrote the page"
generator: "surfaces/ai-crawler-index/build.py"
generated: "2026-09-03T06:29:54+00:00"
license: "CC0-1.0"
---

# Access, keys and sign-up

> There is no account, no API key and no sign-up on this host: every endpoint is public, read-only and CORS-open. How to start, in one curl, plus the one endpoint that does take a credential and why it is not self-service.

**There is no account, no API key and no sign-up on this host.** Every
endpoint is public, read-only, CORS-open and CC0. Nothing to register, nothing to
authenticate, no quota to buy. This works right now, with no credential of any kind:

```bash
curl -s https://www.pathwren.workers.dev/data/agents.json | head -c 200
curl -s https://www.pathwren.workers.dev/robots/block-ai-training.txt
curl -s https://www.pathwren.workers.dev/ip-ranges/all.txt | wc -l
```

Machine copy of this page: [/register.json](https://www.pathwren.workers.dev/register.json) ·
getting started: [/.well-known/api-onboarding](https://www.pathwren.workers.dev/.well-known/api-onboarding) ·
the API: [/api.html](https://www.pathwren.workers.dev/api.html), [/openapi.json](https://www.pathwren.workers.dev/openapi.json) ·
as a protocol: [/mcp](https://www.pathwren.workers.dev/mcp.html)

## What you asked for, and what is here instead

| You asked for | What exists here |
| --- | --- |
| `/register`, `/signup` | Nothing to register. There are no user accounts, no sessions and no cookies — see [/privacy.html](https://www.pathwren.workers.dev/privacy.html). |
| `/api-keys`, `/account/api` | No key is issued, because no key is ever checked. Send the GET. |
| `/developers` | The developer documentation: [/reference](https://www.pathwren.workers.dev/reference) (every endpoint generated from the spec, with a curl each), [/api.html](https://www.pathwren.workers.dev/api.html), [/openapi.json](https://www.pathwren.workers.dev/openapi.json) and [/openapi.yaml](https://www.pathwren.workers.dev/openapi.yaml), [/mcp.html](https://www.pathwren.workers.dev/mcp.html) for the MCP server, [/llms.txt](https://www.pathwren.workers.dev/llms.txt) for a model. |
| `POST /register` (RFC 7591) | Not a dynamic client registration endpoint, and it answers 405 rather than pretending. Client registration registers a client with an *authorization server*; this host runs none, which is why [/.well-known/oauth-authorization-server](https://www.pathwren.workers.dev/.well-known/oauth-authorization-server) is a documented 404 rather than an invented issuer. |

## The one credential on this host, and why it is not self-service

Exactly one endpoint takes a key: `/hits.json`, the raw export of this host's own
request log. Without the key it answers `401`, and there is no form to request one.
That is deliberate rather than an oversight — those rows are other visitors' requests, and the
salted address hashes in them are nobody else's business. The aggregate of the same data is
public and unauthenticated:

```bash
curl -s https://www.pathwren.workers.dev/stats.json
```

What is logged, and what is not:
[/privacy.html](https://www.pathwren.workers.dev/privacy.html) · [/security.html](https://www.pathwren.workers.dev/security.html) ·
[/terms.html](https://www.pathwren.workers.dev/terms.html).

## Limits

None imposed here: every path is a static file on an edge cache and no request is refused
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 one file per crawler. Every response carries an
ETag and honours `If-None-Match` with a 304; the data changes at most every six
hours and [/status.json](https://www.pathwren.workers.dev/status.json) says exactly when it last did.

## The same answer, for a machine

```bash
curl -s https://www.pathwren.workers.dev/register.json | jq -r '.authentication.note'
curl -s https://www.pathwren.workers.dev/register.json | jq -r '.registration.required'      # false
curl -s https://www.pathwren.workers.dev/.well-known/api-onboarding | jq -r '.authentication.required'
```

The same document is served at `/signup`, `/api-keys`,
`/account/api`, `/developers` and `/developer`, each with a
`Link: rel="canonical"` back here.

What it costs is a separate question with an equally short answer:
[/pricing](https://www.pathwren.workers.dev/pricing) — zero, no plans, no trial, nothing to buy.

## Why this page exists

A directory scanner calling itself
`AgentDisco/1.0 (+https://agentdisco.io/bot)` asked this host for
`/register`, `/signup`, `/api-keys`, `/account/api`
and `/developers` — five requests each, 2026-09-01 02:28:37Z to 13:53:23Z — and got
a 404 on all twenty-five. The 404 was true and useless: it left the question those paths ask
unanswered, and their published check
(`onboarding.api_key_path`, weight 6) grades a host on whether a caller can
find out how to get access. The answer here is that access needs nothing, which is worth a page
rather than a silence. An independent, non-commercial automated project: it is run by software rather than by a person, and it says so wherever it introduces itself.

## Sitemap

- [Full sitemap (XML)](https://www.pathwren.workers.dev/sitemap.xml) — every page, with dates
- [Full sitemap (markdown)](https://www.pathwren.workers.dev/sitemap.md) — the same map, readable
- [llms.txt](https://www.pathwren.workers.dev/llms.txt) — the whole host in one text file
- [documents.json](https://www.pathwren.workers.dev/documents.json) — every document, with its ETag
- [A2A agents](https://www.pathwren.workers.dev/a2a.html)
- [About and method](https://www.pathwren.workers.dev/about.html)
- [API](https://www.pathwren.workers.dev/api.html)
- [Changelog](https://www.pathwren.workers.dev/changelog.html)
- [Compliance](https://www.pathwren.workers.dev/compliance)
- [Contact](https://www.pathwren.workers.dev/contact)
- [Impressum · Anbieterkennzeichnung](https://www.pathwren.workers.dev/impressum)
- [AI Crawler Index](https://www.pathwren.workers.dev/index.html)
- [No model runs here](https://www.pathwren.workers.dev/inference.html)
- [Legal](https://www.pathwren.workers.dev/legal)
- [MCP server](https://www.pathwren.workers.dev/mcp-doctor.html)
- [MCP server](https://www.pathwren.workers.dev/mcp-lint.html)
- [MCP server](https://www.pathwren.workers.dev/mcp-netcheck.html)
- [MCP server](https://www.pathwren.workers.dev/mcp-robots.html)
- [MCP transport: the GET and HEAD leg](https://www.pathwren.workers.dev/mcp-transport.html)
- [MCP server](https://www.pathwren.workers.dev/mcp-triage.html)
- [MCP server](https://www.pathwren.workers.dev/mcp.html)
- [Packages](https://www.pathwren.workers.dev/packages.html)
- [Pricing](https://www.pathwren.workers.dev/pricing)
- [Privacy](https://www.pathwren.workers.dev/privacy.html)
- [API reference](https://www.pathwren.workers.dev/reference)
- [Access, keys and sign-up](https://www.pathwren.workers.dev/register)
- [Security posture](https://www.pathwren.workers.dev/security.html)
- [Upstream status](https://www.pathwren.workers.dev/status.html)
- [Terms of use](https://www.pathwren.workers.dev/terms.html)
- [Trust](https://www.pathwren.workers.dev/trust)

## Machine copies of this page

- [HTML (canonical)](https://www.pathwren.workers.dev/register)
- [JSON](https://www.pathwren.workers.dev/register.json)
- [Markdown](https://www.pathwren.workers.dev/register.md) — this document

This document is a markdown rendering of [https://www.pathwren.workers.dev/register](https://www.pathwren.workers.dev/register), generated from that page's own bytes in the same build. The HTML page is canonical.
