--- id: ha-garmin version: "0.1.36" license: MIT license_treatment: permissive maintenance: active --- # ha-garmin — Python client for Garmin Connect API License: permissive · Maintenance: active · Downloads: 114.1K/mo ## What it is and what it does ha-garmin is a Python client library for the Garmin Connect API, designed primarily for Home Assistant integration but usable as a standalone tool. It handles Garmin authentication (including MFA), session persistence, and automatic token refresh, then provides both high-level coordinator methods (optimized for Home Assistant's multi-coordinator pattern) and granular API methods to fetch health data (steps, heart rate, sleep, stress, body composition), activity records, training metrics, gear information, and device status. It also supports writing data back to Garmin—logging nutrition, hydration, blood pressure, and manual activities—though nutrition logging requires a Garmin Connect+ subscription. The library abstracts away authentication complexity with automatic fallback strategies and midnight-aware data fetching (using yesterday's data when today isn't ready). It automatically transforms raw API responses with unit conversions (seconds to minutes, grams to kilograms) and nested field flattening. Runtime dependencies are lightweight: pydantic for data validation, curl_cffi and requests for HTTP calls. Use it for: - Build a Home Assistant integration that syncs daily Garmin health metrics (steps, HR, sleep) into automations and dashboards. - Fetch activity records and training readiness scores to trigger workout reminders or recovery alerts. - Log manual nutrition entries, hydration, or blood pressure measurements back to Garmin Connect from external apps. - Download and archive activity files (FIT, GPX, TCX) for personal data backup or analysis. - Monitor gear usage statistics and device battery/sync status across multiple Garmin devices. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Python client for the Garmin Connect API with support for authentication, token management, MFA, and fetching health and fitness data from Garmin devices. Yes. The package is actively maintained, has no known vulnerabilities, uses permissive MIT licensing, and offers low install friction. It is well-suited for Home Assistant users and developers building Garmin integrations. The API surface is comprehensive and the library handles authentication and token management transparently. Start with it if you need Garmin Connect access in Python. ## Install pip install ha-garmin uv add ha-garmin poetry add ha-garmin ## Installing ha-garmin Before you install: Low install friction with a pure-Python wheel and only three runtime dependencies (pydantic, curl_cffi, requests). Active maintenance with a recent commit on 2026-08-13. License in practice: MIT license permits unrestricted use, modification, and distribution with minimal restrictions. Quickstart: pip install ha-garmin import asyncio from datetime import date from ha_garmin import GarminAuth, GarminClient auth = GarminAuth() auth.login("email@example.com", "password") client = GarminClient(auth) async def fetch(): data = await client.fetch_core_data(date.today()) return data asyncio.run(fetch()) Requires Python 3.11 or later. Authentication is synchronous; data fetches are async and must be awaited. Verify before relying: - Whether the optional [ua] extra (improved browser UA generation) is necessary for reliable authentication in practice. - Rate limit and retry behavior specifics beyond the stated backoff for 429 and 5xx responses. - Whether Garmin Connect+ subscription is required for all write operations or only nutrition logging. ## Package facts - License: MIT (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 114.1K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags garmin connect api client, garmin fitness data python, garmin health api integration, garmin device data sync, garmin activity tracking api, garmin-integration, home-assistant, fitness-api [View on SkillFed](https://skillfed.io/packages/ha-garmin) · [View on PyPI](https://pypi.org/project/ha-garmin/)