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 12 APIs that Fitbit publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

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

OpenAPI Specification

fitbit-user-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Fitbit User API
  description: |
    Read and update Fitbit user profile information including display name,
    gender, birthday, height, weight, locale, time zone, and account settings.
  version: '1'
  contact:
    name: Fitbit Developer
    url: https://dev.fitbit.com/build/reference/web-api/user/
servers:
- url: https://api.fitbit.com
security:
- OAuth2:
  - profile
paths:
  /1/user/{user-id}/profile.json:
    get:
      summary: Get Profile
      description: Retrieves the user's profile data.
      operationId: getProfile
      parameters:
      - $ref: '#/components/parameters/UserId'
      responses:
        '200':
          description: User profile.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserProfile'
    post:
      summary: Update Profile
      description: Updates a user's profile using a form.
      operationId: updateProfile
      parameters:
      - $ref: '#/components/parameters/UserId'
      - name: gender
        in: query
        schema:
          type: string
      - name: birthday
        in: query
        schema:
          type: string
          format: date
      - name: height
        in: query
        schema:
          type: number
      - name: aboutMe
        in: query
        schema:
          type: string
      - name: fullname
        in: query
        schema:
          type: string
      - name: country
        in: query
        schema:
          type: string
      - name: state
        in: query
        schema:
          type: string
      - name: city
        in: query
        schema:
          type: string
      - name: timezone
        in: query
        schema:
          type: string
      - name: foodsLocale
        in: query
        schema:
          type: string
      - name: locale
        in: query
        schema:
          type: string
      - name: localeLang
        in: query
        schema:
          type: string
      - name: localeCountry
        in: query
        schema:
          type: string
      - name: startDayOfWeek
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Profile updated.
components:
  parameters:
    UserId:
      name: user-id
      in: path
      required: true
      schema:
        type: string
        default: '-'
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://www.fitbit.com/oauth2/authorize
          tokenUrl: https://api.fitbit.com/oauth2/token
          scopes:
            profile: User profile
            settings: Account settings
  schemas:
    UserProfile:
      type: object
      properties:
        user:
          type: object
          properties:
            aboutMe:
              type: string
            age:
              type: integer
            ambassador:
              type: boolean
            autoStrideEnabled:
              type: boolean
            avatar:
              type: string
            avatar150:
              type: string
            avatar640:
              type: string
            averageDailySteps:
              type: integer
            challengesBeta:
              type: boolean
            city:
              type: string
            clockTimeDisplayFormat:
              type: string
            country:
              type: string
            corporate:
              type: boolean
            corporateAdmin:
              type: boolean
            dateOfBirth:
              type: string
              format: date
            displayName:
              type: string
            displayNameSetting:
              type: string
            distanceUnit:
              type: string
            encodedId:
              type: string
            features:
              type: object
            firstName:
              type: string
            fullName:
              type: string
            gender:
              type: string
            glucoseUnit:
              type: string
            height:
              type: number
            heightUnit:
              type: string
            isBugReportEnabled:
              type: boolean
            isChild:
              type: boolean
            isCoach:
              type: boolean
            languageLocale:
              type: string
            lastName:
              type: string
            legalTermsAcceptRequired:
              type: boolean
            locale:
              type: string
            memberSince:
              type: string
            mfaEnabled:
              type: boolean
            offsetFromUTCMillis:
              type: integer
            startDayOfWeek:
              type: string
            state:
              type: string
            strideLengthRunning:
              type: number
            strideLengthRunningType:
              type: string
            strideLengthWalking:
              type: number
            strideLengthWalkingType:
              type: string
            swimUnit:
              type: string
            temperatureUnit:
              type: string
            timezone:
              type: string
            topBadges:
              type: array
              items:
                type: object
            waterUnit:
              type: string
            waterUnitName:
              type: string
            weight:
              type: number
            weightUnit:
              type: string