Skip to content
AF
Python library

garminconnect (Python)

Python · PyPI: garminconnect · latest 0.3.17 (2026-09-29) · registry read 2026-10-03

garminconnect is an unofficial Python client for Garmin Connect, the web service behind Garmin's consumer app, signed in with the user's own credentials. Its README says it logs in through the same mobile SSO flow as the official Garmin Connect mobile apps, stores tokens in ~/.garminconnect/garmin_tokens.json, and stopped using garth in version 0.3.0. It requires Python 3.12 or later.

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

From PyPI

pip install --upgrade garminconnect curl_cffi

From the README

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.

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
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.Client class, 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 WithingsAuth and WithingsApi, 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.

← All health and fitness libraries