Fitbit Body API

Read and write weight and body fat log entries, BMI time series, and body weight / body fat goals. Aria scales and manual logs both flow into this surface.

OpenAPI Specification

fitbit-body-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Fitbit Body API
  description: |
    Read and write body and weight data for Fitbit users: weight logs, body fat
    logs, BMI, body weight goals, and body fat goals. Includes time-series
    endpoints for weight, BMI, and body fat percentage.
  version: '1'
  contact:
    name: Fitbit Developer
    url: https://dev.fitbit.com/build/reference/web-api/body/
servers:
- url: https://api.fitbit.com
security:
- OAuth2:
  - weight
paths:
  /1/user/{user-id}/body/log/weight/date/{date}.json:
    get:
      summary: Get Weight Logs By Date
      description: Retrieves a list of all user's weight log entries for a given day.
      operationId: getWeightLogsByDate
      parameters:
      - $ref: '#/components/parameters/UserId'
      - name: date
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Weight logs.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WeightLogList'
    post:
      summary: Log Weight
      description: Creates a log entry for a body weight.
      operationId: logWeight
      parameters:
      - $ref: '#/components/parameters/UserId'
      - name: weight
        in: query
        required: true
        schema:
          type: number
      - name: date
        in: query
        required: true
        schema:
          type: string
          format: date
      - name: time
        in: query
        schema:
          type: string
      responses:
        '201':
          description: Weight log created.
  /1/user/{user-id}/body/log/weight/{weight-log-id}.json:
    delete:
      summary: Delete Weight Log
      description: Deletes a user's weight log entry with the given ID.
      operationId: deleteWeightLog
      parameters:
      - $ref: '#/components/parameters/UserId'
      - name: weight-log-id
        in: path
        required: true
        schema:
          type: integer
      responses:
        '204':
          description: Weight log deleted.
  /1/user/{user-id}/body/log/fat/date/{date}.json:
    get:
      summary: Get Body Fat Logs By Date
      description: Retrieves a list of all user's body fat log entries for a given day.
      operationId: getBodyFatLogsByDate
      parameters:
      - $ref: '#/components/parameters/UserId'
      - name: date
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Body fat logs.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BodyFatLogList'
  /1/user/{user-id}/body/{resource-path}/date/{date}/{period}.json:
    get:
      summary: Get Body Time Series By Date
      description: Retrieves the user's body data (weight, BMI, or fat) over a period of time.
      operationId: getBodyTimeSeriesByDate
      parameters:
      - $ref: '#/components/parameters/UserId'
      - name: resource-path
        in: path
        required: true
        schema:
          type: string
          enum: [bmi, fat, weight]
      - name: date
        in: path
        required: true
        schema:
          type: string
      - name: period
        in: path
        required: true
        schema:
          type: string
          enum: [1d, 7d, 30d, 1w, 1m, 3m, 6m, 1y, max]
      responses:
        '200':
          description: Body time series.
          content:
            application/json:
              schema:
                type: object
  /1/user/{user-id}/body/log/weight/goal.json:
    get:
      summary: Get Body Weight Goal
      description: Retrieves the user's current body weight goal.
      operationId: getBodyWeightGoal
      parameters:
      - $ref: '#/components/parameters/UserId'
      responses:
        '200':
          description: Body weight goal.
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:
            weight: Weight, BMI, and body fat data
  schemas:
    WeightLogList:
      type: object
      properties:
        weight:
          type: array
          items:
            $ref: '#/components/schemas/WeightLog'
    WeightLog:
      type: object
      properties:
        bmi:
          type: number
        date:
          type: string
          format: date
        fat:
          type: number
        logId:
          type: integer
          format: int64
        source:
          type: string
        time:
          type: string
        weight:
          type: number
    BodyFatLogList:
      type: object
      properties:
        fat:
          type: array
          items:
            type: object
            properties:
              date:
                type: string
              fat:
                type: number
              logId:
                type: integer
                format: int64
              source:
                type: string
              time:
                type: string