garminconnect (Python)
Python · PyPI: garminconnect · latest 0.3.17 (2026-09-29) · registry read 2026-10-03
What it wraps
Garmin Connect's web services, signed in as the user with their own credentials. The README describes it as an unofficial client that does not pair with the phone app or connect to a watch.
“This is an unofficial client for Garmin's web services; it does not pair with the Garmin Connect phone app or connect directly to a watch.”
Source: README
Named in the registry description: Garmin Connect.
Install
Registry and repository facts
Read from PyPI and the repository by a script, not typed by hand. Where the metadata does not state something, the row says so. Dates are shown as dates, with the gap to our read, rather than as a verdict on whether the project is alive.
- Registry
- PyPI: garminconnect
- Latest version
- 0.3.17, published 2026-09-294 days before our 2026-10-03 read
- First published
- 2020-01-04 · 110 versions published
- Licence
- MITPyPI license field
- Platforms
- not stated in registry metadata
- Requires
- python >=3.12PyPI requires_python
- Status classifier
- Development Status :: 5 - Production/Stable
- Repository
- cyberjunky/python-garminconnect
- Last commit, default branch
- 2026-09-294 days before our 2026-10-03 read · read by git on 2026-10-03
- GitHub signals
- 3,083 stars · 2 open issues and PRs · not archived · last push to any branch 2026-09-29GitHub API, read 2026-10-03
Registry description: “Python 3 API wrapper for Garmin Connect”
What the README warns about
Each item is the project’s own statement, checked on 2026-10-03, quoted where the wording matters.
garth sessions do not carry over.
“Since 0.3.0 this library no longer uses garth, which is deprecated. Sessions saved by older versions (oauth1_token.json/oauth2_token.json, created with garth.save()) cannot be converted”
Source: README
How sign-in works, per the README: a first login against Garmin's mobile SSO endpoint with an MFA callback (
prompt_mfa) if needed, then an exchange for an access and refresh token pair that auto-refreshes before each request.Source: README
Treat the token file as a password. The README says the refresh token can provide persistent account access, and that the file is saved with mode 0600 in a 0700 directory.
Source: README
The API underneath
A wrapper inherits every rule of the API it calls. These pages cover that layer directly.
Other Python packages on this list
Python libraries for fitness APIs: every package side by side, and how to choose →
- garth0.8.0 · 2026-03-28Garmin's SSO login and the Garmin Connect API, through the mobile auth approach the README says Garmin's change broke.
- stravalib2.6.0 · 2026-08-27The Strava V3 REST API, through a
stravalib.client.Clientclass, per the README. - oura-ring1.0.1 · 2026-06-22The Oura API v2.
- oura1.3.0 · 2024-04-23The Oura API, with v2 clients under
oura.v2(OuraClientV2,OuraClientDataFrameV2) whose methods are named after the URL paths, per the README. - fitbit0.3.1 · 2019-05-24The legacy Fitbit Web API, using requests-oauthlib and python-dateutil according to the README's requirements.
- withings-api2.4.0 · 2022-02-08The Withings Health API over OAuth 2.0, through
WithingsAuthandWithingsApi, per the README.
Questions
- Can garminconnect reuse tokens saved by garth?
- No. The README says that since 0.3.0 the library no longer uses garth, and that sessions saved by older versions with garth.save() cannot be converted. Log in once with username and password; new tokens are saved to garmin_tokens.json in your token store and used for later logins.
- Is garminconnect an official Garmin API?
- No. Its README calls it an unofficial client for Garmin's web services that signs in with the user's own credentials. For your own account's data, Garmin now offers an official Personal API with a key you create on Garmin Connect Web; for an app that serves other people's Garmin data, see our Garmin API guide, which covers Garmin's official developer program.
Registry facts read by scripts/fetch-libraries.mjs on 2026-10-03 and refreshed weekly; the latest release was published 4 days before our 2026-10-03 read. README quotes identify the project’s own statements; the selection, grouping and comparisons are AIFitnessAPI’s. For tagged releases of the main bridges, see the SDK release tracker.