Fitbit SpO2, Breathing Rate, Temperature, HRV, and Cardio Fitness API

Advanced sensor readings from supported Fitbit devices — SpO2 (blood oxygen saturation), Breathing Rate, Skin Temperature and Core Temperature variation, Heart Rate Variability (RMSSD), and Cardio Fitness Score (VO2 Max). Each metric supports per-day and per-date-range summary queries; SpO2, breathing rate, and HRV additionally support intraday detail with Intraday access approval.

OpenAPI Specification

fitbit-spo2-breathing-temperature-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Fitbit SpO2 / Breathing Rate / Temperature / HRV / VO2 Max API
  description: |
    Advanced sensor readings collected by supported Fitbit devices: SpO2
    (blood oxygen saturation) overnight and intraday, Breathing Rate during
    sleep, Skin and Core Temperature variation, Heart Rate Variability (RMSSD)
    during sleep, and Cardio Fitness Score (VO2 Max).
  version: '1'
  contact:
    name: Fitbit Developer
    url: https://dev.fitbit.com/build/reference/web-api/spo2/
servers:
- url: https://api.fitbit.com
security:
- OAuth2:
  - oxygen_saturation
  - respiratory_rate
  - temperature
  - heartrate
  - cardio_fitness
paths:
  /1/user/{user-id}/spo2/date/{date}.json:
    get:
      summary: Get SpO2 Summary By Date
      description: Returns the daily summary of SpO2 measurements for the user.
      operationId: getSpo2SummaryByDate
      parameters:
      - $ref: '#/components/parameters/UserId'
      - name: date
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: SpO2 summary.
  /1/user/{user-id}/spo2/date/{base-date}/{end-date}.json:
    get:
      summary: Get SpO2 Summary By Date Range
      description: Returns daily SpO2 summary for a date range.
      operationId: getSpo2SummaryByDateRange
      parameters:
      - $ref: '#/components/parameters/UserId'
      - name: base-date
        in: path
        required: true
        schema:
          type: string
      - name: end-date
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: SpO2 summary.
  /1/user/{user-id}/br/date/{date}.json:
    get:
      summary: Get Breathing Rate Summary By Date
      description: Returns average breathing rate (breaths per minute) during sleep for the date.
      operationId: getBreathingRateByDate
      parameters:
      - $ref: '#/components/parameters/UserId'
      - name: date
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Breathing rate summary.
  /1/user/{user-id}/temp/skin/date/{date}.json:
    get:
      summary: Get Skin Temperature Summary By Date
      description: Returns skin temperature variation relative to the user's baseline.
      operationId: getSkinTemperatureByDate
      parameters:
      - $ref: '#/components/parameters/UserId'
      - name: date
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Skin temperature summary.
  /1/user/{user-id}/temp/core/date/{date}.json:
    get:
      summary: Get Core Temperature Summary By Date
      description: Returns core temperature readings.
      operationId: getCoreTemperatureByDate
      parameters:
      - $ref: '#/components/parameters/UserId'
      - name: date
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Core temperature summary.
  /1/user/{user-id}/hrv/date/{date}.json:
    get:
      summary: Get Heart Rate Variability By Date
      description: Returns daily Heart Rate Variability (RMSSD) values measured during the deep sleep stage.
      operationId: getHrvByDate
      parameters:
      - $ref: '#/components/parameters/UserId'
      - name: date
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: HRV summary.
  /1/user/{user-id}/cardioscore/date/{date}.json:
    get:
      summary: Get VO2 Max Summary By Date
      description: Returns the Cardio Fitness Score (VO2 Max) for the user.
      operationId: getVo2MaxByDate
      parameters:
      - $ref: '#/components/parameters/UserId'
      - name: date
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Cardio fitness score.
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:
            oxygen_saturation: SpO2 data
            respiratory_rate: Breathing rate data
            temperature: Skin and core body temperature data
            heartrate: Heart rate and HRV data
            cardio_fitness: Cardio fitness (VO2 Max) data