Async Python client for the Veolia water portal API (eau.veolia.fr and compatible portals).
pip install veolia-apiFor a development environment, install devbox then run:
devbox shellimport asyncio
from datetime import date
import aiohttp
from veolia_api import VeoliaAPI
async def main() -> None:
async with aiohttp.ClientSession() as session:
client_api = VeoliaAPI("your@email.com", "password", session)
# Optional: specify a portal other than the default
# client_api = VeoliaAPI("your@email.com", "password", session, portal_url="eaudetm.monespace.eau.veolia.fr")
await client_api.fetch_all_data(date(2025, 1, 1), date(2025, 9, 1))
print(client_api.account_data.daily_consumption)
print(client_api.account_data.monthly_consumption)
print(client_api.account_data.alert_settings.daily_enabled)
if __name__ == "__main__":
asyncio.run(main())A runnable example with logging is available in usage_example.py.
| Portal | Region |
|---|---|
eau.veolia.fr |
France (national) |
eaudetm.monespace.eau.veolia.fr |
Eau de Toulouse Metropole |
Your portal is missing? See Adding a portal — it only requires editing one file.
Contributions are welcome. Please read CONTRIBUTING.md for guidelines on reporting bugs, suggesting features, and submitting pull requests.
Inspired by the original work of @CorentinGrard.
MIT — see LICENSE.