Home Connect (BSH appliances) Events API
Get value changes via SSE
Get value changes via SSE
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/home-connect:home-connect-events-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Home Connect Events API
description: 'This API provides access to home appliances enabled by Home Connect
(https://home-connect.com). Through the API programs can be started and
stopped, or home appliances configured and monitored. For instance, you can
start a cotton program on a washer and get a notification when the cycle is
complete.
To get started with this web client, visit https://developer.home-connect.com
and register an account. An application with a client ID for this API client
will be automatically generated for you.
If you want to use your custom application here, please remember to set its
Redirect URI to https://apiclient.home-connect.com/o2c.html, otherwise
authorization process will fail.
In order to use this API in your own client, you need an OAuth 2 client
implementing the authorization code grant flow
(https://api-docs.home-connect.com/authorization?#authorization-code-grant-flow).
More details can be found here: https://www.rfc-editor.org/rfc/rfc6749.txt
Authorization URL: https://api.home-connect.com/security/oauth/authorize
Token URL: https://api.home-connect.com/security/oauth/token'
version: '1'
servers:
- url: https://api.home-connect.com/api
tags:
- name: Events
description: Get value changes via SSE
paths:
/homeappliances/events:
parameters:
- name: Accept-Language
in: header
description: Language for localized assets
schema:
type: string
enum:
- de-DE
- en-GB
- en-US
get:
summary: Get stream of events for all appliances - NOT WORKING WITH SWAGGER
tags:
- Events
operationId: get_all_events
description: 'Server Sent Events are available as Eventsource API in JavaScript
and are implemented by various HTTP client libraries and tools
including curl.
Unfortunately, SSE is not compatible to OpenAPI specs and can therefore
not be properly specified within this API description.
An SSE event contains three parts separated by linebreaks: event, data and id.
Different events are separated by empty lines.
The event field can be one of these types: KEEP-ALIVE, STATUS, EVENT, NOTIFY, CONNECTED, DISCONNECTED, PAIRED, DEPAIRED.
In case of all event types (except KEEP-ALIVE), the "data" field is populated with the JSON object defined below.
The id contains the home appliance ID. (except for KEEP-ALIVE event type)
Further documentation can be found here:
* Events availability matrix
* Program changes
* Option changes
* Program progress changes
* Home appliance state changes'
responses:
200:
description: 'Returns status updates as Server Sent Events (SSE)
'
content:
text/event-stream:
schema:
$ref: '#/components/schemas/ArrayOfEvents'
401:
$ref: '#/components/responses/Unauthorized'
403:
$ref: '#/components/responses/Forbidden'
406:
$ref: '#/components/responses/NotAcceptable'
429:
$ref: '#/components/responses/QuotaError'
500:
$ref: '#/components/responses/InternalError'
security:
- homeconnect_auth:
- Monitor
- Oven-Monitor
- Dishwasher-Monitor
- Washer-Monitor
- Dryer-Monitor
- FridgeFreezer-Monitor
- CoffeeMaker-Monitor
- Hob-Monitor
- Hood-Monitor
- CleaningRobot-Monitor
- WasherDryer-Monitor
- Refrigerator-Monitor
- Freezer-Monitor
- WineCooler-Monitor
- CookProcessor-Monitor
- Oven
- Dishwasher
- Washer
- Dryer
- FridgeFreezer
- CoffeeMaker
- Hob
- Hood
- CleaningRobot
- WasherDryer
- Refrigerator
- Freezer
- WineCooler
- CookProcessor
/homeappliances/{haId}/events:
parameters:
- name: haId
in: path
description: ID of home appliance
required: true
schema:
type: string
- name: Accept-Language
in: header
description: Language for localized assets
schema:
type: string
enum:
- de-DE
- en-GB
- en-US
- name: Accept
in: header
schema:
type: string
enum:
- application/vnd.bsh.sdk.v1+json
- text/event-stream
get:
summary: Get stream of events for one appliance - NOT WORKING WITH SWAGGER
tags:
- Events
operationId: get_events
description: 'If you want to do a one-time query of the current status, you can ask for
the content-type `application/vnd.bsh.sdk.v1+json` and get the status
as normal HTTP response.
If you want an ongoing stream of events in real time, ask for the content
type `text/event-stream` and you''ll get a stream as Server Sent Events.
Server Sent Events are available as Eventsource API in JavaScript
and are implemented by various HTTP client libraries and tools
including curl.
Unfortunately, SSE is not compatible to OpenAPI specs and can therefore
not be properly specified within this API description.
An SSE event contains three parts separated by linebreaks: event, data and id.
Different events are separated by empty lines.
The event field can be one of these types: KEEP-ALIVE, STATUS, EVENT, NOTIFY, CONNECTED, DISCONNECTED.
In case of all event types (except KEEP-ALIVE), the "data" field is populated with the JSON object defined below.
The id contains the home appliance ID.
Further documentation can be found here:
* Events availability matrix
* Program changes
* Option changes
* Program progress changes
* Home appliance state changes'
responses:
200:
description: 'Returns status updates as Server Sent Events (SSE)
'
content:
application/vnd.bsh.sdk.v1+json:
schema:
$ref: '#/components/schemas/ArrayOfEvents'
text/event-stream:
schema:
$ref: '#/components/schemas/ArrayOfEvents'
401:
$ref: '#/components/responses/Unauthorized'
403:
$ref: '#/components/responses/Forbidden'
406:
$ref: '#/components/responses/NotAcceptable'
429:
$ref: '#/components/responses/QuotaError'
500:
$ref: '#/components/responses/InternalError'
security:
- homeconnect_auth:
- Monitor
- Oven-Monitor
- Dishwasher-Monitor
- Washer-Monitor
- Dryer-Monitor
- FridgeFreezer-Monitor
- CoffeeMaker-Monitor
- Hob-Monitor
- Hood-Monitor
- CleaningRobot-Monitor
- WasherDryer-Monitor
- Refrigerator-Monitor
- Freezer-Monitor
- WineCooler-Monitor
- CookProcessor-Monitor
- Oven
- Dishwasher
- Washer
- Dryer
- FridgeFreezer
- CoffeeMaker
- Hob
- Hood
- CleaningRobot
- WasherDryer
- Refrigerator
- Freezer
- WineCooler
- CookProcessor
components:
schemas:
ForbiddenError:
type: object
required:
- error
properties:
error:
type: object
required:
- key
properties:
key:
type: string
description:
type: string
example:
error:
key: insufficient_scope
description: Insufficient scope for this resource
NotAcceptableError:
type: object
required:
- error
properties:
error:
type: object
required:
- key
properties:
key:
type: string
description:
type: string
example:
error:
key: '406'
description: Resource representation is only available with these types:\napplication/vnd.bsh.sdk.v1+json
ArrayOfEvents:
type: object
required:
- items
properties:
items:
type: array
items:
type: object
required:
- key
- timestamp
- level
- handling
- value
properties:
key:
type: string
description: Feature key of the event
name:
type: string
description: User-friendly, localized name of the feature key
uri:
type: string
description: URI of the resource that changed
timestamp:
type: integer
format: int64
description: Creation time of event as unix timestamp
level:
type: string
description: 'Level of the event, possible values: critical, alert, warning, hint, info
'
handling:
type: string
description: 'Expected activity, possible values: none, acknowledge, decision
'
value:
type:
- string
- number
- boolean
description: New value, e.g. in case of a status update
displayvalue:
type: string
description: User-friendly, localized name of the enumeration value
unit:
type: string
description: Unit of the value
example:
items:
- key: Cooking.Oven.Option.SetpointTemperature
name: Target temperature for the oven
uri: /api/homeappliances/BOSCH-HNG6764B6-0000000011FF/programs/active/options/Cooking.Oven.Option.SetpointTemperature
timestamp: 1556793979
level: hint
handling: none
value: 200
unit: °C
UnauthorizedError:
type: object
required:
- error
properties:
error:
type: object
required:
- key
properties:
key:
type: string
description:
type: string
example:
error:
key: invalid_token
description: The access token expired
TooManyRequestsError:
type: object
required:
- error
properties:
error:
type: object
required:
- key
properties:
key:
type: string
description:
type: string
example:
error:
key: '429'
description: The user has sent too many requests in a given amount of time.
InteralServerError:
type: object
required:
- error
properties:
error:
type: object
required:
- key
properties:
key:
type: string
description:
type: string
example:
error:
key: Internal Server Error
description: Could not validate permissions to access HomeAppliance
responses:
InternalError:
description: Internal Server Error
content:
application/vnd.bsh.sdk.v1+json:
schema:
$ref: '#/components/schemas/InteralServerError'
QuotaError:
description: 'The number of requests for a specific endpoint exceeded the quota of the client.
'
content:
application/vnd.bsh.sdk.v1+json:
schema:
$ref: '#/components/schemas/TooManyRequestsError'
NotAcceptable:
description: The resource identified by the request is only capable of generating response entities which have content characteristics not acceptable according to the accept headers sent in the request.
content:
application/vnd.bsh.sdk.v1+json:
schema:
$ref: '#/components/schemas/NotAcceptableError'
Unauthorized:
description: Unauthorized - No or invalid access token
content:
application/vnd.bsh.sdk.v1+json:
schema:
$ref: '#/components/schemas/UnauthorizedError'
Forbidden:
description: Forbidden - Scope has not been granted
content:
application/vnd.bsh.sdk.v1+json:
schema:
$ref: '#/components/schemas/ForbiddenError'
securitySchemes:
homeconnect_auth:
type: oauth2
flows:
authorizationCode:
scopes:
IdentifyAppliance: Grants right to identify a home appliance under /api/homeappliances
Monitor: Grants access to read resources under /api/homeappliances except images and settings
Control: Grants access to modify resources under under /api/homeappliances except images and settings
Images: Grants access to read resources under /api/homeappliances/{haId}/images
Settings: Grants access to read and modify resources under /api/homeappliances/{haId}/settings
Oven: Grants access to read or modify all resources under /api/homeappliances on ovens
Oven-Monitor: Grants access to read resources under /api/homeappliances except images and settings on ovens
Oven-Control: Grants access to modify resources under under /api/homeappliances except images and settings on ovens
Oven-Settings: Grants access to read and modify resources under /api/homeappliances/{haId}/settings on ovens
Dishwasher: Grants access to read or modify all resources under /api/homeappliances on dishwashers
Dishwasher-Monitor: Grants access to read resources under /api/homeappliances except images and settings on dishwashers
Dishwasher-Control: Grants access to modify resources under under /api/homeappliances except images and settings on dishwashers
Dishwasher-Settings: Grants access to read and modify resources under /api/homeappliances/{haId}/settings on dishwashers
Washer: Grants access to read or modify all resources under /api/homeappliances on washers
Washer-Monitor: Grants access to read resources under /api/homeappliances except images and settings on washers
Washer-Control: Grants access to modify resources under under /api/homeappliances except images and settings on washers
Washer-Settings: Grants access to read and modify resources under /api/homeappliances/{haId}/settings on washers
Dryer: Grants access to read or modify all resources under /api/homeappliances on dryers
Dryer-Monitor: Grants access to read resources under /api/homeappliances except images and settings on dryers
Dryer-Control: Grants access to modify resources under under /api/homeappliances except images and settings on dryers
Dryer-Settings: Grants access to read and modify resources under /api/homeappliances/{haId}/settings on dryers
WasherDryer: Grants access to read or modify all resources under /api/homeappliances on washerdryers
WasherDryer-Monitor: Grants access to read resources under /api/homeappliances except images and settings on washerdryers
WasherDryer-Control: Grants access to modify resources under under /api/homeappliances except images and settings on washerdryers
WasherDryer-Settings: Grants access to read and modify resources under /api/homeappliances/{haId}/settings on washerdryers
FridgeFreezer: Grants access to read or modify all resources under /api/homeappliances on fridgefreezers
FridgeFreezer-Monitor: Grants access to read resources under /api/homeappliances except images and settings on fridgefreezers
FridgeFreezer-Control: Grants access to modify resources under /api/homeappliances except images and settings on fridgefreezers
FridgeFreezer-Settings: Grants access to read and modify resources under /api/homeappliances/{haId}/settings on fridgefreezers
FridgeFreezer-Images: Grants access to read resources under /api/homeappliances/{haId}/images on fridgefreezers
CoffeeMaker: Grants access to read or modify all resources under /api/homeappliances on coffee makers
CoffeeMaker-Monitor: Grants access to read resources under /api/homeappliances except images and settings on coffee makers
CoffeeMaker-Control: Grants access to modify resources under under /api/homeappliances except images and settings on coffee makers
CoffeeMaker-Settings: Grants access to read and modify resources under /api/homeappliances/{haId}/settings on coffee makers
Hob: Grants access to read or modify all resources under /api/homeappliances on hobs
Hob-Monitor: Grants access to read resources under /api/homeappliances except images and settings on hobs
Hob-Control: Grants access to modify resources under under /api/homeappliances except images and settings on hobs
Hob-Settings: Grants access to read and modify resources under /api/homeappliances/{haId}/settings on hobs
Hood: Grants access to read or modify all resources under /api/homeappliances on hoods
Hood-Monitor: Grants access to read resources under /api/homeappliances except images and settings on hoods
Hood-Control: Grants access to modify resources under under /api/homeappliances except images and settings on hoods
Hood-Settings: Grants access to read and modify resources under /api/homeappliances/{haId}/settings on hoods
CleaningRobot: Grants access to read or modify all resources under /api/homeappliances on cleaning robots
CleaningRobot-Monitor: Grants access to read resources under /api/homeappliances except images and settings on cleaning robots
CleaningRobot-Control: Grants access to modify resources under under /api/homeappliances except images and settings on cleaning robots
CleaningRobot-Settings: Grants access to read and modify resources under /api/homeappliances/{haId}/settings on cleaning robots
CleaningRobot-Map: Grants access to read resources under /api/homeappliances/{haId}/map on cleaning robots
Refrigerator: Grants access to read or modify all resources under /api/homeappliances on refrigerators
Refrigerator-Monitor: Grants access to read resources under /api/homeappliances except images and settings on refrigerators
Refrigerator-Control: Grants access to modify resources under under /api/homeappliances except images and settings on refrigerators
Refrigerator-Settings: Grants access to read and modify resources under /api/homeappliances/{haId}/settings on refrigerators
Freezer: Grants access to read or modify all resources under /api/homeappliances on freezers
Freezer-Monitor: Grants access to read resources under /api/homeappliances except images and settings on freezers
Freezer-Control: Grants access to modify resources under under /api/homeappliances except images and settings on freezers
Freezer-Settings: Grants access to read and modify resources under /api/homeappliances/{haId}/settings on freezers
WineCooler: Grants access to read or modify all resources under /api/homeappliances on wine coolers
WineCooler-Monitor: Grants access to read resources under /api/homeappliances except images and settings on wine coolers
WineCooler-Control: Grants access to modify resources under under /api/homeappliances except images and settings on wine coolers
WineCooler-Settings: Grants access to read and modify resources under /api/homeappliances/{haId}/settings on wine coolers
CookProcessor: Grants access to read or modify all resources under /api/homeappliances on cookprocessors
CookProcessor-Monitor: Grants access to read resources under /api/homeappliances except images and settings on cookprocessors
CookProcessor-Control: Grants access to modify resources under under /api/homeappliances except images and settings on cookprocessors
CookProcessor-Settings: Grants access to read and modify resources under /api/homeappliances/{haId}/settings on cookprocessors
authorizationUrl: https://api.home-connect.com/security/oauth/authorize
tokenUrl: https://api.home-connect.com/security/oauth/token
description: 'The Home Connect API uses the authorization code grant flow of the OAuth2
Authorization Framework as specified in RFC 6749 (https://tools.ietf.org/html/rfc6749).
Authorization tokens have to be transmitted in the HTTP headers as defined
in RFC 6750 (https://tools.ietf.org/html/rfc6750).
'
externalDocs:
description: Home Connect Developer Portal
url: https://developer.home-connect.com/