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.

Fitbit SpO2, Breathing Rate, Temperature, HRV, and Cardio Fitness API is one of 12 APIs that Fitbit publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include SpO2, Breathing Rate, Temperature, HRV, and VO2 Max. The published artifact set on APIs.io includes API documentation and an OpenAPI specification.

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