🐍 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.0
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.0.tar.gz | 122.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| eero_api-8.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 278.5 kB
Release files / eero_api-8.0.0.tar.gz
| Download URL | eero_api-8.0.0.tar.gz |
|---|---|
| Size | 122.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3f9b1b32e33245a0b57bcbc735afe6eebbde3e44a81ac0135a93e17350dcff29
|
|
BLAKE2b-256 checksum How to use checksums |
ba4dac82abf823a9a35039ac1eeb30c5f36296405d1e2eb2b0367ef3f0aff025
|
| 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.0-py3-none-any.whl
| Download URL | eero_api-8.0.0-py3-none-any.whl |
|---|---|
| Size | 156.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
29422c6e8fa16d29f65ad616fd7ac96890fc4edb38d45a014335ad3e3da65de2
|
|
BLAKE2b-256 checksum How to use checksums |
2de3fcfb7e8f981c2992b9c045dfe83b7dfb4c11f85831cbd98aac21e8887804
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|