Skip to main content

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.

View the live GeoJSON map

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_max is a rolling clock window, so 1 means exactly 24 hours backward. It intentionally reads the newest page and at most the immediately preceding page.
  • topic_limit applies 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)

Source distribution for alpin-api 0.1.1
File Size Uploaded Provenance
alpin_api-0.1.1.tar.gz 38.7 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for alpin-api 0.1.1
File Interpreter ABI Platform
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 log

Release 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 log

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

Select from 2 files

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