41 lines
1.4 KiB
Markdown
41 lines
1.4 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) |
|
|
|
|
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`
|