skillfed

garth

Garmin SSO auth + Connect client

garth v0.8.0 232.5K downloads/30d#9,067 on PyPI814
Permissive license MIT Active released

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 garth

uv

uv add garth

poetry

poetry add garth

Installing 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

Development Status :: 7 - InactiveLicense :: OSI Approved :: MIT LicenseOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: OS IndependentOperating System :: POSIX :: LinuxProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14

Tags

garmin connect api pythongarmin oauth authenticationgarmin sso clientgarmin fitness data accessgarmin activity sync
deprecatedgarmin-connectoauth

More Internet packages