Skip to main content

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 --strict
  • make format - Ruff format
  • make 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)

Source distribution for garmin-exporter 0.1.1
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)

Table of built distributions (wheels) for garmin-exporter 0.1.1
File Interpreter ABI Platform Actions
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.

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