How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Fitbit User API

Read and update the authorized Fitbit user's profile including display name, gender, birthday, height, weight, locale, timezone, and unit preferences (distance, weight, water, glucose, temperature).

Fitbit User API is one of 3 APIs that Fitbit publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include User, Profile, and Settings. The published artifact set on APIs.io includes API documentation and an OpenAPI specification.

This API exposes 50 operations across 45 paths, and defines 19 schemas. It is described by OpenAPI 3.0.3, at version 1.

Requests are made against a single base URL, https://api.fitbit.com.

50 operations 45 paths 19 schemas 6 DELETE35 GET9 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.3
API Version
1
Server
https://api.fitbit.com
Authentication
OAuth 2.0
Resource Areas
1

Authentication & Security 1

Fitbit User API declares 1 security scheme for authenticating requests. It supports OAuth 2.0 (OAuth2) using the authorizationCode flow, exposing 15 scopes. By default, every request must be authenticated.

Paths & Operations 50

Across 45 paths, the API surfaces 50 operations — 6 DELETE, 35 GET, 9 POST. Each is listed below with its method, path, parameters, and response codes.

User 50
GET
/1/user/{user-id}/activities/date/{date}.json
Get Daily Activity Summary
getDailyActivitySummary 2 params → 200
POST
/1/user/{user-id}/activities.json
Log Activity
logActivity 9 params → 201
DELETE
/1/user/{user-id}/activities/{activity-log-id}.json
Delete Activity Log
deleteActivityLog 2 params → 204
GET
/1/user/{user-id}/activities/list.json
Get Activity Log List
getActivityLogList 6 params → 200
GET
/1/user/{user-id}/activities/goals/{period}.json
Get Activity Goals
getActivityGoals 2 params → 200
GET
/1/user/{user-id}/activities/active-zone-minutes/date/{date}/{period}.json
Get AZM Time Series By Date
getAzmTimeSeriesByDate 3 params → 200
GET
/1/user/{user-id}/activities/steps/date/{base-date}/{end-date}.json
Get Activity Time Series By Date Range
getActivityTimeSeriesByDateRange 3 params → 200
GET
/1/user/{user-id}/body/log/weight/date/{date}.json
Get Weight Logs By Date
getWeightLogsByDate 2 params → 200
POST
/1/user/{user-id}/body/log/weight/date/{date}.json
Log Weight
logWeight 4 params → 201
DELETE
/1/user/{user-id}/body/log/weight/{weight-log-id}.json
Delete Weight Log
deleteWeightLog 2 params → 204
GET
/1/user/{user-id}/body/log/fat/date/{date}.json
Get Body Fat Logs By Date
getBodyFatLogsByDate 2 params → 200
GET
/1/user/{user-id}/body/{resource-path}/date/{date}/{period}.json
Get Body Time Series By Date
getBodyTimeSeriesByDate 4 params → 200
GET
/1/user/{user-id}/body/log/weight/goal.json
Get Body Weight Goal
getBodyWeightGoal 1 param → 200
GET
/1/user/{user-id}/devices.json
Get Devices
getDevices 1 param → 200
GET
/1/user/{user-id}/devices/tracker/{tracker-id}/alarms.json
Get Alarms
getAlarms 2 params → 200
POST
/1/user/{user-id}/devices/tracker/{tracker-id}/alarms.json
Add Alarm
addAlarm 6 params → 201
DELETE
/1/user/{user-id}/devices/tracker/{tracker-id}/alarms/{alarm-id}.json
Delete Alarm
deleteAlarm 3 params → 204
GET
/1/user/{user-id}/ecg/list.json
Get ECG Log List
getEcgLogList 6 params → 200
GET
/1/user/{user-id}/irn/alerts/list.json
Get IRN Alerts List
getIrnAlertsList 6 params → 200
GET
/1/user/{user-id}/irn/profile.json
Get IRN Profile
getIrnProfile 1 param → 200
GET
/1.1/user/{user-id}/friends.json
Get Friends
getFriends 1 param → 200
GET
/1.1/user/{user-id}/leaderboard/friends.json
Get Friends Leaderboard
getFriendsLeaderboard 1 param → 200
GET
/1/user/{user-id}/activities/heart/date/{date}/{period}.json
Get Heart Rate Time Series By Date
getHeartRateTimeSeriesByDate 3 params → 200
GET
/1/user/{user-id}/activities/heart/date/{base-date}/{end-date}.json
Get Heart Rate Time Series By Date Range
getHeartRateTimeSeriesByDateRange 3 params → 200
GET
/1/user/{user-id}/activities/heart/date/{date}/1d/{detail-level}.json
Get Heart Rate Intraday Time Series
getHeartRateIntradayTimeSeries 3 params → 200
GET
/1/user/{user-id}/foods/log/date/{date}.json
Get Food Logs By Date
getFoodLogsByDate 2 params → 200
POST
/1/user/{user-id}/foods/log.json
Log Food
logFood 10 params → 201
DELETE
/1/user/{user-id}/foods/log/{food-log-id}.json
Delete Food Log
deleteFoodLog 2 params → 204
GET
/1/user/{user-id}/foods/log/water/date/{date}.json
Get Water Logs
getWaterLogs 2 params → 200
POST
/1/user/{user-id}/foods/log/water.json
Log Water
logWater 4 params → 201
GET
/1/user/{user-id}/foods/log/goal.json
Get Food Goals
getFoodGoals 1 param → 200
GET
/1.2/user/{user-id}/sleep/date/{date}.json
Get Sleep Log By Date
getSleepLogByDate 2 params → 200
GET
/1.2/user/{user-id}/sleep/date/{base-date}/{end-date}.json
Get Sleep Log By Date Range
getSleepLogByDateRange 3 params → 200
GET
/1.2/user/{user-id}/sleep/list.json
Get Sleep Log List
getSleepLogList 6 params → 200
POST
/1.2/user/{user-id}/sleep.json
Log Sleep
logSleep 4 params → 201
DELETE
/1.2/user/{user-id}/sleep/{log-id}.json
Delete Sleep Log
deleteSleepLog 2 params → 204
GET
/1/user/{user-id}/sleep/goal.json
Get Sleep Goal
getSleepGoal 1 param → 200
POST
/1/user/{user-id}/sleep/goal.json
Update Sleep Goal
updateSleepGoal 2 params → 200
GET
/1/user/{user-id}/spo2/date/{date}.json
Get SpO2 Summary By Date
getSpo2SummaryByDate 2 params → 200
GET
/1/user/{user-id}/spo2/date/{base-date}/{end-date}.json
Get SpO2 Summary By Date Range
getSpo2SummaryByDateRange 3 params → 200
GET
/1/user/{user-id}/br/date/{date}.json
Get Breathing Rate Summary By Date
getBreathingRateByDate 2 params → 200
GET
/1/user/{user-id}/temp/skin/date/{date}.json
Get Skin Temperature Summary By Date
getSkinTemperatureByDate 2 params → 200
GET
/1/user/{user-id}/temp/core/date/{date}.json
Get Core Temperature Summary By Date
getCoreTemperatureByDate 2 params → 200
GET
/1/user/{user-id}/hrv/date/{date}.json
Get Heart Rate Variability By Date
getHrvByDate 2 params → 200
GET
/1/user/{user-id}/cardioscore/date/{date}.json
Get VO2 Max Summary By Date
getVo2MaxByDate 2 params → 200
POST
/1/user/{user-id}/{collection-path}/apiSubscriptions/{subscription-id}.json
Create Subscription
createSubscription 4 params → 201
DELETE
/1/user/{user-id}/{collection-path}/apiSubscriptions/{subscription-id}.json
Delete Subscription
deleteSubscription 3 params → 204
GET
/1/user/{user-id}/{collection-path}/apiSubscriptions.json
Get Subscription List
getSubscriptionList 2 params → 200
GET
/1/user/{user-id}/profile.json
Get Profile
getProfile 1 param → 200
POST
/1/user/{user-id}/profile.json
Update Profile
updateProfile 15 params → 200

Schemas 19

The contract defines 19 schemas that model the data the API accepts and returns. The most detailed are SleepEntry (15 properties), ActivityLog (13 properties), EcgReading (11 properties), Device (8 properties). Each schema is shown below with its type and property counts.

HeartRateTimeSeries
object
1 property
EcgReading
object
11 properties
ActivityDailySummary
object
3 properties
SleepGoal
object
2 properties
Subscription
object
5 properties
UserProfile
object
1 property
HeartRateZone
object
5 properties
WeightLogList
object
1 property
ActivityLog
object
13 properties
HeartRateIntraday
object
1 property
WeightLog
object
7 properties
BodyFatLogList
object
1 property
SleepLog
object
2 properties
FoodLogResponse
object
3 properties
ActivityLogList
object
2 properties
SleepEntry
object
15 properties
Device
object
8 properties
ActivityGoals
object
1 property
AzmTimeSeries
object
1 property

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

fitbit-user-api-openapi.yml Raw ↑

Other APIs Fitbit publishes across the network.

Fitbit Foods API
Fitbit Oauth2 API
Where this information came from

This is an independent, third-party profile of Fitbit User API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.