Skip to main content

brewfyi

PyPI version Python License: MIT

Coffee knowledge API client for Python. Search 72 coffee varieties, 20 origin countries, 21 brew methods, and coffee terminology from BrewFYI -- the complete coffee reference with 120 expert guides covering everything from Arabica genetics and processing methods to SCA cupping protocols and roast profiling.

Explore coffee at brewfyi.com -- Coffee Varieties | Origins | Brew Methods |

brewfyi demo -- coffee API search and lookup

Table of Contents

Install

pip install brewfyi[api]     # API client (httpx)
pip install brewfyi[cli]     # + CLI (typer, rich)
pip install brewfyi[mcp]     # + MCP server
pip install brewfyi[all]     # Everything

Quick Start

from brewfyi.api import BrewFYI

with BrewFYI() as api:
    # Search varieties, brew methods, origins, glossary terms
    results = api.search("espresso")
    print(results)

    # Look up a glossary term
    term = api.glossary_term("extraction")
    print(term["definition"])

What You'll Find on BrewFYI

BrewFYI is a comprehensive coffee reference covering 72 coffee varieties, 20 origin countries, 21 brew methods, and 120 expert guides. The database spans the entire coffee journey -- from seed variety and terroir through processing, roasting, and extraction science.

Coffee Species and Varieties

All commercial coffee comes from two primary species: Coffea arabica (60-70% of world production) and Coffea canephora (Robusta, 30-40%). Arabica is prized for its complex flavors and aromatic diversity, while Robusta offers higher caffeine content, greater disease resistance, and a stronger, more bitter profile often used in espresso blends.

BrewFYI catalogs 72 distinct varieties with genetic lineage, flavor profiles, and growing requirements:

Category Notable Varieties Characteristics
Ethiopian Heirlooms Gesha/Geisha, Yirgacheffe Landrace, Sidamo Floral, jasmine, bergamot, complex acidity
Bourbon Lineage Bourbon, Caturra, Catuai, Pacas, Villa Sarchi Sweet, balanced, caramel, fruit notes
Typica Lineage Typica, Maragogipe, Kona, Blue Mountain Clean, sweet, mild body
Hybrid/Modern Castillo, Colombia, Catimor, Sarchimor Disease resistant, improving cup quality
Robusta Robusta, Conilon High caffeine, earthy, bitter, crema

Learn more: Browse Coffee Origins · ### Processing Methods

Post-harvest processing dramatically affects flavor. The same coffee cherry processed differently produces entirely different cup profiles:

Method Process Flavor Impact
Washed (Wet) Pulp removed, fermented, washed, dried Clean, bright acidity, clarity of origin
Natural (Dry) Whole cherry dried on raised beds Fruity, wine-like, heavy body
Honey Pulp removed, mucilage left during drying Sweet, balanced, complex
Anaerobic Sealed fermentation tanks, controlled environment Intense, unique fermentation flavors
Wet-Hulled (Giling Basah) Partially dried, hulled wet (Indonesia) Earthy, low acidity, full body

Learn more: Processing Methods Guide · Coffee Glossary

Brew Methods

BrewFYI covers 21 brewing methods with optimal parameters for water temperature, grind size, brew ratio, and extraction time. Each method extracts different compounds from ground coffee, producing distinct flavor profiles:

Method Type Brew Time Grind Best For
Espresso Pressure (9 bar) 25-30s Fine Concentrated, crema, milk drinks
Pour Over (V60) Drip/Percolation 2:30-3:30 Medium-fine Clarity, origin character
French Press Immersion 4:00 Coarse Full body, oils, texture
AeroPress Pressure/Immersion 1:00-2:00 Medium-fine Versatile, clean, portable
Cold Brew Cold immersion 12-24h Coarse Smooth, low acidity, sweet
Moka Pot Steam pressure 4-5 min Fine-medium Strong, stovetop espresso
Chemex Drip/Percolation 3:30-4:30 Medium-coarse Clean, bright, paper filtered
Siphon Vacuum 1:30-2:00 Medium Theatrical, clean, aromatic

Learn more: 21 Brew Methods · Brewing Tools

Roast Levels

Roast level determines the balance between origin character and roast-developed flavors. Lighter roasts preserve acidity and origin terroir; darker roasts emphasize body, bitterness, and caramelization:

Level Internal Temp Characteristics
Light 180-205C Bright acidity, floral, fruity, tea-like body
Medium-Light 210-220C Balanced, caramel sweetness, origin + roast
Medium 220-230C Balanced body, chocolate, nuts, rounded acidity
Medium-Dark 230-240C Bittersweet, cocoa, reduced acidity, fuller body
Dark 240C+ Smoky, bitter, oily surface, minimal origin character

Learn more: Coffee Guides

Origin Countries

Coffee is grown in the "Bean Belt" between the Tropics of Cancer and Capricorn. BrewFYI covers 20 origin countries with altitude ranges, harvest seasons, typical processing methods, and regional flavor profiles.

