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.

EndpointReturnsRequired parametersUnit parametersCalculator page
/api/public/calc/abvABV and ABW, apparent and real attenuation, calories and carbs from OG and FGog, fggravityUnit, servingUnitABV calculator
/api/public/calc/ibuIBU (Tinseth) per hop addition and in total, incl. first wort, mash and whirlpool hops, BU:GUhops, volumegravityUnit, volumeUnit, weightUnit, temperatureUnit–
/api/public/calc/beer-colorBeer color in EBC and SRM from the grain bill (Brau!magazin/MMuM or Morey)maltsgravityUnit, volumeUnit, weightUnit, colorUnitBeer color calculator
/api/public/calc/strike-waterStrike water temperature and volume, optionally for a cold mash tunmashTemp, grainWeighttemperatureUnit, volumeUnit, weightUnit, ratioUnitStrike water calculator
/api/public/calc/step-mashStrike water and the infusion water or decoction volume for every restgrainWeighttemperatureUnit, volumeUnit, weightUnit, ratioUnitStep mash calculator
/api/public/calc/dilutionWater to add to reach a lower gravitygravity, volumegravityUnit, volumeUnitDilution & boil-off calculator
/api/public/calc/boil-offExtra boil time to reach a higher gravitygravity, volume, boilOffRategravityUnit, volumeUnitDilution & boil-off calculator
/api/public/calc/hydrometer-correctionHydrometer reading corrected for the sample temperaturegravity, sampleTempgravityUnit, temperatureUnitHydrometer correction
/api/public/calc/refractometerOG from Brix, alcohol-corrected gravity, attenuation and ABVoriginalBrix–Refractometer calculator
/api/public/calc/priming-sugarPriming sugar per batch and per bottle for a CO₂ targetvolume, beerTempco2Unit, volumeUnit, temperatureUnit, weightUnitPriming sugar calculator
/api/public/calc/force-carbonationRegulator pressure to force-carbonate a kegtemperatureco2Unit, temperatureUnitPriming sugar calculator
/api/public/calc/spundingSpunding valve pressure and the gravity to close the fermenter attemperature, fgco2Unit, gravityUnit, temperatureUnitSpunding calculator
/api/public/calc/yeast-pitch-rateCells needed, viability, starter steps or dry yeast packetsog, volumegravityUnit, volumeUnit, weightUnitYeast pitch rate calculator
/api/public/calc/hop-freshnessAlpha acid left after storage and the amount to use insteadalphaAcid, harvestDateweightUnit, temperatureUnitHop freshness calculator
/api/public/calc/unit-converterGravity, color, temperature, volume, weight and pressure unitsvalue, 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=3

Imperial

GET https://brewforge.sh/api/public/calc/strike-water?mashTemp=152&grainWeight=11&ratio=1.5&units=imperial

Limits

  • 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."
  }
}

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.

Create free account