Skip to content


Subversion checkout URL

You can clone with
Download ZIP
OAuth-based client for the REST API

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.

Fitgem Build Status

Provides access to data through their OAuth/REST API. Fitgem can pull data with or without user authentication. Without user authentication, any data that the a user has denoted as 'public' can be gathered. If a user logs in via OAuth then all exposed data can be gathered.

The API is currently (Early 2012) in BETA and is under development to extend its reach. Since it is early in the lifecycle of the API I expect this gem to go through a number of revisions as we attempt to match the functionality of their platform.


Install fitgem:

$ gem install fitgem

The wiki has information on how to use fitgem in the OAuth handshake with

Usage in a Rails Application

We've started to develop an example app using the fitgem client. See for more information or check out the hosted version. The fitgem-client project is evolving more slowly than the library itself, but work continues.


The Fitbit API allows for you to set up notification subscription so that when values change (via automatic syncs with the fitbit device) your applications can be notified automatically. You can set up a default subscription callback URL via the Fitbit dev site and then use the Subscriptions API to add or remove subscriptions for individual users.

Currently, notification management is experimental in this gem. There is currently code to add, remove, and list subscriptions (foods, activities, sleep, body, and all collections).


What About ruby-fitbit?

There is a good looking gem called ruby-fitbit that also aims to collect data from the site. It was created before they released their REST API and uses screen-scraping to gather the data rather than through their API. I looked into forking it and refactoring to use the new API but after looking through the code I felt it would be more of a total rewrite and so decided to create a new gem that I could design from scratch.

Why the Name Change?

It turns out that does not want people to create libraries or applications that incorporate the name 'fitbit'. So, on May 12th, 2011 I changed the name of the project/gem from 'fitbit' to 'fitgem'.


To be clear: I am not employed by I created this library to assist other ruby developers in creating interesting applications on top of's data store and device data stream.

Contributing to fitgem

The Fitbit REST API is in BETA right now, and so it will quite likely change over time (though I can't be sure whether it will be additive change or change of the non-backwards-compatible variety). I aim to keep as up-to-date as I can but if you absolutely need functionality that isn't included here, feel free to fork and implement it, then send me a pull request.

  • Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
  • Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
  • Fork the project
  • Start a feature/bugfix branch
  • Commit and push until you are happy with your contribution
  • Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
  • Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.


Copyright (c) 2011-2012 Zachery Moneypenny. See LICENSE for further details.

Something went wrong with that request. Please try again.