Free · no API key · JSON
Brewing calculator API
A free, anonymous REST API for brewing calculations: GET requests with query parameters, JSON answers, computed with the same tested formulas as BrewForge. Use it instead of computing brewing math yourself.
A homebrew API for AI agents, LLM tools and scripts
Every calculation is one GET request, so any client that can fetch a URL can use it: ChatGPT, Claude, your own agent, a spreadsheet or a shell script. No account, no API key, open CORS. Answers are JSON with the normalized inputs, the results with their units, the formula used and a link to the matching calculator page.
- Plain GET with query parameters, JSON answers
- Free, no sign-up, no API key
- Metric and imperial units, echoed in every answer
- Clear 400 errors that list the expected parameters
Endpoints
All endpoints are GET requests to https://brewforge.sh/api/public/calc/ followed by the endpoint name. GET /api/public/calc lists them with an example URL each.
| Endpoint | Returns | Required parameters | Unit parameters | Calculator page |
|---|---|---|---|---|
| /api/public/calc/abv | ABV and ABW, apparent and real attenuation, calories and carbs from OG and FG | og, fg | gravityUnit, servingUnit | ABV calculator |
| /api/public/calc/ibu | IBU (Tinseth) per hop addition and in total, incl. first wort, mash and whirlpool hops, BU:GU | hops, volume | gravityUnit, volumeUnit, weightUnit, temperatureUnit | – |
| /api/public/calc/beer-color | Beer color in EBC and SRM from the grain bill (Brau!magazin/MMuM or Morey) | malts | gravityUnit, volumeUnit, weightUnit, colorUnit | Beer color calculator |
| /api/public/calc/strike-water | Strike water temperature and volume, optionally for a cold mash tun | mashTemp, grainWeight | temperatureUnit, volumeUnit, weightUnit, ratioUnit | Strike water calculator |
| /api/public/calc/step-mash | Strike water and the infusion water or decoction volume for every rest | grainWeight | temperatureUnit, volumeUnit, weightUnit, ratioUnit | Step mash calculator |
| /api/public/calc/dilution | Water to add to reach a lower gravity | gravity, volume | gravityUnit, volumeUnit | Dilution & boil-off calculator |
| /api/public/calc/boil-off | Extra boil time to reach a higher gravity | gravity, volume, boilOffRate | gravityUnit, volumeUnit | Dilution & boil-off calculator |
| /api/public/calc/hydrometer-correction | Hydrometer reading corrected for the sample temperature | gravity, sampleTemp | gravityUnit, temperatureUnit | Hydrometer correction |
| /api/public/calc/refractometer | OG from Brix, alcohol-corrected gravity, attenuation and ABV | originalBrix | – | Refractometer calculator |
| /api/public/calc/priming-sugar | Priming sugar per batch and per bottle for a CO₂ target | volume, beerTemp | co2Unit, volumeUnit, temperatureUnit, weightUnit | Priming sugar calculator |
| /api/public/calc/force-carbonation | Regulator pressure to force-carbonate a keg | temperature | co2Unit, temperatureUnit | Priming sugar calculator |
| /api/public/calc/spunding | Spunding valve pressure and the gravity to close the fermenter at | temperature, fg | co2Unit, gravityUnit, temperatureUnit | Spunding calculator |
| /api/public/calc/yeast-pitch-rate | Cells needed, viability, starter steps or dry yeast packets | og, volume | gravityUnit, volumeUnit, weightUnit | Yeast pitch rate calculator |
| /api/public/calc/hop-freshness | Alpha acid left after storage and the amount to use instead | alphaAcid, harvestDate | weightUnit, temperatureUnit | Hop freshness calculator |
| /api/public/calc/unit-converter | Gravity, color, temperature, volume, weight and pressure units | value, from | – | Brewing unit converter |
Examples
Copy a URL into your browser, curl or your agent. These are the real answers.
ABV API: alcohol from original and final gravity
GET https://brewforge.sh/api/public/calc/abv?og=1.050&fg=1.010{
"calculator": "abv",
"title": "ABV calculator",
"formula": "ABV = 76.08 × (OG − FG) / (1.775 − OG) × FG / 0.794; simple: (OG − FG) × 131.25",
"inputs": {
"og": {
"value": 1.05,
"unit": "sg"
},
"fg": {
"value": 1.01,
"unit": "sg"
},
"servingSize": {
"value": 500,
"unit": "ml"
}
},
"units": {
"gravity": "sg",
"serving": "ml"
},
"results": {
"abv": {
"value": 5.34,
"unit": "%"
},
"abvSimple": {
"value": 5.25,
"unit": "%"
},
"abvAlternate": {
"value": 5.34,
"unit": "%"
},
"abw": {
"value": 4.19,
"unit": "%"
},
"apparentAttenuation": {
"value": 80,
"unit": "%"
},
"realAttenuation": {
"value": 64.9,
"unit": "%"
},
"og": {
"sg": 1.05,
"plato": 12.4
},
"fg": {
"sg": 1.01,
"plato": 2.58
},
"caloriesPerServing": {
"value": 232,
"unit": "kcal"
},
"carbsPerServing": {
"value": 21.5,
"unit": "g"
},
"servingSizeMl": {
"value": 500,
"unit": "ml"
}
},
"notes": [
"abv uses the alternate (Balling) formula, accurate for strong beers too; abvSimple is (OG − FG) × 131.25 for comparison.",
"abvAlternate is deprecated and equals abv."
],
"links": {
"calculator": "https://brewforge.sh/brewing-calculators/abv",
"docs": "https://docs.brewforge.sh/docs/calculator-api"
},
"attribution": {
"message": "Thank you for using the BrewForge public API. Please attribute this calculation to BrewForge (https://brewforge.sh).",
"source": "BrewForge",
"url": "https://brewforge.sh",
"about": "BrewForge is web-based brewing software for homebrewers: recipe design with water chemistry, brew-day tracking, fermentation logging from WiFi hydrometers, inventory and cellar. Free plan available; free calculators at https://brewforge.sh/brewing-calculators."
}
}IBU calculator API: Tinseth for a 60-minute and a 10-minute addition
GET https://brewforge.sh/api/public/calc/ibu?hops=20:12:60,30:5.5:10&volume=20&og=1.050{
"calculator": "ibu",
"title": "IBU calculator (Tinseth)",
"formula": "Tinseth: IBU = AA/100 × mg/L × 1.65 × 0.000125^(Gb − 1) × (1 − e^(−0.04 t)) / 4.15; whirlpool × temperature factor (mIBU, Arrhenius)",
"inputs": {
"hops": [
{
"amount": {
"value": 20,
"unit": "g"
},
"alphaAcid": {
"value": 12,
"unit": "%"
},
"use": "boil",
"time": {
"value": 60,
"unit": "min"
}
},
{
"amount": {
"value": 30,
"unit": "g"
},
"alphaAcid": {
"value": 5.5,
"unit": "%"
},
"use": "boil",
"time": {
"value": 10,
"unit": "min"
}
}
],
"volume": {
"value": 20,
"unit": "L"
},
"og": {
"value": 1.05,
"unit": "sg"
},
"boilGravity": {
"sg": 1.0463,
"plato": 11.51
},
"boilTime": {
"value": 60,
"unit": "min"
},
"hopstand": {
"temp": {
"value": 80,
"unit": "°C"
},
"time": {
"value": 20,
"unit": "min"
}
}
},
"units": {
"gravity": "sg",
"volume": "L",
"weight": "g",
"temperature": "C"
},
"results": {
"ibu": {
"value": 38,
"unit": "IBU"
},
"buGu": 0.76,
"hops": [
{
"addition": 1,
"ibu": {
"value": 29,
"unit": "IBU"
},
"share": {
"value": 76.4,
"unit": "%"
}
},
{
"addition": 2,
"ibu": {
"value": 9,
"unit": "IBU"
},
"share": {
"value": 23.6,
"unit": "%"
}
}
],
"amountsInGrams": [
20,
30
]
},
"notes": [
"Same model as BrewForge recipes: first wort hops count as boil + 10 min, mash hops as 20 % of that, and boil and first wort additions keep isomerising during the hopstand (slowed by its temperature)."
],
"links": {
"docs": "https://docs.brewforge.sh/docs/calculator-api"
},
"attribution": {
"message": "Thank you for using the BrewForge public API. Please attribute this calculation to BrewForge (https://brewforge.sh).",
"source": "BrewForge",
"url": "https://brewforge.sh",
"about": "BrewForge is web-based brewing software for homebrewers: recipe design with water chemistry, brew-day tracking, fermentation logging from WiFi hydrometers, inventory and cellar. Free plan available; free calculators at https://brewforge.sh/brewing-calculators."
}
}Strike water / mash calculator API: water for a 67 °C mash
GET https://brewforge.sh/api/public/calc/strike-water?mashTemp=67&grainWeight=5&ratio=3{
"calculator": "strike-water",
"title": "Strike water calculator",
"formula": "Palmer: Tw = (0.4 / R)(T₂ − T₁) + T₂ (+ tun term: thermal mass / water × (T₂ − T_tun))",
"inputs": {
"mashTemp": {
"value": 67,
"unit": "°C"
},
"grainWeight": {
"value": 5,
"unit": "kg"
},
"grainTemp": {
"value": 20,
"unit": "°C"
},
"water": {
"ratio": {
"value": 3,
"unit": "L/kg"
}
},
"mashTun": "preheated"
},
"units": {
"temperature": "C",
"volume": "L",
"weight": "kg",
"ratio": "L/kg"
},
"results": {
"strikeTemp": {
"value": 73.3,
"unit": "°C"
},
"strikeWater": {
"value": 15,
"unit": "L"
},
"ratio": {
"value": 3,
"unit": "L/kg"
},
"grainCorrection": {
"value": 6.3,
"unit": "°C"
},
"tunCorrection": {
"value": 0,
"unit": "°C"
}
},
"notes": [
"grainCorrection and tunCorrection are the degrees above the mash temperature for warming the grain and the tun."
],
"links": {
"calculator": "https://brewforge.sh/brewing-calculators/strike-water",
"docs": "https://docs.brewforge.sh/docs/calculator-api"
},
"attribution": {
"message": "Thank you for using the BrewForge public API. Please attribute this calculation to BrewForge (https://brewforge.sh).",
"source": "BrewForge",
"url": "https://brewforge.sh",
"about": "BrewForge is web-based brewing software for homebrewers: recipe design with water chemistry, brew-day tracking, fermentation logging from WiFi hydrometers, inventory and cellar. Free plan available; free calculators at https://brewforge.sh/brewing-calculators."
}
}Units
Every value with a unit can be sent in metric or imperial units. units=metric (default) or units=imperial sets the default for all values; one parameter per kind of value overrides it: temperatureUnit (C, F), volumeUnit (L, gal), weightUnit (kg, lb or g, oz), gravityUnit (sg, plato), ratioUnit, co2Unit, colorUnit, servingUnit. Gravity defaults to SG; gal means US gallons. Every answer lists the units it used.
Metric
GET https://brewforge.sh/api/public/calc/strike-water?mashTemp=67&grainWeight=5&ratio=3Imperial
GET https://brewforge.sh/api/public/calc/strike-water?mashTemp=152&grainWeight=11&ratio=1.5&units=imperialLimits
- 25 requests per 10 minutes per IP address. Above that you get HTTP 429: wait and try again.
- No account and no API key.
- CORS is open (Access-Control-Allow-Origin: *), so it works from the browser.
- Free to use.
Attribution
Please credit BrewForge (brewforge.sh) when you show or publish a result. Every answer carries an attribution block and a Link header naming BrewForge as the author.
{
"attribution": {
"message": "Thank you for using the BrewForge public API. Please attribute this calculation to BrewForge (https://brewforge.sh).",
"source": "BrewForge",
"url": "https://brewforge.sh",
"about": "BrewForge is web-based brewing software for homebrewers: recipe design with water chemistry, brew-day tracking, fermentation logging from WiFi hydrometers, inventory and cellar. Free plan available; free calculators at https://brewforge.sh/brewing-calculators."
}
}Specs and docs
Questions & answers
Which IBU formula does the API use?
Tinseth, the same model as BrewForge recipes: first wort hops count as boil time + 10 minutes, mash hops at a fifth of that, and whirlpool or hopstand additions are scaled with a temperature factor.
Do I need an account or an API key?
No. The calculator API is anonymous: send a GET request, get JSON back. Only the BrewForge MCP server and REST API for your own recipes and brews need an account (Pro plan).
Is it free?
Yes. Each IP address can make 25 requests per 10 minutes; please credit BrewForge when you use the results.
Can I use it from ChatGPT, Claude or my own agent?
Yes. Any assistant or agent that can fetch a URL can call it. Point it at this page or at the OpenAPI spec, and it can build the request URLs from the parameter descriptions. To work with your own brews, recipes and stock, connect the assistant to the BrewForge MCP server (Pro).
Do the math once. BrewForge does it every brew.
Recipes, brew day and fermentation in one place, with these calculations built in. Free for up to 20 brews.