Punk API logo

Punk API

Punk API is a free, no-auth REST API exposing BrewDog's "DIY Dog" open-source beer recipe collection — 325 detailed homebrew recipes crowdsourced and transcribed from the BrewDog DIY Dog PDF. The v2 surface (api.punkapi.com/v2) offered three read-only endpoints: list beers (with rich query filtering on ABV, IBU, EBC, brew date, beer name, hops, malt, yeast, and food pairing), get a beer by id, and get a random beer. Each beer carries a full recipe — ABV, IBU, EBC/SRM colour, target gravities, mash temperature schedule, fermentation temperature, twist, malt and hop bills, yeast strain, food pairings, brewer's tips, and contributor attribution. STATUS — DEPRECATED. BrewDog decommissioned the public api.punkapi.com endpoint in 2023 and the source repositories (sammdec/punkapi-db, sammdec/punkapi-server) were archived on 2023-06-28. The dataset and server source remain MIT-licensed and available; community-hosted mirrors and the `punkapi-db` npm package preserve the contract documented here.

1 APIs 1 Capabilities 9 Features
Food And DrinkBeerBrewDogDIY DogRecipesOpen SourcePublic APIsRESTDeprecated

APIs

Punk API — Beers

Read-only REST surface over the 325 BrewDog DIY Dog beer recipes. Three operations — list (with ABV/IBU/EBC/date/ingredient filters and page/per_page pagination up to 80 items),...

Capabilities

Punk API — Beers

Beers — the only Punk API surface. Three read-only operations: list with rich recipe-oriented filtering, get by id, and random. The public api.punkapi.com endpoint was sunset in...

Run with Naftiko

Features

325 BrewDog DIY Dog Recipes

