github cyberjunky/python-garminconnect 0.3.0
Release 0.3.0

7 hours ago

v0.3.0 — Native Authentication

This release replaces the garth dependency with a native authentication engine that uses the same mobile SSO flow as the official Garmin Connect app.

What's new

  • Native DI OAuth authentication — Login, token exchange, and auto-refresh are handled internally.
  • Cloudflare bypass — multiple TLS impersonation strategies (Safari, Chrome, Edge via curl_cffi) to work around Garmin's Cloudflare blocking of programmatic logins.
  • Automatic token refresh — DI OAuth tokens refresh seamlessly in the background. Once logged in, sessions persist indefinitely.
  • Random browser fingerprinting — login requests use randomized browser identities to avoid detection.
  • New methods: delete_workout(), unschedule_workout() (#341)
  • Golf API fix — golf endpoints now work correctly (#320, thanks @rcloran)
  • Workout constant fixTargetType.HEART_RATE now maps to the correct Garmin API value (#333)
  • Regression tests for workout constants to prevent future drift (thanks @ayazhankadessova, PR #340)
  • Added descriptions to workouts by @miki134 in #339

Breaking changes

  • Saved tokens from previous versions are not compatible. A fresh login is required after upgrading.
  • New token format stored as garmin_tokens.json in ~/.garminconnect/.
  • New dependencies: curl_cffi, ua-generator.

Install

pip install --upgrade garminconnect curl_cffi ua-generator

Full Changelog: https://github.com/cyberjunky/python-garminconnect/commits/0.3.0

Don't miss a new python-garminconnect release

NewReleases is sending notifications on new releases.