garmin-exporter
Export your Garmin Connect activities
| File | Contents |
|---|---|
activities.csv |
One row per activity (distance, pace, HR, power, training load, VO2max, ...) |
activities.splits.csv |
One row per km split, with --splits |
activities.wellness.csv |
One row per day: sleep, HRV, stress, steps, Training Status and ACWR, with --wellness |
activities.profile.json |
Profile (age, sex, weight, height), thresholds (LTHR, pace) and monthly load balance |
Install
The package is published on PyPI,
so the recommended way to install it is with uv or pip:
# with uv (recommended)
uv tool install garmin-exporter
# or with pip
pip install garmin-exporter
Quickstart
# Show help
garmin-exporter --help
# Export activities to CSV + a year of daily wellness metrics (sleep, HRV,
# Training Status, ...) to CSV, plus profile and thresholds to JSON
garmin-exporter --wellness
# Shorter wellness window (e.g. last 30 days)
garmin-exporter --wellness --wellness-days 30
# Also add per-activity HR time-in-zones
garmin-exporter --hr-zones
# Write per-run km splits to activities.splits.csv
garmin-exporter --splits
On the first run it asks for your Garmin email, password, and MFA code (if enabled), then stores the session token in your OS keyring - the password is never saved. Later runs reuse the session.
Options
| Flag | Description |
|---|---|
-o, --output |
Output CSV path (default: activities.csv) |
--days-back N |
Only the last N days (default: all activities) |
--activity-type T |
Garmin type key, e.g. running (default: all) |
--wellness |
Also write <output>.wellness.csv + <output>.profile.json |
--wellness-days N |
Days of wellness history with --wellness (default: 365) |
--hr-zones |
Add per-activity HR time-in-zones (+1 call each) |
--splits |
Write per-run km splits to <output>.splits.csv |
--reset-login |
Forget the stored session and log in again |
--no-cache |
Ignore the on-disk cache and refetch everything |
--cache-dir PATH |
Override the cache location (default: OS cache dir) |
Development
The project uses Makefile for typical tasks:
make lint- Ruff check + mypy --strictmake format- Ruff formatmake clean- Remove cache files
Metadata
Release files for garmin-exporter 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 | Actions |
|---|---|---|---|---|
| garmin_exporter-0.1.1.tar.gz | 8.5 kB | Without provenance | Details for garmin_exporter-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| garmin_exporter-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for garmin_exporter-0.1.1-py3-none-any.whl |
Total release size: 19.6 kB
Release files / garmin_exporter-0.1.1.tar.gz
| Download URL | garmin_exporter-0.1.1.tar.gz |
|---|---|
| Size | 8.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f176acd1315f7fe071e3970ceed71165b0f7873414e3a05baa1a92ed327a6008
|
|
BLAKE2b-256 checksum How to use checksums |
b988843a420bc29d372cac3caa3cecaaa8e414399d95afa1af711d36dfd1f1bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","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 / garmin_exporter-0.1.1-py3-none-any.whl
| Download URL | garmin_exporter-0.1.1-py3-none-any.whl |
|---|---|
| Size | 11.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
23040d214a9fbf33de55930431ee83b568353214cbf8ebabda0fb446375b8a5b
|
|
BLAKE2b-256 checksum How to use checksums |
e374e2291354e7dfbfc1485d8c7104c7017d269847e792697d31b70f0efb2e64
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","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 garmin-exporter 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.
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.