Crowdsourced transcription of the complete BrewDog DIY Dog PDF — every recipe from Punk IPA (#001) through the final published batch.

Full Brewing Recipe

Each beer carries ABV, IBU, EBC, SRM, target gravities, mash schedule, fermentation temperature, malt bill, hop bill, yeast strain, food pairings, and brewer's tips.

Recipe-Oriented Query Filters

List endpoint supports filters on ABV (gt/lt), IBU (gt/lt), EBC (gt/lt), brewed-before/after dates, and substring search on beer name, hops, malt, yeast, and food pairing.

Pagination

page (>=1) and per_page (1-80, default 25) on the list endpoint.

Random Beer

/beers/random returns a uniformly random recipe — useful for "beer of the day" demos.

No Authentication

Fully public — no API keys, OAuth, or signup required.

No Rate Limits Documented

Best-effort public service while it was live. Only the per_page ceiling of 80 is enforced.

MIT-Licensed Source

Both punkapi-db (dataset) and punkapi-server (Express app) are MIT-licensed — self-host or fork freely.

npm Distribution

The complete dataset is published as the `punkapi-db` package for direct in-process use without HTTP.

Use Cases

Homebrewing Reference

Look up a recipe by ABV, hop, or malt to replicate or adapt a BrewDog beer at home-batch scale.

Sample / Tutorial API

Front-end and mobile tutorials use Punk API as a fun, schema-rich, no-auth REST target.

Beer Discovery App

Power beer recommendation apps, food-pairing tools, and BrewDog fan sites.

Search by Ingredient

Filter by hop (e.g. `hops=simcoe`) or malt (e.g. `malt=maris_otter`) to discover recipes using a specific ingredient.

Food Pairing Lookup

Filter by `food=spicy_food` to find beers explicitly recommended for spicy cuisine.

HTTP Client QA

Stable, well-defined schema makes Punk API a good fixture for codegen tools, OpenAPI tooling, and SDK builders.

Integrations

BrewDog DIY Dog

The upstream source of every recipe — BrewDog's open-source DIY Dog homebrew PDF.

punkapi-db (npm)

The recipe dataset packaged for direct npm install — no HTTP needed.

punkapi-server (Express)

The reference Express + node server that exposes the dataset as the v2 REST API.

Community Mirrors

Several community-run instances of punkapi-server keep the v2 contract reachable after BrewDog's 2023 decommission.

Public APIs Catalog

Listed in github.com/public-apis/public-apis under the Food & Drink category.

Solutions

Self-Host the Server

Clone sammdec/punkapi-server, run `npm i` then `npm run dev` — get the full v2 contract on http://localhost:3333.

Embed the Dataset

Run `npm i --save punkapi-db` to pull the full 325-recipe data.json into your application without HTTP.

Static JSON Mirror

For purely read use cases, host data.json on a CDN and serve clients directly.

Semantic Vocabularies

Punkapi Context

8 classes · 34 properties

JSON-LD

API Governance Rules

Punk API API Rules

36 rules · 11 errors 21 warnings 4 info

SPECTRAL

Resources

🔗
Website
Website
👥
punkapi-db (Recipe Dataset — archived 2023-06-28)
GitHubRepository
👥
punkapi-server (Express server — archived 2023-06-28)
GitHubRepository
👥
GitHubOrganization
GitHubOrganization
📦
punkapi-db (npm — recipe dataset)
SDK
📦
punkapi (C client)
SDK
📦
punkapi-ruby (Ruby client)
SDK
📦
PunkApi (PHP client)
SDK
📦
brewdog.js (JavaScript client)
SDK
📦
PunkAPI (Swift/iOS client)
SDK
📦
VueDogs-API (Vue.js client)
SDK
📦
brewdog-recipe (Docker mirror)
SDK
📦
brewdogr (R client)
SDK
🔗
PublicAPIsListing
PublicAPIsListing
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
SpectralRules
SpectralRules
🔗
Vocabulary
Vocabulary

Sources

Raw ↑
aid: punkapi
name: Punk API
description: >-
  Punk API is a free, no-auth REST API exposing BrewDog's "DIY Dog" open-source
  beer recipe collection — 325 detailed homebrew recipes crowdsourced and
  transcribed from the BrewDog DIY Dog PDF. The v2 surface (api.punkapi.com/v2)
  offered three read-only endpoints: list beers (with rich query filtering on
  ABV, IBU, EBC, brew date, beer name, hops, malt, yeast, and food pairing),
  get a beer by id, and get a random beer. Each beer carries a full recipe —
  ABV, IBU, EBC/SRM colour, target gravities, mash temperature schedule,
  fermentation temperature, twist, malt and hop bills, yeast strain, food
  pairings, brewer's tips, and contributor attribution. STATUS — DEPRECATED.
  BrewDog decommissioned the public api.punkapi.com endpoint in 2023 and the
  source repositories (sammdec/punkapi-db, sammdec/punkapi-server) were
  archived on 2023-06-28. The dataset and server source remain MIT-licensed
  and available; community-hosted mirrors and the `punkapi-db` npm package
  preserve the contract documented here.
url: https://punkapi.com
baseURL: https://api.punkapi.com/v2
specificationVersion: '0.20'
created: '2026-05-28'
modified: '2026-05-29'
x-source: public-apis/public-apis
x-category: Food & Drink
x-type: opensource
x-tier: 3
x-tier-reason: free-deprecated-public-service-with-archived-open-source-source-code
x-status: deprecated
x-deprecated-on: '2023'
x-archived-on: '2023-06-28'
x-replacement: >-
  Self-host sammdec/punkapi-server against the `punkapi-db` npm dataset, or
  point clients at a community-maintained mirror.
tags:
  - Food And Drink
  - Beer
  - BrewDog
  - DIY Dog
  - Recipes
  - Open Source
  - Public APIs
  - REST
  - Deprecated
apis:
  - name: Punk API — Beers
    description: >-
      Read-only REST surface over the 325 BrewDog DIY Dog beer recipes. Three
      operations — list (with ABV/IBU/EBC/date/ingredient filters and
      page/per_page pagination up to 80 items), get-by-id, and random. No
      authentication. The historical baseURL (api.punkapi.com/v2) is no
      longer reachable; self-host sammdec/punkapi-server or run a mirror.
    humanURL: https://punkapi.com
    baseURL: https://api.punkapi.com/v2
    tags:
      - REST
      - Beer
      - Recipes
      - Deprecated
    properties:
      - type: Documentation
        url: https://punkapi.com
      - type: OpenAPI
        url: openapi/punkapi-openapi.yml
      - type: JSONSchema
        url: json-schema/punkapi-beer-schema.json
        title: Beer Schema
      - type: JSONSchema
        url: json-schema/punkapi-error-schema.json
        title: Error Schema
      - type: JSONStructure
        url: json-structure/punkapi-beer-structure.json
        title: Beer Structure
      - type: JSONStructure
        url: json-structure/punkapi-error-structure.json
        title: Error Structure
      - type: JSONLD
        url: json-ld/punkapi-context.jsonld
      - type: Example
        url: examples/punkapi-beer-example.json
        title: Beer Example
      - type: Example
        url: examples/punkapi-error-example.json
        title: Error Example
      - type: NaftikoCapability
        url: capabilities/punkapi-beers.yaml
common:
  - type: Website
    url: https://punkapi.com
  - type: GitHubRepository
    url: https://github.com/sammdec/punkapi
    title: punkapi-db (Recipe Dataset — archived 2023-06-28)
  - type: GitHubRepository
    url: https://github.com/sammdec/punkapi-server
    title: punkapi-server (Express server — archived 2023-06-28)
  - type: GitHubOrganization
    url: https://github.com/sammdec
  - type: SDK
    url: https://www.npmjs.com/package/punkapi-db
    title: punkapi-db (npm — recipe dataset)
  - type: SDK
    url: https://github.com/apfohl/punkapi
    title: punkapi (C client)
  - type: SDK
    url: https://github.com/samjbmason/punkapi-ruby
    title: punkapi-ruby (Ruby client)
  - type: SDK
    url: https://github.com/billythekid/PunkApi
    title: PunkApi (PHP client)
  - type: SDK
    url: https://github.com/mikefrancis/brewdog.js
    title: brewdog.js (JavaScript client)
  - type: SDK
    url: https://github.com/Oni-zerone/PunkAPI
    title: PunkAPI (Swift/iOS client)
  - type: SDK
    url: https://github.com/yoohahn/VueDogs-API
    title: VueDogs-API (Vue.js client)
  - type: SDK
    url: https://hub.docker.com/r/yoohahn/brewdog-recipe
    title: brewdog-recipe (Docker mirror)
  - type: SDK
    url: https://github.com/phillc73/brewdogr
    title: brewdogr (R client)
  - type: PublicAPIsListing
    url: https://github.com/public-apis/public-apis
  - type: Plans
    url: plans/punkapi-plans-pricing.yml
  - type: RateLimits
    url: rate-limits/punkapi-rate-limits.yml
  - type: SpectralRules
    url: rules/punkapi-rules.yml
  - type: Vocabulary
    url: vocabulary/punkapi-vocabulary.yml
  - type: Features
    data:
      - name: 325 BrewDog DIY Dog Recipes
        description: Crowdsourced transcription of the complete BrewDog DIY Dog PDF — every recipe from Punk IPA (#001) through the final published batch.
      - name: Full Brewing Recipe
        description: Each beer carries ABV, IBU, EBC, SRM, target gravities, mash schedule, fermentation temperature, malt bill, hop bill, yeast strain, food pairings, and brewer's tips.
      - name: Recipe-Oriented Query Filters
        description: List endpoint supports filters on ABV (gt/lt), IBU (gt/lt), EBC (gt/lt), brewed-before/after dates, and substring search on beer name, hops, malt, yeast, and food pairing.
      - name: Pagination
        description: page (>=1) and per_page (1-80, default 25) on the list endpoint.
      - name: Random Beer
        description: /beers/random returns a uniformly random recipe — useful for "beer of the day" demos.
      - name: No Authentication
        description: Fully public — no API keys, OAuth, or signup required.
      - name: No Rate Limits Documented
        description: Best-effort public service while it was live. Only the per_page ceiling of 80 is enforced.
      - name: MIT-Licensed Source
        description: Both punkapi-db (dataset) and punkapi-server (Express app) are MIT-licensed — self-host or fork freely.
      - name: npm Distribution
        description: The complete dataset is published as the `punkapi-db` package for direct in-process use without HTTP.
  - type: UseCases
    data:
      - name: Homebrewing Reference
        description: Look up a recipe by ABV, hop, or malt to replicate or adapt a BrewDog beer at home-batch scale.
      - name: Sample / Tutorial API
        description: Front-end and mobile tutorials use Punk API as a fun, schema-rich, no-auth REST target.
      - name: Beer Discovery App
        description: Power beer recommendation apps, food-pairing tools, and BrewDog fan sites.
      - name: Search by Ingredient
        description: Filter by hop (e.g. `hops=simcoe`) or malt (e.g. `malt=maris_otter`) to discover recipes using a specific ingredient.
      - name: Food Pairing Lookup
        description: Filter by `food=spicy_food` to find beers explicitly recommended for spicy cuisine.
      - name: HTTP Client QA
        description: Stable, well-defined schema makes Punk API a good fixture for codegen tools, OpenAPI tooling, and SDK builders.
  - type: Integrations
    data:
      - name: BrewDog DIY Dog
        description: The upstream source of every recipe — BrewDog's open-source DIY Dog homebrew PDF.
      - name: punkapi-db (npm)
        description: The recipe dataset packaged for direct npm install — no HTTP needed.
      - name: punkapi-server (Express)
        description: The reference Express + node server that exposes the dataset as the v2 REST API.
      - name: Community Mirrors
        description: Several community-run instances of punkapi-server keep the v2 contract reachable after BrewDog's 2023 decommission.
      - name: Public APIs Catalog
        description: Listed in github.com/public-apis/public-apis under the Food & Drink category.
  - type: Solutions
    data:
      - name: Self-Host the Server
        description: 'Clone sammdec/punkapi-server, run `npm i` then `npm run dev` — get the full v2 contract on http://localhost:3333.'
      - name: Embed the Dataset
        description: 'Run `npm i --save punkapi-db` to pull the full 325-recipe data.json into your application without HTTP.'
      - name: Static JSON Mirror
        description: For purely read use cases, host data.json on a CDN and serve clients directly.
maintainers:
  - FN: Kin Lane
    email: [email protected]