skillfed

garminconnect

Python 3 API wrapper for Garmin Connect

garminconnect v0.3.10 741.0K downloads/30d#5,183 on PyPI2,804
Permissive license MIT Active released

What it is and what it does

garminconnect is a Python 3 API client for Garmin Connect that handles authentication, token management, and access to API endpoints across multiple categories. It abstracts away the complexity of Garmin's mobile SSO flow, managing token refresh automatically so you can focus on querying health data, activities, devices, and fitness metrics.

The library covers health metrics (heart rate, sleep, stress, SpO2, HRV), activity management (workouts, typed uploads, scheduling), nutrition logging, golf scorecards, device information, goals and achievements, and historical trends. It uses curl_cffi, requests, and ua-generator to handle HTTP communication and maintain compatibility with Garmin's API endpoints. Authentication tokens are stored locally and refreshed transparently; only a full re-login is needed if the refresh token expires.

Use it for:

  • Extract daily step counts, calories, and resting heart rate for personal fitness dashboards or health tracking applications.
  • Programmatically upload workout data (running, cycling, swimming) to Garmin Connect or sync with external fitness platforms.
  • Retrieve historical activity and health trends over date ranges for analysis, reporting, or data migration.
  • Automate device management tasks like querying connected devices, alarms, or solar data without manual Garmin Connect login.
  • Build integrations that pull Garmin golf scorecard data, shot-by-shot metrics, or club statistics for analysis.
  • Monitor personal records, badges, challenges, and training readiness metrics for coaching or performance tracking workflows.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Python wrapper for the Garmin Connect API that provides programmatic access to health metrics, activity data, device information, and fitness tracking from Garmin Connect accounts.

Yes. The package is actively maintained, has low install friction, carries no known vulnerabilities, and provides comprehensive API coverage for Garmin Connect. It's suitable for production use if you need programmatic access to Garmin health and fitness data. Requires Python 3.12 or later.

Install

garminconnect on PyPI

pip

pip install garminconnect

uv

uv add garminconnect

poetry

poetry add garminconnect

Installing garminconnect

Before you install

Low friction installation with three runtime dependencies (curl_cffi, requests, ua-generator). Package is actively maintained with a recent release (3 days old) and 2804 GitHub stars. Requires Python 3.12 or later.

License in practice

MIT license permits free use, modification, and distribution with minimal restrictions—suitable for both open-source and commercial projects.

Quickstart

pip install garminconnect curl_cffi

from garminconnect import Garmin

client = Garmin(email='user@example.com', password='password')
client.login()
stats = client.get_stats_today()
print(f"Steps: {stats['steps']}, Calories: {stats['calories']}")

Requires Python 3.12 or later. First login may require MFA code entry via interactive prompt if multi-factor authentication is enabled on the Garmin account.

Verify before relying

  • Whether all documented API methods are fully functional or if some are experimental/partial implementations
  • Rate limiting or throttling behavior when making multiple API calls in succession
  • Whether MFA support covers all Garmin account types or only specific regions/configurations

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.12)
Install friction low — pure-Python wheel
Runtime dependencies 3 — curl_cffi, requests, ua-generator
Maintenance actively maintained — 3 days since the last release
Last repo commit
First released
Downloads 741,000/month — #5,183 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: garminconnect-0.3.10-py3-none-any.whl

Keywords: garmin connect, api, garmin

Development Status :: 5 - Production/StableLicense :: OSI Approved :: MIT LicenseOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: OS IndependentOperating System :: POSIX :: LinuxProgramming Language :: Python :: 3.12Programming Language :: Python :: 3.13

Tags

garmin connect api wrappergarmin health data pythongarmin activity tracking apigarmin fitness metrics accessgarmin device data pythongarmin connect authenticationgarmin workout data retrieval
fitness-apihealth-datagarmin-integration

More WWW/HTTP packages