Skip to main content

Async client for the Veolia water portals (eau.veolia.fr and delegated portals)

Project description

Async Python client for the Veolia water portal API (eau.veolia.fr).

Table of contents

Installation

First of all, you need to install devbox if you don't have a python environment

Once the previous step is done, simply run

devbox shell
cp .env.example .env   # fill in your credentials
python usage_example.py

That's it !

If you already have a python environment just run

pip install veolia-api-foxace

Usage

"""Example of usage of the Veolia API"""

import asyncio
from datetime import date

import aiohttp

from veolia_api.veolia_api import VeoliaAPI


async def main() -> None:
    """Main function."""

    async with aiohttp.ClientSession() as session:
        client_api = VeoliaAPI("your@email.com", "password", session)

        await client_api.fetch_all_data(date(2025, 1, 1), date(2025, 9, 1))

        # Display fetched data
        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())

You can use usage_example.py

Portals

Veolia operates several portals. They share the same Cognito authentication flow but each has its own client_id, and some run on a dedicated data backend. Select a portal with the portal_url argument (defaults to the national portal):

client_api = VeoliaAPI("your@email.com", "password", session, portal_url="www.ea-pm.fr")
portal_url Description Backend
eau.veolia.fr (default) Veolia France (national) default
eaudetm.monespace.eau.veolia.fr Eau de Toulouse Métropole default
www.ea-pm.fr Eau de Perpignan Méditerranée Métropole dedicated

You can resolve a commune name to its portal at setup time:

from veolia_api import resolve_portal_url

portal = await resolve_portal_url("Toulouse")   # "eaudetm.monespace.eau.veolia.fr"
client_api = VeoliaAPI("your@email.com", "password", session, portal_url=portal)

To add a portal, add an entry to VEOLIA_PORTALS in veolia_api/portals.py with its client_id (found in the portal's JavaScript bundle as ClientId:"...") and, if different from the default, its backend_url.

Maintainers can regenerate the portal table from Veolia's national bundle:

python scripts/regenerate_portals.py

The script prints a candidate VEOLIA_PORTALS block and a diff against the current table — review and edit veolia_api/portals.py manually.

Contributing

Contributions are welcome. Please read CONTRIBUTING.md for guidelines on reporting bugs, suggesting features, and submitting pull requests.

Credits

This repository is inspired by the work done by @CorentinGrard. Thanks to him for his work. It is a fork of Jezza34000/veolia-api.

License

This project is licensed under the MIT License. See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

veolia_api_foxace-2.4.4.tar.gz (18.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

veolia_api_foxace-2.4.4-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file veolia_api_foxace-2.4.4.tar.gz.

File metadata

  • Download URL: veolia_api_foxace-2.4.4.tar.gz
  • Upload date:
  • Size: 18.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for veolia_api_foxace-2.4.4.tar.gz
Algorithm Hash digest
SHA256 2d970b6f2a74fbe1c6328e40b5de676ca96bd0bec9599c1c40caa341d54adbac
MD5 92c4577fec99bc6cdb1e5b5a303d6736
BLAKE2b-256 e6f6cb1dfbdb1d66fa57ae15f05a071298d8f50de74513e57f7c7c281ec73a0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for veolia_api_foxace-2.4.4.tar.gz:

Publisher: publish.yml on foXaCe/veolia-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file veolia_api_foxace-2.4.4-py3-none-any.whl.

File metadata

File hashes

Hashes for veolia_api_foxace-2.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 5a8134913ca79ba07be67fd0284d1be7bb53253bb9e2b00676a53e0e13c9c7da
MD5 8d4d062c79f521c823918965856880e5
BLAKE2b-256 cd765e639ee4672a6b8c814cdc6a2f6e6d5cef386dcdfaedef5676c7ae8dd557

See more details on using hashes here.

Provenance

The following attestation bundles were made for veolia_api_foxace-2.4.4-py3-none-any.whl:

Publisher: publish.yml on foXaCe/veolia-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page