1.6 KiB
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.jsonfor 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) |
The container holds no stored secrets, but the /api/* surface controls your
router and CORS is open — anyone who can reach the service and supply a valid
router password can change router settings. Keep this app LAN-only unless you
place an auth middleware (e.g. Traefik forward-auth / Authentik) in front of it
before exposing it to the internet.
Quick start
Once installed, open the Scalar docs at http://<your-server>:8347/docs
and authenticate each request with the X-Router-Host and
X-Router-Password headers.
Source
https://git.alexzaw.dev/alexz/be9700-api