Skip to content
AF
Library comparison

garminconnect vs garth

Registry data read 2026-10-03

This is less a choice than a migration. garth's README says it is deprecated because Garmin changed its auth flow and new logins no longer work, and its PyPI classifier reads "Development Status :: 7 - Inactive". garminconnect used garth until version 0.3.0 and now handles sign-in itself, per its README; its latest release is 0.3.17 from 2026-09-29. Sessions saved with garth cannot be converted, so plan one fresh login.

Side by side

Every cell is read from the registries and the repositories by a script. There is no winner row.

Factgarminconnectgarth
RegistryPyPI: garminconnectPyPI: garth
Latest version0.3.170.8.0
Latest published2026-09-29 (4 days before our 2026-10-03 read)2026-03-28 (189 days before our 2026-10-03 read)
First published2020-01-042023-07-05
Versions published110125
LicenceMIT (PyPI license field)MIT (PyPI license field)
Platformsnot stated in registry metadatanot stated in registry metadata
Requirespython >=3.12 (PyPI requires_python)python >=3.10 (PyPI requires_python)
Deprecatedno deprecation in the registryno deprecation in the registry
Status classifierDevelopment Status :: 5 - Production/StableDevelopment Status :: 7 - Inactive
Last commit, default branch2026-09-292026-03-28
GitHub stars / archived3083 stars · not archived (read 2026-10-03)818 stars · not archived (read 2026-10-03)

What each README says

garminconnect

  • Since 0.3.0 no longer uses garth; signs in through the same mobile SSO flow as the official Garmin Connect mobile apps, with an MFA callback.

    Source: README

  • Requires Python 3.12 or later; tokens stored in ~/.garminconnect/garmin_tokens.json.

    Source: README

garth

  • Deprecated and no longer maintained; the latest release is described as final.

    Source: README

  • A saved session with a valid OAuth1 token may keep working until it expires, about a year after issue; new logins will not work.

    Source: README

How to choose: our reading

Judgement, labelled as such, drawn only from the facts above.

  • Starting fresh: garth's own README says new logins do not work, which settles it.
  • Running garth today on a saved session: it may keep working until the OAuth1 token expires; schedule the move before then rather than after.
  • Moving to garminconnect: its README says garth-era token files cannot be converted, so budget for one interactive login (with MFA if the account uses it).
  • Building for other people's Garmin data rather than your own: both are unofficial clients; Garmin's official developer program is the route for that.

Questions

Does garminconnect still depend on garth?
No. garminconnect's README says that since version 0.3.0 the library no longer uses garth, which it describes as deprecated, and that sessions saved by older versions with garth.save() cannot be converted.
How do I migrate a Python script from garth to garminconnect?
Install garminconnect, then log in once with username and password: its README shows Garmin(email, password) followed by login with a token-store path, after which new tokens are saved to garmin_tokens.json and reused. Old oauth1_token.json and oauth2_token.json files from garth cannot be converted, and the README requires Python 3.12 or later.

← All health and fitness libraries