Recipe JSON Format
Use this format with AI tools, then paste/export JSON into BrewWeb import.
Required
name(string)
Type and enum rules
| Field | Type | Allowed values / format |
|---|---|---|
name | string | Required, non-empty |
alcohol_type | string | Mead, Wine, Beer, Hard Cider |
schedule_timezone | string | IANA timezone, e.g. America/New_York |
ingredients | array | Array of ingredient objects |
steps | array | Array of step objects (or strings) |
steps[].type | string | prep, nutrient, feed, stabilize, package, other |
steps[].time_of_day | string | HH:MM 24-hour format |
steps[].day_offset | number/string | Day number from start, e.g. 0, 1, 30 |
steps[].duration_min | number/string | Minutes, e.g. 15, 60 |
Optional top-level fields
alcohol_type: Mead | Wine | Beer | Hard Cidernotes,water_type,aging_notesschedule_timezone(IANA timezone, example:America/New_York)- Yeast and style fields:
yeast_used,yeast_style,yeast_attenuation,yeast_temp,yeast_flocculation - Type details: mead/wine/beer/cider fields currently used in the UI
Ingredients format
{
"ingredients": [
{"name":"Honey", "amount":"15", "unit":"lb", "note":"Wildflower"},
{"name":"Water", "amount":"4", "unit":"gallon"}
]
}
Steps format
{
"steps": [
{"description":"Mix must", "type":"prep", "day_offset":0, "time_of_day":"09:00", "duration_min":30},
{"description":"Add nutrient", "type":"nutrient", "day_offset":1},
{"description":"Stabilize", "type":"stabilize", "day_offset":30}
]
}
Single recipe example
{
"name": "Traditional Mead 1 Gallon",
"alcohol_type": "Mead",
"notes": "Beginner recipe",
"water_type": "Filtered Tap",
"schedule_timezone": "America/New_York",
"yeast_used": "Lalvin D47",
"mead_target_og": "1.100",
"mead_nutrients": "TOSNA 3.0 (Fermaid O)",
"ingredients": [
{"name":"Honey", "amount":"3", "unit":"lb"},
{"name":"Water", "amount":"1", "unit":"gallon"}
],
"steps": [
{"description":"Mix must", "type":"prep", "day_offset":0},
{"description":"Add nutrient", "type":"nutrient", "day_offset":1},
{"description":"Add nutrient", "type":"nutrient", "day_offset":2},
{"description":"Add nutrient", "type":"nutrient", "day_offset":3}
]
}
Multiple recipes example
[
{"name":"Mead 1", "alcohol_type":"Mead"},
{"name":"Cider 1", "alcohol_type":"Hard Cider"}
]
JSON Schema (draft 2020-12)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": ["object", "array"],
"description": "Single recipe object or array of recipe objects.",
"$defs": {
"ingredient": {
"type": "object",
"properties": {
"name": {"type": "string"},
"amount": {"type": ["string", "number"]},
"unit": {"type": "string"},
"note": {"type": "string"}
},
"required": ["name"],
"additionalProperties": true
},
"step": {
"oneOf": [
{"type": "string"},
{
"type": "object",
"properties": {
"description": {"type": "string"},
"type": {"type": "string", "enum": ["prep", "nutrient", "feed", "stabilize", "package", "other"]},
"day_offset": {"type": ["string", "number", "integer"]},
"time_of_day": {"type": "string", "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$"},
"duration_min": {"type": ["string", "number", "integer"]}
},
"additionalProperties": true
}
]
},
"recipe": {
"type": "object",
"properties": {
"name": {"type": "string", "minLength": 1},
"alcohol_type": {"type": "string", "enum": ["Mead", "Wine", "Beer", "Hard Cider"]},
"notes": {"type": "string"},
"water_type": {"type": "string"},
"aging_notes": {"type": "string"},
"schedule_timezone": {"type": "string"},
"ingredients": {"type": "array", "items": {"$ref": "#/$defs/ingredient"}},
"steps": {"type": "array", "items": {"$ref": "#/$defs/step"}}
},
"required": ["name"],
"additionalProperties": true
}
},
"oneOf": [
{"$ref": "#/$defs/recipe"},
{"type": "array", "items": {"$ref": "#/$defs/recipe"}}
]
}
Prompt helper for AI
Convert the following recipe text into BrewWeb recipe import JSON. Requirements: - Return valid JSON only (no markdown). - Use this schema: - required: name - alcohol_type one of: Mead, Wine, Beer, Hard Cider - ingredients[] objects: name, amount, unit, note - steps[] objects: description, type, day_offset, time_of_day (HH:MM), duration_min - Include schedule_timezone when known. - If multiple recipes are present, return a JSON array.