Breaking changes can come at any time as the development of the API is not finalized. Please keep yourself updated on the API-documentation.
Data returned from the API will be in metric units.
Authorization header must consist of your userid:apikey (base64 encoded).
Example:
UserId: xyz123
API-key: 1234567890123456789012345678901234567890abcd
Base 64 encode: "xyz123:1234567890123456789012345678901234567890abcd"
curl -H "authorization: Basic eHl6MTIzOjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTBhYmNk" \
https://api.brewfather.app/v1/batches
In Postman, you can configure Basic Authorization by clicking the Authorization tab, selecting Basic Auth from the drop-down selector, and then typing the username (userid from above) and password (api-key form above) on the right of the colon on each row.
The API supports HTTPS traffic only (for security reasons).
In the Settings page you can click GENERATE in the API-section to create your API-key. You can currently only have one API-key per account.
Scopes control what the API-key can access. Currently you can choose:
When you generate your API-key you can select different scopes that the API-key can access, when new scopes are added you might need to generate a new key with the new scopes to allow access to the new scopes.
Currently you can do a maximum of 150 calls per hour per API-key.
Rate limits can be changed at any time, build your integration to handle http code 429 Too Many Requests, response will include a Retry-After
header.
Get Batches
https://api.brewfather.app/v1/batches
This endpoint allows you to list your batches. By default it returns batches with status = "Planning". Use the query parameter "status" to query for a given status.
Query Parameters
Array of additional fields to include when complete is false. Example "recipe.fermentation,recipe.mash" to include the fermentation and mash profile.
Valid values "True" or "False". Inlcudes all the data in the result if True. Defaults to "False". If False only Name, Batch Number, Status, Brewer, Brew Date, Recipe Name is returned.
Valid values "Planning", "Brewing", "Fermenting", "Conditioning", "Completed", "Archived". Defaults to "Planning".
Amount of documents to skip. Defaults to 0.
Amount of documents to fetch. Defaults to 10. Max 50.
[ array of Brewfather BATCH JSON ]
Get Batch
https://api.brewfather.app/v1/batches/:id
This endpoint allows you to fetch a specific batch.
:id is the _id property from the batch JSON.
Query Parameters
Array of fields to include. Example "recipe.fermentation,recipe.mash" to include the fermentation and mash profile. When omitted all fields are included. Default fields are included in addition to the requested fields.
{ Brewfather BATCH JSON }
Update Batch
https://api.brewfather.app/v1/batches/:id
This endpoint allows you to update specific fields of a specific batch. Currently support setting the status, please let us know what fields you would like to be able to update via the API.
Query Parameters
Valid values "Planning", "Brewing", "Fermenting", "Conditioning", "Completed", "Archived".
Get Batch Last Reading
https://api.brewfather.app/v1/batches/:batch_id/readings/last
This endpoint allows you to fetch the latest reading recieved
:batch_id is the _id property from the batch JSON.
Example (Time in milliseconds):
{
"battery": 4.082377,
"id": "GREEN",
"rssi": -75,
"temp": 5.1,
"type": "iSpindel",
"sg": 1.039,
"time": 1572383500131,
"angle": 32.8009
}
Get Batch All Readings
https://api.brewfather.app/v1/batches/:batch_id/readings
This endpoint allows you to fetch all readings stored in a batch. If you only need the latest reading use the call above.
:batch_id is the _id property from the batch JSON.
Get Batch Brew Tracker
https://api.brewfather.app/v1/batches/:batch_id/brewtracker
This endpoint allows you to fetch the latest stored status of the brewtracker. Brew tracker does not get updated every second, position is calculated from start time of the stage. Brewfather triggers an update/save at certain events.
:batch_id is the _id property from the batch JSON.
Get Recipes
https://api.brewfather.app/v1/recipes
This endpoint allows you to list your recipes.
Query Parameters
Array of additional fields to include when complete is false. Example "fermentation,mash" to include the fermentation and mash profile.
Valid values "True" or "False". Inlcudes all the data in the result if True. Defaults to "False". If False only Name, Author, Style Name, Type is returned.
Amount of documents to skip. Defaults to 0.
Amount of documents to fetch. Defaults to 10. Max 50.
[ array of Brewfather RECIPE JSON ]
Get Recipe
https://api.brewfather.app/v1/recipes/:id
This endpoint allows you to fetch a specific recipe.
:id is the _id property from the recipe JSON.
Query Parameters
Array of additional fields to include. Example "fermentation,mash" to include the fermentation and mash profile. When omitted all fields are included. Default fields are included in addition to the requested fields.
{ Brewfather RECIPE JSON }
Get Fermentables
https://api.brewfather.app/v1/inventory/fermentables
This endpoint allows you to list your inventory items. It will only list items you have added manually or edited the default values for, or added an inventory amount on.
Query Parameters
inventory_negative
optional
If true, only include items with inventory < 0
Array of additional fields to include when complete is false.
Valid values "True" or "False". Inlcudes all the data in the result if True. Defaults to "False".
Valid valuesValid values "True" or "False". If true, only include items with inventory > 0
Amount of documents to skip. Defaults to 0.
Amount of documents to fetch. Defaults to 10. Max 50.
[ array of Brewfather JSON ]
Get Fermentable
https://api.brewfather.app/v1/inventory/fermentables/:id
This endpoint allows you to fetch a specific item.
Query Parameters
Array of fields to include. When omitted all fields are included. Default fields are included in addition to the requested fields.
Update Fermentable
https://api.brewfather.app/v1/inventory/fermentables/:id
This endpoint allows you to update specific fields of a specific item.
Query Parameters
Adjust the existing inventory amount by the given amount.
Set the inventory amount to the given value. (inventory_adjust is ignored if you send in a inventory value)
Get Hops
https://api.brewfather.app/v1/inventory/hops
This endpoint allows you to list your inventory items. It will only list items you have added manually or edited the default values for, or added an inventory amount on.
Query Parameters
Array of additional fields to include when complete is false.
Valid values "True" or "False". Inlcudes all the data in the result if True. Defaults to "False".
Valid valuesValid values "True" or "False". If true, only include items with inventory > 0
Amount of documents to skip. Defaults to 0.
Amount of documents to fetch. Defaults to 10. Max 50.
[ array of Brewfather JSON ]
Get Hop
https://api.brewfather.app/v1/inventory/hops/:id
This endpoint allows you to fetch a specific item.
Query Parameters
Array of fields to include. When omitted all fields are included. Default fields are included in addition to the requested fields.
Update Hop
https://api.brewfather.app/v1/inventory/hops/:id
This endpoint allows you to update specific fields of a specific item.
Query Parameters
Adjust the existing inventory amount by the given amount.
Set the inventory amount to the given value. (inventory_adjust is ignored if you send in a inventory value)
Get Miscs
https://api.brewfather.app/v1/inventory/miscs
This endpoint allows you to list your inventory items. It will only list items you have added manually or edited the default values for, or added an inventory amount on.
Query Parameters
Array of additional fields to include when complete is false.
Valid values "True" or "False". Inlcudes all the data in the result if True. Defaults to "False".
Valid valuesValid values "True" or "False". If true, only include items with inventory > 0
Amount of documents to skip. Defaults to 0.
Amount of documents to fetch. Defaults to 10. Max 50.
[ array of Brewfather JSON ]
Get Misc
https://api.brewfather.app/v1/inventory/miscs/:id
This endpoint allows you to fetch a specific item.
Query Parameters
Array of fields to include. When omitted all fields are included. Default fields are included in addition to the requested fields.
Update Misc
https://api.brewfather.app/v1/inventory/miscs/:id
This endpoint allows you to update specific fields of a specific item.
Query Parameters
Adjust the existing inventory amount by the given amount.
Set the inventory amount to the given value. (inventory_adjust is ignored if you send in a inventory value)
Get Yeasts
https://api.brewfather.app/v1/inventory/yeasts
This endpoint allows you to list your inventory items. It will only list items you have added manually or edited the default values for, or added an inventory amount on.
Query Parameters
Array of additional fields to include when complete is false.
Valid values "True" or "False". Inlcudes all the data in the result if True. Defaults to "False".
Valid valuesValid values "True" or "False". If true, only include items with inventory > 0
Amount of documents to skip. Defaults to 0.
Amount of documents to fetch. Defaults to 10. Max 50.
[ array of Brewfather JSON ]
Get Yeast
https://api.brewfather.app/v1/inventory/yeasts/:id
This endpoint allows you to fetch a specific item.
Query Parameters
Array of fields to include. When omitted all fields are included. Default fields are included in addition to the requested fields.
Update Yeast
https://api.brewfather.app/v1/inventory/yeasts/:id
This endpoint allows you to update specific fields of a specific item.
Query Parameters
Adjust the existing inventory amount by the given amount.
Set the inventory amount to the given value. (inventory_adjust is ignored if you send in a inventory value)