11-04-2014 06:24 - edited 11-04-2014 06:24
11-04-2014 06:24 - edited 11-04-2014 06:24
Hi,
We are having a problem with Fitbit API, it is returing data different than what we see in Fitbit dashboard.
We used this fitbit account - renushankar@ymail.com
Attached is the logger data for fitbit data.
On fitbit site for the above account there are data for the month of september. But it sends 1 data from the current date,which was not actually added.
Best Answer11-13-2014 08:33
Fitbit Developers oversee the SDK and API forums. We're here to answer questions about Fitbit developer tools, assist with projects, and make sure your voice is heard by the development team.
11-13-2014 08:33
You can request as far back as you want.
Best Answer11-13-2014 11:32
11-13-2014 11:32
Hello Ivan,
Can you please help clarify for me.. I am very confused about behavior I am seeing with fitbit api.
I am getting weight using time series and log apis for the same account, with the same date range, but the results are dramatically different.
TIME SERIES API REQUEST
https://api.fitbit.com/1/user/2QX3TF/body/weight/date/2014-06-17/2014-06-28.json
{"body-weight":[{"dateTime":"2014-06-17","value":"80.636"},{"dateTime":"2014-06-18","value":"80.173"},{"dateTime":"2014-06-19","value":"79.71"},{"dateTime":"2014-06-20","value":"79.247"},{"dateTime":"2014-06-21","value":"78.784"},{"dateTime":"2014-06-22","value":"78.321"},{"dateTime":"2014-06-23","value":"77.858"},{"dateTime":"2014-06-24","value":"77.395"},{"dateTime":"2014-06-25","value":"76.932"},{"dateTime":"2014-06-26","value":"76.469"},{"dateTime":"2014-06-27","value":"76.006"},{"dateTime":"2014-06-28","value":"75.543"}]}
LOG API REQUEST
https://api.fitbit.com/1/user/2QX3TF/body/log/weight/date/2014-06-17/2014-06-28.json
{"weight":[]}
How can you explain this ?
It seems the time series data is not correct.
Best Answer11-13-2014 11:44
11-13-2014 11:44
I did the same exact test -- same account, same APIs, but this time from 9/10/14 to 9/30/14.
This time, both APIs worked. So the question is... why is the TIME SERIES API returning bogus data from June 17 to June 28 ???
Here is the 9/10 to 9/30 data:
TIME SERIES API REQUEST
https://api.fitbit.com/1/user/2QX3TF/body/weight/date/2014-09-10/2014-09-30.json
{"body-weight":[{"dateTime":"2014-09-10","value":"84.766"},{"dateTime":"2014-09-11","value":"84.968"},{"dateTime":"2014-09-12","value":"85.17"},{"dateTime":"2014-09-13","value":"85.372"},{"dateTime":"2014-09-14","value":"85.574"},{"dateTime":"2014-09-15","value":"85.776"},{"dateTime":"2014-09-16","value":"85.978"},{"dateTime":"2014-09-17","value":"86.183"},{"dateTime":"2014-09-18","value":"90.719"},{"dateTime":"2014-09-19","value":"90.719"},{"dateTime":"2014-09-20","value":"90.719"},{"dateTime":"2014-09-21","value":"90.719"},{"dateTime":"2014-09-22","value":"90.719"},{"dateTime":"2014-09-23","value":"90.719"},{"dateTime":"2014-09-24","value":"90.719"},{"dateTime":"2014-09-25","value":"90.719"},{"dateTime":"2014-09-26","value":"90.719"},{"dateTime":"2014-09-27","value":"90.719"},{"dateTime":"2014-09-28","value":"90.719"},{"dateTime":"2014-09-29","value":"90.719"},{"dateTime":"2014-09-30","value":"90.719"}]}
LOG API REQUEST
https://api.fitbit.com/1/user/2QX3TF/body/log/weight/date/2014-09-10/2014-09-30.json
{"weight":[{"bmi":33.62,"date":"2014-09-17","logId":1410998399000,"time":"23:59:59","weight":86.1},{"bmi":35.39,"date":"2014-09-18","logId":1411084799000,"time":"23:59:59","weight":90.7}]}
Best Answer11-13-2014 13:39
Fitbit Developers oversee the SDK and API forums. We're here to answer questions about Fitbit developer tools, assist with projects, and make sure your voice is heard by the development team.
11-13-2014 13:39
Khaled,
the rule for time series is:
It returns a list of datapoints for the last X days with gaps filled in via averaging. For example if between day 1 (value = 5) and day 4 (value = 20), days 2 and 3 were missing day 2 would be filled in with the value of 10 and day 3 with the value of 15. Each side of the returned array is padded if the data begins before the start date or ends before startDate - numDays. For example if 7 days of data are requested and there is only data starting 5 days ago, then a list of 7 values will be returned. The last five values will be the same as the value 5 days ago.
Best Answer11-14-2014 06:26
11-14-2014 06:26
Ivan,
1) This is different from what you answered on 11/11 08:31.
The thing is that you're calling TimeSeries endpoint that supose to auto-fill the weight with the latest weights that user posted if there is not weight logged for particular date.
2) Also, your response does not explain how to the time-series API returning data from June 2014 when data is only available starting in September.
3) What you said does not even apply to the data I sent you. If you observe, you will notice that the values sent starting in June are always changing and they go down, then they go up.
{
"body-weight": [
{ "dateTime": "2014-06-22", "value": "82.177" },
{"dateTime": "2014-06-23","value": "81.955"},
{"dateTime": "2014-06-24","value": "81.733"},
{"dateTime": "2014-06-25","value": "81.511"},
{"dateTime": "2014-06-26","value": "81.289"},
{"dateTime": "2014-06-27","value": "81.067"},
{"dateTime": "2014-06-28","value": "80.845"},
....
{"dateTime": "2014-07-22","value": "75.517"},
{"dateTime": "2014-07-23","value": "75.295"},
{"dateTime": "2014-07-24","value": "75.07"},
{"dateTime": "2014-07-25","value": "75.272"},
{"dateTime": "2014-07-26","value": "75.474"},
{"dateTime": "2014-07-27","value": "75.676"},
Thanks
Best Answer11-14-2014 07:33
11-14-2014 07:33
Ivan,
Thanks for your help on this.
I noticed that there are data points in June, which clarifies my questions.
Thanks,
John
Best Answer