
C2C Stream API
A Stream API allows you to track emerging events from your B&W coffee machine in real time, such as the end of a brewing process or a malfunction. This data can be used to react quickly to problems and take immediate action. In addition, you can use the Stream API to react to specific events on the coffee machine. With the Stream API, you can also facilitate the connection of your coffee machine to other devices and systems, such as maintenance or ordering systems, and thus increase the efficiency of your sales and maintenance processes.
You can find the credentials here:
Returns event and product data in a stream.
{"Type": "Event","MessageId": "694de446-0720-4504-9fc8-ab9927c9a586","Serial": "200000000","DateTimeLocal": "2025-12-12T15:45:17","DateTimeUtc": "2025-12-12T14:45:17.000Z","SoftwareVersion": "1.47.0","Configuration": "BW4 CTM2 S P","Model": "BW4","Number": 3,"EventDescription": "BoilerAvailable","SeverityId": 1,"Severity": "Info","Category": "Machine Issue","InternalText": "","CustomerName": "Thermoplan AG","TenantName": "Thermoplan"}
Event
{
"Type": "Product",
"MessageId": "59a274e8-3522-46bb-8718-9b140f9fd116",
"Serial": "310000000",
"DateTimeLocal": "2025-12-12T15:41:39",
"DateTimeUtc": "2025-12-12T14:41:39.000Z",
"SoftwareVersion": "1.47.0",
"Configuration": "BW4 CTM2 S P",
"Model": "BW4",
"CustomerName": "Thermoplan AG",
"TenantName": "Thermoplan",
"ProductName": "Latte (Grinder 1, Milk 1, Medium)",
"ProductId": "Latte_1",
"ArticleNo": 14.025,
"BeanName": "Gold Coast",
"Price": 8.348,
"MilkNames": [
"cow milk"
],
"RecipeParamAmountWaterAmount": 0.0,
"RecipeParamAmountTemperature": 0.0,
"RecipeParamCoffeeGrinder1Amount": 12,
"RecipeParamCoffeeGrinder2Amount": 0,
"RecipeParamCoffeeTotalAmount": 59.166,
"RecipeParamCoffeePreBrew": 0.0,
"RecipeParamCoffeeRelaxTime": 0.0,
"RecipeParamCoffeePressFactor": 1.467,
"RecipeParamCoffeeNumBrewCycles": 1,
"RecipeParamCoffeeUseForIsq": true,
"RecipeParamCoffeeIsqExtrTime": 26.014,
"RecipeParamCoffeeIsqPuckThickn": 16.789,
"RecipeParamCoffeeMinValidExtrTime": 13.854,
"RecipeParamCoffeeMaxValidExtrTime": 39.305,
"RecipeParamFlavor1AmountSeconds": 0.0,
"RecipeParamFlavor2AmountSeconds": 0.0,
"RecipeParamFlavor3AmountSeconds": 0.0,
"RecipeParamFlavor4AmountSeconds": null,
"RecipeParamMilkParts": [
{
"AirAmount": 0.0,
"Duration": 20.0,
"Source": 0.0,
"Temperature": 70.0
}
],
"RecipeParamPowderPowderAmountSeconds": 0.0,
"RecipeParamPowderPowderIntensity": 0.0,
"RecipeParamSteamBw4SteamFoeamQuality": 0.0,
"RecipeParamSteamBw4TargetTemperatureDegreesCelsius": 0.0,
"Success": true,
"ResultCoffeeErrorNo": 0,
"ResultCoffeeGrinder1Duration": 0.291,
"ResultCoffeeGrinder2Duration": 0.0,
"ResultCoffeeWaterAmount": 74.366,
"ResultCoffeeNumBrewCycles": 1,
"ResultAmountWaterAmount": 0.0,
"ResultMilkTemperatureAtProductStart": 15.688,
"ResultMilkParts": [
{
"Duration": 18.521
}
],
"ResultSteamBw4Success": false,
"ResultSteamBw4ErrorNo": 0,
"ResultStreamBw4SteamDuration": 0.0,
"ResultSteamBw4StartTemperature": 0.0,
"ResultSteamBw4EndTemperature": 0.0,
"ResultCoffeeBrewCycleExtrTime": [
14.8,
14.2,
13.99,
14,
14.01
],
"ResultCoffeeBrewCyclePuckThicknAfterPr": [
11.097,
11.08,
11.05,
11,
11.089
],
"ResultCoffeeBrewCyclePuckThicknAfterSq": [
11.717,
11.521,
11.684,
11,
11.801
]
}Product
Parameters - Master Data
MessageId
MessageId refers to the unique identifier assigned to each message, which is used to distinguish it from all other messages.
Serial
The serial refers to the machine serial number used to uniquely identify the machine.
DateTimeLocal
DateTimeLocal refers to the local time at a specific location or time zone used to synchronise events or activities within that location or time zone.
DateTimeUtc
DateTimeUtc refers to Coordinated Universal Time (UTC), which is used as a reference time standard for synchronising events or activities between different locations or time zones.
SoftwareVersion
The software version refers to the currently installed version of the device software.
Configuration
Machine Configuration covers the assembly and configuration of the various components and options on the coffee machine.
Model
The model refers to a specific machine model within the series of coffee machines.
CustomerName
Name of the customer as a unique identifier assigned by the system. Based on the name of the customer who requested access to the Streaming API.
TenantName
The name of the tenant which the coffee machine is assigned when it generated the event or product message.
Parameters - Product
ProductName
ProductName refers to the customer-created name for a particular product that is used to identify and distinguish that product from other products.
ProductId
ProductId is a identifier that distinguishes the product from others.
ArticleNumber
ArticleNumber is a numerical code that can be added to a product and, when used in conjunction with a payment system, serves to identify the product for tracking and purchase purposes.
BeanName
BeanName refers to the type of coffee beans used for the product, providing a specific name that identifies the bean variety whenever the product contains coffee.
Price
The price of the product that is associated with the coffee machine.
MilkNames
MilkNames refers to the names of the milk types used in the product, provided whenever the product contains milk.
RecipeParamAmountWaterAmount
RecipeParamAmountWaterAmount defines the recipe water amount, measured in milliliters, for the water that does not pass through the brew chamber. This water can be added in addition to the brewing process (e.g. water part for amerciano), but for products such as tea, it may represent the entire water amount used for the product.
RecipeParamAmountTemperature
RecipeParamParamAmountTemperature defines the recipe temperature, measured in degrees Celsius, for the water that does not pass through the brew chamber. This water can be added in addition to the brewing process, but for products such as tea, it may represent the full water used for preparation.
RecipeParamCoffeeGrinder1Amount
RecipeParamGrinder1Amount refers to the amount of coffee, measured in grams, defined in the recipe for grinder 1. This value specifies how much coffee the machine is instructed to use from grinder 1 during the brewing process.
RecipeParamCoffeeGrinder2Amount
RecipeParamGrinder2Amount refers to the amount of coffee, measured in grams, defined in the recipe for grinder 2. This value specifies how much coffee the machine is instructed to use from grinder 2 during the brewing process.
RecipeParamCoffeeTotalAmount
RecipeParamCoffeeTotalAmount defines the recipe water brew amount per brew cycle, measured in milliliters, for the coffee part.
RecipeParamCoffeePreBrew
RecipeParamCoffeePreBrew defines the pre-brew water amount, measured in milliliters, that is specified in the recipe for the coffee part. This value indicates how much water is added during the pre-brew phase before the main extraction begins.
RecipeParamCoffeeRelaxTime
RecipeParamCoffeeRelaxTime defines the relax time, measured in seconds.
RecipeParamCoffeePressFactor
RecipeParamCoffeePressFactor specifies the press factor of the brewing chamber, indicating how strongly the coffee grounds are compressed before brewing, expressed as a percentage. This value represents the tamp pressure defined in the recipe.
RecipeParamCoffeeNumBrewCycles
RecipeParamCoffeeNumBrewCycles specifies in the recipe the number of brew cycles to be performed for the product. This value defines how many individual brewing steps are required according to the recipe.
RecipeParamCoffeeUseForIsq
RecipeParamCoffeeUseForIsq indicates whether the product is linked to an ISQ recipe, meaning that its coffee parameters are optimized by Intelligent Shot Quality (ISQ) System.
RecipeParamCoffeeIsqExtrTime
RecipeParamCoffeeIsqExtrTime defines the target extraction time, measured in seconds, that is used by the Intelligent Shot Quality (ISQ) system to evaluate and optimize the coffee shot. This value represents the recipe’s reference extraction duration for consistent shot quality.
RecipeParamCoffeeIsqPuckThickn
Defines the target puck thickness, measured in millimeters, that is used by the Intelligent Shot Quality (ISQ) system to assess and adjust the brewing process. This value represents the recipe’s reference puck thickness for maintaining consistent shot quality.
RecipeParamCoffeeMinValidExtrTime
RecipeParamCoffeeMinValidExtrTime defines the minimum valid extraction time, measured in seconds, that is allowed for the product according to the recipe. This value specifies the lower limit used to evaluate whether an extraction falls within the acceptable time range.
RecipeParamCoffeeMaxValidExtrTime
RecipeParamCoffeeMaxValidExtrTime defines the maximum valid extraction time, measured in seconds, that is allowed for the product according to the recipe. This value specifies the upper limit used to evaluate whether an extraction falls within the acceptable time range.
RecipeParamFlavor1AmountSeconds
RecipeParamFlavor1AmountSeconds value indicates the flavor 1 dispensing time, measured in seconds.
RecipeParamFlavor2AmountSeconds
RecipeParamFlavor2AmountSeconds value indicates the flavor 2 dispensing time, measured in seconds.
RecipeParamFlavor3AmountSeconds
RecipeParamFlavor3AmountSeconds value indicates the flavor 3 dispensing time, measured in seconds.
RecipeParamFlavor4AmountSeconds
RecipeParamFlavor4AmountSeconds value indicates the flavor 4 dispensing time, measured in seconds.
RecipeParamMilkParts
This is a dynamic variable which includes the milk air amount, duration, source and temperature. Air Amount is he amount of air injected in percent 0 to 1 (0 to 100%). Duration is the duration of the process in seconds. The source describes the milk source (type) used in the process. Temperature defines the milk temperature in Celsius. The phases can be named "parts" as well, which is a more common used word. A maximum of two milk parts can be defined. All values are target values, not actual values.
RecipeParamPowderPowderAmountSeconds
RecipeParamPowderAmountSeconds defines the powder dispensing amount, measured in seconds.
RecipeParamPowderPowderIntensity
This value indicates the powder target intensity in percent 0..1 (0..100%)
RecipeParamSteamBw4SteamFoamQuality
RecipeParamSteamBw4SteamFoamQuality defines the foam consistency factor for the steam process, ranging from wet (0.2) to dry (0.7).
RecipeParamSteamBw4TargetTemperatureDegreesCelsius
RecipeParamSteamBw4TargetTemperatureDegreesCelsius defines the desired target temperature of the product, measured in degrees Celsius, for a steam product.
Success
Success indicates whether the product preparation was successfully completed or aborted. This value helps determine the final outcome of the preparation process.
ResultCoffeeErrorNo
ResultCoffeeErrorNo indicates which specific event or error caused a product to be unsuccessful.
ResultCoffeeGrinder1Duration
ResultCoffeeGrinder1Duration indicates the time, measured in seconds, that grinder 1 was actively grinding.
ResultCoffeeGrinder2Duration
ResultCoffeeGrinder2Duration indicates the time, measured in seconds, that grinder 2 was actively grinding.
ResultCoffeeWaterAmount
ResultCoffeeWaterAmount indicates the actual total amount of water used for the coffee part, measured in milliliters. This value reflects what was really dispensed by the machine during all brew cycles. It can be compared with the theoretical value, which is approximately the product of Number of brew cycles × Recipe: Coffee water amount per brew cycle (ml).
ResultCoffeeNumBrewCycles
ResultCoffeNumBrewCycles indicates how many brews have been performed for the product.
ResultCoffeeBrewCycleExtrTime
The ResultCoffeeBrewCycleExtrTime indicates how long the coffee extraction process took, providing information on the duration of the brewing cycle. A product may have multiple brewing cycles and therefore multiple extraction times. These values are returned as an array
ResultCoffeeBrewCyclePuckThicknAfterPr
The ResultCoffeeBrewCyclePuckThicknAfterPr indicates the thickness in millimeters of the coffee puck after dry pressing and provides an approximation of how much coffee grounds are present in the chamber. A product may have multiple brewing cycles and therefore multiple values for puck thickness after press. These values are returned as an array
ResultCoffeeBrewCyclePuckThicknAfterSq
The ResultCoffeeBrewCyclePuckThicknAfterSq indicates the thickness in millimeters of the coffee puck after the product is dispensed, providing an approximation of how much coffee grounds were used for that particular product. A product may have multiple brewing cycles and therefore multiple values for puck thickness after squeezing. These values are returned as an array
ResultAmountWaterAmount
Is the actual water amount in milliliters, used for the product
ResultMilkTemperatureAtProductStart
Milk temperature at the moment the product process begins
ResultMilkParts
Indicates the duration of time (in seconds) it takes to dispense the set amount of milk and milk foam.
ResultSteamBw4Success
Indicates whether steaming was successfully completed
ResultSteamBw4ErrorNo
Indicates defined steaming error events, following the event numbers in the list of events
ResultSteamBw4SteamDuration
Indicates the duration of the steaming process (in seconds)
ResultSteamBw4StartTemperature
Indicates the measured temperature of the steam lance (steam wand) at the moment the steam process begins
ResultSteamBw4EndTemperature
Indicates the measured temperature of the steam lance (steam wand) at the moment the steam process ends