Deco BE85
Base URL: https://deco.msageha.net/api (FastAPI wrapper around the TP-Link
Deco BE85 local API). Requests to this instance don't need any authentication
header/cookie — the server logs into the router itself with stored credentials.
Key facts
- Login to the router is lazy: the first call after startup/idle triggers it and is slower. Expired sessions are re-logged-in and retried automatically.
- Requests are serialized behind a server-side lock (single router session). Call endpoints sequentially; don't fan out parallel requests.
bandisband2_4/band5_1/band6;networkishost/guest.GET /wirelessreturnsssid/passwordbase64-encoded; write endpoints accept them in plain text (the server encodes them).- Confirm with the user before any write: Wi-Fi toggles/config changes briefly
disconnect clients on that band,
POST /reboot(requiresconfirm: true) takes the whole network down for minutes, andPOST /rawwith a non-readoperationcan change arbitrary router settings. - Errors:
401router auth failure,502router-side error (detail+error_code),504router unreachable,400/422request validation.
Core operations
| Task | Endpoint |
|---|---|
| Overview (WAN/CPU/mem/node & client counts) | GET /dashboard |
| Deco units (mesh nodes) | GET /devices |
| Connected clients | GET /clients?online_only=true |
| Blocked clients | GET /clients/blocked |
| Wi-Fi settings (all bands, host/guest) | GET /wireless |
| Wi-Fi ON/OFF per band | POST /wireless |
| Change SSID/password/channel etc. | POST /wireless/config |
| WAN / internet / LAN / IPv6 status | GET /network/wan, /network/internet, /network/lan, /network/ipv6 |
| CPU / memory usage | GET /network/performance |
| Reboot Deco units (destructive) | POST /reboot |
| Any other Deco endpoint (escape hatch) | POST /raw |
| Server health / explicit login | GET /health, POST /login, POST /logout |
Full request/response schemas and ready-to-run curl examples: see references/api-reference.md and references/commands.md.