Garmindownloader
Author
Dominik Rappaport, dominik@rappaport.at
Motivation
For comprehensive statistical analysis, it is advisable to download Garmin data to a local computer. This is particularly important because Garmin aggregates historical data after a certain period. The script retrieves both Body Battery and heart rate data from Garmin and stores them in CSV format. Since Garmin allows downloading a maximum of one month of data per request, the script automatically generates a separate CSV file for each month.
Installation
The garmindownloader is distributed as a Python package. Several installation methods are available.
Using pip
Executing pip installs the package in your current Python environment. Global installation was once possible, but
modern Linux distributions no longer permit this approach.
pip install garmindownloader
Using pipx or uv
Both pipx and uv enable global tool installation. The package can be installed as follows:
pipx install garmindownloader
or
uv tools install garmindownloader
These steps assume you are using uv as your package and project manager.
Usage
Authentication
First of all you need to create an authentication token for Garmin Connect. That can be done by running the authenticate script.
garminauthenticate
You need to enter your Garmin Connect credentials and the script will generate a token and save it in the
~/.garth directory.
Once that is done the script can be run as follows. You specify a year and a month or a range of months and if you want Body Battery data or heart rate data (or both).
garmindownloader <year> <month(s)> --datatype <datatype>
Examples:
garmindownloader --datatype hr 2025 9
garmindownloader --datatype bb,hr 2025 7-8
garmindownloader --datatype hr 2025 1
The script generates for each month a separate CSV file. For Body Battery, the files are names bb<year><month>.csv.
For heart rate data, the files are named hr<year><month>.csv.
Metadata
Release files for garmindownloader 0.1.0
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 |
|---|---|---|---|---|
| garmindownloader-0.1.0.tar.gz | 5.2 kB | Without provenance | Details for garmindownloader-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| garmindownloader-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for garmindownloader-0.1.0-py3-none-any.whl |
Total release size: 13.1 kB
Release files / garmindownloader-0.1.0.tar.gz
| Download URL | garmindownloader-0.1.0.tar.gz |
|---|---|
| Size | 5.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
62e746646905c6e4f04159d89fc2e7202a8978182c7782ccdf6de5017aa546df
|
|
BLAKE2b-256 checksum How to use checksums |
07baef64a4209ce2b8fe787e33da59ee13a7a73b182a8507552782ec5c5090e4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.1
|
Release files / garmindownloader-0.1.0-py3-none-any.whl
| Download URL | garmindownloader-0.1.0-py3-none-any.whl |
|---|---|
| Size | 7.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
abbc55cbcbac48af76d8aa7f62d1a592b92ecca02b1148215f002533a8215d7e
|
|
BLAKE2b-256 checksum How to use checksums |
ddb3a1e0a3e44abc37bf922d008f87eff6e5848da2a3e15500bbdd0ff09eefbe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.1
|
Security for garmindownloader 0.1.0
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.