# Response Types

## Response Types

This section describes the JSON objects returned by the API. All data is returned in **metric units** (liters, kilograms, grams, Celsius, SG). Properties are returned in alphabetical key order for list endpoints.

### Batch Object

Returned by `GET /v2/batches` and `GET /v2/batches/:id`.

#### Core Fields

| Field     | Type         | Description                                                                             |
| --------- | ------------ | --------------------------------------------------------------------------------------- |
| `_id`     | string       | Unique batch identifier                                                                 |
| `name`    | string\|null | Batch name                                                                              |
| `batchNo` | number\|null | Batch number                                                                            |
| `status`  | string       | Current status. See [Batch Status](https://docs.brewfather.app/enums#batch-status) enum |
| `brewer`  | string\|null | Brewer name                                                                             |
| `hidden`  | boolean      | Whether batch is hidden                                                                 |
| `_parent` | string\|null | Parent batch ID (present for rebrews)                                                   |
| `img_url` | string       | Auto-generated image URL (present when image exists)                                    |

#### Dates

| Field                   | Type   | Description                            |
| ----------------------- | ------ | -------------------------------------- |
| `brewDate`              | number | Brew day timestamp (Unix milliseconds) |
| `fermentationStartDate` | number | Fermentation start timestamp           |
| `bottlingDate`          | number | Bottling/kegging timestamp             |

#### Recipe

| Field    | Type                     | Description                    |
| -------- | ------------------------ | ------------------------------ |
| `recipe` | [Recipe](#recipe-object) | The recipe used for this batch |

#### Measured Volumes

| Field                    | Type         | Description                        |
| ------------------------ | ------------ | ---------------------------------- |
| `measuredBatchSize`      | number       | Fermenter volume in liters         |
| `measuredKettleSize`     | number\|null | Post-boil volume in liters         |
| `measuredBoilSize`       | number\|null | Pre-boil volume in liters          |
| `measuredBoilTime`       | number       | Actual boil time in minutes        |
| `measuredBottlingSize`   | number\|null | Volume at bottling in liters       |
| `measuredBottlingTemp`   | number       | Temperature at bottling in Celsius |
| `measuredFermenterTopUp` | number\|null | Water added to fermenter in liters |

#### Measured Gravities

| Field                      | Type         | Description                         |
| -------------------------- | ------------ | ----------------------------------- |
| `measuredOg`               | number\|null | Original Gravity in SG (e.g. 1.050) |
| `measuredFg`               | number\|null | Final Gravity in SG (e.g. 1.012)    |
| `measuredFirstWortGravity` | number\|null | First wort gravity in SG            |
| `measuredPreBoilGravity`   | number\|null | Pre-boil gravity in SG              |
| `measuredPostBoilGravity`  | number\|null | Post-boil gravity in SG             |
| `measuredMashPh`           | number\|null | Mash pH (0–14)                      |

#### Estimated Values

| Field                   | Type         | Description                         |
| ----------------------- | ------------ | ----------------------------------- |
| `estimatedOg`           | number       | Estimated original gravity          |
| `estimatedFg`           | number       | Estimated final gravity             |
| `estimatedIbu`          | number       | Estimated IBU                       |
| `estimatedColor`        | number       | Estimated color in SRM              |
| `estimatedBuGuRatio`    | number\|null | Estimated BU:GU ratio               |
| `estimatedRbRatio`      | number\|null | Estimated Relative Bitterness Ratio |
| `estimatedTotalGravity` | number       | Estimated total gravity points      |

#### Calculated Values

| Field                          | Type         | Description                               |
| ------------------------------ | ------------ | ----------------------------------------- |
| `measuredAttenuation`          | number\|null | Measured attenuation percentage           |
| `measuredEfficiency`           | number\|null | Measured brewhouse efficiency percentage  |
| `measuredKettleEfficiency`     | number\|null | Measured kettle efficiency percentage     |
| `measuredMashEfficiency`       | number\|null | Measured mash efficiency percentage       |
| `measuredConversionEfficiency` | number\|null | Measured conversion efficiency percentage |
| `measuredAbv`                  | number\|null | Measured ABV percentage                   |

#### Carbonation

| Field               | Type         | Description                                                                                         |
| ------------------- | ------------ | --------------------------------------------------------------------------------------------------- |
| `carbonationTemp`   | number\|null | Carbonation temperature in Celsius                                                                  |
| `carbonationType`   | string\|null | Carbonation method. See [Carbonation Type](https://docs.brewfather.app/enums#carbonation-type) enum |
| `carbonationForce`  | number\|null | Force carbonation pressure in PSI                                                                   |
| `primingSugarEquiv` | number\|null | Priming sugar equivalent in g/L                                                                     |

#### Batch Ingredients

Batch ingredient arrays contain the same fields as their base ingredient objects plus additional inventory-tracking fields: `removedFromInventory` (boolean), `removedAmount` (number), `removedUnit` (string), `inventoryUnit` (string|null), `checked` (number|boolean), and `notInRecipe` (boolean).

| Field                    | Type                                  | Description                                                            |
| ------------------------ | ------------------------------------- | ---------------------------------------------------------------------- |
| `batchFermentables`      | [Fermentable](#fermentable-object)\[] | Fermentables with inventory tracking                                   |
| `batchHops`              | [Hop](#hop-object)\[]                 | Hops with inventory tracking                                           |
| `batchMiscs`             | [Misc](#misc-object)\[]               | Misc ingredients with inventory tracking                               |
| `batchYeasts`            | [Yeast](#yeast-object)\[]             | Yeasts with inventory tracking                                         |
| `batchFermentablesLocal` | [Fermentable](#fermentable-object)\[] | Fermentables not matched to the user's personal inventory database     |
| `batchHopsLocal`         | [Hop](#hop-object)\[]                 | Hops not matched to the user's personal inventory database             |
| `batchMiscsLocal`        | [Misc](#misc-object)\[]               | Misc ingredients not matched to the user's personal inventory database |
| `batchYeastsLocal`       | [Yeast](#yeast-object)\[]             | Yeasts not matched to the user's personal inventory database           |

#### Notes and Logs

| Field          | Type                                              | Description                  |
| -------------- | ------------------------------------------------- | ---------------------------- |
| `notes`        | [Batch Note](#batch-note-object)\[]               | Timestamped batch notes      |
| `batchNotes`   | string                                            | General batch notes          |
| `tasteLogs`    | [Taste Log](#taste-log-object)\[]                 | Taste evaluation entries     |
| `tasteRating`  | number\|null                                      | Overall taste rating (1–5)   |
| `tasteNotes`   | string                                            | Overall tasting notes        |
| `measurements` | [Batch Measurement](#batch-measurement-object)\[] | Batch measurements           |
| `info`         | string                                            | Additional batch information |

#### Cost

| Field  | Type                 | Description                  |
| ------ | -------------------- | ---------------------------- |
| `cost` | [Cost](#cost-object) | Cost breakdown for the batch |

#### Events

| Field             | Type                                  | Description                             |
| ----------------- | ------------------------------------- | --------------------------------------- |
| `events`          | [Batch Event](#batch-event-object)\[] | Batch events and notifications          |
| `attachmentCount` | number                                | Number of file attachments on the batch |

***

### Recipe Object

Returned by `GET /v2/recipes` and `GET /v2/recipes/:id`. Also nested inside batch objects as `recipe`.

#### Core Fields

| Field     | Type         | Description                                                                           |
| --------- | ------------ | ------------------------------------------------------------------------------------- |
| `_id`     | string       | Unique recipe identifier                                                              |
| `name`    | string       | Recipe name                                                                           |
| `author`  | string\|null | Recipe author                                                                         |
| `type`    | string       | Brewing method. See [Recipe Type](https://docs.brewfather.app/enums#recipe-type) enum |
| `teaser`  | string       | Short description or tagline                                                          |
| `img_url` | string       | Auto-generated image URL (present when image exists)                                  |
| `hidden`  | boolean      | Whether recipe is hidden                                                              |

#### Style

| Field             | Type                         | Description                                 |
| ----------------- | ---------------------------- | ------------------------------------------- |
| `style`           | [Style](#style-object)\|null | Beer style definition                       |
| `styleConformity` | boolean\|null                | Whether recipe conforms to style guidelines |

#### Volumes and Efficiency

| Field            | Type   | Description                                           |
| ---------------- | ------ | ----------------------------------------------------- |
| `batchSize`      | number | Target batch size in liters (min: 0.5)                |
| `boilSize`       | number | Pre-boil volume in liters                             |
| `boilTime`       | number | Boil duration in minutes (default: 60)                |
| `efficiency`     | number | Brewhouse efficiency percentage (35–100, default: 72) |
| `mashEfficiency` | number | Mash efficiency percentage (0–100)                    |

#### Ingredients

| Field                     | Type                                  | Description               |
| ------------------------- | ------------------------------------- | ------------------------- |
| `fermentables`            | [Fermentable](#fermentable-object)\[] | Fermentable ingredients   |
| `hops`                    | [Hop](#hop-object)\[]                 | Hop additions             |
| `miscs`                   | [Misc](#misc-object)\[]               | Miscellaneous ingredients |
| `yeasts`                  | [Yeast](#yeast-object)\[]             | Yeast strains             |
| `fermentablesTotalAmount` | number                                | Total fermentables in kg  |
| `hopsTotalAmount`         | number                                | Total hops in grams       |

#### Gravity

| Field              | Type         | Description                          |
| ------------------ | ------------ | ------------------------------------ |
| `og`               | number       | Original Gravity in SG (1.000–1.200) |
| `fg`               | number       | Final Gravity in SG                  |
| `fgEstimated`      | number       | Estimated FG from yeast attenuation  |
| `attenuation`      | number       | Apparent attenuation percentage      |
| `preBoilGravity`   | number\|null | Pre-boil gravity in SG               |
| `postBoilGravity`  | number       | Post-boil gravity in SG              |
| `firstWortGravity` | number\|null | First wort gravity in SG             |

#### Color and Bitterness

| Field        | Type   | Description                                                                                               |
| ------------ | ------ | --------------------------------------------------------------------------------------------------------- |
| `color`      | number | Beer color in SRM (0–100)                                                                                 |
| `ibu`        | number | International Bitterness Units                                                                            |
| `ibuFormula` | string | IBU calculation formula (default: "tinseth"). Values: "tinseth", "tinseth\*", "rager", "garetz", "noonan" |
| `buGuRatio`  | number | BU:GU ratio (bitterness to gravity balance)                                                               |
| `rbRatio`    | number | Relative Bitterness Ratio                                                                                 |

#### ABV and Carbonation

| Field               | Type   | Description                               |
| ------------------- | ------ | ----------------------------------------- |
| `abv`               | number | Alcohol By Volume percentage              |
| `carbonation`       | number | Carbonation level in volumes of CO2 (0–5) |
| `carbonationTemp`   | number | Carbonation temperature in Celsius        |
| `primingSugarEquiv` | number | Priming sugar equivalent in grams         |

#### Profiles

| Field          | Type                                                 | Description                              |
| -------------- | ---------------------------------------------------- | ---------------------------------------- |
| `equipment`    | [Equipment](#equipment-object)                       | Equipment profile                        |
| `mash`         | [Mash Profile](#mash-profile-object)                 | Mash profile with steps                  |
| `fermentation` | [Fermentation Profile](#fermentation-profile-object) | Fermentation profile with steps          |
| `water`        | [Water](#water-object)                               | Water chemistry profiles and adjustments |

#### Calculated Data

| Field  | Type                               | Description             |
| ------ | ---------------------------------- | ----------------------- |
| `data` | [Recipe Data](#recipe-data-object) | Calculated brewing data |

#### Metadata

| Field            | Type                           | Description                                 |
| ---------------- | ------------------------------ | ------------------------------------------- |
| `notes`          | string                         | Recipe notes                                |
| `tags`           | [Tag](#tag-object)\[]          | Tags for categorization                     |
| `nutrition`      | [Nutrition](#nutrition-object) | Nutrition information per serving           |
| `path`           | string                         | Folder path for organization (default: "/") |
| `diastaticPower` | number                         | Total diastatic power in Lintner            |

***

### Fermentable Object

Returned by inventory endpoints and nested in recipe/batch `fermentables[]`.

| Field            | Type          | Description                                                                                                                                                                                                   |
| ---------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `_id`            | string        | Unique identifier                                                                                                                                                                                             |
| `name`           | string        | Ingredient name (e.g. "Pilsner Malt", "Honey")                                                                                                                                                                |
| `type`           | string        | See [Fermentable Type](https://docs.brewfather.app/enums#fermentable-type) enum                                                                                                                               |
| `grainCategory`  | string\|null  | Grain classification. Values: "Base", "Base (Pilsner)", "Base (Wheat)", "Base (Munich)", "Base (Vienna)", "Base (Maris Otter)", "Base (6-Row)", "Crystal/Caramel", "Roasted", "Acidulated", "Other", "Ignore" |
| `amount`         | number        | Amount in kilograms                                                                                                                                                                                           |
| `percentage`     | number        | Percentage of total grain bill (0–100)                                                                                                                                                                        |
| `color`          | number        | Color in SRM                                                                                                                                                                                                  |
| `lovibond`       | number        | Color in Lovibond                                                                                                                                                                                             |
| `use`            | string\|null  | Addition timing. Values: "Boil", "Mash", "Steep", "Primary", "Secondary", "Bottling", "Sparge", "Flameout"                                                                                                    |
| `time`           | number        | Addition time                                                                                                                                                                                                 |
| `timeUnit`       | string\|null  | Time unit: "min", "day", or "days"                                                                                                                                                                            |
| `origin`         | string        | Country or region of origin                                                                                                                                                                                   |
| `supplier`       | string\|null  | Manufacturer or supplier name                                                                                                                                                                                 |
| `potential`      | number\|null  | Gravity potential in SG (1.000–1.500)                                                                                                                                                                         |
| `moisture`       | number\|null  | Moisture percentage (0–100)                                                                                                                                                                                   |
| `diastaticPower` | number\|null  | Diastatic power in Lintner                                                                                                                                                                                    |
| `protein`        | number\|null  | Protein percentage (0–100)                                                                                                                                                                                    |
| `attenuation`    | number\|null  | Fermentability percentage (0–100)                                                                                                                                                                             |
| `notFermentable` | boolean\|null | Non-fermentable flag (e.g. lactose)                                                                                                                                                                           |
| `inventory`      | number\|null  | Current stock in kg                                                                                                                                                                                           |
| `costPerAmount`  | number\|null  | Cost per unit amount                                                                                                                                                                                          |
| `notes`          | string        | Additional notes                                                                                                                                                                                              |
| `hidden`         | boolean       | Whether hidden in lists                                                                                                                                                                                       |

***

### Hop Object

Returned by inventory endpoints and nested in recipe/batch `hops[]`.

| Field           | Type                           | Description                                                                    |
| --------------- | ------------------------------ | ------------------------------------------------------------------------------ |
| `_id`           | string                         | Unique identifier                                                              |
| `name`          | string                         | Hop variety name (e.g. "Cascade", "Saaz")                                      |
| `alpha`         | number                         | Alpha acid percentage                                                          |
| `amount`        | number                         | Amount in grams                                                                |
| `use`           | string                         | Addition method. See [Hop Use](https://docs.brewfather.app/enums#hop-use) enum |
| `time`          | number\|null                   | Contact time (minutes for boil, days for dry hop; 0–365)                       |
| `timeUnit`      | string\|null                   | Time unit: "min", "day", or "days"                                             |
| `type`          | string                         | Physical form. See [Hop Type](https://docs.brewfather.app/enums#hop-type) enum |
| `ibu`           | number                         | Calculated IBU contribution                                                    |
| `beta`          | number\|null                   | Beta acid percentage (0–20)                                                    |
| `hsi`           | number\|null                   | Hop Storage Index percentage (0–100)                                           |
| `origin`        | string\|null                   | Country code of origin                                                         |
| `usage`         | string\|null                   | Usage role: "Aroma", "Bittering", or "Both"                                    |
| `temp`          | number\|null                   | Hop stand temperature in Celsius (0–100)                                       |
| `year`          | number\|null                   | Harvest year                                                                   |
| `oil`           | number\|null                   | Total essential oil content (ml/100g; 0–10)                                    |
| `myrcene`       | number\|null                   | Myrcene oil percentage (0–100)                                                 |
| `humulene`      | number\|null                   | Humulene oil percentage (0–100)                                                |
| `caryophyllene` | number\|null                   | Caryophyllene oil percentage (0–100)                                           |
| `farnesene`     | number\|null                   | Farnesene oil percentage (0–100)                                               |
| `geraniol`      | number\|null                   | Geraniol oil percentage (0–100)                                                |
| `linalool`      | number\|null                   | Linalool oil percentage (0–100)                                                |
| `aroma`         | [Hop Aroma](#hop-aroma-object) | Aroma profile characteristics                                                  |
| `inventory`     | number\|null                   | Current stock in grams                                                         |
| `costPerAmount` | number\|null                   | Cost per unit amount                                                           |
| `notes`         | string                         | Additional notes                                                               |
| `hidden`        | boolean                        | Whether hidden in lists                                                        |

***

### Yeast Object

Returned by inventory endpoints and nested in recipe/batch `yeasts[]`.

| Field            | Type          | Description                                                                         |
| ---------------- | ------------- | ----------------------------------------------------------------------------------- |
| `_id`            | string        | Unique identifier                                                                   |
| `name`           | string        | Yeast strain name (e.g. "US-05", "WLP001")                                          |
| `type`           | string        | See [Yeast Type](https://docs.brewfather.app/enums#yeast-type) enum                 |
| `form`           | string        | See [Yeast Form](https://docs.brewfather.app/enums#yeast-form) enum                 |
| `amount`         | number\|null  | Quantity in specified units                                                         |
| `unit`           | string        | Unit: "g", "ml", "pkg", "billion cells", or "oz"                                    |
| `laboratory`     | string\|null  | Manufacturer (e.g. "Fermentis", "White Labs")                                       |
| `productId`      | string\|null  | Product code from manufacturer                                                      |
| `flocculation`   | string\|null  | See [Yeast Flocculation](https://docs.brewfather.app/enums#yeast-flocculation) enum |
| `attenuation`    | number\|null  | Average apparent attenuation percentage (0–100)                                     |
| `minAttenuation` | number\|null  | Minimum expected attenuation (0–100)                                                |
| `maxAttenuation` | number\|null  | Maximum expected attenuation (0–100)                                                |
| `minTemp`        | number\|null  | Minimum fermentation temperature in Celsius                                         |
| `maxTemp`        | number\|null  | Maximum fermentation temperature in Celsius                                         |
| `maxAbv`         | number\|null  | Maximum ABV tolerance percentage (0–30)                                             |
| `notes`          | string\|null  | Characteristics and performance notes                                               |
| `bestFor`        | string        | Beer styles this yeast is best for                                                  |
| `starter`        | boolean\|null | Whether to make a yeast starter                                                     |
| `starterSize`    | number\|null  | Starter volume in liters                                                            |
| `inventory`      | number\|null  | Current stock amount                                                                |
| `costPerAmount`  | number\|null  | Cost per unit amount                                                                |
| `hidden`         | boolean       | Whether hidden in lists                                                             |

***

### Misc Object

Returned by inventory endpoints and nested in recipe/batch `miscs[]`.

| Field             | Type         | Description                                                                                                    |
| ----------------- | ------------ | -------------------------------------------------------------------------------------------------------------- |
| `_id`             | string       | Unique identifier                                                                                              |
| `name`            | string       | Ingredient name                                                                                                |
| `type`            | string       | See [Misc Type](https://docs.brewfather.app/enums#misc-type) enum                                              |
| `use`             | string       | Addition timing: "Boil", "Mash", "Steep", "Primary", "Secondary", "Bottling", "Sparge", "Flameout"             |
| `time`            | number       | Addition time                                                                                                  |
| `timeUnit`        | string\|null | Time unit: "min", "day", or "days"                                                                             |
| `amount`          | number       | Ingredient amount                                                                                              |
| `unit`            | string       | Unit: "g", "mg", "kg", "oz", "lb", "ml", "l", "tsp", "tbsp", "cup", "pkg", "items", "drops", "pt", "qt", "gal" |
| `amountPerL`      | number\|null | Amount per liter for scaling                                                                                   |
| `concentration`   | number\|null | Concentration percentage (0–100)                                                                               |
| `waterAdjustment` | boolean      | Whether this is a water chemistry adjustment                                                                   |
| `inventory`       | number\|null | Current stock amount                                                                                           |
| `costPerAmount`   | number\|null | Cost per unit amount                                                                                           |
| `notes`           | string       | Additional notes                                                                                               |
| `hidden`          | boolean      | Whether hidden in lists                                                                                        |

***

### Reading Object

Returned by `GET /v2/batches/:id/readings` and `GET /v2/batches/:id/readings/last`.

| Field      | Type         | Description                                        |
| ---------- | ------------ | -------------------------------------------------- |
| `time`     | number       | Reading timestamp (Unix milliseconds)              |
| `sg`       | number       | Specific gravity                                   |
| `temp`     | number       | Temperature in Celsius                             |
| `comment`  | string\|null | Reading comment                                    |
| `type`     | string       | Reading source (e.g. "manual", "iSpindel", "tilt") |
| `pressure` | number\|null | Pressure reading                                   |
| `ph`       | number\|null | pH reading                                         |
| `battery`  | number\|null | Device battery level (device readings only)        |
| `rssi`     | number\|null | Signal strength (device readings only)             |
| `angle`    | number\|null | Tilt/iSpindel angle (device readings only)         |
| `id`       | string\|null | Device identifier (device readings only)           |

***

### Brew Tracker Object

Returned by `GET /v2/batches/:id/brewtracker`. Returns an empty object `{}` when the brew tracker is not active.

| Field       | Type                                      | Description                  |
| ----------- | ----------------------------------------- | ---------------------------- |
| `_id`       | string                                    | Tracker identifier           |
| `enabled`   | boolean                                   | Whether tracker is enabled   |
| `completed` | boolean                                   | Whether tracker is completed |
| `stage`     | number                                    | Current stage index          |
| `stages`    | [Tracker Stage](#tracker-stage-object)\[] | Array of brew tracker stages |

***

## Nested Object Types

### Batch Note Object

| Field       | Type    | Description                                                                                               |
| ----------- | ------- | --------------------------------------------------------------------------------------------------------- |
| `hidden`    | boolean | Whether note is hidden                                                                                    |
| `timestamp` | number  | Note timestamp (Unix milliseconds)                                                                        |
| `status`    | string  | Batch status when note was added. See [Batch Status](https://docs.brewfather.app/enums#batch-status) enum |
| `note`      | string  | Note content                                                                                              |
| `type`      | string  | Note type (e.g. "statusChanged")                                                                          |

***

### Taste Log Object

| Field         | Type   | Description                                                                                      |
| ------------- | ------ | ------------------------------------------------------------------------------------------------ |
| `timestamp`   | number | Tasting timestamp (Unix milliseconds)                                                            |
| `status`      | string | Batch status at tasting. See [Batch Status](https://docs.brewfather.app/enums#batch-status) enum |
| `tasteNotes`  | string | Tasting notes                                                                                    |
| `tasteRating` | number | Overall rating (1–5)                                                                             |
| `bitterness`  | number | Bitterness level (1–5)                                                                           |
| `sweetness`   | number | Sweetness level (1–5)                                                                            |
| `alcohol`     | number | Alcohol perception (1–5)                                                                         |
| `tropical`    | number | Tropical character (1–5)                                                                         |

***

### Batch Measurement Object

| Field                 | Type   | Description                                                                                          |
| --------------------- | ------ | ---------------------------------------------------------------------------------------------------- |
| `timestamp`           | number | Measurement timestamp (Unix milliseconds)                                                            |
| `status`              | string | Batch status at measurement. See [Batch Status](https://docs.brewfather.app/enums#batch-status) enum |
| `text`                | string | Measurement description                                                                              |
| `value`               | any    | Measurement value                                                                                    |
| `type`                | string | Type of measurement: "Gravity", "Volume", "Temperature", "Weight"                                    |
| `spesificMeasurement` | string | Specific measurement point: "OriginalGravity", "FinalGravity", "GravityAddition"                     |

***

### Cost Object

| Field               | Type   | Description                             |
| ------------------- | ------ | --------------------------------------- |
| `fermentables`      | number | Total cost of fermentables              |
| `hops`              | number | Total cost of hops                      |
| `miscs`             | number | Total cost of miscellaneous ingredients |
| `yeasts`            | number | Total cost of yeasts                    |
| `fermentablesShare` | number | Percentage share of fermentables cost   |
| `hopsShare`         | number | Percentage share of hops cost           |
| `miscsShare`        | number | Percentage share of miscs cost          |
| `yeastsShare`       | number | Percentage share of yeasts cost         |
| `total`             | number | Total batch cost                        |
| `perBottlingLiter`  | number | Cost per liter at bottling              |

***

### Batch Event Object

| Field             | Type         | Description                                                                                                                                                                                                                                                                                |
| ----------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `active`          | boolean      | Whether event is active                                                                                                                                                                                                                                                                    |
| `time`            | number       | Event start timestamp (Unix milliseconds)                                                                                                                                                                                                                                                  |
| `endTime`         | number       | Event end timestamp                                                                                                                                                                                                                                                                        |
| `notifyTime`      | number       | Notification time (manually overridden)                                                                                                                                                                                                                                                    |
| `endNotifyTime`   | number       | End notification time                                                                                                                                                                                                                                                                      |
| `eventType`       | string       | Type of event: "event-batch-brew-day", "event-batch-brew-day-reminder", "event-batch-bottling-day", "event-batch-ferm-step", "event-batch-ferm-completed", "event-batch-dry-hop", "event-batch-general", "event-batch-date", "event-batch-yeast-starter-reminder", "event-general", "test" |
| `title`           | string       | Event title                                                                                                                                                                                                                                                                                |
| `description`     | string       | Event description                                                                                                                                                                                                                                                                          |
| `descriptionHTML` | string       | HTML formatted description                                                                                                                                                                                                                                                                 |
| `eventText`       | string\|null | Short event text                                                                                                                                                                                                                                                                           |
| `notify`          | boolean      | Whether to send start notification                                                                                                                                                                                                                                                         |
| `notifyEnd`       | boolean      | Whether to send end notification                                                                                                                                                                                                                                                           |
| `confirmed`       | number       | Timestamp of confirmation                                                                                                                                                                                                                                                                  |
| `persistant`      | boolean      | Do not auto-delete                                                                                                                                                                                                                                                                         |
| `dayEvent`        | boolean      | All-day event flag                                                                                                                                                                                                                                                                         |

***

### Style Object

| Field              | Type         | Description                               |
| ------------------ | ------------ | ----------------------------------------- |
| `_id`              | string       | Unique style identifier                   |
| `name`             | string       | Style name                                |
| `category`         | string       | Style category name (e.g. "American IPA") |
| `categoryNumber`   | string       | BJCP category number (e.g. "21")          |
| `styleLetter`      | string       | BJCP style letter (e.g. "A" for 21A)      |
| `styleGuide`       | string       | Style guideline source (e.g. "BJCP 2021") |
| `type`             | string       | Beer type (e.g. "Ale", "Lager", "Hybrid") |
| `ogMin`            | number\|null | Minimum original gravity                  |
| `ogMax`            | number\|null | Maximum original gravity                  |
| `fgMin`            | number\|null | Minimum final gravity                     |
| `fgMax`            | number\|null | Maximum final gravity                     |
| `ibuMin`           | number\|null | Minimum IBUs                              |
| `ibuMax`           | number\|null | Maximum IBUs                              |
| `colorMin`         | number\|null | Minimum color in SRM                      |
| `colorMax`         | number\|null | Maximum color in SRM                      |
| `abvMin`           | number\|null | Minimum ABV percentage                    |
| `abvMax`           | number\|null | Maximum ABV percentage                    |
| `carbMin`          | number\|null | Minimum carbonation                       |
| `carbMax`          | number\|null | Maximum carbonation                       |
| `buGuMin`          | number\|null | Minimum BU:GU ratio                       |
| `buGuMax`          | number\|null | Maximum BU:GU ratio                       |
| `rbrMin`           | number\|null | Minimum Relative Bitterness Ratio         |
| `rbrMax`           | number\|null | Maximum Relative Bitterness Ratio         |
| `lovibondMin`      | number\|null | Minimum color in Lovibond                 |
| `lovibondMax`      | number\|null | Maximum color in Lovibond                 |
| `carbonationStyle` | string\|null | Carbonation level descriptor              |
| `notes`            | string\|null | General notes about the style             |
| `profile`          | string\|null | Flavor and aroma profile description      |
| `ingredients`      | string\|null | Typical ingredients used                  |
| `examples`         | string\|null | Commercial examples                       |
| `aroma`            | string\|null | Expected aroma characteristics            |
| `flavor`           | string\|null | Expected flavor profile                   |
| `appearance`       | string\|null | Visual characteristics                    |
| `mouthfeel`        | string\|null | Body, carbonation, and texture            |
| `history`          | string\|null | Historical background                     |
| `origin`           | string\|null | Geographic origin                         |

***

### Equipment Object

| Field                         | Type         | Description                                                                          |
| ----------------------------- | ------------ | ------------------------------------------------------------------------------------ |
| `_id`                         | string       | Unique equipment profile identifier                                                  |
| `name`                        | string       | Equipment profile name                                                               |
| `batchSize`                   | number       | Target batch size to fermenter in liters                                             |
| `boilSize`                    | number       | Pre-boil volume in liters                                                            |
| `boilTime`                    | number       | Default boil time in minutes (default: 60)                                           |
| `efficiency`                  | number       | Brewhouse efficiency percentage (0–100)                                              |
| `mashEfficiency`              | number       | Mash efficiency percentage (0–100)                                                   |
| `brewhouseEfficiency`         | number       | Overall brewhouse efficiency percentage (0–100)                                      |
| `conversionEfficiency`        | number       | Mash conversion efficiency percentage (0–100)                                        |
| `boilOffPerHr`                | number       | Boil-off rate in liters per hour                                                     |
| `evaporationRate`             | number\|null | Evaporation rate percentage per hour                                                 |
| `trubChillerLoss`             | number\|null | Trub and chiller loss in liters                                                      |
| `fermenterLoss`               | number\|null | Fermenter dead space loss in liters                                                  |
| `fermenterLossEstimate`       | number\|null | Estimated fermenter loss in liters                                                   |
| `fermenterTopUp`              | number\|null | Water added to fermenter in liters                                                   |
| `fermenterVolume`             | number       | Volume into fermenter in liters                                                      |
| `fermenterVolumeBeforeTopUp`  | number       | Fermenter volume before top-up in liters                                             |
| `postBoilKettleVol`           | number       | Post-boil kettle volume in liters                                                    |
| `bottlingVolume`              | number       | Final packaging volume in liters                                                     |
| `grainAbsorptionRate`         | number\|null | Grain absorption rate in L/kg (default: 0.96)                                        |
| `waterGrainRatio`             | number\|null | Water to grain ratio in L/kg                                                         |
| `hopUtilization`              | number       | Hop utilization factor (0–200%, default: 100)                                        |
| `aromaHopUtilization`         | number       | Aroma hop utilization percentage                                                     |
| `calcAromaHopUtilization`     | boolean      | Whether to calculate aroma hop utilization                                           |
| `hopstandTemperature`         | number\|null | Default hop stand temperature in Celsius                                             |
| `mashTunDeadSpace`            | number\|null | Mash tun dead space in liters                                                        |
| `mashTunLoss`                 | number\|null | Mash tun loss in liters                                                              |
| `mashTunHeatCapacity`         | number\|null | Mash tun heat capacity                                                               |
| `hltDeadSpace`                | number\|null | HLT dead space in liters                                                             |
| `spargeTemperature`           | number\|null | Sparge water temperature in Celsius                                                  |
| `spargeWaterMin`              | number\|null | Minimum sparge water volume in liters                                                |
| `spargeWaterMax`              | number\|null | Maximum sparge water volume in liters                                                |
| `mashWaterMin`                | number\|null | Minimum mash water volume in liters                                                  |
| `mashWaterMax`                | number\|null | Maximum mash water volume in liters                                                  |
| `mashWaterVolumeLimitEnabled` | boolean      | Whether to enforce mash water volume limits                                          |
| `hltWaterMin`                 | number\|null | Minimum HLT water volume in liters                                                   |
| `waterCalculation`            | string       | Water calculation method: "Default", "Default\_2", "Batch\_1", "No Sparge", "Custom" |
| `spargeWaterOverflow`         | string       | Where to redirect overflow water: "Mash", "Top-Up"                                   |
| `mashWaterFormula`            | string\|null | Custom mash water calculation formula                                                |
| `spargeWaterFormula`          | string\|null | Custom sparge water calculation formula                                              |
| `calcBoilVolume`              | boolean      | Whether to calculate boil volume automatically                                       |
| `calcStrikeWaterTemperature`  | boolean      | Whether to calculate strike water temperature                                        |
| `calcMashEfficiency`          | boolean      | Whether to calculate mash efficiency                                                 |
| `altitudeAdjustment`          | boolean      | Whether to adjust for altitude effects                                               |
| `altitude`                    | number       | Altitude in meters                                                                   |
| `boilTemp`                    | number\|null | Boiling point temperature in Celsius                                                 |
| `ambientTemperature`          | number\|null | Ambient temperature in Celsius                                                       |
| `grainTemperature`            | number\|null | Grain temperature in Celsius                                                         |
| `whirlpoolTime`               | number\|null | Whirlpool/hop stand time in minutes (0–120)                                          |
| `boilExpansion`               | number\|null | Boil expansion factor                                                                |
| `topUpKettle`                 | number       | Top-up water to kettle in liters                                                     |
| `notes`                       | string       | Additional notes                                                                     |
| `hidden`                      | boolean      | Whether profile is hidden in lists                                                   |

***

### Mash Profile Object

| Field        | Type                              | Description                                           |
| ------------ | --------------------------------- | ----------------------------------------------------- |
| `_id`        | string                            | Unique mash profile identifier                        |
| `name`       | string                            | Mash profile name                                     |
| `ph`         | number\|null                      | Target mash pH (0–14, optimal: 5.2–5.6)               |
| `spargeTemp` | number                            | Sparge temperature in Celsius (60–85, typical: 75–78) |
| `steps`      | [Mash Step](#mash-step-object)\[] | Array of mash steps in sequence                       |
| `notes`      | string                            | Additional notes                                      |
| `hidden`     | boolean                           | Whether profile is hidden in lists                    |

#### Mash Step Object

| Field             | Type         | Description                                                                            |
| ----------------- | ------------ | -------------------------------------------------------------------------------------- |
| `name`            | string       | Step name                                                                              |
| `type`            | string       | Step type. See [Mash Step Type](https://docs.brewfather.app/enums#mash-step-type) enum |
| `stepTemp`        | number       | Step temperature in Celsius (0–100)                                                    |
| `stepTime`        | number       | Step duration in minutes (0–360)                                                       |
| `rampTime`        | number\|null | Temperature ramp time in minutes (0–60)                                                |
| `endTemp`         | number       | End temperature in Celsius after ramping                                               |
| `infuseAmount`    | number       | Infusion amount in liters (for infusion steps)                                         |
| `displayStepTemp` | number\|null | Temperature in user's display units                                                    |

***

### Fermentation Profile Object

| Field         | Type                                              | Description                             |
| ------------- | ------------------------------------------------- | --------------------------------------- |
| `_id`         | string                                            | Unique fermentation profile identifier  |
| `name`        | string                                            | Fermentation profile name               |
| `pressurized` | boolean                                           | Whether fermentation is pressurized     |
| `steps`       | [Fermentation Step](#fermentation-step-object)\[] | Array of fermentation steps in sequence |
| `hidden`      | boolean                                           | Whether profile is hidden in lists      |

#### Fermentation Step Object

| Field             | Type         | Description                                                                                            |
| ----------------- | ------------ | ------------------------------------------------------------------------------------------------------ |
| `name`            | string       | Step name (e.g. "Primary", "Diacetyl Rest", "Cold Crash")                                              |
| `type`            | string       | Step type. See [Fermentation Step Type](https://docs.brewfather.app/enums#fermentation-step-type) enum |
| `stepTemp`        | number       | Fermentation temperature in Celsius (-100–100)                                                         |
| `stepTime`        | number       | Step duration in days (0–365)                                                                          |
| `ramp`            | number\|null | Temperature ramp time in days (0–365)                                                                  |
| `pressure`        | number\|null | Fermentation pressure in PSI (-100–100)                                                                |
| `displayStepTemp` | number\|null | Temperature in user's display units                                                                    |
| `displayPressure` | number\|null | Pressure in user's display units                                                                       |
| `actualTime`      | number\|null | Calculated actual time in hours from start                                                             |
| `actualRampTime`  | number\|null | Calculated actual ramp time in hours                                                                   |

***

### Water Object

Water chemistry profiles and adjustments. Contains multiple [Water Profile](#water-profile-object) instances for different stages.

| Field                         | Type                                           | Description                                 |
| ----------------------------- | ---------------------------------------------- | ------------------------------------------- |
| `mashWaterAmount`             | number\|null                                   | Mash water amount in liters                 |
| `spargeWaterAmount`           | number\|null                                   | Sparge water amount in liters               |
| `source`                      | [Water Profile](#water-profile-object)         | Source/base water profile                   |
| `target`                      | [Water Profile](#water-profile-object)\|null   | Target water profile                        |
| `mash`                        | [Water Profile](#water-profile-object)         | Mash water profile                          |
| `sparge`                      | [Water Profile](#water-profile-object)         | Sparge water profile                        |
| `total`                       | [Water Profile](#water-profile-object)         | Total water profile                         |
| `diluted`                     | [Water Profile](#water-profile-object)\|null   | Diluted water profile                       |
| `dilution`                    | [Water Profile](#water-profile-object)\|null   | Dilution water profile                      |
| `dilutionPercentage`          | number\|null                                   | Dilution percentage (0–100)                 |
| `dilutionAmount`              | number                                         | Dilution amount in liters                   |
| `dilutionByAmount`            | boolean                                        | Whether dilution is by amount vs percentage |
| `mashAdjustments`             | [Water Adjustments](#water-adjustments-object) | Mash water adjustments                      |
| `spargeAdjustments`           | [Water Adjustments](#water-adjustments-object) | Sparge water adjustments                    |
| `totalAdjustments`            | [Water Adjustments](#water-adjustments-object) | Total water adjustments                     |
| `enableSpargeAdjustments`     | boolean                                        | Whether sparge adjustments are enabled      |
| `enableAcidAdjustments`       | boolean                                        | Whether acid adjustments are enabled        |
| `enableSpargeAcidAdjustments` | boolean                                        | Whether sparge acid adjustments are enabled |
| `sourceTargetDiff`            | [Water Profile](#water-profile-object)\|null   | Source vs target difference                 |
| `mashTargetDiff`              | [Water Profile](#water-profile-object)\|null   | Mash vs target difference                   |
| `spargeTargetDiff`            | [Water Profile](#water-profile-object)\|null   | Sparge vs target difference                 |
| `totalTargetDiff`             | [Water Profile](#water-profile-object)\|null   | Total vs target difference                  |
| `mashPh`                      | number\|null                                   | Calculated mash pH (0–14)                   |
| `mashPhDistilled`             | number\|null                                   | Distilled water mash pH (0–14)              |
| `spargeWaterPh`               | number                                         | Sparge water pH (0–14)                      |
| `spargeWaterTargetPh`         | number                                         | Target sparge water pH (0–14)               |
| `spargeAcidPhAdjustment`      | number\|null                                   | Sparge acid pH adjustment amount            |
| `acidPhAdjustment`            | number\|null                                   | Acid pH adjustment amount                   |
| `settings`                    | [Water Settings](#water-settings-object)       | Water calculation settings                  |

#### Water Profile Object

Represents a water mineral profile used for source, target, mash, sparge, and total water.

| Field                        | Type         | Description                             |
| ---------------------------- | ------------ | --------------------------------------- |
| `_id`                        | string       | Unique water profile identifier         |
| `name`                       | string       | Water profile name                      |
| `type`                       | string       | Water type: "source" or "target"        |
| `calcium`                    | number\|null | Calcium (Ca) in ppm                     |
| `magnesium`                  | number\|null | Magnesium (Mg) in ppm                   |
| `sodium`                     | number\|null | Sodium (Na) in ppm                      |
| `chloride`                   | number\|null | Chloride (Cl) in ppm                    |
| `sulfate`                    | number\|null | Sulfate (SO4) in ppm                    |
| `bicarbonate`                | number       | Bicarbonate (HCO3) in ppm               |
| `ph`                         | number\|null | Water pH (0–14)                         |
| `cations`                    | number\|null | Cations in mEq/L                        |
| `anions`                     | number\|null | Anions in mEq/L                         |
| `ionBalance`                 | number\|null | Ion balance calculation                 |
| `ionBalanceOff`              | boolean      | Whether ion balance is off              |
| `hardness`                   | number\|null | Total hardness                          |
| `alkalinity`                 | number\|null | Alkalinity                              |
| `residualAlkalinity`         | number\|null | Residual alkalinity                     |
| `residualAlkalinityMeqLCalc` | number\|null | Calculated residual alkalinity in mEq/L |
| `soClRatio`                  | number\|null | Sulfate to chloride ratio               |
| `bicarbonateMeqL`            | number\|null | Bicarbonate in mEq/L                    |
| `description`                | string       | Description of water profile            |
| `hidden`                     | boolean      | Whether profile is hidden in lists      |

#### Water Adjustments Object

| Field                 | Type                                      | Description                               |
| --------------------- | ----------------------------------------- | ----------------------------------------- |
| `volume`              | number                                    | Water volume in liters                    |
| `acids`               | [Acid Addition](#acid-addition-object)\[] | Array of acid additions                   |
| `calciumCarbonate`    | number\|null                              | Calcium Carbonate (Chalk) in grams        |
| `sodiumBicarbonate`   | number\|null                              | Sodium Bicarbonate (Baking Soda) in grams |
| `calciumHydroxide`    | number\|null                              | Calcium Hydroxide (Slaked Lime) in grams  |
| `calciumSulfate`      | number\|null                              | Calcium Sulfate (Gypsum) in grams         |
| `magnesiumSulfate`    | number\|null                              | Magnesium Sulfate (Epsom Salt) in grams   |
| `calciumChloride`     | number\|null                              | Calcium Chloride in grams                 |
| `magnesiumChloride`   | number\|null                              | Magnesium Chloride in grams               |
| `sodiumChloride`      | number\|null                              | Sodium Chloride (Table Salt) in grams     |
| `sodiumMetabisulfite` | number\|null                              | Sodium Metabisulfite (Campden) in grams   |
| `ltDWB`               | number\|null                              | Low Temperature DWB in grams              |
| `ltAMS`               | number\|null                              | Low Temperature AMS (CRS/AMS) in grams    |

#### Acid Addition Object

| Field            | Type         | Description                            |
| ---------------- | ------------ | -------------------------------------- |
| `type`           | string       | Type of acid: "lactic" or "phosphoric" |
| `concentration`  | number       | Acid concentration percentage          |
| `amount`         | number       | Acid amount in milliliters             |
| `alkalinityMeqL` | number\|null | Alkalinity reduction in mEq/L          |

#### Water Settings Object

| Field                 | Type                                         | Description                               |
| --------------------- | -------------------------------------------- | ----------------------------------------- |
| `adjustSparge`        | boolean                                      | Whether to adjust sparge water chemistry  |
| `calciumCarbonate`    | [Water Ingredient](#water-ingredient-object) | Calcium Carbonate (Chalk) settings        |
| `sodiumBicarbonate`   | [Water Ingredient](#water-ingredient-object) | Sodium Bicarbonate (Baking Soda) settings |
| `calciumHydroxide`    | [Water Ingredient](#water-ingredient-object) | Calcium Hydroxide (Slaked Lime) settings  |
| `calciumSulfate`      | [Water Ingredient](#water-ingredient-object) | Calcium Sulfate (Gypsum) settings         |
| `magnesiumSulfate`    | [Water Ingredient](#water-ingredient-object) | Magnesium Sulfate (Epsom Salt) settings   |
| `calciumChloride`     | [Water Ingredient](#water-ingredient-object) | Calcium Chloride settings                 |
| `magnesiumChloride`   | [Water Ingredient](#water-ingredient-object) | Magnesium Chloride settings               |
| `sodiumChloride`      | [Water Ingredient](#water-ingredient-object) | Sodium Chloride (Table Salt) settings     |
| `sodiumMetabisulfite` | [Water Ingredient](#water-ingredient-object) | Sodium Metabisulfite (Campden) settings   |
| `ltDWB`               | [Water Ingredient](#water-ingredient-object) | Low Temperature DWB settings              |
| `ltAMS`               | [Water Ingredient](#water-ingredient-object) | Low Temperature AMS (CRS/AMS) settings    |

#### Water Ingredient Object

| Field           | Type    | Description                      |
| --------------- | ------- | -------------------------------- |
| `mash`          | boolean | Add to mash water                |
| `sparge`        | boolean | Add to sparge water              |
| `auto`          | boolean | Automatically calculate amount   |
| `form`          | string  | Physical form of ingredient      |
| `concentration` | number  | Concentration percentage (0–100) |

***

### Recipe Data Object

Calculated brewing values auto-generated from the recipe.

| Field                     | Type                                  | Description                                              |
| ------------------------- | ------------------------------------- | -------------------------------------------------------- |
| `mashVolume`              | number\|null                          | Total mash volume in liters including grain displacement |
| `mashWaterAmount`         | number                                | Mash water (strike water) volume in liters               |
| `spargeWaterAmount`       | number                                | Sparge water volume in liters                            |
| `totalWaterAmount`        | number                                | Total water needed in liters                             |
| `hltWaterAmount`          | number                                | Hot liquor tank water amount in liters                   |
| `strikeTemp`              | number\|null                          | Strike water temperature in Celsius                      |
| `mashFermentablesAmount`  | number                                | Total weight of mash fermentables in kg                  |
| `otherFermentablesAmount` | number                                | Total weight of non-mash fermentables in kg              |
| `hopsAmount`              | number                                | Total amount of hops in grams                            |
| `topUpWater`              | number                                | Top-up water added to fermenter in liters                |
| `mashVolumeSurplus`       | number\|null                          | Extra mash volume available in liters                    |
| `batchSpargeWaterAmount1` | number\|null                          | First batch sparge volume in liters                      |
| `batchSpargeWaterAmount2` | number\|null                          | Second batch sparge volume in liters                     |
| `batchSpargeWaterAmount3` | number\|null                          | Third batch sparge volume in liters                      |
| `batchSpargeWaterAmount4` | number\|null                          | Fourth batch sparge volume in liters                     |
| `mashFermentables`        | [Fermentable](#fermentable-object)\[] | Fermentables added to mash                               |
| `otherFermentables`       | [Fermentable](#fermentable-object)\[] | Non-mash fermentables (extracts, sugars)                 |
| `allDiastaticPower`       | boolean                               | Whether all grains have sufficient diastatic power       |
| `totalDiastaticPower`     | number                                | Combined diastatic power in Lintner                      |

***

### Tag Object

| Field     | Type   | Description                    |
| --------- | ------ | ------------------------------ |
| `display` | string | Display text shown to users    |
| `value`   | string | Internal value/key for the tag |

***

### Nutrition Object

Nutrition information per serving.

| Field      | Type                         | Description                      |
| ---------- | ---------------------------- | -------------------------------- |
| `calories` | [Calories](#calories-object) | Caloric breakdown per serving    |
| `carbs`    | [Carbs](#carbs-object)       | Carbohydrate content per serving |

#### Calories Object

| Field     | Type   | Description                 |
| --------- | ------ | --------------------------- |
| `total`   | number | Total calories              |
| `alcohol` | number | Calories from alcohol       |
| `carbs`   | number | Calories from carbohydrates |
| `kJ`      | number | Energy in kilojoules        |

#### Carbs Object

| Field   | Type   | Description                  |
| ------- | ------ | ---------------------------- |
| `total` | number | Total carbohydrates in grams |

***

### Hop Aroma Object

| Field    | Type   | Description                             |
| -------- | ------ | --------------------------------------- |
| `floral` | number | Floral aroma intensity (0–100)          |
| `grassy` | number | Grassy/hay-like aroma intensity (0–100) |
| `herbal` | number | Herbal/tea-like aroma intensity (0–100) |
| `earthy` | number | Earthy aroma intensity (0–100)          |
| `woody`  | number | Woody/resinous aroma intensity (0–100)  |
| `onion`  | number | Onion/garlic aroma intensity (0–100)    |
| `citrus` | number | Citrus aroma intensity (0–100)          |
| `fruity` | number | Fruity/tropical aroma intensity (0–100) |

***

### Tracker Stage Object

| Field      | Type                                    | Description                          |
| ---------- | --------------------------------------- | ------------------------------------ |
| `name`     | string                                  | Stage name                           |
| `type`     | string                                  | Stage type: "tracker" or "checklist" |
| `start`    | number                                  | Start timestamp (Unix milliseconds)  |
| `duration` | number                                  | Stage duration in seconds            |
| `position` | number                                  | Position index                       |
| `step`     | number                                  | Current step index                   |
| `paused`   | boolean                                 | Whether stage is paused              |
| `steps`    | [Tracker Step](#tracker-step-object)\[] | Array of steps within this stage     |

#### Tracker Step Object

| Field         | Type    | Description                                                               |
| ------------- | ------- | ------------------------------------------------------------------------- |
| `type`        | string  | Step type: "before", "after", "event", "mash", "ramp", "boil", "hopstand" |
| `name`        | string  | Step name                                                                 |
| `description` | string  | Step description                                                          |
| `tooltip`     | string  | Tooltip text                                                              |
| `pauseBefore` | boolean | Whether to pause before this step                                         |
| `time`        | number  | Time in seconds                                                           |
| `value`       | number  | Temperature value                                                         |
| `duration`    | number  | Duration in seconds                                                       |
| `priority`    | number  | Step priority                                                             |
| `active`      | boolean | Whether step is active                                                    |
| `buttonText`  | string  | Button text for interaction                                               |
| `final`       | boolean | Whether this is the final step                                            |
| `startTime`   | number  | Step start timestamp                                                      |
| `endTime`     | number  | Step end timestamp                                                        |

***

### Related docs

* [API](https://docs.brewfather.app/api)
* [API Enums](https://docs.brewfather.app/api/enums)
