Cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

API returning wrong data

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.

 

fitbit-data-date.png 

 

 

Best Answer
0 Votes
25 REPLIES 25

You can request as far back as you want.

Ivan Bahdanau
Senior Software Developer at Fitbit
Best Answer
0 Votes

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 Answer
0 Votes

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 Answer
0 Votes

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. 

 

Ivan Bahdanau
Senior Software Developer at Fitbit
Best Answer
0 Votes

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 Answer
0 Votes

 

Ivan,

Thanks for your help on this.

I noticed that there are data points in June, which clarifies my questions.

 

Thanks,

 

John

 

 

Best Answer
0 Votes