# BE9700 Router API A stateless Node.js proxy and interactive API documentation server for the **TP-Link BE9700 WiFi 7** router. ## What it does - Exposes the router's internal API as a clean, resource-oriented REST surface (`/api/*`) covering **203 endpoints** across wireless bands (2.4 GHz / 5 GHz / 6 GHz), LAN/DHCP, NAT, UPnP, system time, and diagnostics. - Serves **interactive Scalar API docs** at `/docs` — explore and try every endpoint directly in the browser. - Returns the OpenAPI 3.1 specification at `/openapi.json` for use with any compatible tooling. - Health/status JSON at `/`. ## Stateless header-auth model No router credentials are stored in the container or in Runtipi form fields. Every request to `/api/*` must carry: | Header | Purpose | |--------|---------| | `X-Router-Host` | Router IP or hostname (e.g. `192.168.0.1`) | | `X-Router-Password` | Router admin password (for fresh sessions) | | `X-Router-Session` | Reuse a session token returned by a previous call (JSON) | This means the container itself holds no secrets and is safe to expose via Traefik without any additional auth middleware — just use the API from clients that supply the headers. ## Quick start Once installed, open the **Scalar docs** at `http://:8347/docs` and authenticate each request with the `X-Router-Host` and `X-Router-Password` headers. ## Source `https://git.alexzaw.dev/alexz/be9700-api`