Metadata-Version: 2.4
Name: eero-api
Version: 2.1.3
Summary: Modern async Python client for Eero network management
Author: Eero API Contributors
Maintainer: Eero API Contributors
License: MIT
Project-URL: Homepage, https://github.com/fulviofreitas/eero-api
Project-URL: Documentation, https://github.com/fulviofreitas/eero-api/wiki
Project-URL: Repository, https://github.com/fulviofreitas/eero-api
Project-URL: Changelog, https://github.com/fulviofreitas/eero-api/blob/master/CHANGELOG.md
Project-URL: Issues, https://github.com/fulviofreitas/eero-api/issues
Keywords: eero,mesh-wifi,wifi,network,async,asyncio,home-automation,smart-home,api-client,iot
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Home Automation
Classifier: Topic :: Internet
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Networking
Classifier: Typing :: Typed
Classifier: Framework :: AsyncIO
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiohttp>=3.8.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: keyring>=23.0.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: isort>=5.12.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Requires-Dist: rich>=13.0.0; extra == "dev"
Requires-Dist: click>=8.0.0; extra == "dev"
Requires-Dist: commitizen>=3.0.0; extra == "dev"
Dynamic: license-file

# 🌐 Eero API

> Your async Python toolkit for Eero mesh networks ✨

[![PyPI version](https://img.shields.io/pypi/v/eero-api.svg)](https://pypi.org/project/eero-api/)
[![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
[![CI](https://github.com/fulviofreitas/eero-api/actions/workflows/ci.yml/badge.svg)](https://github.com/fulviofreitas/eero-api/actions/workflows/ci.yml)

## ⚡ 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 🎉
