Skip to main content

License PyPI version PyPI - Python Version Github Actions Build Code Coverage CodeQL

Toyota Connected Services Europe Python module

⚠️ This is still in beta ⚠️ Only EU is supported, other regions are not possible so far.

Summary

Description

Python 3 package to communicate with Toyota Connected Europe Services. This is an unofficial package and Toyota can change their API at any point without warning.

Installation

This package can be installed through pip.

pip install pytoyoda

Docs

https://pytoyoda.github.io/pytoyoda/pytoyoda.html

Usage

For a quick start on how to use the package take a look at the simple_client_example.py file contained in the report. You can also use and execute this file directly by using the following commands:

python -m venv pytoyoda
source pytoyoda/bin/activate
python -m pip install "pytoyoda@git+https://github.com/pytoyoda/pytoyoda@main"
curl -LO https://raw.githubusercontent.com/pytoyoda/pytoyoda/main/sandbox/simple_client_example.py
# Create a credentials.json file with {"username":"your@mail.tld","password":"yourpassword"}
python simple_client_example.py

Please note that the simple_client_example.py file is only to be regarded as a playground and is intended to provide an initial insight into the possibilities. It is not an officially supported interface of the pytoyoda API! For an overview of the current official interfaces, please take a look at our documentation.

Known issues

  • Statistical endpoint will return None if no trip have been performed in the requested timeframe. This problem will often happen at the start of each week, month or year. Also daily stats will of course also be unavailable if no trip have been performed.
  • Currently, it is only possible to get various vehicle information. Functions for controlling and setting vehicle properties have not yet been implemented.
  • GET /v1/global/remote/status (used by Vehicle.lock_status) returns 429 APIGW-403 "Unauthorized" frequently, often without obvious correlation to call rate. Empirically, issuing POST /v1/global/remote/refresh-status first - the same wake the Toyota Android app uses - improves the success rate of subsequent GETs and gives fresher occurrence_date payloads, suggesting at least some of the 429s come from a stale or empty server-side cache rather than rate-limiting. Other 429s appear to be unrelated to cache state and happen seemingly at random; pytoyoda retries those with exponential backoff. Call Vehicle.refresh_status() first, then poll Vehicle.update(only=["status"]) until lock_status.last_updated advances.
  • Trip history retention. Toyota's trips API (used by get_trips()/get_summary()) only serves roughly the last 12 months of trips, regardless of the from_date you request. This is a limitation of Toyota's backend, not of pytoyoda: trips older than the retention window are permanently deleted on Toyota's side and cannot be recovered through this library, the MyToyota app, the data export portal, or a GDPR data request (Toyota has confirmed this in writing - see #273). If you want to keep a longer history, periodically fetch and store get_trips() results locally (e.g. keyed on the trip's stable id) before the retention window rolls past them.

Contributing

This python module uses poetry (>= 2.0.0) and pre-commit.

To start contributing, fork this repository and run poetry install. Then create a new branch. Before making a PR, please run pre-commit poetry run pre-commit run --all-files and make sure that all tests passes locally first by running pytest tests/.

Note

This is a friendly community fork of the original project by @DurgNomis-drol, to ease up on maintenance and the bus factor for this project.

Credits

Special thanks go @DurgNomis-drol for starting this project! A huge thanks go to @calmjm for making tojota.

Release files for pytoyoda 5.2.7

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

Source distribution (sdist)

Source distribution for pytoyoda 5.2.7
File Size Uploaded
pytoyoda-5.2.7.tar.gz 59.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pytoyoda 5.2.7
File Interpreter ABI Platform
pytoyoda-5.2.7-py3-none-any.whl Python 3 none any Details

Total release size: 134.6 kB

Release files / pytoyoda-5.2.7.tar.gz

Download URL pytoyoda-5.2.7.tar.gz
Size 59.5 kB
Tags Source
SHA-256 checksum
How to use checksums
1b33584101e7b0676e76a96ee7ebe88155cc3016bf2bf60bf3e7a8fea4a37546
BLAKE2b-256 checksum
How to use checksums
a2cce38e64f07ab8dbb15413e1c8b948696c478831d2ea2a47de3d841fec8b80
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 Sep 20, 2026.

Transparency log

Release files / pytoyoda-5.2.7-py3-none-any.whl

Download URL pytoyoda-5.2.7-py3-none-any.whl
Size 75.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8dbe08081f5ed9b380cb5f60747d016b268db70e585912fc14c38bbeaadba6ef
BLAKE2b-256 checksum
How to use checksums
f6d07ebc43a2d2a2749149274756ef1a8a802e6113f7835ac38d756bc32e1174
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 Sep 20, 2026.

Transparency log

Release history Release notifications | RSS feed

5.2.9

2 release files

5.2.8

2 release files

This release

5.2.7 This release

2 release files

5.2.6

2 release files

5.2.5

2 release files

5.2.4

2 release files

5.2.3

2 release files

5.2.2

2 release files

5.2.1

2 release files

5.2.0

2 release files

5.1.0

2 release files

5.0.0

2 release files

4.3.1

2 release files

4.3.0

2 release files

4.2.0

2 release files

4.1.0

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.1.2

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.4

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.4.0

2 release files

2.3.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