Home
Sensibo
Sensibo
Sensibo builds smart air conditioning controllers and indoor air quality monitors (Sensibo Sky, Air, Air Pro, and Elements) that add app, voice, and API control to existing mini-split, window, and portable AC and heat-pump units. The Sensibo REST API (base https://home.sensibo.com/api/v2) gives developers full control over enrolled devices ("pods") - reading temperature, humidity, and air quality measurements, getting and setting the AC state (power, mode, target temperature, fan, swing), configuring the Climate React smart automation, and managing schedules and timers. Authentication is a per-account API key passed as an apiKey query parameter, generated from home.sensibo.com/me/api. OAuth2 is available for commercial integrations.
8 APIs
0 Features
Smart Home IoT Air Conditioning HVAC Air Quality Climate Control Connected Devices
The account entry point. List every device (pod) enrolled on the authenticated Sensibo account via GET /users/me/pods, optionally selecting which fields to return with the field...
Retrieve full detail for a single device (pod) via GET /pods/{device_id} - product model, room name, connection status, firmware version, capabilities, and the last known AC sta...
Read and command the air conditioner state. GET /pods/{device_id}/acStates returns the current and previous states; POST sets a complete new state (on/off, mode, target temperat...
Read the latest sensor readings for a pod via GET /pods/{device_id}/measurements - temperature, relative humidity, feels-like, and on air-quality-capable hardware (Air Pro, Elem...
Pull time-series history for a pod. GET /pods/{device_id}/historicalMeasurements returns temperature and humidity (and air quality where available) over a requested window of up...
Configure Climate React, Sensibo's smart-mode automation that turns the AC on or off and adjusts settings when measured temperature or humidity crosses a threshold. GET /pods/{d...
Create and manage recurring schedules that apply a target AC state at a chosen time on chosen days of the week. List and create schedules under /pods/{device_id}/schedules, and ...
Set a one-shot countdown timer that applies a target AC state after a number of minutes - the classic "turn the AC off in 30 minutes" behavior. GET /pods/{device_id}/timer reads...
Sources
opencollection: 1.0.0
info:
name: Sensibo API
version: '2.0'
request:
auth:
type: apikey
apikey:
key: apiKey
value: '{{apiKey}}'
in: query
items:
- info:
name: Users
type: folder
items:
- info:
name: Get all devices.
type: http
http:
method: GET
url: https://home.sensibo.com/api/v2/users/me/pods?apiKey={{apiKey}}&fields=*
params:
- name: apiKey
value: '{{apiKey}}'
type: query
description: Per-account API key.
- name: fields
value: '*'
type: query
description: Fields to return, or * for all.
docs: Lists every device (pod) enrolled on the authenticated account.
- info:
name: Devices
type: folder
items:
- info:
name: Get specific device info.
type: http
http:
method: GET
url: https://home.sensibo.com/api/v2/pods/:device_id?apiKey={{apiKey}}&fields=*
params:
- name: device_id
value: ''
type: path
description: The pod identifier.
- name: apiKey
value: '{{apiKey}}'
type: query
description: Per-account API key.
- name: fields
value: '*'
type: query
description: Fields to return, or * for all.
docs: Returns full detail for a single pod - model, room, status, firmware, last AC state and measurements.
- info:
name: AC States
type: folder
items:
- info:
name: Get current and previous AC states.
type: http
http:
method: GET
url: https://home.sensibo.com/api/v2/pods/:device_id/acStates?apiKey={{apiKey}}&limit=10
params:
- name: device_id
value: ''
type: path
description: The pod identifier.
- name: apiKey
value: '{{apiKey}}'
type: query
description: Per-account API key.
- name: limit
value: '10'
type: query
description: Max state-log entries.
docs: Returns the recent AC state log for the pod.
- info:
name: Set the AC state.
type: http
http:
method: POST
url: https://home.sensibo.com/api/v2/pods/:device_id/acStates?apiKey={{apiKey}}
params:
- name: device_id
value: ''
type: path
description: The pod identifier.
- name: apiKey
value: '{{apiKey}}'
type: query
description: Per-account API key.
body:
type: json
data: "{\n \"acState\": {\n \"on\": true,\n \"mode\": \"cool\",\n \"targetTemperature\": 22,\n \"temperatureUnit\"\
: \"C\",\n \"fanLevel\": \"auto\",\n \"swing\": \"stopped\"\n }\n}"
docs: Sets a complete new AC state (power, mode, target temperature, fan, swing).
- info:
name: Change one property of the AC state.
type: http
http:
method: PATCH
url: https://home.sensibo.com/api/v2/pods/:device_id/acStates/:property?apiKey={{apiKey}}
params:
- name: device_id
value: ''
type: path
description: The pod identifier.
- name: property
value: targetTemperature
type: path
description: The AC state property to change.
- name: apiKey
value: '{{apiKey}}'
type: query
description: Per-account API key.
body:
type: json
data: "{\n \"newValue\": 24\n}"
docs: Updates a single AC state property (e.g. on, mode, targetTemperature, fanLevel, swing).
- info:
name: Measurements
type: folder
items:
- info:
name: Get the latest measurements.
type: http
http:
method: GET
url: https://home.sensibo.com/api/v2/pods/:device_id/measurements?apiKey={{apiKey}}
params:
- name: device_id
value: ''
type: path
description: The pod identifier.
- name: apiKey
value: '{{apiKey}}'
type: query
description: Per-account API key.
docs: Returns the latest temperature, humidity, feels-like, and (on capable hardware) air quality readings.
- info:
name: Historical Data
type: folder
items:
- info:
name: Get historical measurements.
type: http
http:
method: GET
url: https://home.sensibo.com/api/v2/pods/:device_id/historicalMeasurements?apiKey={{apiKey}}&days=1
params:
- name: device_id
value: ''
type: path
description: The pod identifier.
- name: apiKey
value: '{{apiKey}}'
type: query
description: Per-account API key.
- name: days
value: '1'
type: query
description: Days of history (up to 7).
docs: Returns temperature and humidity history over up to seven days.
- info:
name: Get device events.
type: http
http:
method: GET
url: https://home.sensibo.com/api/v2/pods/:device_id/events?apiKey={{apiKey}}
params:
- name: device_id
value: ''
type: path
description: The pod identifier.
- name: apiKey
value: '{{apiKey}}'
type: query
description: Per-account API key.
docs: Returns the device event log. Retention depends on the Sensibo Plus subscription.
- info:
name: Climate React
type: folder
items:
- info:
name: Get the Climate React settings.
type: http
http:
method: GET
url: https://home.sensibo.com/api/v2/pods/:device_id/smartmode?apiKey={{apiKey}}
params:
- name: device_id
value: ''
type: path
description: The pod identifier.
- name: apiKey
value: '{{apiKey}}'
type: query
description: Per-account API key.
docs: Returns the Climate React (smart mode) configuration for the pod.
- info:
name: Enable or disable Climate React.
type: http
http:
method: PUT
url: https://home.sensibo.com/api/v2/pods/:device_id/smartmode?apiKey={{apiKey}}
params:
- name: device_id
value: ''
type: path
description: The pod identifier.
- name: apiKey
value: '{{apiKey}}'
type: query
description: Per-account API key.
body:
type: json
data: "{\n \"enabled\": true\n}"
docs: Turns Climate React on or off for the pod.
- info:
name: Set Climate React configuration.
type: http
http:
method: POST
url: https://home.sensibo.com/api/v2/pods/:device_id/smartmode?apiKey={{apiKey}}
params:
- name: device_id
value: ''
type: path
description: The pod identifier.
- name: apiKey
value: '{{apiKey}}'
type: query
description: Per-account API key.
body:
type: json
data: "{\n \"enabled\": true,\n \"type\": \"temperature\",\n \"lowTemperatureThreshold\": 20,\n \"highTemperatureThreshold\"\
: 26,\n \"lowTemperatureState\": { \"on\": true, \"mode\": \"heat\", \"targetTemperature\": 22 },\n \"highTemperatureState\"\
: { \"on\": true, \"mode\": \"cool\", \"targetTemperature\": 24 }\n}"
docs: Sets the Climate React thresholds and the AC states applied at each boundary.
- info:
name: Schedules
type: folder
items:
- info:
name: Get the scheduled items.
type: http
http:
method: GET
url: https://home.sensibo.com/api/v2/pods/:device_id/schedules?apiKey={{apiKey}}
params:
- name: device_id
value: ''
type: path
description: The pod identifier.
- name: apiKey
value: '{{apiKey}}'
type: query
description: Per-account API key.
docs: Lists the recurring schedules for the pod.
- info:
name: Create a new schedule.
type: http
http:
method: POST
url: https://home.sensibo.com/api/v2/pods/:device_id/schedules?apiKey={{apiKey}}
params:
- name: device_id
value: ''
type: path
description: The pod identifier.
- name: apiKey
value: '{{apiKey}}'
type: query
description: Per-account API key.
body:
type: json
data: "{\n \"targetTimeLocal\": \"18:30\",\n \"recurringDays\": [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\"\
, \"Friday\"],\n \"acState\": { \"on\": true, \"mode\": \"cool\", \"targetTemperature\": 23 }\n}"
docs: Creates a recurring schedule that applies an AC state at a chosen time on chosen days.
- info:
name: Get a specific schedule.
type: http
http:
method: GET
url: https://home.sensibo.com/api/v2/pods/:device_id/schedules/:schedule_id?apiKey={{apiKey}}
params:
- name: device_id
value: ''
type: path
description: The pod identifier.
- name: schedule_id
value: ''
type: path
description: The schedule identifier.
- name: apiKey
value: '{{apiKey}}'
type: query
description: Per-account API key.
docs: Returns a single schedule by ID.
- info:
name: Enable or disable a specific schedule.
type: http
http:
method: PUT
url: https://home.sensibo.com/api/v2/pods/:device_id/schedules/:schedule_id?apiKey={{apiKey}}
params:
- name: device_id
value: ''
type: path
description: The pod identifier.
- name: schedule_id
value: ''
type: path
description: The schedule identifier.
- name: apiKey
value: '{{apiKey}}'
type: query
description: Per-account API key.
body:
type: json
data: "{\n \"isEnabled\": false\n}"
docs: Enables or disables an existing schedule.
- info:
name: Delete a specific schedule.
type: http
http:
method: DELETE
url: https://home.sensibo.com/api/v2/pods/:device_id/schedules/:schedule_id?apiKey={{apiKey}}
params:
- name: device_id
value: ''
type: path
description: The pod identifier.
- name: schedule_id
value: ''
type: path
description: The schedule identifier.
- name: apiKey
value: '{{apiKey}}'
type: query
description: Per-account API key.
docs: Deletes a schedule by ID.
- info:
name: Timers
type: folder
items:
- info:
name: Get the current timer.
type: http
http:
method: GET
url: https://home.sensibo.com/api/v2/pods/:device_id/timer?apiKey={{apiKey}}
params:
- name: device_id
value: ''
type: path
description: The pod identifier.
- name: apiKey
value: '{{apiKey}}'
type: query
description: Per-account API key.
docs: Returns the active countdown timer for the pod, if any.
- info:
name: Set a timer.
type: http
http:
method: PUT
url: https://home.sensibo.com/api/v2/pods/:device_id/timer?apiKey={{apiKey}}
params:
- name: device_id
value: ''
type: path
description: The pod identifier.
- name: apiKey
value: '{{apiKey}}'
type: query
description: Per-account API key.
body:
type: json
data: "{\n \"minutesFromNow\": 30,\n \"acState\": { \"on\": false }\n}"
docs: Sets a one-shot countdown timer that applies an AC state after N minutes.
- info:
name: Delete a timer.
type: http
http:
method: DELETE
url: https://home.sensibo.com/api/v2/pods/:device_id/timer?apiKey={{apiKey}}
params:
- name: device_id
value: ''
type: path
description: The pod identifier.
- name: apiKey
value: '{{apiKey}}'
type: query
description: Per-account API key.
docs: Clears the active countdown timer for the pod.
bundled: true