Export Garmin Connect activities and wellness data to CSV/JSON.
Project description
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 |
Development
The project uses Makefile for typical tasks:
make lint- Ruff check + mypy --strictmake format- Ruff formatmake clean- Remove cache files
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file garmin_exporter-0.1.0.tar.gz.
File metadata
- Download URL: garmin_exporter-0.1.0.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b027cb5776298066bab9f5d12bbdb9d85b9c072d7c7f69cde9bc5b2b0185140
|
|
| MD5 |
00b7476ab83e2c91d28b88891bf4c4fd
|
|
| BLAKE2b-256 |
b6faff6ea237dbe3143188d7812616ba8fbe8b7505104e8822d38f8c3c06ce13
|
File details
Details for the file garmin_exporter-0.1.0-py3-none-any.whl.
File metadata
- Download URL: garmin_exporter-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc7e3dda3c0e5edd05a5bf5c5254502e100f8fc8bb4068a8ccf5b75a2539b652
|
|
| MD5 |
d6057276c45098f86168031dc621e6ad
|
|
| BLAKE2b-256 |
14555b909c7f1ae0cabca630bd1e7d687bdec4accea1e8bf7526d82c81cb42c1
|