This page does NOT support Internet Explorer. Please use a modern browser like e.g. Google Chrome, Mozilla Firefox or Microsoft Edge.
Home Connect offers a RESTful API to control and monitor enabled home appliances. The following chapters provide details about the usage of this API. If it's your first time working with the Home Connect API, please see our Quickstart guide.
simulator.home-connect.com
api.home-connect.com or
api.home-connect.cn - This domain has to be used if you want to create an application for China. In this case please enable Sync to China in the account settings to copy all clients to China.
The Home Connect API is based on HTTPS carrier with JSON data encoding.
All JSON transfer units are encoded with the following structure:
{ // API Response Object
"data": { ... }, // JSON Object containing the content of a successful request. Absent in case of error.
"error": { ... } // API Error Object containing details / reasons for the error. Absent in case of success.
}
To get the full state of all paired home appliances of a user and keep your application updated with the latest state changes, you have to:
Thus, in total you need 54 requests to get the full state of all 6 supported home appliances and be informed of each change.
In order to start a program, several pre-conditions have to be fulfilled:
If you have sent the activation command, check BSH.Common.Status.OperationState again to validate if the home appliance switched to BSH.Common.EnumType.OperationState.Run. It might happen that some problem, e.g. the water tank is empty, happened during the activation.
If you want to pre-heat an oven, use the program Cooking.Oven.Program.HeatingMode.PreHeating with a duration longer than the oven requires to reach the target temperature. We recommend to use a minimum of 10 minutes. The oven will start a hot air program with the selected options.
Connect to the monitoring channel for this oven and wait for the Cooking.Oven.Event.PreheatFinished event. When you receive the event, notify the user that the oven is ready.
We recommend not to use the event Cooking.Oven.Status.CurrentCavityTemperature because the temperature might not provide the necessary accuracy.
If you started a program on a home appliance, the home appliance will provide status updates on its event channel. Useful events are:
The Home Connect API supports many languages in addition to English. When making a GET request, you have the ability to add the Accept-Language header in order to get all feature keys and enumeration values in the requested language.
Please note that API errors are not translated, e.g. if remote start disabled error is returned during program start.
Language tag follows the HTTP/
Used Accept-Language header: fr-FR
{
"data": {
"key": "ConsumerProducts.CoffeeMaker.Program.Beverage.CaffeLatte",
"options": [
{
"key": "ConsumerProducts.CoffeeMaker.Option.BeanAmount",
"value": "ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.Mild",
"name": "Puissance",
"displayvalue": "Léger"
},
{
"key": "ConsumerProducts.CoffeeMaker.Option.FillQuantity",
"value": 120,
"unit": "ml",
"name": "Quantité"
}
],
"name": "Café au lait"
}
}
The Home Connect API uses the following rate limits. Please make sure not to reach the limits regularly, otherwise your client application may be blocked. At the moment two different rate limit types are supported.
Generally if too many requests are sent, further requests are rejected with the HTTP status code 429.
The following limits are currently configured:
No Retry-After header is set.
{
"error": {
"key": "429",
"description": "Too many parallel monitoring connections. Maximum is 10."
}
}
Generally if too many requests are sent, further requests are rejected with the HTTP status code 429. In this case, please check the Retry-After header. This states the number of seconds that you need to wait, before you try your request again.
The following limits are currently configured:
Retry-After header is set to 52.
{
"error": {
"key": "429",
"description": "The rate limit \"5 start program calls in 1 minute\" was reached. Requests are blocked during the remaining period of 52 seconds."
}
}
The Home Connect API returns appropriate HTTP status codes for every request.
Errors may have a JSON payload with the following structure:
{ // API Response Object
"error": { // API Error Object
"key": "...", // A system wide per error unique key
"description": "..." // A human readable, English description about the reasons of the error
}
}