https://github.com/fulviofreitas/eero-api
Python API client for Eero mesh routers
https://github.com/fulviofreitas/eero-api
api-client async asyncio eero home-automation iot mesh-network networking pydantic python python3 smart-home wifi
Last synced: 2 months ago
JSON representation
Python API client for Eero mesh routers
- Host: GitHub
- URL: https://github.com/fulviofreitas/eero-api
- Owner: fulviofreitas
- License: mit
- Created: 2026-01-18T05:00:22.000Z (5 months ago)
- Default Branch: master
- Last Pushed: 2026-04-19T03:22:12.000Z (2 months ago)
- Last Synced: 2026-04-19T05:22:41.175Z (2 months ago)
- Topics: api-client, async, asyncio, eero, home-automation, iot, mesh-network, networking, pydantic, python, python3, smart-home, wifi
- Language: Python
- Homepage:
- Size: 576 KB
- Stars: 1
- Watchers: 0
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# ๐ Eero API
**Your async Python toolkit for Eero mesh networks**
[](https://python.org)
[](https://pypi.org/project/eero-api/)
[](LICENSE)
---
_A modern, async-first Python SDK for the Eero mesh WiFi API._
_Raw JSON responses, system keyring integration, and smart caching._
[Get Started](#-quick-start) ยท [Documentation](#-docs) ยท [Ecosystem](#-ecosystem) ยท [License](#-license)
---
## โก 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
```bash
pip install eero-api
# or with uv
uv add eero-api
```
## ๐ Quick Start
```python
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:
```python
{
"meta": {"code": 200, "server_time": "..."},
"data": {
# Endpoint-specific payload
}
}
```
See [MIGRATION.md](MIGRATION.md) for details on the raw response architecture.
## ๐ Docs
| Guide | What's inside |
|-------|---------------|
| **[๐ Python API](../../wiki/Python-API)** | Full API reference |
| **[โ๏ธ Configuration](../../wiki/Configuration)** | Auth & settings |
| **[๐ง Troubleshooting](../../wiki/Troubleshooting)** | Common fixes |
| **[๐ Migration Guide](MIGRATION.md)** | v1.x โ v2.0 migration |
| **[๐ Wiki Home](../../wiki)** | All documentation |
## ๐ Ecosystem
| Project | Description |
|---------|-------------|
| **[๐ฅ๏ธ eero-cli](https://github.com/fulviofreitas/eero-cli)** | Terminal interface for Eero networks |
| **[๐ eero-ui](https://github.com/fulviofreitas/eero-ui)** | Svelte dashboard for network management |
| **[๐ eero-prometheus-exporter](https://github.com/fulviofreitas/eero-prometheus-exporter)** | Prometheus metrics for monitoring |
## โ ๏ธ 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](LICENSE) โ Use it, fork it, build cool stuff ๐
---
## ๐ Repository Metrics
