garth
Garmin SSO auth + Connect client
What it is and what it does
Garth was a Python client for accessing Garmin Connect fitness data using OAuth authentication. It reached significant adoption (350k+ downloads per month) and was ported to multiple languages. However, Garmin changed their authentication flow, breaking the mobile auth approach that Garth depends on, and the maintainer has declared the project deprecated with no further maintenance planned.
If you have an existing saved session with a valid OAuth1 token, Garth may continue to work until that token expires (approximately 1 year from issuance). New logins will not function. The package depends on requests, requests-oauthlib, pydantic, pydantic-settings, and logfire for its core functionality.
Use it for:
- Accessing historical Garmin Connect data if you have a pre-existing valid OAuth1 token saved locally
- Reference implementation for understanding Garmin's legacy OAuth1 integration (documentation remains available)
- Starting point for a community fork attempting to adapt to Garmin's new auth mechanism
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Garth provides Python access to Garmin Connect data via OAuth authentication, but is no longer maintained and will not work with new logins after Garmin changed their auth flow.
No. The package is explicitly deprecated and will not work with new logins. Only consider it if you have an existing saved OAuth1 token and need temporary access to historical data before that token expires. For new Garmin Connect integrations, seek an actively maintained alternative or community fork.
Install
garth on PyPI
pip
pip install garthuv
uv add garthpoetry
poetry add garthInstalling garth
Before you install
Low install friction with standard dependencies, but the package is explicitly deprecated and inactive. The maintainer has stated they cannot dedicate time to adapt to Garmin's auth changes, and new logins will not work.
License in practice
MIT license permits free use, modification, and distribution with minimal restrictions, but this permissiveness does not offset the package's deprecated status.
Quickstart
# Installation
pip install garth==0.8.0
# Usage (requires pre-existing saved OAuth1 token)
from garth import Client
client = Client()
# Token must be loaded from prior session; new logins will fail
Requires Python >=3.10. New logins will not work; only existing saved OAuth1 tokens may function until expiration.
Verify before relying
- Whether existing saved OAuth1 tokens remain valid and for how long beyond the stated ~1 year window
- Whether any community forks have successfully adapted to Garmin's new auth flow
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 5 — logfire, pydantic-settings, pydantic, requests-oauthlib, requests |
| Maintenance | actively maintained — 139 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 232,455/month — #9,067 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: garth-0.8.0-py3-none-any.whl
Keywords: garmin, garmin api, garmin connect, garmin sso
Tags
More Internet packages
Botocore provides low-level, data-driven access…
permissive · top 100 on PyPI
aiobotocoreProvides an async client for AWS services using…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
filelockProvides a platform-independent file locking…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
googleapis-common-protosProvides common Protocol Buffer message…
permissive · top 100 on PyPI
garminconnectPython wrapper for the Garmin Connect API that…
permissive · top 15,000 on PyPI
ha-garminPython client for the Garmin Connect API with…
permissive · top 15,000 on PyPI
gpsoauthImplements Google Play Services OAuth…
permissive · top 15,000 on PyPI
google-auth-oauthlibIntegrates oauthlib with google-auth to handle…
permissive · top 1,000 on PyPI
fitparseParses ANT/Garmin .FIT binary files, extracting…
permissive · top 15,000 on PyPI
fit-toolReads and writes Garmin FIT files for Activity,…
permissive · top 15,000 on PyPI
garmin-fit-sdkDecodes Garmin FIT (Flexible and Interoperable…
unclear · top 15,000 on PyPI
AuthlibAuthlib provides a complete implementation of…
permissive · top 1,000 on PyPI
google-auth-httplib2Provides an httplib2 transport adapter for…
permissive · top 1,000 on PyPI
fitdecodeParses and decodes FIT files (Garmin's ANT+…
permissive · top 15,000 on PyPI