Top producers include Brazil (world's largest), Vietnam (Robusta leader), Colombia, Ethiopia (birthplace of coffee), Indonesia, Honduras, India, Uganda, Mexico, and Guatemala. Specialty coffee increasingly highlights single-origin and micro-lot traceable sourcing.

Learn more: Browse Coffee Origins · ## API Endpoints

All endpoints are free, require no authentication, and return JSON with CORS enabled.

Method Endpoint Description
GET /api/v1/varieties/ List all 72 coffee varieties
GET /api/v1/varieties/{slug}/ Variety detail with genetics, flavor
GET /api/v1/origins/ List all 20 origin countries
GET /api/v1/origins/{slug}/ Origin detail with altitude, harvest
GET /api/v1/methods/ List all 21 brew methods
GET /api/v1/methods/{slug}/ Brew method detail with parameters
GET /api/v1/glossary/ List all coffee terminology
GET /api/v1/glossary/{slug}/ Glossary term definition
GET /api/v1/search/?q={query} Search across all content
GET /api/v1/compare/{slug1}/{slug2}/ Compare two varieties or methods
GET /api/v1/random/ Random variety or method
GET /api/v1/guides/ List all 120 guides
GET /api/v1/guides/{slug}/ Guide detail
GET /api/v1/openapi.json OpenAPI 3.1.0 specification

Example

curl -s ""
{
  "slug": "gesha",
  "name": "Gesha",
  "species": "arabica",
  "description": "Legendary Ethiopian variety prized for its extraordinary floral aromatics, jasmine and bergamot notes, and tea-like body.",
  "origin": "Gori Gesha forest, Ethiopia",
  "flavor_profile": ["jasmine", "bergamot", "peach", "tropical fruit", "honey"],
  "altitude_range": "1,500-2,000m",
  "processing": ["washed", "natural", "honey"],
  "url": ""
}

Full API documentation: brewfyi.com/developers/. OpenAPI 3.1.0 spec: .

Command-Line Interface

# Search varieties, brew methods, origins
brewfyi search "espresso"
brewfyi search "pour over"
brewfyi search "arabica"
brewfyi search "ethiopia"

# Look up coffee terminology
brewfyi term "extraction"
brewfyi term "channeling"
brewfyi term "crema"

The CLI displays results in formatted tables with rich terminal output.

MCP Server (Claude, Cursor, Windsurf)

Run as an MCP server for AI-assisted coffee queries:

python -m brewfyi.mcp_server

Claude Desktop (~/.claude/claude_desktop_config.json):

{
  "mcpServers": {
    "brewfyi": {
      "command": "uvx",
      "args": ["--from", "brewfyi[mcp]", "python", "-m", "brewfyi.mcp_server"]
    }
  }
}

Tools: coffee_search, coffee_glossary_term

API Client

from brewfyi.api import BrewFYI

with BrewFYI() as api:
    # Search across varieties, origins, methods, glossary
    results = api.search("espresso")

    # Look up coffee terminology
    term = api.glossary_term("channeling")
    print(term["definition"])

    # Compare two brew methods
    comparison = api.compare("v60", "chemex")

    # Get a random variety
    random_variety = api.random()

Learn More About Coffee

Part of the FYIPedia open-source developer tools ecosystem -- world beverages from cocktails to sake.

Site Domain Focus
CocktailFYI cocktailfyi.com 636 cocktails, ABV, calories, flavor profiles
VinoFYI vinofyi.com Wines, grapes, regions, wineries, food pairings
BeerFYI beerfyi.com 112 beer styles, hops, malts, yeast, BJCP
BrewFYI brewfyi.com 72 coffee varieties, roasting, 21 brew methods
WhiskeyFYI whiskeyfyi.com 80 whiskey expressions, distilleries, regions
TeaFYI teafyi.com 60 tea varieties, teaware, brewing guides
NihonshuFYI nihonshufyi.com 80 sake, rice varieties, 50 breweries

Embed Widget

Embed BrewFYI widgets on any website with brewfyi-embed:

<script src="https://cdn.jsdelivr.net/npm/brewfyi-embed@1/dist/embed.min.js"></script>
<div data-brewfyi="entity" data-slug="example"></div>

Zero dependencies · Shadow DOM · 4 themes (light/dark/sepia/auto) · Widget docs

License

MIT

Metadata

Release files for brewfyi 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for brewfyi 0.1.4
File Size Uploaded Provenance Actions
brewfyi-0.1.4.tar.gz 608.6 kB Without provenance Details for brewfyi-0.1.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for brewfyi 0.1.4
File Interpreter ABI Platform Actions
brewfyi-0.1.4-py3-none-any.whl Python 3 none any Details for brewfyi-0.1.4-py3-none-any.whl

Total release size: 618.9 kB

Release files / brewfyi-0.1.4.tar.gz

Download URL brewfyi-0.1.4.tar.gz
Size 608.6 kB
Tags Source
SHA-256 checksum
How to use checksums
478d2062c53cbc424a88b29afca2b98a5c2475845d47022100b491323ee85bbe
BLAKE2b-256 checksum
How to use checksums
c26d54e08a9f87af11546eb3e4f735d3736efe2da59405f045efe84333e95f60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / brewfyi-0.1.4-py3-none-any.whl

Download URL brewfyi-0.1.4-py3-none-any.whl
Size 10.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8d00d82b5263d05637ef2e4300927293806af53ba98157903cf16f8cfc65e13e
BLAKE2b-256 checksum
How to use checksums
5102e6a5c391d4927c8d428c7628bb04ef56b79122ad2cbce1ebf03e95b537dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for brewfyi 0.1.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page