Files
runtipi/apps/be9700-api/metadata/description.md

43 lines
1.6 KiB
Markdown

# 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) |
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`