Punk API · Schema
Beer
A BrewDog DIY Dog beer recipe — full crowdsourced recipe entry from the Punk API dataset.
Food And DrinkBeerBrewDogDIY DogRecipesOpen SourcePublic APIsRESTDeprecated
Properties
| Name | Type | Description |
|---|---|---|
| id | integer | Unique recipe identifier (1-325). |
| name | string | Beer name. |
| tagline | string | Short marketing tagline. |
| first_brewed | string | First brewed date (mm/yyyy or yyyy). |
| description | string | Free-text recipe description. |
| image_url | stringnull | Bottle image URL. |
| abv | number | Alcohol by volume (%). |
| ibu | numbernull | International Bitterness Units. |
| target_fg | numbernull | Target final gravity. |
| target_og | numbernull | Target original gravity. |
| ebc | numbernull | European Brewery Convention colour. |
| srm | numbernull | Standard Reference Method colour. |
| ph | numbernull | Target wort pH. |
| attenuation_level | numbernull | Yeast attenuation level (%). |
| volume | object | |
| boil_volume | object | |
| method | object | |
| ingredients | object | |
| food_pairing | array | Suggested food pairings. |
| brewers_tips | stringnull | Brewer's tips for replication. |
| contributed_by | stringnull | Recipe transcription attribution. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/punkapi/refs/heads/main/json-schema/punkapi-beer-schema.json",
"title": "Beer",
"description": "A BrewDog DIY Dog beer recipe — full crowdsourced recipe entry from the Punk API dataset.",
"type": "object",
"required": [
"id",
"name",
"tagline",
"first_brewed",
"description",
"abv",
"volume",
"boil_volume",
"method",
"ingredients"
],
"properties": {
"id": { "type": "integer", "description": "Unique recipe identifier (1-325).", "example": 1 },
"name": { "type": "string", "description": "Beer name.", "example": "Buzz" },
"tagline": { "type": "string", "description": "Short marketing tagline.", "example": "A Real Bitter Experience." },
"first_brewed": { "type": "string", "description": "First brewed date (mm/yyyy or yyyy).", "example": "09/2007" },
"description": { "type": "string", "description": "Free-text recipe description." },
"image_url": { "type": ["string", "null"], "format": "uri", "description": "Bottle image URL.", "example": "https://images.punkapi.com/v2/keg.png" },
"abv": { "type": "number", "description": "Alcohol by volume (%).", "example": 4.5 },
"ibu": { "type": ["number", "null"], "description": "International Bitterness Units.", "example": 60 },
"target_fg": { "type": ["number", "null"], "description": "Target final gravity.", "example": 1010 },
"target_og": { "type": ["number", "null"], "description": "Target original gravity.", "example": 1044 },
"ebc": { "type": ["number", "null"], "description": "European Brewery Convention colour.", "example": 20 },
"srm": { "type": ["number", "null"], "description": "Standard Reference Method colour.", "example": 10 },
"ph": { "type": ["number", "null"], "description": "Target wort pH.", "example": 4.4 },
"attenuation_level": { "type": ["number", "null"], "description": "Yeast attenuation level (%).", "example": 75 },
"volume": { "$ref": "#/$defs/Measurement" },
"boil_volume": { "$ref": "#/$defs/Measurement" },
"method": { "$ref": "#/$defs/Method" },
"ingredients": { "$ref": "#/$defs/Ingredients" },
"food_pairing": { "type": "array", "items": { "type": "string" }, "description": "Suggested food pairings." },
"brewers_tips": { "type": ["string", "null"], "description": "Brewer's tips for replication." },
"contributed_by": { "type": ["string", "null"], "description": "Recipe transcription attribution." }
},
"$defs": {
"Measurement": {
"type": "object",
"required": ["value", "unit"],
"properties": {
"value": { "type": "number" },
"unit": { "type": "string" }
}
},
"Temperature": {
"type": "object",
"required": ["value", "unit"],
"properties": {
"value": { "type": "number" },
"unit": { "type": "string", "example": "celsius" }
}
},
"MashStep": {
"type": "object",
"required": ["temp"],
"properties": {
"temp": { "$ref": "#/$defs/Temperature" },
"duration": { "type": ["integer", "null"] }
}
},
"Method": {
"type": "object",
"required": ["mash_temp", "fermentation"],
"properties": {
"mash_temp": { "type": "array", "items": { "$ref": "#/$defs/MashStep" } },
"fermentation": {
"type": "object",
"required": ["temp"],
"properties": { "temp": { "$ref": "#/$defs/Temperature" } }
},
"twist": { "type": ["string", "null"] }
}
},
"Malt": {
"type": "object",
"required": ["name", "amount"],
"properties": {
"name": { "type": "string" },
"amount": { "$ref": "#/$defs/Measurement" }
}
},
"Hop": {
"type": "object",
"required": ["name", "amount", "add", "attribute"],
"properties": {
"name": { "type": "string" },
"amount": { "$ref": "#/$defs/Measurement" },
"add": { "type": "string", "description": "When the hop is added (start, middle, end, dry hop)." },
"attribute": { "type": "string", "description": "Hop role (bitter, flavour, aroma)." }
}
},
"Ingredients": {
"type": "object",
"required": ["malt", "hops", "yeast"],
"properties": {
"malt": { "type": "array", "items": { "$ref": "#/$defs/Malt" } },
"hops": { "type": "array", "items": { "$ref": "#/$defs/Hop" } },
"yeast": { "type": "string" }
}
}
}
}