Register a coffee
register_coffeeRegister a coffee that is NOT yet in list_beans, together with its first bag. It does not switch a coffee in use: it becomes active only when no coffee is in use (none active, or the active one archived or with every bag finished); otherwise call set_active with its bean_id when the user starts brewing it. The active field of the reply says which. The coffee is the roaster's product (roaster, origins, variety, process, roast level, roasting type, cupping score, aromatics, roaster notes, rest window); the bag is this purchase (roast date, weight, price, state). For another bag of a coffee already on file call register_bag instead — it keeps the recipes and notes. Returns bean_id and the first bag's bag_id.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ean | No | ||
| url | No | ||
| body | No | Free text; roasters usually say low, medium or high | |
| cost | No | ||
| name | Yes | ||
| notes | No | The coffee's own description — the roaster's tasting notes, the dialing approach that worked. Per bag notes go in bag_notes. | |
| state | No | ||
| origin | No | ||
| rating | No | ||
| acidity | No | Free text; roasters usually say low, medium or high | |
| co2e_kg | No | ||
| origins | No | List of bean origin details | |
| qr_code | No | ||
| roaster | No | ||
| storage | No | ||
| variety | No | ||
| archived | No | 1 if archived, 0 otherwise | |
| bean_mix | No | E.g. blend details | |
| buy_date | No | Calendar day in YYYY-MM-DD format — a day, not a timestamp | |
| currency | No | ||
| finished | No | 1 if finished, 0 otherwise | |
| aromatics | No | ||
| bag_notes | No | ||
| favourite | No | 1 if favourite, 0 otherwise | |
| frozen_at | No | Calendar day the bag went into the freezer, YYYY-MM-DD — a day, not a timestamp | |
| sweetness | No | Free text; roasters usually say low, medium or high | |
| roast_date | Yes | Calendar day in YYYY-MM-DD format — a day, not a timestamp | |
| arabica_pct | No | Percent arabica, 100 for a pure arabica; the rest robusta | |
| attachments | No | JSON or comma-separated list of attachments | |
| frozen_note | No | ||
| opened_date | No | Calendar day in YYYY-MM-DD format — a day, not a timestamp | |
| roast_level | Yes | ||
| roast_range | No | ||
| unfrozen_at | No | Calendar day the bag came out, YYYY-MM-DD — a day, not a timestamp | |
| bag_weight_g | No | Bag weight in grams | |
| best_by_date | No | Calendar day in YYYY-MM-DD format — a day, not a timestamp | |
| process_type | Yes | ||
| roast_custom | No | ||
| decaffeinated | No | 1 if decaf, 0 if regular | |
| dial_category | No | Dialing behavior class: classic = medium/traditional espresso roasts (chocolate/nut, balanced); dark = genuinely dark/roasty; the light categories cover Nordic and ultra-light styles. | |
| roasting_type | No | ||
| cupping_points | No | ||
| frozen_storage | No | ||
| rest_window_days_max | No | ||
| rest_window_days_min | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| active | Yes | ||
| bag_id | Yes | ||
| status | Yes | ||
| bean_id | Yes | ||
| message | Yes |