Python 3 API wrapper for Garmin Connect to get your statistics.
This package allows you to request your activity and health data you gather on Garmin Connect. See https://connect.garmin.com/
pip install garminconnect
#!/usr/bin/env python3
from garminconnect import (
Garmin,
GarminConnectConnectionError,
GarminConnectTooManyRequestsError,
GarminConnectAuthenticationError,
)
from datetime import date
"""
Enable debug logging
"""
#import logging
#logging.basicConfig(level=logging.DEBUG)
today = date.today()
"""
Initialize Garmin client with credentials
Only needed when your program is initialized
"""
try:
client = Garmin(YOUR_EMAIL, YOUR_PASSWORD)
except (
GarminConnectConnectionError,
GarminConnectAuthenticationError,
GarminConnectTooManyRequestsError,
) as err:
print("Error occured during Garmin Connect Client init: %s" % err)
quit()
except Exception: # pylint: disable=broad-except
print("Unknown error occured during Garmin Connect Client init")
quit()
"""
Login to Garmin Connect portal
Only needed at start of your program
The libary will try to relogin when session expires
"""
try:
client.login()
except (
GarminConnectConnectionError,
GarminConnectAuthenticationError,
GarminConnectTooManyRequestsError,
) as err:
print("Error occured during Garmin Connect Client login: %s" % err)
quit()
except Exception: # pylint: disable=broad-except
print("Unknown error occured during Garmin Connect Client login")
quit()
"""
Get full name from profile
"""
try:
print(client.get_full_name())
except (
GarminConnectConnectionError,
GarminConnectAuthenticationError,
GarminConnectTooManyRequestsError,
) as err:
print("Error occured during Garmin Connect Client get full name: %s" % err)
quit()
except Exception: # pylint: disable=broad-except
print("Unknown error occured during Garmin Connect Client get full name")
quit()
"""
Get unit system from profile
"""
try:
print(client.get_unit_system())
except (
GarminConnectConnectionError,
GarminConnectAuthenticationError,
GarminConnectTooManyRequestsError,
) as err:
print("Error occured during Garmin Connect Client get unit system: %s" % err)
quit()
except Exception: # pylint: disable=broad-except
print("Unknown error occured during Garmin Connect Client get unit system")
quit()
"""
Get activity data
"""
try:
print(client.get_stats(today.isoformat()))
except (
GarminConnectConnectionError,
GarminConnectAuthenticationError,
GarminConnectTooManyRequestsError,
) as err:
print("Error occured during Garmin Connect Client get stats: %s" % err)
quit()
except Exception: # pylint: disable=broad-except
print("Unknown error occured during Garmin Connect Client get stats")
quit()
"""
Get heart rate data
"""
try:
print(client.get_heart_rates(today.isoformat()))
except (
GarminConnectConnectionError,
GarminConnectAuthenticationError,
GarminConnectTooManyRequestsError,
) as err:
print("Error occured during Garmin Connect Client get heart rates: %s" % err)
quit()
except Exception: # pylint: disable=broad-except
print("Unknown error occured during Garmin Connect Client get heart rates")
quit()
"""
Get body composition data
"""
try:
print(client.get_body_composition(today.isoformat()))
except (
GarminConnectConnectionError,
GarminConnectAuthenticationError,
GarminConnectTooManyRequestsError,
) as err:
print("Error occured during Garmin Connect Client get body composition: %s" % err)
quit()
except Exception: # pylint: disable=broad-except
print("Unknown error occured during Garmin Connect Client get body composition")
quit()
"""
Get stats and body composition data
"""
try:
print(client.get_stats_and_body(today.isoformat()))
except (
GarminConnectConnectionError,
GarminConnectAuthenticationError,
GarminConnectTooManyRequestsError,
) as err:
print("Error occured during Garmin Connect Client get stats and body composition: %s" % err)
quit()
except Exception: # pylint: disable=broad-except
print("Unknown error occured during Garmin Connect Client get stats and body composition")
quit()
"""
Get activities data
"""
try:
print(client.get_activities(0,1) # 0=start, 1=limit
except (
GarminConnectConnectionError,
GarminConnectAuthenticationError,
GarminConnectTooManyRequestsError,
) as err:
print("Error occured during Garmin Connect Client get activities: %s" % err)
quit()
except Exception: # pylint: disable=broad-except
print("Unknown error occured during Garmin Connect Client get activities")
quit()