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, 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.2.1

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.2.1
File Size Uploaded Provenance Actions
skoda_public_api-1.2.1.tar.gz 17.7 kB With provenance Details for skoda_public_api-1.2.1.tar.gz

Built distribution (wheel)

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

Total release size: 40.8 kB

Release files / skoda_public_api-1.2.1.tar.gz

Download URL skoda_public_api-1.2.1.tar.gz
Size 17.7 kB
Tags Source
SHA-256 checksum
How to use checksums
566814486daba6f890c498a1f11e386d8e5ded7906210b491bb7de34aee6373a
BLAKE2b-256 checksum
How to use checksums
e8e6257f75c3525afdb0f80b8caad6a598f39459a20224f8f1a8dee95ef766d9
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 9, 2026.

Transparency log

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

Download URL skoda_public_api-1.2.1-py3-none-any.whl
Size 23.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9920a869bbcbb8caf9d96cc9a5903cff5c1e4eee84e07e47bcb58a3761e656a5
BLAKE2b-256 checksum
How to use checksums
3ed54cea6514d1e6d9d93aebae4dee81f85186568afa2ad1600b562c23ab29ed
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 9, 2026.

Transparency log

Security for skoda-public-api 1.2.1

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.2.1.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 9, 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