{"id":27793,"library":"garmindb","title":"GarminDB","description":"Download and analyze Garmin Connect data, including activities, health data (HR, sleep, steps), and more. Version 3.7.0 released March 2025; active development with frequent releases.","status":"active","version":"3.7.0","language":"python","source_language":"en","source_url":"https://github.com/tcgoetz/GarminDB","tags":["garmin","fitness","health-data","activity-tracking","workout","data-analysis"],"install":[{"cmd":"pip install garmindb","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Handles Garmin Connect authentication","package":"garth","optional":false},{"reason":"Used for data analysis and export","package":"pandas","optional":false},{"reason":"Database ORM for storing data","package":"sqlalchemy","optional":false}],"imports":[{"wrong":"from garmindb import GarminDb","symbol":"GarminDb","correct":"from garmindb import GarminDb"}],"quickstart":{"code":"import os\nfrom garmindb import GarminConnect, GarminDb\n\n# Set credentials as environment variables or directly\nemail = os.environ.get('GARMIN_EMAIL', '')\npassword = os.environ.get('GARMIN_PASSWORD', '')\n\n# Initialize GarminConnect client\nclient = GarminConnect(email=email, password=password)\n\n# Download recent activities\nactivities = client.get_activities(start=0, limit=10)\nprint(f\"Downloaded {len(activities)} activities\")\n\n# Initialize database (creates local SQLite)\ndb = GarminDb()\ndb.create_tables()\n\n# Save activities to database\nfor activity in activities:\n    db.save_activity(activity)\nprint(\"Data saved to GarminDB database.\")","lang":"python","description":"Initialize GarminConnect, download activities, create local database and store data."},"warnings":[{"fix":"Run 'garmindb_cli.py --rebuild_db' (or the equivalent Python call) once after upgrading.","message":"Version 3.7.0 requires a database rebuild. Run 'garmindb_cli.py --rebuild_db' after upgrade or you'll get schema errors.","severity":"breaking","affected_versions":">=3.7.0"},{"fix":"Re-authenticate via OAuth. The library now uses browser-based login; headless may require token refreshes.","message":"Starting with version 3.6.0, authentication uses the 'garth' library. Old 'garminconnect' credentials may fail.","severity":"breaking","affected_versions":">=3.6.0"},{"fix":"Use 'garmindb_cli.py' as the command, e.g. 'garmindb_cli.py --rebuild_db'.","message":"The CLI script is installed as 'garmindb_cli.py' (not 'garmindb_cli'). Running 'garmindb_cli --help' will fail.","severity":"gotcha","affected_versions":">=2.0"},{"fix":"Set 'database_dir' in your config file or use default.","message":"The 'GarminDb' class constructor no longer supports the 'db_directory' parameter. It's now auto-detected from config.","severity":"deprecated","affected_versions":">=3.4.0"}],"env_vars":null,"search_vec":"'2025':21 '3.7.0':18 'activ':9,22,33 'activity-track':32 'analysi':38 'analyz':4 'connect':6 'data':7,11,31,37 'data-analysi':36 'develop':23 'download':2 'fit':28 'frequent':25 'garmin':5,27 'garmindb':1 'health':10,30 'health-data':29 'hr':12 'includ':8 'march':20 'releas':19,26 'sleep':13 'step':14 'track':34 'version':17 'workout':35","created_at":"2026-05-09T05:52:07.229008+00:00","updated_at":"2026-05-09T05:52:07.229008+00:00","problems":{"verify_error":"Traceback (most recent call last):\n  File \"<string>\", line 1, in <module>\nImportError: cannot import name 'GarminDb' from 'garmindb' (/tmp/tmpvvbvcb4n/venv/lib/python3.12/site-packages/garmindb/__init__.py). Did you mean: 'garmindb'?"},"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":"garmindb","cli_version":"sh: 1: garmindb: not found","type":"library","homepage":null,"github":"https://github.com/tcgoetz/GarminDB","docs":null,"changelog":"https://github.com/tcgoetz/GarminDB/releases","pypi":"https://pypi.org/project/garmindb/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["data","database"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"import_fail","verified_at":"2026-07-03","last_verified":"2026-07-03","next_check":"2026-07-10","install_tag":null}}