You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This document describes a collection of SwitchBot API methods, examples, and best practices for, but not limited to, IoT hobbyists, developers, and gurus to make their own smart home programs or applications.
About the New Version
We will stop adding support for new products on v1.0 as we release v1.1.
Hence, we strongly recommend all SwitchBot users to migrate to the new API version because we have improved the authentication method. This will make the communication between your server and the SwitchBot server more secure.
Getting Started
Please follow these steps,
Download the SwitchBot app on App Store or Google Play Store
Register a SwitchBot account and log in into your account
Generate an Open Token within the app
For app version ≥ V9.0,
a) Go to Profile > Preferences > About
b) Tap App Version 10 times. Developer Options will show up
c) Tap Developer Options
d) Tap Get Token
For app version < V9.0,
a) Go to Profile > Preferences
b) Tap App Version 10 times. Developer Options will show up
c) Tap Developer Options
d) Tap Get Token
Roll up your sleeves and get your hands dirty with SwitchBot OpenAPI!
Authentication
Open Token and Secret Key
Note: You must update the app to the latest version, V6.14 or later, in order to get the secret key.
In SwitchBot API v1.1, the authentication method has been improved. In order to gain access to private data through the API, you must generate a unique signature using a token and a secret key. When you make a request, the Authorization token and signature will be validated simultaneously.
You as a developer will then be able to add, delete, edit, and look up your data including profile data and data associated with the devices that have been added to your SwitchBot account.
To continue to use SwitchBot API v1.0, refer to the legacy document.
How to Sign?
We have attached some scripts for you to quickly generate a sign. If you prefer to write your own script or routine, here is the procedure.
Print the 13 digit timestamp and concatenate it with your token
Create a signature using your secret and the string produced in the previous step
Convert the signature to upper case
For instance,
# secret key
secret = "" # copy and paste from the SwitchBot app V6.14 or later
# open token
token = "" # copy and paste from the SwitchBot app V6.14 or later
t = 1661927531000
sign = HMAC-SHA256(token + t, secret).toUpperCase()
Python 2 example code
importtimeimporthashlibimporthmacimportbase64# open tokentoken=''# copy and paste from the SwitchBot app V6.14 or later# secret keysecret=''# copy and paste from the SwitchBot app V6.14 or laternonce=''t=int(round(time.time() *1000))
string_to_sign='{}{}{}'.format(token, t, nonce)
sign=base64.b64encode(hmac.new(secret, msg=string_to_sign, digestmod=hashlib.sha256).digest())
print ('Authorization: {}'.format(token))
print ('t: {}'.format(t))
print ('sign: {}'.format(sign))
print ('nonce: {}'.format(nonce))
Python 3 example code
importjsonimporttimeimporthashlibimporthmacimportbase64importuuid# Declare empty header dictionaryapiHeader= {}
# open tokentoken=''# copy and paste from the SwitchBot app V6.14 or later# secret keysecret=''# copy and paste from the SwitchBot app V6.14 or laternonce=uuid.uuid4()
t=int(round(time.time() *1000))
string_to_sign='{}{}{}'.format(token, t, nonce)
string_to_sign=bytes(string_to_sign, 'utf-8')
secret=bytes(secret, 'utf-8')
sign=base64.b64encode(hmac.new(secret, msg=string_to_sign, digestmod=hashlib.sha256).digest())
print ('Authorization: {}'.format(token))
print ('t: {}'.format(t))
print ('sign: {}'.format(str(sign, 'utf-8')))
print ('nonce: {}'.format(nonce))
#Build api header JSONapiHeader['Authorization']=tokenapiHeader['Content-Type']='application/json'apiHeader['charset']='utf8'apiHeader['t']=str(t)
apiHeader['sign']=str(sign, 'utf-8')
apiHeader['nonce']=str(nonce)
A SwitchBot app feature, which appears in the app <V9.0 that
Enables SwitchBot products to be discovered and communicated with third-party services such as Home Assistant, Alexa, Google Home, IFTTT, SmartThings, and so forth
Allows users to create customized smart scenes and widgets. For BLE-based devices such as Bot and Curtain
You MUST first add a SwitchBot Hub such as Hub 2, Hub Mini with Matter Enabled, or Hub Mini
Then enable Cloud Services on the Settings page in order to make use of the web API!
API Usage
Host Domain
https://api.switch-bot.com
Sending a Request
The following request types are supported,
GET
PUT
POST
DELETE
Content-Type
For POST requests, use application/json; charset=utf8 as the Content-Type
Request limit
The amount of API calls per day is limited to 10000 times. Going over that limit will return "Unauthorized."
Request Header
The following parameters need to be included into the header,
Parameter
Type
Location
Required
Description
Authorization
String
header
Yes
Open Token acquired
sign
String
header
Yes
A signature generated from the token and secret key using a specific algorithm.
t
Long
header
Yes
A 13 digit timestamp (standard time).
nonce
Long
header
Yes
A random UUID generated by developers themselves to blend into the string to sign.
Standard HTTP Error Codes
The following table lists the most common HTTP error response,
Code
Name
Description
400
Bad Request
The client has issued an invalid request. This is commonly used to specify validation errors in a request payload.
401
Unauthorized
Authorization for the API is required, but the request has not been authenticated.
403
Forbidden
The request has been authenticated but does not have appropriate permissions, or a requested resource is not found.
404
Not Found
Specifies the requested path does not exist.
406
Not Acceptable
The client has requested a MIME type via the Accept header for a value not supported by the server.
415
Unsupported Media Type
The client has defined a contentType header that is not supported by the server.
422
Unprocessable Entity
The client has made a valid request, but the server cannot process it. This is often used for APIs for which certain limits have been exceeded.
429
Too Many Requests
The client has exceeded the number of requests allowed for a given time window.
500
Internal Server Error
An unexpected error on the SmartThings servers has occurred. These errors should be rare.
Devices
The devices API is used to access the properties and states of SwitchBot devices and to send control commands to those devices.
Get device list
GET /v1.1/devices
Description
Get a list of devices, which include physical devices and virtual infrared remote devices that have been added to the current user's account.
Note: For devices that communicate via BLE, please enable Cloud Services on SwitchBot app first.
Physical devices refer to the following SwitchBot products,
Hub
Hub Plus
Hub Mini
Bot
Curtain
Plug
Meter
Motion Sensor
Contact Sensor
Color Bulb
Humidifier
Smart Fan
Strip Light
Plug Mini (US)
Plug Mini (JP)
Lock
Meter Plus (JP)
Meter Plus (US)
Robot Vacuum Cleaner S1
Robot Vacuum Cleaner S1 Plus
Keypad
Keypad Touch
Ceiling Light
Ceiling Light Pro
Blind Tilt
Hub 2
Outdoor Meter
Battery Circulator Fan
Curtain 3
Lock Pro
Floor Cleaning Robot S10
Water Leak Detector
Mini Robot Vacuum K10+
Mini Robot Vacuum K10+ Pro
new Meter Pro
new Meter Pro CO2
new Circulator Fan
new Evaporative Humidifier
new Evaporative Humidifier (Auto-refill)
new K10+ Pro Combo
new Air Purifier VOC
new Air Purifier Table VOC
new Air Purifier PM2.5
new Air Purifier Table PM2.5
new Roller Shade
new Relay Switch 1PM
new Relay Switch 1
Virtual infrared remote devices refer to virtual devices that are used to simulate infrared signals of a home appliance remote control. A SwitchBot Hub Plus, Hub Mini, Hub 2, or Ceiling Light is required in order to be able to create these virtual devices within the app. The types of appliances supported include,
Air Conditioner
TV
Light
Streamer
Set Top Box
DVD Player
Fan
Projector
Camera
Air Purifier
Speaker
Water Heater
Robot Vacuum Cleaner
Others
Responses
The response is basically a JSON object, which contains the following properties,
Key Name
Value Type
statusCode
Integer
message
String
body
Object
The body object contains the following properties,
Key Name
Value Type
Description
deviceList
Array
a list of physical devices
infraredRemoteList
Array
a list of virtual infrared remote devices
The response may contain the following codes and messages,
Status Code
Body Content
Message
Description
100
Device list object
success
Returns an object that contains two device lists
n/a
n/a
Unauthorized
Http 401 Error. User permission is denied due to invalid token.
190
n/a
System error
Device internal error due to device states not synchronized with server
The deviceList array contains a list of objects with the following key-value attributes,
Bot
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Bot
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID
Curtain
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Curtain
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID
curtainDevicesIds
Array
a list of Curtain device IDs such that the Curtain devices are being paired or grouped
calibrate
Boolean
determines if the open position and the close position of a device have been properly calibrated or not
group
Boolean
determines if a Curtain is paired with or grouped with another Curtain or not
master
Boolean
determines if a Curtain is the master device or not when paired with or grouped with another Curtain
openDirection
String
the opening direction of a Curtain
Curtain 3
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Curtain3
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID
curtainDevicesIds
Array
a list of Curtain device IDs such that the Curtain devices are being paired or grouped
calibrate
Boolean
determines if the open position and the close position of a device have been properly calibrated or not
group
Boolean
determines if a Curtain is paired with or grouped with another Curtain or not
master
Boolean
determines if a Curtain is the master device or not when paired with or grouped with another Curtain
openDirection
String
the opening direction of a Curtain
Hub/Hub Plus/Hub Mini/Hub 2
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Hub, Hub Plus, Hub Mini, or Hub 2.
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
Meter
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Meter
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID
Meter Plus
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. MeterPlus
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID
Outdoor Meter
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. WoIOSensor
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID
Meter Pro
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. MeterPro
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID
Meter Pro CO2
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. MeterPro(CO2)
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID
Lock
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Smart Lock
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID
group
Boolean
determines if a Lock is grouped with another Lock or not
master
Boolean
determines if a Lock is the master device or not when grouped with another Lock in Dual Lock mode
groupName
String
the name of the Lock group
lockDevicesIds
Array
a list of Lock device IDs such that the Lock devices are being grouped in Dual Lock mode
Lock Pro
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Smart Lock Pro
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID
group
Boolean
determines if a Lock is grouped with another Lock or not
master
Boolean
determines if a Lock is the master device or not when grouped with another Lock in Dual Lock mode
groupName
String
the name of the Lock group
lockDevicesIds
Array
a list of Lock device IDs such that the Lock devices are being grouped in Dual Lock mode
Keypad
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Keypad
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID
lockDeviceId
String
MAC address of the Lock that the current device is paired with
keyList
Object
a list of passcodes
keyList maintains a list of passcodes,
Key
Value Type
Description
id
Integer
passcode ID
name
String
name of the passcode
type
String
type of the passcode. permanent, a permanent passcode. timeLimit, a temporary passcode. disposable, a one-time passcode. urgent, an emergency passcode.
password
String
the passcode string encrypted with the developer secret key using the aes-128-cbc algorithm
iv
String
an arbitrary number used for the encryption
status
String
validity of the passcode. normal, the passcode is valid. expired, the passcode is invalid.
createTime
Long
the time when the passcode is generated
Keypad Touch
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Keypad Touch
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID
lockDeviceId
String
MAC address of the Lock that the current device is paired with
keyList
Object
a list of passcodes
keyList maintains a list of passcodes,
Key
Value Type
Description
id
Integer
passcode ID
name
String
name of the passcode
type
String
type of the passcode. permanent, a permanent passcode. timeLimit, a temporary passcode. disposable, a one-time passcode. urgent, an emergency passcode.
password
String
the passcode string encrypted with the developer secret key using the aes-128-cbc algorithm
iv
String
an arbitrary number used for the encryption
status
String
validity of the passcode. normal, the passcode is valid. expired, the passcode is invalid.
createTime
Long
the time when the passcode is generated
Remote
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Remote
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID
Motion Sensor
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Motion Sensor
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID
Contact Sensor
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Contact Sensor
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID
Water Leak Detector
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Water Detector
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
Ceiling Light
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Ceiling Light
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
Ceiling Light Pro
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Ceiling Light Pro
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
Plug Mini (US)
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Plug Mini (US)
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
Plug Mini (JP)
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Plug Mini (JP)
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
Plug
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Plug
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
Strip Light
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Strip Light
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
Color Bulb
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Color Bulb
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
Robot Vacuum Cleaner S1
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Robot Vacuum Cleaner S1
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
Robot Vacuum Cleaner S1 Plus
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Robot Vacuum Cleaner S1 Plus
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
Mini Robot Vacuum K10+
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. K10+
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
Mini Robot Vacuum K10+ Pro
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. K10+ Pro
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
K10+ Pro Combo
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Robot Vacuum Cleaner K10+ Pro Combo
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
returns null if not a bluetooth device
Floor Cleaning Robot S10
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Robot Vacuum Cleaner S10
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
Humidifier
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Humidifier
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
Evaporative Humidifier
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Humidifier2
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
returns null if not a bluetooth device
Evaporative Humidifier (Auto-refill)
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Humidifier2
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
returns null if not a bluetooth device
Air Purifier VOC
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Air Purifier VOC
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
returns null if not a bluetooth device
Air Purifier Table VOC
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Air Purifier Table VOC
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
returns null if not a bluetooth device
Air Purifier PM2.5
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Air Purifier PM2.5
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
returns null if not a bluetooth device
Air Purifier Table PM2.5
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Air Purifier Table PM2.5
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
returns null if not a bluetooth device
Indoor Cam
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Indoor Cam
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
Pan/Tilt Cam
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Pan/Tilt Cam
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
Pan/Tilt Cam 2K
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Pan/Tilt Cam
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
Blind Tilt
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Blind Tilt
version
Integer
the version of the device
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID
blindTiltDevicesIds
Array
a list of Blind Tilt device IDs such that the Blind Tilt devices are being paired or grouped
calibrate
Boolean
determines if the open and the closed positions have been properly calibrated or not
group
Boolean
determines if a Blind Tilt device is paired with or grouped with one or more devices of the same type or not
master
Boolean
determines if a Blind Tilt device is the master device or not when paired with or grouped with one or more devices of the same type
direction
String
the opening direction of a Blind Tilt device
slidePosition
Integer
the current position, 0-100
Battery Circulator Fan
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Battery Circulator Fan
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID
Circulator Fan
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Circulator Fan
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID
Roller Shade
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Roller Shade
bleVersion
Integer
firmware version
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID
groupingDevicesIds
Array
a list of device IDs such that the Roller Shade devices are being paired or grouped
group
Boolean
determines if a device is paired with or grouped with one or more devices of the same type or not
master
Boolean
determines if a device is the master device or not when paired with or grouped with one or more devices of the same type
groupName
String
the name of the device group
Relay Switch 1PM
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Relay Switch 1PM
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
Relay Switch 1
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Relay Switch 1
enableCloudService
Boolean
determines if Cloud Service is enabled or not for the current device
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
Virtual infrared remote devices
The infraredRemoteList array contains a list of objects with the following key-value attributes,
Get the status of a physical device that has been added to the current user's account.
Physical devices refer to the following SwitchBot products,
Bot
Plug
Curtain
Meter
Motion Sensor
Contact Sensor
Color Bulb
Humidifier
Smart Fan
Strip Light
Plug Mini (US)
Plug Mini (JP)
Lock
Meter Plus (JP)
Meter Plus (US)
Robot Vacuum Cleaner S1
Robot Vacuum Cleaner S1 Plus
Keypad (MUST enable Cloud Service first)
Keypad Touch (MUST enable Cloud Service first)
Ceiling Light
Ceiling Light Pro
Hub 2
Outdoor Meter
Battery Circulator Fan
Lock Pro
Floor Cleaning Robot S10
Water Leak Detector
Mini Robot Vacuum K10+
Mini Robot Vacuum K10+ Pro
new Meter Pro
new Meter Pro CO2
new Circulator Fan
new Evaporative Humidifier
new Evaporative Humidifier (Auto-refill)
new K10+ Pro Combo
new Air Purifier VOC
new Air Purifier Table VOC
new Air Purifier PM2.5
new Air Purifier Table PM2.5
new Roller Shade
new Relay Switch 1PM
new Relay Switch 1
Path parameters
Name
Type
Required
Description
deviceId
String
Yes
device ID
Responses
The response is basically a JSON object, which contains the following properties,
Key Name
Value Type
statusCode
Integer
message
String
body
Object
The reponses may contain the following codes and message,
Status Code
Body Content
Message
Description
100
Device list object
success
Returns an object that contains two device lists
n/a
n/a
Unauthorized
Http 401 Error. User permission is denied due to invalid token.
190
n/a
System error
Device internal error due to device states not synchronized with server
The body object contains the following properties,
Bot
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Bot
power
String
ON/OFF state
battery
Integer
the current battery level, 0-100
version
String
the current firmware version, e.g. V6.3
deviceMode
String
pressMode, switchMode, or customizeMode
hubDeviceId
String
device's parent Hub ID
Curtain
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Curtain
hubDeviceId
String
device's parent Hub ID
calibrate
Boolean
determines if the open position and the close position of a device have been properly calibrated or not
group
Boolean
determines if a Curtain is paired with or grouped with another Curtain or not
moving
Boolean
determines if a Curtain is moving or not
battery
Integer
the current battery level, 0-100
version
String
the current firmware version, e.g. V4.2
slidePosition
String
the percentage of the distance between the calibrated open position and closed position that Curtain has traversed
Curtain 3
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Curtain3
hubDeviceId
String
device's parent Hub ID
calibrate
Boolean
determines if the open position and the close position of a device have been properly calibrated or not
group
Boolean
determines if a Curtain is paired with or grouped with another Curtain or not
moving
Boolean
determines if a Curtain is moving or not
battery
Integer
the current battery level, 0-100
version
String
the current firmware version, e.g. V4.2
slidePosition
String
the percentage of the distance between the calibrated open position and closed position that Curtain has traversed
Meter
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Meter
hubDeviceId
String
device's parent Hub ID
temperature
Float
temperature in celsius
version
String
the current firmware version, e.g. V4.2
battery
Integer
the current battery level, 0-100
humidity
Integer
humidity percentage
Meter Plus
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. MeterPlus
hubDeviceId
String
device's parent Hub ID
battery
Integer
the current battery level, 0-100
version
String
the current firmware version, e.g. V4.2
temperature
Float
temperature in celsius
humidity
Integer
humidity percentage
Outdoor Meter
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. WoIOSensor
hubDeviceId
String
device's parent Hub ID
battery
Integer
the current battery level, 0-100
version
String
the current firmware version, e.g. V4.2
temperature
Float
temperature in celsius
humidity
Integer
humidity percentage
Meter Pro
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. MeterPro
hubDeviceId
String
device's parent Hub ID
battery
Integer
the current battery level, 0-100
version
String
the current firmware version, e.g. V4.2
temperature
Float
temperature in celsius
humidity
Integer
humidity percentage
Meter Pro CO2
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. MeterPro(CO2)
hubDeviceId
String
device's parent Hub ID
battery
Integer
the current battery level, 0-100
version
String
the current firmware version, e.g. V4.2
temperature
Float
temperature in celsius
humidity
Integer
humidity percentage
CO2
Integer
CO2 ppm value, 0-9999
Lock
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Smart Lock
hubDeviceId
String
device's parent Hub ID
battery
Integer
the current battery level, 0-100
version
String
the current firmware version, e.g. V4.2
lockState
String
determines if locked or not
doorState
String
determines if the door is closed or not
calibrate
Boolean
determines if Lock has been calibrated or not
Lock Pro
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Smart Lock Pro
hubDeviceId
String
device's parent Hub ID
battery
Integer
the current battery level, 0-100
version
String
the current firmware version, e.g. V4.2
lockState
String
determines if locked or not, jammed, unlock or lock
doorState
String
determines if the door is closed or not, open or close
calibrate
Boolean
determines if Lock has been calibrated or not
Keypad
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Keypad
hubDeviceId
String
device's parent Hub ID
Keypad Touch
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Keypad Touch
hubDeviceId
String
device's parent Hub ID
Motion Sensor
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Motion Sensor
hubDeviceId
String
device's parent Hub ID
battery
Integer
the current battery level, 0-100
version
String
the current firmware version, e.g. V4.2
moveDetected
Boolean
determines if motion is detected
brightness
String
the ambient brightness picked up by the sensor. bright or dim
Contact Sensor
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Contact Sensor
hubDeviceId
String
device's parent Hub ID
battery
Integer
the current battery level, 0-100
version
String
the current firmware version, e.g. V4.2
moveDetected
Boolean
determines if motion is detected
openState
String
the open state of the sensor. open, close, or timeOutNotClose
brightness
String
the ambient brightness picked up by the sensor. bright or dim
Water Leak Detector
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Water Detector
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
battery
Integer
the current battery level, 0-100
version
String
the current firmware version, e.g. V4.2
status
Integer
0, dry. 1, leak detected
Ceiling Light
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Ceiling Light
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
power
String
ON/OFF state
version
String
the current BLE and Wi-Fi firmware version, e.g. V3.1-6.3
brightness
Integer
the brightness value, range from 1 to 100
colorTemperature
Integer
the color temperature value, range from 2700 to 6500
Ceiling Light Pro
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Ceiling Light Pro
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
version
String
the current BLE and Wi-Fi firmware version, e.g. V3.1-6.3
power
String
ON/OFF state
brightness
Integer
the brightness value, range from 1 to 100
colorTemperature
Integer
the color temperature value, range from 2700 to 6500
Plug Mini (US)
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Plug Mini (US)
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
voltage
Float
the voltage of the device, measured in Volt
version
String
the current BLE and Wi-Fi firmware version, e.g. V3.1-6.3
weight
Float
the power consumed in a day, measured in Watts
electricityOfDay
Integer
the duration that the device has been used during a day, measured in minutes
electricCurrent
Float
the current of the device at the moment, measured in Amp
Plug Mini (JP)
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Plug Mini (JP)
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
voltage
Float
the voltage of the device, measured in Volt
version
String
the current BLE and Wi-Fi firmware version, e.g. V3.1-6.3
weight
Float
the power consumed in a day, measured in Watts
electricityOfDay
Integer
the duration that the device has been used during a day, measured in minutes
electricCurrent
Float
the current of the device at the moment, measured in Amp
Plug
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Plug
power
String
ON/OFF state
version
String
the current Wi-Fi firmware version, e.g. V4.2
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
Strip Light
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Strip Light
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
power
String
ON/OFF state
version
String
the current BLE and Wi-Fi firmware version, e.g. V3.1-6.3
brightness
Integer
the brightness value, range from 1 to 100
color
String
the color value, RGB "255:255:255"
Color Bulb
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Color Bulb
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
power
String
ON/OFF state
brightness
Integer
the brightness value, range from 1 to 100
version
String
the current BLE and Wi-Fi firmware version, e.g. V3.1-6.3
color
String
the color value, RGB "255:255:255"
colorTemperature
Integer
the color temperature value, range from 2700 to 6500
Robot Vacuum Cleaner S1
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Robot Vacuum Cleaner S1
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
workingStatus
String
the working status of the device. StandBy, Clearing, Paused, GotoChargeBase, Charging, ChargeDone, Dormant, InTrouble, InRemoteControl, or InDustCollecting
onlineStatus
String
the connection status of the device. online or offline
battery
Integer
the current battery level
Robot Vacuum Cleaner S1 Plus
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Robot Vacuum Cleaner S1 Plus
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
workingStatus
String
the working status of the device. StandBy, Clearing, Paused, GotoChargeBase, Charging, ChargeDone, Dormant, InTrouble, InRemoteControl, or InDustCollecting
onlineStatus
String
the connection status of the device. online or offline
battery
Integer
the current battery level
Mini Robot Vacuum K10+
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. K10+
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
workingStatus
String
the working status of the device. StandBy, Clearing, Paused, GotoChargeBase, Charging, ChargeDone, Dormant, InTrouble, InRemoteControl, or InDustCollecting
onlineStatus
String
the connection status of the device. online or offline
battery
Integer
the current battery level 0-100
Mini Robot Vacuum K10+ Pro
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. K10+ Pro
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
workingStatus
String
the working status of the device. StandBy, Clearing, Paused, GotoChargeBase, Charging, ChargeDone, Dormant, InTrouble, InRemoteControl, or InDustCollecting
onlineStatus
String
the connection status of the device. online or offline
battery
Integer
the current battery level 0-100
K10+ Pro Combo
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Robot Vacuum Cleaner K10+ Pro Combo
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
workingStatus
String
the working status of the device. StandBy, Clearing, Paused, GotoChargeBase, Charging, ChargeDone, Dormant, InTrouble, InRemoteControl, or InDustCollecting
onlineStatus
String
the connection status of the device. online or offline
battery
Integer
the current battery level 0-100
taskType
String
the current task in progress. standBy, explore, cleanAll, cleanArea, cleanRoom, backToCharge, collectDust, remoteControl, cleanWithExplorer
Floor Cleaning Robot S10
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Robot Vacuum Cleaner S10
hubDeviceId
String
device's parent Hub ID. 000000000000 when the device itself is a Hub or it is connected through Wi-Fi.
workingStatus
String
the working status of the device. StandBy, Clearing, Paused, GotoChargeBase, Charging, ChargeDone, Dormant, InTrouble, InRemoteControl, or InDustCollecting
onlineStatus
String
the connection status of the device. online or offline
battery
Integer
the current battery level 0-100
waterBaseBattery
Integer
the current battery level 0-100
taskType
String
the current task in progress. standBy, explore, cleanAll, cleanArea, cleanRoom, fillWater, deepWashing, backToCharge, markingWaterBase, drying, collectDust, remoteControl, cleanWithExplorer, fillWaterForHumi, markingHumi
Humidifier
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Humidifier
power
String
ON/OFF state
humidity
Integer
humidity percentage
temperature
Float
temperature in celsius
nebulizationEfficiency
Integer
atomization efficiency percentage
auto
Boolean
determines if a Humidifier is in Auto Mode or not
childLock
Boolean
determines if a Humidifier's safety lock is on or not
sound
Boolean
determines if a Humidifier is muted or not
lackWater
Boolean
determines if the water tank is empty or not
Evaporative Humidifier
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Humidifier2
power
String
ON/OFF state
humidity
Integer
humidity percentage
mode
Integer
the current mode. 1, level 4; 2, level 3; 3, level 2; 4, level 1; 5, humidity mode; 6, sleep mode; 7, auto mode; 8, drying mode
drying
Boolean
determines if the device is drying its filter or not
childLock
Boolean
determines if the safety lock is on or not
filterElement
Object
contains status info of the filter. e.g. {"effectiveUsageHours": 240, "usedHours": 20}. effectiveUsageHours, the effective duration of the filter in hours; usedHours, the number of hours the filter has been used.
version
Integer
firmware version
Evaporative Humidifier (Auto-refill)
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Humidifier2
power
String
ON/OFF state
humidity
Integer
humidity percentage
mode
Integer
the current mode. 1, level 4; 2, level 3; 3, level 2; 4, level 1; 5, humidity mode; 6, sleep mode; 7, auto mode; 8, drying mode
drying
Boolean
determines if the device is drying its filter or not
childLock
Boolean
determines if the safety lock is on or not
filterElement
Object
contains status info of the filter. e.g. {"effectiveUsageHours": 240, "usedHours": 20}. effectiveUsageHours, the effective duration of the filter in hours; usedHours, the number of hours the filter has been used.
version
Integer
firmware version
Air Purifier VOC
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Air Purifier VOC
power
String
current state; ON, on; OFF, off
version
String
the current firmware version, e.g. V4.2
hubDeviceId
String
returns null if not a bluetooth device
mode
Integter
the current mode. 1, normal or fan mode; 2, auto mode; 3, sleep mode; 4, pet mode
childLock
Integter
child lock. 0, disabled; 1, enabled
Air Purifier Table VOC
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Air Purifier Table VOC
power
String
current state; ON, on; OFF, off
version
String
the current firmware version, e.g. V4.2
hubDeviceId
String
returns null if not a bluetooth device
mode
Integter
the current mode. 1, normal or fan mode; 2, auto mode; 3, sleep mode; 4, pet mode
childLock
Integter
child lock. 0, disabled; 1, enabled
Air Purifier PM2.5
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Air Purifier PM2.5
power
String
current state; ON, on; OFF, off
version
String
the current firmware version, e.g. V4.2
hubDeviceId
String
returns null if not a bluetooth device
mode
Integter
the current mode. 1, normal or fan mode; 2, auto mode; 3, sleep mode; 4, pet mode
childLock
Integter
child lock. 0, disabled; 1, enabled
Air Purifier Table PM2.5
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Air Purifier Table PM2.5
power
String
current state; ON, on; OFF, off
version
String
the current firmware version, e.g. V4.2
hubDeviceId
String
returns null if not a bluetooth device
mode
Integter
the current mode. 1, normal or fan mode; 2, auto mode; 3, sleep mode; 4, pet mode
childLock
Integter
child lock. 0, disabled; 1, enabled
Blind Tilt
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Blind Tilt
hubDeviceId
String
device's parent Hub ID
version
Integer
the firmware version of the device
calibrate
Boolean
determines if the open and the closed positions have been properly calibrated or not
group
Boolean
determines if a Blind Tilt device is paired with or grouped with one or more devices of the same type or not
moving
Boolean
determines if the device is moving or not
direction
String
the opening direction of a Blind Tilt device
slidePosition
Integer
the current position, 0-100
Roller Shade
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Roller Shade
hubDeviceId
String
device's parent Hub ID
version
String
the current firmware version, e.g. V4.2
calibrate
Boolean
determines if the open and the closed positions have been properly calibrated or not
battery
Integer
the current battery level 0-100
moving
Boolean
determines if the device is moving or not
slidePosition
Integer
the current position, 0-100
Hub 2
Key
Value Type
Description
deviceId
String
device ID
deviceType
String
device type. Hub 2
hubDeviceId
String
Hub ID, equivalent to device ID
temperature
Float
temperature in celsius
lightLevel
Integer
the level of illuminance of the ambience light, 1~20
version
String
the current firmware version, e.g. V4.2
humidity
Integer
humidity percentage
Battery Circulator Fan
Key
Value Type
Description
deviceId
String
device ID
deviceName
String
device name
deviceType
String
device type. Battery Circulator Fan
mode
String
fan mode. direct mode: direct; natural mode: "natural"; sleep mode: "sleep"; ultra quiet mode: "baby"
set the mode. mode_int, 1, level 4; 2, level 3; 3, level 2; 4, level 1; 5, humidity mode; 6, sleep mode; 7, auto mode; 8, drying mode; targetHumidify, the target humidity level in percentage, 0~100.
Humidifier2
command
setChildLock
true or false
enable or disable child lock. true, enable; false, disable
Air Purifier VOC
deviceType
commandType
Command
command parameter
Description
Air Purifier VOC
command
turnOff
default
set to OFF state
Air Purifier VOC
command
turnOn
default
set to ON state
Air Purifier VOC
command
setMode
{"mode": mode_int, "fanGear": fan_level_int}
set the mode. mode_int, 1, normal or fan mode; 2, auto mode; 3, sleep mode; 4, pet mode; fan_level_int, the fan level can only be set if mode_int is set to 1, 1~3
Air Purifier VOC
command
setChildLock
0 or 1
enable or disable child lock. 1, enable; 0, disable
Air Purifier Table VOC
deviceType
commandType
Command
command parameter
Description
Air Purifier Table VOC
command
turnOff
default
set to OFF state
Air Purifier Table VOC
command
turnOn
default
set to ON state
Air Purifier Table VOC
command
setMode
{"mode": mode_int, "fanGear": fan_level_int}
set the mode. mode_int, 1, normal or fan mode; 2, auto mode; 3, sleep mode; 4, pet mode; fan_level_int, the fan level can only be set if mode_int is set to 1, 1~3
Air Purifier Table VOC
command
setChildLock
0 or 1
enable or disable child lock. 1, enable; 0, disable
Air Purifier PM2.5
deviceType
commandType
Command
command parameter
Description
Air Purifier PM2.5
command
turnOff
default
set to OFF state
Air Purifier PM2.5
command
turnOn
default
set to ON state
Air Purifier PM2.5
command
setMode
{"mode": mode_int, "fanGear": fan_level_int}
set the mode. mode_int, 1, normal or fan mode; 2, auto mode; 3, sleep mode; 4, pet mode; fan_level_int, the fan level can only be set if mode_int is set to 1, 1~3
Air Purifier PM2.5
command
setChildLock
0 or 1
enable or disable child lock. 1, enable; 0, disable
Air Purifier Table PM2.5
deviceType
commandType
Command
command parameter
Description
Air Purifier Table PM2.5
command
turnOff
default
set to OFF state
Air Purifier Table PM2.5
command
turnOn
default
set to ON state
Air Purifier Table PM2.5
command
setMode
{"mode": mode_int, "fanGear": fan_level_int}
set the mode. mode_int, 1, normal or fan mode; 2, auto mode; 3, sleep mode; 4, pet mode; fan_level_int, the fan level can only be set if mode_int is set to 1, 1~3
Air Purifier Table PM2.5
command
setChildLock
0 or 1
enable or disable child lock. 1, enable; 0, disable
Plug
deviceType
commandType
Command
command parameter
Description
Plug
command
turnOn
default
set to ON state
Plug
command
turnOff
default
set to OFF state
Plug Mini (US)
deviceType
commandType
Command
command parameter
Description
Plug Mini (US)
command
turnOn
default
set to ON state
Plug Mini (US)
command
turnOff
default
set to OFF state
Plug Mini (US)
command
toggle
default
toggle state
Plug Mini (JP)
deviceType
commandType
Command
command parameter
Description
Plug Mini (JP)
command
turnOn
default
set to ON state
Plug Mini (JP)
command
turnOff
default
set to OFF state
Plug Mini (JP)
command
toggle
default
toggle state
Relay Switch 1PM
deviceType
commandType
Command
command parameter
Description
Relay Switch 1PM
command
turnOn
default
set to ON state
Relay Switch 1PM
command
turnOff
default
set to OFF state
Relay Switch 1PM
command
toggle
default
toggle state
Relay Switch 1PM
command
setMode
0~3
set the switch mode. 0, toggle mode; 1, edge switch mode; 2, detached switch mode; 3, momentary switch mode
Relay Switch 1
deviceType
commandType
Command
command parameter
Description
Relay Switch 1
command
turnOn
default
set to ON state
Relay Switch 1
command
turnOff
default
set to OFF state
Relay Switch 1
command
toggle
default
toggle state
Relay Switch 1
command
setMode
0~3
set the switch mode. 0, toggle mode; 1, edge switch mode; 2, detached switch mode; 3, momentary switch mode
Color Bulb
deviceType
commandType
Command
command parameter
Description
Color Bulb
command
turnOn
default
set to ON state
Color Bulb
command
turnOff
default
set to OFF state
Color Bulb
command
toggle
default
toggle state
Color Bulb
command
setBrightness
{1-100}
set brightness
Color Bulb
command
setColor
"{0-255}:{0-255}:{0-255}"
set RGB color value
Color Bulb
command
setColorTemperature
{2700-6500}
set color temperature
Strip Light
deviceType
commandType
Command
command parameter
Description
Strip Light
command
turnOn
default
set to ON state
Strip Light
command
turnOff
default
set to OFF state
Strip Light
command
toggle
default
toggle state
Strip Light
command
setBrightness
{1-100}
set brightness
Strip Light
command
setColor
"{0-255}:{0-255}:{0-255}"
set RGB color value
Robot Vacuum Cleaner S1
deviceType
commandType
Command
command parameter
Description
Robot Vacuum Cleaner S1
command
start
default
start vacuuming
Robot Vacuum Cleaner S1
command
stop
default
stop vacuuming
Robot Vacuum Cleaner S1
command
dock
default
return to charging dock
Robot Vacuum Cleaner S1
command
PowLevel
{0-3}
set suction power level: 0 (Quiet), 1 (Standard), 2 (Strong), 3 (MAX)
Robot Vacuum Cleaner S1 Plus
deviceType
commandType
Command
command parameter
Description
Robot Vacuum Cleaner S1 Plus
command
start
default
start vacuuming
Robot Vacuum Cleaner S1 Plus
command
stop
default
stop vacuuming
Robot Vacuum Cleaner S1 Plus
command
dock
default
return to charging dock
Robot Vacuum Cleaner S1 Plus
command
PowLevel
{0-3}
set suction power level: 0 (Quiet), 1 (Standard), 2 (Strong), 3 (MAX)
Mini Robot Vacuum K10+
deviceType
commandType
Command
command parameter
Description
K10+
command
start
default
start vacuuming
K10+
command
stop
default
stop vacuuming
K10+
command
dock
default
return to charging dock
K10+
command
PowLevel
{0-3}
set suction power level: 0 (Quiet), 1 (Standard), 2 (Strong), 3 (MAX)
Mini Robot Vacuum K10+ Pro
deviceType
commandType
Command
command parameter
Description
K10+ Pro
command
start
default
start vacuuming
K10+ Pro
command
stop
default
stop vacuuming
K10+ Pro
command
dock
default
return to charging dock
K10+ Pro
command
PowLevel
{0-3}
set suction power level: 0 (Quiet), 1 (Standard), 2 (Strong), 3 (MAX)
change clean parameters. fan_level_int, the vacuum level, 1-4; water_level_int, the mop moisture level, 1-2; times, the number of cycles, 1-2639999, in theory.
start cleaning. action, the cleaning mode, sweep or sweep_mop. fanLevel, the vacuum level, 1-4. waterLevel, the mop moisture level, 1-2. times, the number of cycles, 1-2639999, in theory.
Floor Cleaning Robot S10
command
addWaterForHumi
default
refill the mind blowing Evaporative Humidifier (Auto-refill).
fanLevel, the vacuum level, 1-4. waterLevel, the mop moisture level, 1-2. times, the number of cycles, 1-2639999, in theory.
Ceiling Light
deviceType
commandType
Command
command parameter
Description
Ceiling Light
command
turnOn
default
set to ON state
Ceiling Light
command
turnOff
default
set to OFF state
Ceiling Light
command
toggle
default
toggle state
Ceiling Light
command
setBrightness
{1-100}
set brightness
Ceiling Light
command
setColorTemperature
{2700-6500}
set the color temperature
Ceiling Light Pro
deviceType
commandType
Command
command parameter
Description
Ceiling Light Pro
command
turnOn
default
set to ON state
Ceiling Light Pro
command
turnOff
default
set to OFF state
Ceiling Light Pro
command
toggle
default
toggle state
Ceiling Light Pro
command
setBrightness
{1-100}
set brightness
Ceiling Light Pro
command
setColorTemperature
{2700-6500}
set the color temperature
Keypad
The control commands for this product work differently than the other products. Due to security concerns, the passcodes are stored locally. This mechanism dramatically prolongs the time needed to successfully create a passcode and get the correct result through the Web API. Hence, the actual results of the following commands are returned from the SwitchBot server asynchronously and are delivered through a webhook.
You need to configure a webhook to receive the correct result. Refer to this product's webhook definition.
The following table describes the parameter object for createKey,
Key Name
Value Type
Description
name
String
a unique name for the passcode. duplicates under the same device are not allowed.
type
String
type of the passcode. permanent, a permanent passcode. timeLimit, a temporary passcode. disposable, a one-time passcode. urgent, an emergency passcode.
password
String
a 6 to 12-digit passcode in plain text
startTime
Long
set the time the passcode becomes valid from, mandatory for one-time passcode and temporary passcode. a 10-digit timestamp.
endTime
Long
set the time the passcode becomes expired, mandatory for one-time passcode and temporary passcode. a 10-digit timestamp.
The following table describes the parameter object for deleteKey,
Key Name
Value Type
Description
id
String
the id of the passcode
Keypad Touch
The control commands for this product work differently than the other products. Due to security concerns, the passcodes are stored locally. This mechanism dramatically prolongs the time needed to successfully create a passcode and get the correct result through the Web API. Hence, the actual results of the following commands are returned from the SwitchBot server asynchronously and are delivered through a webhook.
You need to configure a webhook to receive the correct result. Refer to this product's webhook definition.
The following table describes the parameter object for createKey,
Key Name
Value Type
Description
name
String
a unique name for the passcode. duplicates under the same device are not allowed.
type
String
type of the passcode. permanent, a permanent passcode. timeLimit, a temporary passcode. disposable, a one-time passcode. urgent, an emergency passcode.
password
String
a 6 to 12-digit passcode in plain text
startTime
Long
set the time the passcode becomes valid from, mandatory for one-time passcode and temporary passcode. a 10-digit timestamp.
endTime
Long
set the time the passcode becomes expired, mandatory for one-time passcode and temporary passcode. a 10-digit timestamp.
The following table describes the parameter object for deleteKey,
Key Name
Value Type
Description
id
String
the id of the passcode
Blind Tilt
deviceType
commandType
Command
command parameter
Description
Blind Tilt
command
setPosition
direction;position e.g. up;60
direction: up/down position: 0~100 (0 means closed, 100 means open, it MUST be set to a multiple of 2. e.g. up;48 or up; 36)
Blind Tilt
command
fullyOpen
default
Set the position of Blind Tilt to open, equivalent to setting the position to up;100 or down;100
Blind Tilt
command
closeUp
default
Set the position of Blind Tilt to closed up, equivalent to setting the position to up;0
Blind Tilt
command
closeDown
default
Set the position of Blind Tilt to closed down, equivalent to setting the position to down;0
Roller Shade
deviceType
commandType
Command
command parameter
Description
Roller Shade
command
setPosition
0~100
0, open; 100, closed
Battery Circulator Fan
deviceType
commandType
Command
command parameter
Description
Battery Circulator Fan
command
turnOff
default
Set to OFF state
Battery Circulator Fan
command
turnOn
default
Set to ON state
Battery Circulator Fan
command
setNightLightMode
off, 1, or 2
off, turn off nightlight, 1, bright 2, dim
Battery Circulator Fan
command
setWindMode
direct, natural, sleep, or baby
Set fan mode. direct: direct mode. natural: natural mode. sleep: sleep mode. baby: ultra quiet mode
Battery Circulator Fan
command
setWindSpeed
{1-100} e.g. 10
Set fan speed.1~100
Circulator Fan
deviceType
commandType
Command
command parameter
Description
Circulator Fan
command
turnOff
default
Set to OFF state
Circulator Fan
command
turnOn
default
Set to ON state
Circulator Fan
command
setNightLightMode
off, 1, or 2
off, turn off nightlight, 1, bright 2, dim
Circulator Fan
command
setWindMode
direct, natural, sleep, or baby
Set fan mode. direct: direct mode. natural: natural mode. sleep: sleep mode. baby: ultra quiet mode
Circulator Fan
command
setWindSpeed
{1-100} e.g. 10
Set fan speed.1~100
Command set for virtual infrared remote devices
The table below describes all the available commands for virtual infrared remote devices,
deviceType
commandType
Command
command parameter
Description
All home appliance types except Others
command
turnOn
default
every home appliance can be turned on by default
All home appliance types except Others
command
turnOff
default
every home appliance can be turned off by default
Others
customize
{user-defined button name}
default
all user-defined buttons must be configured with commandType=customize
Air Conditioner
command
setAll
{temperature},{mode},{fan speed},{power state} e.g. 26,1,3,on
the unit of temperature is in celsius; modes include 0/1 (auto), 2 (cool), 3 (dry), 4 (fan), 5 (heat); fan speed includes 1 (auto), 2 (low), 3 (medium), 4 (high); power state includes on and off
TV, IPTV/Streamer, Set Top Box
command
SetChannel
{channel number}, e.g. 15
set the TV channel to switch to
command
volumeAdd
default
volume up
command
volumeSub
default
volume down
command
channelAdd
default
next channel
command
channelSub
default
previous channel
DVD, Speaker
command
setMute
default
mute/unmute
command
FastForward
default
fast forward
command
Rewind
default
rewind
command
Next
default
next track
command
Previous
default
last track
command
Pause
default
pause
command
Play
default
play/resume
command
Stop
default
stop
Speaker
command
volumeAdd
default
volume up
command
volumeSub
default
volume down
Fan
command
swing
default
swing
command
timer
default
set timer
command
lowSpeed
default
set fan speed to low
command
middleSpeed
default
set fan speed to medium
command
highSpeed
default
set fan speed to high
Light
command
brightnessUp
default
brightness up
command
brightnessDown
default
brightness down
Note: Most of the devices support turnOn or turnOff, which are case-sensitive. For infrared remote devices, when you have created customized buttons, you must set commandType to customize, otherwise the command will not work. command needs to be set to the name of the customized button.
Path parameters
Name
Type
Required
Description
deviceId
String
Yes
device ID
Request body parameters
Name
Type
Required
Description
command
String
Yes
the name of the command
parameter
String
No
some commands require parameters, such as SetChannel
commandType
String
No
for customized buttons, this needs to be set to customzie
Response
The response is basically a JSON object, which contains the following properties,
Key Name
Value Type
statusCode
Integer
message
String
body
Object
Errors
Error code/message
Description
{"message": "Unauthorized"}
Http 401 Error. User permission is denied due to invalid token.
151
device type error
152
device not found
160
command is not supported
161
device offline
171
hub device is offline
190
Device internal error due to device states not synchronized with server. Or command format is invalid.
Sample
Floor Cleaning Robot S10 example
Clean with vacuum mode
Request
POST https://api.switch-bot.com/v1.1/devices/F7538E1ABC23/commands
{"commandType": "command","command": "startClean",// start cleaning"parameter": {"action": "sweep",// clean with vacuum mode"param": {"fanLevel": 1,// vacuum level set to 1"waterLevel": 1,// mop moisture level set to 1"times": 1// number of cyclyes to clean set to 1}}}
POST https://api.switch-bot.com/v1.1/devices/F7538E1ABC23/commands
{"commandType": "command","command": "changeParam","parameter": {"fanLevel": 2,// vacuum level set to 1"waterLevel": 1,// mop moisture level set to 1"times": 1// number of times to clean set to 2}}
The scenes API is used to access the smart scenes created by a user and to execute manual scenes.
Get scene list
GET /v1.1/scenes
Description
Get a list of manual scenes created by the current user.
Response
The response is basically a JSON object, which contains the following properties,
Key Name
Value Type
statusCode
Integer
message
String
body
Object
The body object contains a list of objects, which has the following properties,
Key
Type
Description
sceneId
String
a scene's ID
sceneName
String
a scene's name
Errors
Error code/message
Description
{"message": "Unauthorized"}
Http 401 Error. User permission is denied due to invalid token.
190
Device internal error due to device states not synchronized with server
Sample
Get all scenes
Request
GET https://api.switch-bot.com/v1.1/scenes
Response
{"statusCode": 100,"body": [{"sceneId": "T02-20200804130110","sceneName": "Close Office Devices"},{"sceneId": "T02-202009221414-48924101","sceneName": "Set Office AC to 25"},{"sceneId": "T02-202011051830-39363561","sceneName": "Set Bedroom to 24"},{"sceneId": "T02-202011051831-82928991","sceneName": "Turn off home devices"},{"sceneId": "T02-202011062059-26364981","sceneName": "Set Bedroom to 26 degree"}],"message": "success"}
Execute manual scenes
POST /v1.1/scenes/{sceneId}/execute
Description
Sends a request to execute a manual scene.
Path parameters
Name
Type
Required
Description
sceneId
String
Yes
scene ID
The response is basically a JSON object, which contains the following properties,
Key Name
Value Type
statusCode
Integer
message
String
body
Object
Errors
Error code/message
Description
{"message": "Unauthorized"}
Http 401 Error. User permission is denied due to invalid token.
190
Device internal error due to device states not synchronized with server
Sample
Execute a scene
Request
POST https://api.switch-bot.com/v1.1/scenes/T02-202009221414-48924101/execute
POST https://api.switch-bot.com/v1.1/webhook/deleteWebhook
Request body parameters
Key Name
Value Type
Description
action
String
the type of actions
url
String
the url where all the events are sent to
Head
{"Content-type":"application/json","Authorization":your_token// enter your API token}
Body
{"action": "deleteWebhook","url":url1}
Response
{"statusCode": 100,"body": {},"message": ""}
Receive events from webhook
When an event gets triggered, SwitchBot server will send a POST request to the url you have configured. Refer to the table below for a list of products that support webhook.
Device Type
Product
WoHand
Bot
WoCurtain
Curtain
WoPresence
Motion Sensor
WoContact
Contact Sensor
WoLock
Lock
WoLockPro
Lock Pro
WoCamera
Indoor Cam
WoPanTiltCam
Pan/Tilt Cam
WoBulb
Color Bulb
WoStrip
LED Strip Light
WoPlugUS
Plug Mini (US)
WoPlugJP
Plug Mini (JP)
WoMeter
Meter
WoMeterPlus
Meter Plus
WoIOSensor
Outdoor Meter
WoSweeper
Robot Vacuum Cleaner S1
WoSweeperPlus
Robot Vacuum Cleaner S1 Plus
WoCeiling
Ceiling Light
WoCeilingPro
Ceiling Light Pro
WoKeypad
Keypad
WoKeypadTouch
Keypad Touch
WoHub2
Hub 2
Robot Vacuum Cleaner S10
Floor Cleaning Robot S10
Water Detector
Water Leak Detector
MeterPro
Meter Pro
MeterPro(CO2)
Meter Pro CO2 Monitor
WoFan2
Battery Circulator Fan or Circulator Fan
Humidifier2
Evaporative Humidifier or Evaporative Humidifier (Auto-refill)
Robot Vacuum Cleaner K10+ Pro Combo
K10+ Pro Combo
Air Purifier VOC
Air Purifier VOC
Air Purifier Table VOC
Air Purifier Table VOC
Air Purifier PM2.5
Air Purifier PM2.5
Air Purifier Table PM2.5
Air Purifier Table PM2.5
WoRollerShade
Roller Shade
Relay Switch 1PM
Relay Switch 1PM
Relay Switch 1
Relay Switch 1
Bot
Key Name
Value Type
Description
eventType
String
the type of events
eventVersion
String
the current event version
context
Object
the detail info of the event
deviceType
String
the type of the device
deviceMac
String
the MAC address of the device
power
String
the current state of the device. This state is only valid for Switch Mode, where "on" stands for on and "off" stands for off. It will return "on" or "off" in Press Mode or Customize Mode, but the returned value can be neglected.
the state of the device, "LOCKED" stands for the motor is rotated to locking position; "UNLOCKED" stands for the motor is rotated to unlocking position; "JAMMED" stands for the motor is jammed while rotating
the state of the device, "LOCKED" stands for the motor is rotated to locking position; "UNLOCKED" stands for the motor is rotated to unlocking position; "JAMMED" stands for the motor is jammed while rotating
attributes of the context object. the type of the device
deviceMac
String
attributes of the context object. the MAC address of the device
workingStatus
String
attributes of the context object. the working status of the device. StandBy, Clearing, Paused, GotoChargeBase, Charging, ChargeDone, Dormant, InTrouble, InRemoteControl, or InDustCollecting
onlineStatus
String
attributes of the context object. the connection status of the device. online or offline
battery
Integer
attributes of the context object. the battery level, range from 0 to 100
timeOfSample
Long
attributes of the context object. the time stamp when the event is sent
attributes of the context object. the type of the device
deviceMac
String
attributes of the context object. the MAC address of the device
workingStatus
String
attributes of the context object. the working status of the device. StandBy, Clearing, Paused, GotoChargeBase, Charging, ChargeDone, Dormant, InTrouble, InRemoteControl, or InDustCollecting
onlineStatus
String
attributes of the context object. the connection status of the device. online or offline
battery
Integer
attributes of the context object. the battery level, range from 0 to 100
timeOfSample
Long
attributes of the context object. the time stamp when the event is sent
attributes of the context object. the type of the device
deviceMac
String
attributes of the context object. the MAC address of the device
workingStatus
String
attributes of the context object. the working status of the device. StandBy, Clearing, Paused, GotoChargeBase, Charging, ChargeDone, Dormant, InTrouble, InRemoteControl, or InDustCollecting
onlineStatus
String
attributes of the context object. the connection status of the device. online or offline
battery
Integer
attributes of the context object. the battery level, range from 0 to 100
timeOfSample
Long
attributes of the context object. the time stamp when the event is sent
attributes of the context object. the type of the device
deviceMac
String
attributes of the context object. the MAC address of the device
workingStatus
String
attributes of the context object. the working status of the device. StandBy, Clearing, Paused, GotoChargeBase, Charging, ChargeDone, Dormant, InTrouble, InRemoteControl, or InDustCollecting
onlineStatus
String
attributes of the context object. the connection status of the device. online or offline
battery
Integer
attributes of the context object. the battery level, range from 0 to 100
timeOfSample
Long
attributes of the context object. the time stamp when the event is sent
attributes of the context object. the type of the device
deviceMac
String
attributes of the context object. the MAC address of the device
workingStatus
String
attributes of the context object. the working status of the device. StandBy, Clearing, Paused, GotoChargeBase, Charging, ChargeDone, Dormant, InTrouble, InRemoteControl, or InDustCollecting
onlineStatus
String
attributes of the context object. the connection status of the device. online or offline
battery
Integer
attributes of the context object. the battery level, range from 0 to 100
taskType
String
attributes of the context object. the current task in progress. standBy, explore, cleanAll, cleanArea, cleanRoom, backToCharge, collectDust, remoteControl, cleanWithExplorer
timeOfSample
Long
attributes of the context object. the time stamp when the event is sent
attributes of the context object. the type of the device
deviceMac
String
attributes of the context object. the MAC address of the device
workingStatus
String
attributes of the context object. the working status of the device. StandBy, Clearing, Paused, GotoChargeBase, Charging, ChargeDone, Dormant, InTrouble, InRemoteControl, or InDustCollecting
onlineStatus
String
attributes of the context object. the connection status of the device. online or offline
battery
Integer
attributes of the context object. the battery level, 0-100
waterBaseBattery
Integer
the current battery level 0-100
taskType
String
the current task in progress. standBy, explore, cleanAll, cleanArea, cleanRoom, fillWater, deepWashing, backToCharge, markingWaterBase, drying, collectDust, remoteControl, cleanWithExplorer, fillWaterForHumi, markingHumi
timeOfSample
Long
attributes of the context object. the time stamp when the event is sent