Skip to main content

Renault API

PyPI Python Version License

Read the documentation at https://renault-api.readthedocs.io/ Tests Codecov

prek Ruff

Features

This Python package manages the communication with the private Renault API used by the official MyRenault application.

The client is able to read various vehicle attributes, such as:

  • mileage

  • GPS location

  • fuel autonomy (for fuel vehicles)

  • battery autonomy (for electric vehicles)

  • contracts associated to the vehicle (warranty and connected services)

For some vehicles, it is also possible to manage:

  • hvac/pre-conditionning of the vehicle

  • charge schedule

This package has been developed to be used with Home-Assistant, but it can be used in other contexts

Requirements

  • Python (>= 3.11)

API Usage

You can install Renault API via pip from PyPI:

$ pip install renault-api
import aiohttp
import asyncio

from renault_api.renault_client import RenaultClient

async def main():
   async with aiohttp.ClientSession() as websession:
      client = RenaultClient(websession=websession, locale="fr_FR")
      await client.session.login('email', 'password')
      print(f"Accounts: {await client.get_person()}") # List available accounts, make a note of kamereon account id

      account_id = "Your Kamereon account id"
      account = await client.get_api_account(account_id)
      print(f"Vehicles: {await account.get_vehicles()}") # List available vehicles, make a note of vehicle VIN

      vin = "Your vehicle VIN"
      vehicle = await account.get_api_vehicle(vin)
      print(f"Cockpit information: {await vehicle.get_cockpit()}")
      print(f"Battery status information: {await vehicle.get_battery_status()}")

loop = asyncio.get_event_loop()
loop.run_until_complete(main())

Avoiding password storage

The password is only needed once: session.login exchanges it for a Gigya login token, which acts as a refresh token used to mint access tokens (JWTs). Read it from session.login_token after login, store it securely instead of the password, and restore it on the next session with session.set_login_token:

await client.session.login('email', 'password')
login_token = client.session.login_token  # persist this, not the password

# later, in a new session:
client.session.set_login_token(login_token)  # no password required

Two-factor authentication

Some accounts require a one-time code, sent by email, to log in. In that case session.login raises PendingTwoFactorAuthenticationException, and the login is completed with the code:

from renault_api.gigya.exceptions import PendingTwoFactorAuthenticationException

try:
    await client.session.login('email', 'password')
except PendingTwoFactorAuthenticationException:
    # If several addresses are registered, let the user pick one from
    # `await client.session.get_two_factor_auth_emails()` and pass its `id`.
    await client.session.request_two_factor_auth_code()
    code = input("Verification code: ")
    await client.session.complete_two_factor_auth(code)

Gigya then remembers the device for about 30 days. The device is identified by session.device_ids: store them alongside the login token, and restore them with session.set_device_ids on the next session, so that a later login with the password doesn’t require another code.

CLI Usage

The renault-api is also available through a CLI, which requires additional dependencies. For the added dependencies, you can install Renault API via pip from PyPI:

$ pip install renault-api[cli]

Once installed, the following command prompts for credentials and settings, displays basic vehicle status information, and generates traces:

$ renault-api --log status
  • Credentials will automatically be stored in the user home directory (~/.credentials/renault-api.json)

  • If the account requires two-factor authentication, the CLI will prompt for the verification code sent by email

  • Logs will automatically be generated in logs subfolder

It is also possible to use raw http GET/POST commands, for example to get odometer and others data on a Windows machine:

C:> renault-api http get /commerce/v1/accounts/{account_id}/kamereon/kca/car-adapter/v1/cars/{vin}/cockpit

Or to request a battery status refresh on a Windows Machine (internal quotes escaped, whole payload enclosed in un-escaped quotes):

C:> renault-api http post /commerce/v1/accounts/{account_id}/kamereon/kca/car-adapter/v1/cars/{vin}/actions/refresh-battery-status "{\\"data\\": {\\"type\\": \\"RefreshBatteryStatus\\"}}"

Please see the Command-line Reference for full details.

Contributing

Contributions are very welcome. To learn more, see the Contributor Guide.

License

Distributed under the terms of the MIT license, Renault API is free and open source software.

Disclaimer

This project is not affiliated with, endorsed by, or connected to Renault. I accept no responsibility for any consequences, intended or accidental, as a as a result of interacting with Renault’s API using this project.

Issues

If you encounter any problems, please file an issue along with a detailed description.

Credits

This project was heavily based on @jamesremuscat’s PyZE python client for the Renault ZE API.

Metadata

Release files for renault-api 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for renault-api 0.6.0
File Size Uploaded
renault_api-0.6.0.tar.gz 45.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for renault-api 0.6.0
File Interpreter ABI Platform
renault_api-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 104.1 kB

Release files / renault_api-0.6.0.tar.gz

Download URL renault_api-0.6.0.tar.gz
Size 45.6 kB
Tags Source
SHA-256 checksum
How to use checksums
42e128771c8070b104160116c074aefa28e7495d81c5976e33a9533aa2c067f5
BLAKE2b-256 checksum
How to use checksums
46202e18a5eeb41a2fb71393460bfb9b17b81c08662e7f28702392c9a33160b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / renault_api-0.6.0-py3-none-any.whl

Download URL renault_api-0.6.0-py3-none-any.whl
Size 58.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e0f70e1b80bc0e32fb21cccb7bb1b0d0fc1c4577e9552c3fac01a00d21b82d82
BLAKE2b-256 checksum
How to use checksums
1b45e4608dccee71d9dee209fb886dae135be4b903537c70738647cdbab122a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release history Release notifications | RSS feed

0.6.1

2 release files

This release

0.6.0 This release

2 release files

0.5.13

2 release files

0.5.11

2 release files

0.5.10

2 release files

0.5.9

2 release files

0.5.8

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.10

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.13

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page