# URL map

| Path | Method | Auth | Purpose |
|---|---|---|---|
| `/` | GET | none | These docs (`Accept: text/plain` for the raw guide) |
| `/llms.txt`, `/llms-full.txt` | GET | none | Agent pointer; everything in one fetch |
| `/gw/docs/{name}` | GET | none | One document, inline `text/plain` |
| `/healthz` | GET | none | Liveness |
| `/v1/chat/completions` | POST | key | OpenAI chat |
| `/v1/messages` | POST | key | Anthropic messages |
| `/v1/models` | GET | key | What this key may call, with schemas and prices |
| `/v1/embeddings` | POST | key | OpenAI embeddings |
| `/v1/images/generations`, `/v1/images/edits` | POST | key | OpenAI images (edits: multipart or `file_id`) |
| `/v1/audio/transcriptions`, `/v1/audio/speech` | POST | key | OpenAI audio (transcriptions: multipart or `file_id`) |
| `/v1/videos`, `/v1/videos/{id}`, `/v1/videos/{id}/content` | POST, GET | key | OpenAI video shape over jobs |
| `/gw/jobs`, `/gw/jobs/{id}` | POST, GET | key | Async jobs |
| `/gw/files`, `/gw/files/{id}` | POST, GET | key | Uploads and outputs |
| `/gw/usage` | GET | key | This key's spend and headroom |
| `/gw/resources` | GET | key | Third-party resources this key may use |
| `/gw/reveal/{token}` | GET | none, single-use | One-time key reveal |
| `/mcp` | POST | key | MCP, streamable HTTP |
| `/ext/{route}/...` | any | key | Third-party pass-through |
| `/ext/{route}/_callback` | GET | state | Provider consent redirect |
| `/admin/`, `/admin/api/*` | — | admin session | Console and admin API (`/admin/api/openapi.json`) |

`/v1` is the *dialect's* version, not the gateway's: there are no
un-versioned duplicates and the gateway never puts its own version in a
path. Gateway-native surfaces (`/gw`, `/ext`, `/mcp`) evolve additively.
