Coffee knowledge API client — search coffee varieties, brew methods, and terms from BrewFYI.
Project description
brewfyi
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 | Coffee Guides
Table of Contents
- Install
- Quick Start
- What You'll Find on BrewFYI
- API Endpoints
- Command-Line Interface
- MCP Server (Claude, Cursor, Windsurf)
- API Client
- Learn More About Coffee
- Beverage FYI Family
- License
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 · Country Profiles
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: Roast Level Guide · 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 · Country Profiles
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 "https://brewfyi.com/api/v1/varieties/gesha/"
{
"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": "https://brewfyi.com/varieties/gesha/"
}
Full API documentation: brewfyi.com/developers/. OpenAPI 3.1.0 spec: brewfyi.com/api/v1/openapi.json.
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
- Reference: Coffee Varieties | Origins | Brew Methods
- Glossary: Coffee Terminology
- Guides: Coffee Guides
- Compare: Variety Comparisons
- API: Developer Docs | OpenAPI Spec
Beverage FYI Family
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 |
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file brewfyi-0.1.3.tar.gz.
File metadata
- Download URL: brewfyi-0.1.3.tar.gz
- Upload date:
- Size: 608.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7deb2e6234ae006e0d676ed23cd6a526cd642849d748f4c8d301ac6372e756da
|
|
| MD5 |
f4cfc7a864941e8deb0625ea9a739115
|
|
| BLAKE2b-256 |
7bfba13a2d71fecf7e2a5578733739a2c88acce0f1836bf136e4e4acfcebf6f1
|
File details
Details for the file brewfyi-0.1.3-py3-none-any.whl.
File metadata
- Download URL: brewfyi-0.1.3-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f47f43f84581e3aa197097f25803e923685fd65f4c6cd41218afd759e989451
|
|
| MD5 |
1bf1db7a7a6604737f03d259c73a7a86
|
|
| BLAKE2b-256 |
af1f0946ea7c73860eab158ce0a701c1c0f207ad404779be43589d2158c5aa16
|