Fitbit integration for AI agents.
Fitbit integration for AI agents with secure authentication and server-side credential injection. Open Connector runs the OAuth, seals the token in an encrypted vault, and serves Fitbit tools to your agent over MCP or a typed API — credentials injected server-side, every call audited, nothing leaving your infrastructure. Open source (AGPL-3.0) and self-hostable.
Real Fitbit actions, managed and audited.
Your user connects Fitbit once; your agent can then secure AI-agent actions — scoped to the OAuth permissions you grant and the tool allowlist you configure. Every action is least-privilege and written to a tamper-evident audit trail.
- 1
Your user grants Fitbit access once (OAuth) — the token lands in the vault.
- 2
Your agent calls a tool over MCP or the typed API; Open Connector injects the credential server-side.
- 3
Every routed call appends a hash-chained audit record — nothing leaves your infra.
Supported Fitbit tools.
122 tools are generated from the published Fitbit catalog. Descriptions are plain text; each action remains subject to its configured authentication and tool allowlist.
Showing 122 tools. All published catalog entries are included in this page's server-rendered HTML.
- Log Activity
- The Log Activity endpoint creates log entry for an activity or user's private custom activity using units in the unit system which corresponds to the Accept-Language header provided (or using optional custom distanceUnit) and get a response in the format requested.
- Activity
- Add Alarm
- Adds the alarm settings to a given ID for a given device.
- Devices
- Log Body Fat
- Creates a log entry for body fat and returns a response in the format requested.
- Body
- Add Favorite Activity
- Adds the activity with the given ID to user's list of favorite activities.
- Activity
- Add Favorite Food
- Updates a user's daily activity goals and returns a response using units in the unit system which corresponds to the Accept-Language header provided.
- Nutrition
- Create Food
- Creates a new private food for a user and returns a response in the format requested. The created food is found via the Search Foods call.
- Nutrition
- Log Food
- Creates food log entries for users with or without foodId value.
- Nutrition
- Create Meal
- Creates a meal with the given food contained in the post body.
- Nutrition
- Log Sleep
- Creates a log entry for a sleep event and returns a response in the format requested.
- Sleep
- Add a Subscription
- Adds a subscription in your application so that users can get notifications and return a response in the format requested. The subscription-id value provides a way to associate an update with a particular user stream in your application.
- Subscriptions
- Update Activity Goals
- Updates a user's daily or weekly activity goals and returns a response using units in the unit system which corresponds to the Accept-Language header provided.
- Activity
- Update Food Goal
- Updates a user's daily calories consumption goal or food plan and returns a response in the format requested.
- Nutrition
- Update Water Goal
- Updates a user's daily calories consumption goal or food plan and returns a response in the format requested.
- Nutrition
- Log Water
- Creates a log entry for water using units in the unit systems that corresponds to the Accept-Language header provided.
- Nutrition
- Log Weight
- Creates log entry for a body weight using units in the unit systems that corresponds to the Accept-Language header provided and gets a response in the format requested.
- Body
- Delete Activity Log
- Deletes a user's activity log entry with the given ID.
- Activity
- Delete Alarm
- Deletes the user's device alarm entry with the given ID for a given device.
- Devices
- Delete Body Fat Log
- Deletes a user's body fat log entry with the given ID.
- Body
- Delete Favorite Activity
- Removes the activity with the given ID from a user's list of favorite activities.
- Activity
- Delete Favorite Food
- Deletes a food with the given ID to the user's list of favorite foods.
- Nutrition
- Delete Custom Food
- Deletes custom food for a user and returns a response in the format requested.
- Nutrition
- Delete Food Log
- Deletes a user's food log entry with the given ID.
- Nutrition
- Delete Meal
- Deletes a user's meal with the given meal id.
- Nutrition
- Delete Sleep Log
- Deletes a user's sleep log entry with the given ID.
- Sleep
- Delete a Subscription
- Deletes a subscription for a user..
- Subscriptions
- Delete Water Log
- Deletes a user's water log entry with the given ID.
- Nutrition
- Delete Weight Log
- Deletes a user's body weight log entrywith the given ID.
- Body
- Edit Food Log
- The Edit Food Log endpoint changes the quantity or calories consumed for a user's food log entry with the given Food Log ID.
- Nutrition
- Get Activity Summary by Date
- Retrieves a summary and list of a user's activities and activity log entries for a given day.
- Activity
- Get Activity Goals
- Retreives a user's current daily or weekly activity goals using measurement units as defined in the unit system, which corresponds to the Accept-Language header provided.
- Activity
- Get Lifetime Stats
- Updates a user's daily activity goals and returns a response using units in the unit system which corresponds to the Accept-Language header provided.
- Activity
- Get Activity Log List
- Retreives a list of user's activity log entries before or after a given day with offset and limit using units in the unit system which corresponds to the Accept-Language header provided.
- Activity
- Get Intraday Time Series
- Returns the Intraday Time Series for a given resource in the format requested.
- Activity Intraday Time Series
- Get Activity Time Series
- Returns time series data in the specified range for a given resource in the format requested using units in the unit system that corresponds to the Accept-Language header provided.
- Activity Time Series
- Get Activity Resource by Date Range
- Returns activities time series data in the specified range for a given resource.
- Activity Time Series
- Get Activity Intraday Time Series
- Returns the Activity Intraday Time Series for a given resource in the format requested.
- Activity Intraday Time Series
- Get Activity Intraday Time Series
- Returns the Intraday Time Series for a given resource in the format requested.
- Activity Intraday Time Series
- Get Intraday Time Series
- Returns the Intraday Time Series for a given resource in the format requested.
- Activity Intraday Time Series
- Get Activity TCX
- Retreives the details of a user's location and heart rate data during a logged exercise activity.
- Activity
- Get Activity Time Series
- Returns time series data in the specified range for a given resource in the format requested using units in the unit system that corresponds to the Accept-Language header provided.
- Activity Time Series
- Get Activity Tracker Resource by Date Range Time Series
- Returns time series data in the specified range for a given resource.
- Activity Time Series
- Get Activity Type
- Returns the detail of a specific activity in the Fitbit activities database in the format requested. If activity has levels, it also returns a list of activity level details.
- Activity
- Browse Activity Types
- Retreives a tree of all valid Fitbit public activities from the activities catelog as well as private custom activities the user created in the format requested.
- Activity
- Get Alarms
- Returns alarms for a device
- Devices
- Get AZM Intraday by Date
- Returns the active zone minutes intraday data for a 24 hour period by specifying a date and/or time range.
- Active Zone Minutes Intraday Time Series
- Get AZM Intraday by Date
- Returns the active zone minutes intraday data for a 24 hour period by specifying a date and/or time range.
- Active Zone Minutes Intraday Time Series
- Get AZM Intraday by Interval
- Returns the active zone minutes intraday data for a 24 hour period by specifying a date range and/or time range.
- Active Zone Minutes Intraday Time Series
- Get AZM Intraday by Interval
- Returns the active zone minutes intraday data for a 24 hour period by specifying a date range and/or time range.
- Active Zone Minutes Intraday Time Series
- Get AZM Time Series by Date
- Returns the daily summary values over a period of time by specifying a date and time period.
- Active Zone Minutes Time Series
- Get AZM Time Series by Interval
- Returns the daily summary values over an interval by specifying a date range.
- Active Zone Minutes Time Series
- Get Badges
- Retrieves the user's badges in the format requested. Response includes all badges for the user as seen on the Fitbit website badge locker (both activity and weight related.) The endpoint returns weight and distance badges based on the user's unit profile preference as on the website.
- User
- Get Body Fat Logs
- Retreives a list of all user's body fat log entries for a given day in the format requested.
- Body
- Get Body Fat Logs
- Retreives a list of all user's body fat log entries for a given day in the format requested.
- Body
- Get Body Fat Logs
- Retreives a list of all user's body fat log entries for a given day in the format requested.
- Body
- Get Body Goals
- Retreives a user's current body fat percentage or weight goal using units in the unit systems that corresponds to the Accept-Language header providedin the format requested.
- Body
- Get Body Time Series
- Returns time series data in the specified range for a given resource in the format requested using units in the unit system that corresponds to the Accept-Language header provided.
- Body Time Series
- Get Body Time Series
- Returns time series data in the specified range for a given resource in the format requested using units in the unit system that corresponds to the Accept-Language header provided.
- Body Time Series
- Get Breathing Rate Intraday by Date
- This endpoint returns intraday breathing rate data for a single date. It measures the average breathing rate throughout the day and categories your breathing rate by sleep stage. Sleep stages vary between light sleep, deep sleep, REM sleep, and full sleep.
- Breathing Rate Intraday
- Get Breathing Rate Intraday by Interval
- This endpoint returns intraday breathing rate data for a date range. It measures the average breathing rate throughout the day and categories your breathing rate by sleep stage. Sleep stages vary between light sleep, deep sleep, REM sleep, and full sleep.
- Breathing Rate Intraday
- Get Breathing Rate Summary by Date
- This endpoint returns average breathing rate data for a single date. Breathing Rate data applies specifically to a user’s “main sleep,” which is the longest single period of time during which they were asleep on a given date.
- Breathing Rate
- Get Breathing Rate Summary by Interval
- This endpoint returns average breathing rate data for a date range. Breathing Rate data applies specifically to a user’s “main sleep,” which is the longest single period of time during which they were asleep on a given date.
- Breathing Rate
- Get Devices
- Returns a list of the Fitbit devices connected to a user's account.
- Devices
- Get ECG Log List
- This endpoint is used for querying the user's on-device ECG readings.
- Electrocardiogram
- Get Favorite Activities
- Returns a list of a user's favorite activities.
- Activity
- Get Favorite Foods
- Returns a list of a user's favorite foods in the format requested. A favorite food in the list provides a quick way to log the food via the Log Food endpoint.
- Nutrition
- Get Food Logs
- Retreives a summary and list of a user's food log entries for a given day in the format requested.
- Nutrition
- Get Food or Water Time Series
- Updates a user's daily activity goals and returns a response using units in the unit system which corresponds to the Accept-Language header provided.
- Nutrition Time Series
- Get Food Goals
- Returns a user's current daily calorie consumption goal and/or foodPlan value in the format requested.
- Nutrition
- Get Food
- Returns the details of a specific food in the Fitbit food databases or a private food that an authorized user has entered in the format requested.
- Nutrition
- Search Foods
- Returns a list of public foods from the Fitbit food database and private food the user created in the format requested.
- Nutrition
- Get Food Locales
- Returns the food locales that the user may choose to search, log, and create food in.
- Nutrition
- Get Food or Water Time Series
- Updates a user's daily activity goals and returns a response using units in the unit system which corresponds to the Accept-Language header provided.
- Nutrition Time Series
- Get Food Units
- Returns a list of all valid Fitbit food units in the format requested.
- Nutrition
- Get Frequent Activities
- Retreives a list of a user's frequent activities in the format requested using units in the unit system which corresponds to the Accept-Language header provided.
- Activity
- Get Frequent Foods
- Returns a list of a user's frequent foods in the format requested. A frequent food in the list provides a quick way to log the food via the Log Food endpoint.
- Nutrition
- Get Friends
- Returns data of a user's friends in the format requested using units in the unit system which corresponds to the Accept-Language header provided.
- Friends
- Get Friends Leaderboard
- Returns data of a user's friends in the format requested using units in the unit system which corresponds to the Accept-Language header provided.
- Friends
- Get Heart Rate Intraday Time Series
- Returns the intraday time series for a given resource in the format requested. If your application has the appropriate access, your calls to a time series endpoint for a specific day (by using start and end dates on the same day or a period of 1d), the response will include extended intraday values with a one-minute detail level for that day. Unlike other time series calls that allow fetching data of other users, intraday data is available only for and to the authorized user.
- Heart Rate Intraday Time Series
- Get Heart Rate Time Series
- Returns the time series data in the specified range for a given resource in the format requested using units in the unit systems that corresponds to the Accept-Language header provided.
- Heart Rate Time Series
- Get Heart Rate Time Series
- Returns the time series data in the specified range for a given resource in the format requested using units in the unit systems that corresponds to the Accept-Language header provided.
- Heart Rate Time Series
- Get Heart Rate Intraday Time Series
- Returns the intraday time series for a given resource in the format requested. If your application has the appropriate access, your calls to a time series endpoint for a specific day (by using start and end dates on the same day or a period of 1d), the response will include extended intraday values with a one-minute detail level for that day. Unlike other time series calls that allow fetching data of other users, intraday data is available only for and to the authorized user.
- Heart Rate Intraday Time Series
- Get Heart Rate Intraday Time Series
- Returns the intraday time series for a given resource in the format requested. If your application has the appropriate access, your calls to a time series endpoint for a specific day (by using start and end dates on the same day or a period of 1d), the response will include extended intraday values with a one-minute detail level for that day. Unlike other time series calls that allow fetching data of other users, intraday data is available only for and to the authorized user.
- Heart Rate Intraday Time Series
- Get Heart Rate Intraday Time Series
- Returns the intraday time series for a given resource in the format requested. If your application has the appropriate access, your calls to a time series endpoint for a specific day (by using start and end dates on the same day or a period of 1d), the response will include extended intraday values with a one-minute detail level for that day. Unlike other time series calls that allow fetching data of other users, intraday data is available only for and to the authorized user.
- Heart Rate Intraday Time Series
- Get HRV Intraday by Date
- This endpoint returns the Heart Rate Variability (HRV) intraday data for a single date. HRV data applies specifically to a user’s “main sleep,” which is the longest single period of time asleep on a given date.
- Heart Rate Variability Intraday
- Get HRV Intraday by Interval
- This endpoint returns the Heart Rate Variability (HRV) intraday data for a single date. HRV data applies specifically to a user’s “main sleep,” which is the longest single period of time asleep on a given date.
- Heart Rate Variability Intraday
- Get HRV Summary by Date
- This endpoint returns the Heart Rate Variability (HRV) data for a single date. HRV data applies specifically to a user’s “main sleep,” which is the longest single period of time asleep on a given date.
- Heart Rate Variability
- Get HRV Summary by Interval
- This endpoint returns the Heart Rate Variability (HRV) data for a date range. HRV data applies specifically to a user’s “main sleep,” which is the longest single period of time asleep on a given date.
- Heart Rate Variability
- Get IRN Alerts List
- This endpoint returns a paginated list of Irregular Rhythm Notifications (IRN) alerts, as well as all of the alert tachograms. This endpoint will only return alerts that the user has read in the Fitbit app already, as that is meant as the primary entrypoint for viewing notifications.
- Irregular Rhythm Notifications
- Get IRN Profile
- This endpoint returns the user state for Irregular Rhythm Notifications (IRN). The user state contains most information about the user’s current engagement with the feature, including onboarding progress and algorithm processing state.
- Irregular Rhythm Notifications
- Get Meals
- Returns a list of meals created by user in the user's food log in the format requested. User creates and manages meals on the Food Log tab on the website.
- Nutrition
- Get Profile
- Returns a user's profile. The authenticated owner receives all values. However, the authenticated user's access to other users' data is subject to those users' privacy settings. Numerical values are returned in the unit system specified in the Accept-Language header.
- User
- Get Recent Activity Types
- Retreives a list of a user's recent activities types logged with some details of the last activity log of that type using units in the unit system which corresponds to the Accept-Language header provided.
- Activity
- Get Recent Foods
- Returns a list of a user's frequent foods in the format requested. A frequent food in the list provides a quick way to log the food via the Log Food endpoint.
- Nutrition
- Get Sleep Log
- The Get Sleep Logs by Date endpoint returns a summary and list of a user's sleep log entries (including naps) as well as detailed sleep entry data for a given day.
- Sleep
- Get Sleep Logs by Date Range
- The Get Sleep Logs by Date Range endpoint returns a list of a user's sleep log entries (including naps) as well as detailed sleep entry data for a given date range (inclusive of start and end dates).
- Sleep
- Get Sleep Goal
- Returns the user's sleep goal.
- Sleep
- Get Sleep Logs List
- The Get Sleep Logs List endpoint returns a list of a user's sleep logs (including naps) before or after a given day with offset, limit, and sort order.
- Sleep
- Get SpO2 Intraday by Date
- This endpoint returns the SpO2 intraday data for a single date. SpO2 applies specifically to a user’s “main sleep”, which is the longest single period of time asleep on a given date.
- SpO2 Intraday
- Get SpO2 Intraday by Interval
- This endpoint returns the SpO2 intraday data for a specified date range. SpO2 applies specifically to a user’s “main sleep”, which is the longest single period of time asleep on a given date.
- SpO2 Intraday
- Get SpO2 Summary by Date
- This endpoint returns the SpO2 summary data for a single date. SpO2 applies specifically to a user’s “main sleep”, which is the longest single period of time asleep on a given date.
- SpO2
- Get SpO2 Summary by Interval
- This endpoint returns the SpO2 summary data for a date range. SpO2 applies specifically to a user’s “main sleep”, which is the longest single period of time asleep on a given date.
- SpO2
- Get a List of Subscriptions
- Retreives a list of a user's subscriptions for your application in the format requested. You can either fetch subscriptions for a specific collection or the entire list of subscriptions for the user. For best practice, make sure that your application maintains this list on your side and use this endpoint only to periodically ensure data consistency.
- Subscriptions
- Get Temperature (Core) Summary by Date
- Returns the Temperature (Core) data for a single date. Temperature (Core) data applies specifically to data logged manually by the user throughout the day.
- Temperature
- Get Temperature (Core) Summary by Interval
- Returns Temperature (Core) data for a date range. Temperature (Core) data applies specifically to data logged manually by the user throughout the day and the maximum date range cannot exceed 30 days.
- Temperature
- Get Temperature (Skin) Summary by Interval
- Returns Temperature (Skin) data for a date range. It only returns a value for dates on which the Fitbit device was able to record Temperature (skin) data and the maximum date range cannot exceed 30 days.
- Temperature
- Get Temperature (Skin) Summary by Date
- Returns the Temperature (Skin) data for a single date. Temperature (Skin) data applies specifically to a user’s “main sleep”, which is the longest single period of time asleep on a given date.
- Temperature
- Get VO2 Max Summary by Date
- This endpoint returns the Cardio Fitness Score (VO2 Max) data for a single date. VO2 Max values will be shown as a range if no run data is available or a single numeric value if the user uses a GPS for runs.
- Cardio Fitness Score (VO2 Max)
- Get VO2 Max Summary by Interval
- This endpoint returns the Cardio Fitness Score (VO2 Max) data for a date range. VO2 Max values will be shown as a range if no run data is available or a single numeric value if the user uses a GPS for runs.
- Cardio Fitness Score (VO2 Max)
- Get Water Logs
- Retreives a summary and list of a user's water log entries for a given day in the requested using units in the unit system that corresponds to the Accept-Language header provided.
- Nutrition
- Get Water Goal
- Retreives a summary and list of a user's water goal entries for a given day in the requested using units in the unit system that corresponds to the Accept-Language header provided.
- Nutrition
- Get Weight Logs
- Retreives a list of all user's body weight log entries for a given day using units in the unit systems which corresponds to the Accept-Language header provided.
- Body
- Get Body Fat Logs
- Retreives a list of all user's body weight log entries for a given day in the format requested.
- Body
- Get Body Fat Logs
- Retreives a list of all user's body fat log entries for a given day in the format requested.
- Body
- Retrieve the active state of an OAuth 2.0 token
- Retrieves the active state of an OAuth 2.0 token. It follows https://tools.ietf.org/html/rfc7662.
- Authorization
- Get OAuth 2 access token
- Retrieves an OAuth 2 access token.
- Authorization
- Revokes consent of the access token or refresh token
- Revokes consent of the access token or refresh token
- Authorization
- Update Alarm
- Updates the alarm entry with a given ID for a given device. It also gets a response in the format requested.
- Devices
- Update Body Fat Goal
- Updates user's fat percentage goal.
- Body
- Update Meal
- Replaces an existing meal with the contents of the request. The response contains the updated meal.
- Nutrition
- Update Sleep Goal
- Create or update the user's sleep goal and get a response in the JSON format.
- Sleep
- Update Water Log
- Updates a user's water log entry with the given ID.
- Nutrition
- Update Weight Goal
- Updates user's fat percentage goal.
- Body
Fitbit integration, answered
- How do AI agents use Fitbit through Open Connector?
- Your user connects Fitbit once with one of its cataloged authentication methods. Open Connector stores the credential in an encrypted vault and exposes Fitbit tools to your agent over MCP or a typed API, with credentials injected server-side on each call.
- Is this a Fitbit MCP server?
- Yes. Open Connector can serve Fitbit as a named MCP server with a scoped allowlist and a per-user connection URL, so any MCP client can call Fitbit actions with credentials injected server-side.
- Where do Fitbit credentials live?
- In your own infrastructure. Open Connector keeps credentials in its own vault and injects them at call time, so they never leave your environment.
Give your agents Fitbit — keep the keys.
Open source, self-hostable, with Fitbit credentials that never leave your infrastructure. Run it from source today.