skoda-public-api
Asynchronous Python library for the Škoda public API, developed by Mobility Lab @ VSB — Technical University of Ostrava. It provides typed access to connected-vehicle data (status, odometer, charging, climate, fuel, parking position) and remote vehicle control (climate, charging, ventilation) for Škoda vehicles.
It is built on aiohttp and pydantic, and ships both as a library and as a standalone CLI (skodactl).
This works with Škoda vehicles with a Škoda Connect account. Different models of vehicles result in different types of attributes provided by the server.
This version targets API v1.0.0 of the Škoda public API.
Installation
pip install skoda-public-api
As a library
import asyncio
from aiohttp import ClientSession
from skoda_public_api.api_layer.open_api_client import OpenAPIClient
async def main() -> None:
async with ClientSession() as session:
client = OpenAPIClient(api_key="XXX", session=session)
vehicle = await client.get_vehicle("TMBJX7NY4PM054321")
print(vehicle.vehicle.name)
charging = await client.get_charging("TMBJX7NY4PM054321")
print(charging.status.battery.state_of_charge_in_percent)
asyncio.run(main())
Every response is a typed pydantic model — see src/skoda_public_api/models for the full data model, and src/skoda_public_api/api_layer/open_api_client.py for the full list of available reads (vehicle status, odometer, charging, air conditioning, auxiliary heating, active ventilation, fuel status, parking position, charging profiles) and remote actions (start/stop charging, climate, auxiliary heating, active ventilation, window heating, charge limit, target temperature).
As CLI
The library ships with a command line interface called skodactl, which is useful for manually
testing the API endpoints. Install it together with the CLI dependencies:
pip install "skoda-public-api[cli]"
You authenticate with your API key, either via the --api-key option or the SKODA_API_KEY
environment variable, and address a vehicle by its VIN:
skodactl --api-key XXX get-vehicle TMBJX7NY4PM054321
By default, the CLI talks to the production endpoint. Point it at the public test endpoint with
--endpoint test, switch to YAML output with --format yaml, or log HTTP requests and responses
with --trace:
skodactl --api-key XXX --endpoint test get-vehicle-status TMBJX7NY4PM054321
SKODA_API_KEY=XXX skodactl --format yaml --trace get-charging TMBJX7NY4PM054321
Remote operations can be started as well:
skodactl --api-key XXX start-air-conditioning TMBJX7NY4PM054321 --temperature 21
Run skodactl --help for the full list of commands and options.
Development
Clone the repository and install it in editable mode together with the test dependencies:
pip install -e ".[test,cli]"
pytest
License
Distributed under the MIT License. See LICENSE for details.
Metadata
Release files for skoda-public-api 1.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| skoda_public_api-1.3.0.tar.gz | 19.0 kB | With provenance | Details for skoda_public_api-1.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| skoda_public_api-1.3.0-py3-none-any.whl | Python 3 | none | any | Details for skoda_public_api-1.3.0-py3-none-any.whl |
Total release size: 43.7 kB
Release files / skoda_public_api-1.3.0.tar.gz
| Download URL | skoda_public_api-1.3.0.tar.gz |
|---|---|
| Size | 19.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
018bff50e180bed81be08c32aa565b698fc7790433c6d50ddfe9e7a15620408f
|
|
BLAKE2b-256 checksum How to use checksums |
0e8413ce04b4698f0dd4ab3676c1b3232692173f6bd32d43f53da7b6ce0e8203
|
| 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 18, 2026.
Transparency logRelease files / skoda_public_api-1.3.0-py3-none-any.whl
| Download URL | skoda_public_api-1.3.0-py3-none-any.whl |
|---|---|
| Size | 24.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f23efafcf606f793ff84b0a5a84dc64a824cc7fc068083ff3de5a553a755dd37
|
|
BLAKE2b-256 checksum How to use checksums |
b7417c106f27497c8082f1d80c092d913dfce6480e9c1208e0f1435500ed438b
|
| 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 18, 2026.
Transparency logSecurity for skoda-public-api 1.3.0
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for skoda_public_api-1.3.0.tar.gz
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 18, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.