Jawbone UP API Discovery
On Saturday I stopped by the Apple store and picked up an UP device by Jawbone. The UP is a wristband and iPhone app that will track your fitness and sleep activity and help encourage you to live a more active life style. It’s very similar to the Fitbit device, and lets you track:
- calories burned
- active/inactive times
- sleep (awake/light/deep sleep)
So far I’m really impressed with both the wristband and iPhone app. However, I was a little disappointed the wristband didn’t support ANT or Bluetooth for data synchronization. The data sync is unique and “low impact” (battery-wise) in that it plugs into the iPhone via the headphone jack and uploads data directly to the app. After some digging I was surprised to see no way to send or save the data. I was curious if the data was just saved to the app, or also synchronized with another server.
As with most of my Quantified Self gadets (Fitbit, Zeo, Withings, Neurosky, etc.) my first reaction was to “free my data”. My understanding is that Jawbone has exposed an API to partners, and will soon be releasing a more public API and ability to download data shortly. Similar to my initial journey with the Fitbit, I was inspired to find an “unofficial” way to get access to the data (e.g. my Fitbit Hacks). I was able to get access and save my personal data for about a year before an official method became available. Luckily Fitbit and other companies like Zeo (especially Zeo) have taken an open approach with their APIs and have embraced the developer community. My hope is that UP will do the same.
In the spirit of filling in the data gaps until that day comes and an official announcement is made I decided to do a bit of exploration yesterday morning. Using my favorite HTTP/SSL sniffer (Charles) and some tinkering with the app I was able to decipher how to get access to all of the UP data. I haven’t written a data scraper script yet, but I was able to verify a number of API requests from the command-line using LWP POST and GET.
I wrote up some detailed notes in my wiki yesterday and have posted a snapshot here:
Jawbone UP API – http://eric-blue.com/projects/up-api/
My hope is this should give others enough information to download their own data for the purpose of backing up and analysis with other software. Since this isn’t officially supported and appears to be used only by their app I would use sparingly (no excessive requests) and don’t do anything that would violate a TOS/AUP (use at your own risk). Otherwise, enjoy!
My other Quantified Self-related projects:
TRAQS.me (Tools for Reporting & Analysis of the Quantified Self)
Fitbit Hacks (the original “unofficial” API)
Zeo (Hacking your way to a better night’s sleep)
NeuroSky Brainwave Visualizer
Mindstream – Neurosky EEG Data streamer