Skip to main content

skoda-public-api

License: MIT Python

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, charge limit, air conditioning, auxiliary heating, active ventilation).

Which remote actions a vehicle actually supports is reported by the API: VehicleResponse.supported_operations() returns them, and VehicleResponse.supported_capabilities() tells which data the vehicle provides.

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
skodactl --api-key XXX set-charge-limit TMBJX7NY4PM054321 80

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.4.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 skoda-public-api 1.4.0
File Size Uploaded Provenance Actions
skoda_public_api-1.4.0.tar.gz 20.7 kB With provenance Details for skoda_public_api-1.4.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for skoda-public-api 1.4.0
File Interpreter ABI Platform Actions
skoda_public_api-1.4.0-py3-none-any.whl Python 3 none any Details for skoda_public_api-1.4.0-py3-none-any.whl

Total release size: 47.4 kB

Release files / skoda_public_api-1.4.0.tar.gz

Download URL skoda_public_api-1.4.0.tar.gz
Size 20.7 kB
Tags Source
SHA-256 checksum
How to use checksums
698b87e75a791d1fee8aa5baa1c82bcdfb54cff8533e7f2e97b9b020c4ba8791
BLAKE2b-256 checksum
How to use checksums
10f691a3960a177f3aac81c03a99477faebdcf51107fdcc3c7c39cbaaadb36e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 2, 2026.

Transparency log

Release files / skoda_public_api-1.4.0-py3-none-any.whl

Download URL skoda_public_api-1.4.0-py3-none-any.whl
Size 26.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5cd0eefd7d74c8e09021bf06e9b03d2c398d3a6c78d9035cf009bc490814e5a1
BLAKE2b-256 checksum
How to use checksums
fb938d6d691e189775c8b5aaaf9bebf599ef1b819d2eaf95fca678341f56bf00
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 2, 2026.

Transparency log

Security for skoda-public-api 1.4.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.

Select from 2 files

Attestation for skoda_public_api-1.4.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 Nov 2, 2026.

Transparency log

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

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