alpin-api
Every night, this project turns posts from dedicated Alpine ski-resort forum topics into a public GeoJSON map of the latest construction and infrastructure progress.
For developers
You can install the alpin_api Python package from PyPI: its forum scrapers, AlpinAPI, data types, and deterministic resort/topic constants. The installed package reads live forum pages. The repository's Groq analysis, map generation, nightly automation, and file-writing application are not included in the published package.
pip install alpin-api
Or add it to a uv project:
uv add alpin-api
Forum access requirements
Some forums require FlareSolverr listening on localhost:8191; the package connects to that service.
Start FlareSolverr before using:
docker run --rm --detach --name flaresolverr --publish 8191:8191 ghcr.io/flaresolverr/flaresolverr:latest
Examples
Choose the path that matches what you already know.
If you want updates for one registered resort, fetch recent posts from every topic assigned to its marker:
from alpin_api import AlpinAPI, SKI_RESORTS
# List all registered resorts and their names
print("\n".join(f"{resort_id}: {resort.name}" for resort_id, resort in SKI_RESORTS.items()))
posts_by_resort = AlpinAPI().fetch_posts(
resort_ids=["hintertuxer_gletscher"], # None fetches all registered resorts
days_old_max=5,
)
hintertux_posts = posts_by_resort["hintertuxer_gletscher"]
If you first want to see what people are discussing on a forum, discover its latest topics:
from alpin_api import AlpinAPI, Forum
api = AlpinAPI()
latest_topics = api.fetch_latest_topics(
forum=Forum.ALPINFANS,
topic_limit=20,
)
for topic in latest_topics:
print(topic.topic_id, topic.title)
Then select an interesting result and fetch its recent posts:
selected_topic = latest_topics[0]
topic_posts = api.fetch_topic_posts(
forum=selected_topic.forum,
topic_identifier=selected_topic.topic_id,
days_old_max=5,
)
Retrieval boundaries
days_old_maxis a rolling clock window, so1means exactly 24 hours backward. It intentionally reads the newest page and at most the immediately preceding page.topic_limitapplies separately to every discovery listing configured for a forum news and construction topics.
Development
Install the locked development environment and the repository's Git hooks:
uv sync --extra tracker
uv run pre-commit install
Run every configured hook with uv run pre-commit run --all-files. Repository-wide coding guidance lives in AGENTS.md.
Metadata
Release files for alpin-api 0.1.1
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 | |
|---|---|---|---|---|
| alpin_api-0.1.1.tar.gz | 38.7 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| alpin_api-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 78.2 kB
Release files / alpin_api-0.1.1.tar.gz
| Download URL | alpin_api-0.1.1.tar.gz |
|---|---|
| Size | 38.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e49f4cdc4517005ba892a064a4339c29bb665f45a9548d727fd7f9c2bba7629c
|
|
BLAKE2b-256 checksum How to use checksums |
972f2acfaadabd054029855dbfb739bedb3679f3a6a3387958b2741e97362bdf
|
| 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 Oct 25, 2026.
Transparency logRelease files / alpin_api-0.1.1-py3-none-any.whl
| Download URL | alpin_api-0.1.1-py3-none-any.whl |
|---|---|
| Size | 39.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
caf4cb652b02be88dde07b17e5e79867f3749456e3378f43b5e515bb9d245721
|
|
BLAKE2b-256 checksum How to use checksums |
fab9803b4fdf512ee0d679c6c673a3abc38adb205ee3d52f9d7da5c87bd7d894
|
| 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 Oct 25, 2026.
Transparency logSecurity for alpin-api 0.1.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.
Attestation for alpin_api-0.1.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 Oct 25, 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.