Pro API
The Pro API lets you interact with your brewerys' data, i.e. to enable custom build dashboards.
Setup
To enable the Pro API: Got to your brewerys admin page (https://bricks.bierbot.com/#/brewery/admin), locate the "Pro-API" section and toggle the enable toggle to on. The Pro-API key and API key become available. The latter is the normal API key you've used for setting up all your Brick. The first one is an additional API key we need for communicating with the API.

Usage
Note: This requires at least a PRO membership.
All endpoints live under https://bricks.bierbot.com and take your apikey and proapikey as query parameters. Every call — reading or writing — counts once against the same monthly request budget of your membership. You can see how many requests you have left on the brewery admin page; the budget refills at the start of each month.
If you're missing an endpoint, please reach out using the blue feedback button, the contact form or the forum.
Get details for a given device.
3iHUDCxPfoo42ZyrmmAzaAaAa4242CxPfoo42Z42RqUiO7eDRe3xKyKgXtwcOK
GET /api/device HTTP/1.1
Accept: */*
OK
{}List all brews of a brewery, newest first.
Returns ids and a summary only. The full documents are large — a brew carries its recipe, its steps and its calibration — so use /api/brew/{brewId} for the one you are interested in.
The apikey of your brewery.
3iHUDCxPfoo42ZyrmmAzYour Pro-API key.
aAaAa4242CxPfoo42ZyrmmAzOK
Use this with /api/brew/{brewId}.
Zf1f4Utc1kH6DWQSmXn5Name of the recipe being brewed.
Hazy IPAWhether this brew is currently running.
e.g. mashing, boiling, fermenting.
mashingStart of the brew, in milliseconds since epoch.
Index of the current recipe step.
Index of the current sub step.
The process steps of this brew.
Missing or unknown api key.
Monthly request budget exhausted.
GET /api/brews?apikey=text&proapikey=text HTTP/1.1
Accept: */*
[
{
"id": "Zf1f4Utc1kH6DWQSmXn5",
"name": "Hazy IPA",
"active": true,
"activeState": "mashing",
"startedMs": 1,
"currentStepIndex": 1,
"currentSubStepIndex": 1,
"steps": [
{}
]
}
]Get the full document of a single brew, including its recipe, process steps and calibration.
GET /api/brew?brewid=... works as well, mirroring /api/device.
The id of the brew, as returned by /api/brews.
Zf1f4Utc1kH6DWQSmXn5The apikey of your brewery.
3iHUDCxPfoo42ZyrmmAzYour Pro-API key.
aAaAa4242CxPfoo42ZyrmmAzOK
Missing api key or brew id.
No such brew in this brewery.
Monthly request budget exhausted.
GET /api/brew/{brewId}?apikey=text&proapikey=text HTTP/1.1
Accept: */*
{}Controlling your brewery
The endpoints above read. The two below change what your hardware does — they are the same commands the buttons in the app send, so anything you trigger here behaves exactly as if you had pressed it yourself. Both are POST for that reason.
Your Pro-API key is enough to switch heating on. Treat it like a password: do not put it in a URL you paste into a support ticket, a screenshot, or a public repository. The key is created once, when you first enable the Pro API, and there is no self-service way to replace it yet — if yours has leaked, please get in touch.
Advance, stop, or mark boiling reached on a running brew.
This is the same command the buttons in the app send, so anything you start here behaves exactly as if you had pressed it yourself.
POST, because it changes what your hardware does.
The id of the brew to control.
Zf1f4Utc1kH6DWQSmXn5The apikey of your brewery.
3iHUDCxPfoo42ZyrmmAzYour Pro-API key.
aAaAa4242CxPfoo42ZyrmmAznextstep advances to the next recipe step. stop ends the brew. boiling marks the boiling temperature as reached, which starts the boil timer.
nextstepPossible values: OK
The brew after the command was applied.
Missing api key, or an unknown command.
No such brew in this brewery.
The brew is not in a state that accepts this command, e.g. boiling on a brew that has no boiling step.
Monthly request budget exhausted.
POST /api/brew/{brewId}/control?apikey=text&proapikey=text HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 22
{
"command": "nextstep"
}{
"ok": true,
"brew": {}
}Set the target temperature and/or the stirring of a device.
Only these two fields can be set — this is a control surface, not a document editor. Everything else about the device stays read-only.
The id of the device, as returned by /api/devices.
RqUiO7eDRe3xKyKgXtwcThe apikey of your brewery.
3iHUDCxPfoo42ZyrmmAzYour Pro-API key.
aAaAa4242CxPfoo42ZyrmmAzSend tempCelsius, circulate, or both. Sending neither is a 400.
Target temperature in degree celsius.
67Stirring / circulation: 1 on, 0 off.
1Possible values: OK
The device's new target and control state.
Missing api key, or neither tempCelsius nor circulate was sent.
No such device in this brewery.
Monthly request budget exhausted.
POST /api/device/{deviceId}/target?apikey=text&proapikey=text HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 32
{
"tempCelsius": 67,
"circulate": 1
}{
"ok": true,
"device": {}
}Last updated
Was this helpful?