Pyventim
A Python library for accessing Eventim ticket and event data across multiple markets.
Manifesto
Eventim does not provide a public API like Ticketmaster and other platforms do. This library is an effort to make Eventim data open for public usage by wrapping its hidden public endpoints and falling back to HTML scraping where necessary.
If Eventim publishes official public endpoints, this library will migrate to use them. In the meantime, users are advised to use this library responsibly and to respect Eventim's robots.txt and fair-use expectations.
Due to the nature of web scraping, this library may break without notice. Please open an issue if something stops working.
Installation
Pyventim supports the two most recent stable Python releases, following the Python downloads page. Currently Python 3.13 and 3.14 are supported.
Using pip
pip install pyventim
patchright install chromium
# If needed also install system dependencies
patchright install --with-deps chromium
Using uv
uv add pyventim
uv run patchright install chromium
# If needed also install system dependencies
uv run patchright install --with-deps chromium
Usage
For detailed information and usage refer to the latest documentation!
Getting started
EventimClient supports markets across Europe, Brazil, and Israel. Pass an EventimMarket enum member to select one. See the Markets page in the documentation for the full list.
from pyventim import EventimCategory, EventimClient, EventimMarket
# Initialise a client for Germany
de_client = EventimClient(EventimMarket.GERMANY)
# Search for concerts — product_groups() returns an iterator of events
for product_group in de_client.product_groups(categories=[EventimCategory.CONCERTS], page_limit=2):
print(product_group.name, product_group.start_date)
# Fetch individual event dates (tickets, pricing, availability)
for event in de_client.products(product_group.product_group_id, page_limit=1):
print(" ", event.name, event.start_date)
# Switch to another market — same API, different catalogue
se_client = EventimClient(EventimMarket.SWEDEN)
for product_group in se_client.product_groups(categories=[EventimCategory.CONCERTS], page_limit=1):
print(product_group.name)
All methods return typed iterators backed by Pydantic v2 models. Responses are automatically paginated — use page_limit to cap the number of pages fetched.
Contributing
See CONTRIBUTION.md for the full development guide and CODE_OF_CONDUCT.md on how we work together.
Bug reports and feature requests
Open an issue on Codeberg. Templates are provided for bug reports and feature requests.
Development quickstart
Fork the repository on Codeberg, clone your fork, then install all dev dependencies:
uv sync --dev
Then run the quality checks:
# Run tests with coverage
uv run coverage run -m pytest
# Coverage report (must pass 90%)
uv run coverage report -m
# Docstring coverage (must pass 100%)
uv run interrogate -c pyproject.toml src
# Lint and format
uv run ruff check src tests
uv run ruff format src tests
License
This project is licensed under the GPL-3.0. See LICENSE.md for details.
Maintainers
Acknowledgements
- Contributor Covenant have an awesome code of conduct!
- All contributors and maintainers of open source software that we use. Most notably but not limited to: Python, pypi, Astral (uv, ruff) , pytest, Pydantic, Scrapling, Coverage, Interrogate, genbadge and Zensical.
Metadata
Release files for pyventim 1.0.7
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 | |
|---|---|---|---|---|
| pyventim-1.0.7.tar.gz | 16.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyventim-1.0.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 37.0 kB
Release files / pyventim-1.0.7.tar.gz
| Download URL | pyventim-1.0.7.tar.gz |
|---|---|
| Size | 16.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
84f1a82b9630677a45b37f91768b55908b7cc7b778dabafec1c249c11d9e7758
|
|
BLAKE2b-256 checksum How to use checksums |
570f31a1fbc638c8be1af342ecbd5b328ae212e557aa99a1928b1f4ed2505670
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / pyventim-1.0.7-py3-none-any.whl
| Download URL | pyventim-1.0.7-py3-none-any.whl |
|---|---|
| Size | 20.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ee93edb5ea107d929ef5fd969526ebd5a34ddd57e4f4aa01d151c29a2960e1ea
|
|
BLAKE2b-256 checksum How to use checksums |
d68a5fa3aefa87e78be9593d0ca1e89e2447038cb5bdcd2e3cd9ee2e7546e340
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for pyventim 1.0.7
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
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.