Summary

Hubitat Elevation hub REST API providing HTTP access to authorized devices, hub variables, rooms, modes, and the Hubitat Safety Monitor (HSM). Supports both local (LAN) and cloud-accessible endpoints with token-based authentication.

Transport

protocols:
  - http
addressing:
  base_url: "http://[hub_ip_address]/apps/api/[app_id]"
auth:
  type: token  # access_token passed as query parameter
  token_location: query_param
  token_param_name: access_token

Traits

- queryable  # inferred: attribute query endpoints and polling endpoints present
- routable   # inferred: device command endpoints allow controlling device state

Actions

- id: device_command
  label: Send Device Command
  kind: action
  params:
    - name: device_id
      type: integer
      description: Device ID
    - name: command
      type: string
      description: Command name (e.g., on, off, setLevel)
    - name: secondary_value
      type: string
      description: Optional secondary parameter (e.g., level percentage)
      required: false

- id: set_device_label
  label: Set Device Label
  kind: action
  params:
    - name: device_id
      type: integer
      description: Device ID
    - name: label
      type: string
      description: New device label (URL-encoded)

- id: set_device_driver
  label: Set Device Driver
  kind: action
  params:
    - name: device_id
      type: integer
      description: Device ID
    - name: namespace
      type: string
      description: Driver namespace
    - name: name
      type: string
      description: Driver name

- id: set_hub_mode
  label: Set Hub Mode
  kind: action
  params:
    - name: mode_id
      type: integer
      description: Numeric mode ID

- id: set_hsm_status
  label: Set HSM Status
  kind: action
  params:
    - name: value
      type: string
      description: HSM status command (e.g., armAway, disarm)

- id: set_hub_variable
  label: Set Hub Variable
  kind: action
  params:
    - name: variable_name
      type: string
      description: Variable name
    - name: value
      type: string
      description: New value

- id: create_room
  label: Create Room
  kind: action
  params:
    - name: name
      type: string
      description: Room name
    - name: device_ids
      type: string
      description: Comma-separated device IDs

- id: update_room
  label: Update Room
  kind: action
  params:
    - name: room_id
      type: integer
      description: Room ID
    - name: name
      type: string
      description: New room name
    - name: device_ids
      type: string
      description: Comma-separated device IDs

- id: delete_room
  label: Delete Room
  kind: action
  params:
    - name: room_id
      type: integer
      description: Room ID

- id: select_room
  label: Select Room
  kind: action
  params:
    - name: room_id
      type: integer
      description: Room ID

- id: set_post_url
  label: Set POST URL for Events
  kind: action
  params:
    - name: url
      type: string
      description: URL to receive event POSTs (URL-encoded)

- id: clear_post_url
  label: Clear POST URL
  kind: action
  params: []

Feedbacks

- id: device_list
  type: array
  description: List of authorized devices with id, name, label

- id: device_details
  type: object
  description: Full device info including capabilities, attributes, commands

- id: device_events
  type: array
  description: Recent events for a device

- id: device_commands
  type: array
  description: Available commands for a device

- id: device_attribute
  type: object
  description: Current attribute value (id, attribute, value)

- id: room_list
  type: array
  description: List of all rooms

- id: room_details
  type: object
  description: Room details including device IDs

- id: hub_variable
  type: object
  description: Hub variable info (name, value, type)

- id: hub_variables_list
  type: array
  description: All hub variables

- id: hub_mode
  type: string
  description: Current hub mode

- id: hsm_status
  type: string
  description: Current HSM status

Variables

# Hub variables are user-defined stored values accessible via the API
- id: hub_variable
  type: string
  description: User-defined hub variable (name, value, type)

Events

# Maker API can POST events to a configured URL when device state changes
- id: device_event
  type: object
  description: Device state change event
  properties:
    - name: name
      type: string
    - name: value
      type: string
    - name: displayName
      type: string
    - name: deviceId
      type: integer
    - name: descriptionText
      type: string
    - name: unit
      type: string
    - name: data
      type: object

Macros

# UNRESOLVED: no explicit multi-step macros documented in source

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings or interlock procedures in source

Notes

The access token provides full control over all authorized devices — treat it as sensitive credentials similar to username/password. Maker API supports extended commands beyond standard device commands (e.g., setColor with HSB/hex formats). There is a limited subset of allowed commands enforced by the hub; commands returned in device lists may not all be functional via the API.

Provenance

source_domains:
  - docs2.hubitat.com
source_urls:
  - https://docs2.hubitat.com/en/apps/maker-api
retrieved_at: 2026-04-30T04:31:15.212Z
last_checked_at: 2026-06-02T22:08:09.641Z

Verification Summary

verdict: verified
checked_at: 2026-06-02T22:08:09.641Z
matched_actions: 12
action_count: 12
confidence: medium
summary: "All 12 spec actions traced to source (dip-safe re-verify). (5 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "specific sensor device models not documented — this spec covers the hub API platform itself"
- "no explicit multi-step macros documented in source"
- "no safety warnings or interlock procedures in source"
- "specific device models not listed — only generic device types (Switch, Dimmer, etc.) via capabilities array"
- "port number not explicitly stated — defaults to HTTP port 80 or HTTPS port 443 on the hub"

From the AI4AV catalog (https://ai4av.net) · ODbL-1.0