How do I retrieve step count data from Google Fitness REST api?

user4025880 picture user4025880 · Nov 26, 2014 · Viewed 10.4k times · Source

Since I installed the Google Fit app on my Nexus 5 it has been tracking my step count and time spent walking. I'd like to retrieve this info via the Google Fitness REST api (docs) but I can't work out how to get any of that data from the REST api.

I've used the OAuth 2.0 playground to successfully list dataSources but none of the examples I have tried have returned any fitness data whatsoever. I feel like I need to use something similar to a DataReadRequest from the (Android SDK) but I'm not building an Android app -- I just want to access fitness data already stored by the Google Fit app.

Is it even possible to get the data gathered by the Google Fit app? If so, how can I read and aggregate step count data using the REST api?

Answer

user4025880 picture user4025880 · Nov 27, 2014

It turns out that the answer is in the docs after all. Here is the format of the request.

GET https://www.googleapis.com/fitness/v1/users/{userId}/dataSources/{dataSourceId}/datasets/{datasetId}

The only supported {userId} value is me (with authentication).

Possible values for {dataSourceId} are avaiable by running a different request.

The bit I missed was that {datasetId} is not really an ID, but actually where you define the timespan in which you are interested. The format for that variable is {startTime}-{endTime} where the times are in nanoseconds since the epoch.