Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Export all your Fitbit data to Google Fit. If you find this useful, please star the repository on Github.

Unlike other alternatives, such as, this aims to offer very fine granularity for the data.

Fitbit Steps GoogleFit Steps demo


  • Steps - minute level precision
  • Distance - minute level precision
  • Heart rate - second level precision
  • Weight
  • Body fat percentage
  • Activities
    • Running
    • Swimming
    • Biking
    • Volleyball
    • Walking
    • Badminton
    • Workouts
    • Fencing
    • Cricket
    • Football
    • Hiking
    • And a [few others][activities] -- suggestions welcome!
  • Calories - minute level precision
  • Sleep logs - minute level precision

Adding new activities

To add new activities


You have to register your own Fitbit and Google Fit applications. This setup is a one time thing.

  1. Install dependencies

This is a python3 application so install all the dependencies

  • Create virtualenv virtualenv fitbitenv
  • Activate env source fitbitenv/bin/activate
  • Install dependencies using pip3 install -r requirements.txt
  1. Fitbit setup

All instructions below must be performed using the same Fitbit account you want to sync with Google Fit.

Application Name : --
Description : --
Application Website : --
Organization : --
Organization Website : --
OAuth 2.0 Application Type : **Personal**
Callback URL : http://localhost:8080/
Default Access Type : Read-Only

Note : 
1. Use your own information for fields marked --
2. Make sure you copy the Callback URL exactly (including the last /)
3. Application Type MUST be Personal
  • Hit save and make a note of OAuth 2.0 Client ID and Client Secret
  • Navigate to auth folder cd /auth
  • run python3 -i <client-id> -s <client-secret>
  • This opens a popup in the browser. Authenticate and done!
  1. Google Fit setup

  • Go to the Google Developers Console
  • Click Continue. Then select Go to credentials and select Client ID
  • Under Application type, select Other and hit Create
  • Make a note of client ID and client secret
  • Navigate to auth folder cd /auth
  • run python3 -i <client-id> -s <client-secret>
  • This opens a popup in the browser. Authenticate and done!


Get your Google Developer Project Number (a 12 digit number) from a the Google Developers Console

Update project_number in config.ini to be your Google Developer Project Number.

Modify any other variables you'd like in config.ini with your own choices and start the sync using python3

Sync examples:

  • With date stamps : python3 -s 2016-08-20 -e 2016-08-22
  • Last 3 days : python3 -s "2 days ago" -e tomorrow
  • January month : python3 -s "jan 1 2016" -e "feb 1 2016"

Setup autosync:

You can setup a cron task to automatically sync everyday at 2:30 AM.

30 2 * * * /path-to-repo/fitbit-googlefit/ >> /path-to-repo/fitbit-googlefit/cron.log 2>&1

Add above line to your cron tab: crontab -e in Linux. Sync logs will be stored to cron.log in repository.

Headless authentication

If you want to do the authentication process on a system without a display - such as a raspberry pi or a remote server, pass --console or -c option to the authentication scripts. See below examples.

python3 -i clientid -s clientsecret --console

python3 -i clientid -s clientsecret --console

Note :

  1. Get command line help using the -h flag.
  2. Arguments passed through command-line take higher priority over config.ini values.


Export Fitbit data to Google Fit. Unlike the alternatives such as, this offers very fine intraday granularity (every minute/second data).








No releases published


No packages published