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, Profiles, and Settings. The published artifact set on APIs.io includes API documentation and an OpenAPI specification.

This API exposes 48 operations across 44 paths, and defines 18 schemas. It is described by OpenAPI 3.2.0, at version 1.0.

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

48 operations 44 paths 18 schemas 6 DELETE34 GET8 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
1.0
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.

Paths & Operations 48

Across 44 paths, the API surfaces 48 operations — 6 DELETE, 34 GET, 8 POST. Each is listed below with its method, path, parameters, and response codes.

User 48
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

Schemas 18

The contract defines 18 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.

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

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.