Fitbit Devices API

List paired Fitbit devices, retrieve battery level and last sync timestamps, identify the device model (deviceVersion), and create, update, and delete tracker alarms.

Fitbit Devices 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 Devices, Wearable, and Alarms. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

OpenAPI Specification

fitbit-devices-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Fitbit Devices API
  description: |
    Retrieve information about the user's paired Fitbit devices including
    battery level, last sync time, firmware version, device version (model),
    and manage alarms scheduled on tracker devices.
  version: '1'
  contact:
    name: Fitbit Developer
    url: https://dev.fitbit.com/build/reference/web-api/devices/
servers:
- url: https://api.fitbit.com
security:
- OAuth2:
  - settings
paths:
  /1/user/{user-id}/devices.json:
    get:
      summary: Get Devices
      description: Returns a list of the Fitbit devices connected to a user's account.
      operationId: getDevices
      parameters:
      - $ref: '#/components/parameters/UserId'
      responses:
        '200':
          description: List of devices.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Device'
  /1/user/{user-id}/devices/tracker/{tracker-id}/alarms.json:
    get:
      summary: Get Alarms
      description: Returns alarms for a device.
      operationId: getAlarms
      parameters:
      - $ref: '#/components/parameters/UserId'
      - name: tracker-id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: List of alarms.
    post:
      summary: Add Alarm
      description: Adds the alarm settings to a given device.
      operationId: addAlarm
      parameters:
      - $ref: '#/components/parameters/UserId'
      - name: tracker-id
        in: path
        required: true
        schema:
          type: string
      - name: time
        in: query
        required: true
        schema:
          type: string
      - name: enabled
        in: query
        required: true
        schema:
          type: boolean
      - name: recurring
        in: query
        required: true
        schema:
          type: boolean
      - name: weekDays
        in: query
        schema:
          type: string
      responses:
        '201':
          description: Alarm created.
  /1/user/{user-id}/devices/tracker/{tracker-id}/alarms/{alarm-id}.json:
    delete:
      summary: Delete Alarm
      description: Deletes a specific alarm entry for the given tracker.
      operationId: deleteAlarm
      parameters:
      - $ref: '#/components/parameters/UserId'
      - name: tracker-id
        in: path
        required: true
        schema:
          type: string
      - name: alarm-id
        in: path
        required: true
        schema:
          type: integer
      responses:
        '204':
          description: Alarm deleted.
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:
            settings: Device settings
  schemas:
    Device:
      type: object
      properties:
        battery:
          type: string
          enum: [High, Medium, Low, Empty]
        batteryLevel:
          type: integer
        deviceVersion:
          type: string
        features:
          type: array
          items:
            type: string
        id:
          type: string
        lastSyncTime:
          type: string
          format: date-time
        mac:
          type: string
        type:
          type: string
          enum: [TRACKER, SCALE]