🐍 Eero API
Your async Python toolkit for Eero mesh networks
A modern, async-first Python SDK for the Eero mesh WiFi API.
Raw JSON responses, system keyring integration, and smart caching.
⚡ Why Eero API?
- 🚀 Async-first — Non-blocking, blazing fast
- 🔐 Secure — System keyring for credentials
- 📦 Raw JSON — Direct API responses, no transformations
- ⚡ Smart caching — Snappy responses
📦 Install
pip install eero-api
# or with uv
uv add eero-api
🚀 Quick Start
import asyncio
from eero import EeroClient
async def main():
async with EeroClient() as client:
if not client.is_authenticated:
await client.login("you@example.com")
await client.verify(input("Code: "))
# All methods return raw JSON responses
response = await client.get_networks()
networks = response.get("data", {}).get("networks", [])
for network in networks:
print(f"📶 {network['name']}: {network.get('status')}")
asyncio.run(main())
💡 Credentials are auto-saved to your system keyring
📄 Raw Response Format
All API methods return the exact JSON from Eero's API:
{
"meta": {"code": 200, "server_time": "..."},
"data": {
# Endpoint-specific payload
}
}
📚 Docs
| Guide | What's inside |
|---|---|
| 📖 Python API | Full API reference |
| ⚙️ Configuration | Auth & settings |
| 🔧 Troubleshooting | Common fixes |
| 🏠 Wiki Home | All documentation |
🔗 Ecosystem
| Project | Description |
|---|---|
| 🖥️ eeroctl | Terminal interface for Eero networks |
| 🛜 eero-ui | Svelte dashboard for network management |
| 📊 eero-prometheus-exporter | Prometheus metrics for monitoring |
🌱 Used By
Building something on top of eero-api? Open a PR to list your project here.
| Project | Description |
|---|---|
| eero-dashboard | Self-hosted React + FastAPI dashboard for eero mesh networks |
| eero-cli | Tiny CLI for non-interactive SMS auth, device listing, and bulk block |
| py-bandwith-monitor | Python bandwidth monitor with an optional eero-backed data source |
| assorted | Personal eero router debug/inspection scripts |
⚠️ Important Notes
Unofficial Project: This library uses reverse-engineered APIs and is not affiliated with or endorsed by Eero.
Amazon Login Limitation: If your Eero account uses Amazon for login, this library may not work directly due to API limitations. Workaround: Have someone in your household create a standard Eero account (with email/password) and invite them as an admin to your network. Then use those credentials to authenticate.
📄 License
MIT — Use it, fork it, build cool stuff 🎉
Release files for eero-api 8.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| eero_api-8.0.1.tar.gz | 124.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| eero_api-8.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 282.9 kB
Release files / eero_api-8.0.1.tar.gz
| Download URL | eero_api-8.0.1.tar.gz |
|---|---|
| Size | 124.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0efad0bfe43f379a54b676a53b3ee08bb5b25e406c9b1f2a38616bc5aefc0493
|
|
BLAKE2b-256 checksum How to use checksums |
04ab1eea0ea0056f2348481ef757b50946fc21095d40ea99fd1a4675b5350489
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / eero_api-8.0.1-py3-none-any.whl
| Download URL | eero_api-8.0.1-py3-none-any.whl |
|---|---|
| Size | 158.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
19df9d86e617271dc6e4db57a65477c8198f6b8ee154eb7e8f054fc3e27f139b
|
|
BLAKE2b-256 checksum How to use checksums |
0bf8d839f6d649ec9de639e57994b72c4a3e7202bcc29f4f2ac81dad84cc1de5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|