Skip to main content
Everything the Brewgravity web app can do with your data, you can do over HTTP. The API is what the MCP server runs on, and it is stable enough to script against.

Base URL

All endpoints below are under /v1.

Design

There is no user_id parameter anywhere, because there does not need to be one. Your API key identifies you, and every query is scoped to your account before it runs. An id belonging to someone else returns 404 — never 403, which would confirm the row exists.
Kilograms, grams, litres, degrees Celsius, minutes. The unit preference in the app is a display setting and does not affect the API. Gravity readings are specific gravity, with the unit you entered recorded alongside.
A hop is created at POST /v1/recipes/{recipeId}/hops, but updated and deleted at /v1/hops/{id}. Ids are globally unique, so once you have one you do not need to remember what it belongs to.
GET /v1/recipes/{id}/stats recalculates from the current ingredients every time. There is no cache to invalidate and no stale number to work around.

A first request

Building a recipe end to end

1

Create the recipe

Keep the returned id.
2

Add ingredients

3

Check the numbers

Returns OG, FG, ABV, IBU, SRM, attenuation, calories, and BU:GU.
4

Brew it

What is not in the REST surface

POST /v1/chat streams a response and is built for the app’s chat panel rather than for scripting. The threads themselves are ordinary REST resources under /v1/chats, so listing and reading past conversations works normally.

Next

Authentication

Create an API key and make your first authenticated call.

Errors

Status codes, error shapes, and rate limits.