I am reporting a breaking issue with the legacy Fitbit Web API that seems to be affecting accounts recently migrated to Google Identity.
Endpoint: GET https://api.fitbit.com/1/user/-/devices.json
Error: 403 Forbidden / "The caller does not have permission"
App Type: Personal
Account Status: Migrated to Google Login (@gmail.com)
Hardware: Sense 2
Handshake Status: OAuth2 authorization is successful. The scope settings is requested and appears on the consent screen.
Permissions: All boxes are checked during the OAuth flow.
The Issue:
Other endpoints (like /activities/) work perfectly with the same access token. Only the devices.json endpoint is returning a 403. This suggests that the legacy settings scope is being stripped or ignored by the new Google-managed resource servers for "Personal" application types, despite being explicitly granted by the user.
Steps Taken:
Revoked all application access via Fitbit Settings.
Reset Client Secret in the Dev Portal.
Deleted and recreated OAuth2 credentials in my integration (n8n).
Verified "Personal" application type in settings.
Confirmed that the "Settings" checkbox appears and is selected on the Google-Fitbit authorization page.
Since the documentation states the legacy API is supported until September 2026, why is hardware/device access being blocked for Personal apps now?
Answered! Go to the Best Answer.
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.
Thanks for reporting the issue.
We just performed the testing - we noticed that the endpoint that worked was using the HTTP verb POST. When switch it to GET, we get the 403 error.
If you can, see if POST https://api.fitbit.com/1/user/-/devices.json works for you and can be a temporary workaround while we get the engineering team to investigate.
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.
Thanks for reporting the issue.
We just performed the testing - we noticed that the endpoint that worked was using the HTTP verb POST. When switch it to GET, we get the 403 error.
If you can, see if POST https://api.fitbit.com/1/user/-/devices.json works for you and can be a temporary workaround while we get the engineering team to investigate.
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.
We recently rolled back the change that caused the Get Devices endpoint to return the 403. It should be working now. If you are still getting a 403 error, please report it.
Best Answer