Add be9700-api: TP-Link BE9700 router API proxy + Scalar docs

This commit is contained in:
2026-06-29 12:23:15 -07:00
parent 19fa1c7821
commit bf09e224c9
6 changed files with 145 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
# 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://<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`