Top-rated beers a user has NOT had, from a candidate list
untappd_top_not_hadRank a candidate beer list by Untappd global rating and return the top beers you or a group have not had, with optional style filtering and favorite boosts.
Instructions
The "what should I order off this tap list?" tool. From a list of candidate beer ids, return the top N the user has NOT yet had, ranked by Untappd global rating, with an optional style filter. Not-had filtering uses the cache only (both sources, no API call). Beer ratings/styles come from a metadata cache; a beer/info API call is made only on a cache miss or if the cached metadata is >30 days old, capped at api_budget calls per run (~100 calls/hour limit) — if more are needed it returns partial: true / another_run_needed: true, so re-running fills the rest. A beer whose refresh is deferred or fails is still ranked on its older cached metadata and marked stale: true. Reports the same freshness/caveat block as untappd_cache_not_had. Omit username for your own account. For a GROUP pass usernames: mode "none_had" (default) ranks only beers new to everyone, "any_not_had" ranks beers at least one of them still needs (each ranked beer lists not_had_by / had_by). prefer_favorites (default true) lifts wishlisted beers (+0.5) and beers from a favorite brewery (+0.25) — liked on Untappd, derived or manual, any user's in a group; the wishlist needs untappd_sync_wishlist and Untappd likes untappd_sync_brewery_likes — and says so per beer (score, boosted_by, wishlisted, brewery_favorite/favorite).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bids | Yes | Candidate beer ids (1–100) | |
| mode | No | With usernames: "none_had" (default) keeps beers NONE of them has had (new to everyone); "any_not_had" keeps beers at least one of them has not had. | |
| style | No | Case-insensitive substring filter; matches EITHER the beer style or its parent style (e.g. "ipa") | |
| top_n | No | How many top beers to return (default 2, max 10) | |
| username | No | Untappd username. Omit to use your own configured account (UNTAPPD_USERNAME). | |
| usernames | No | Check a GROUP of users (1–10) instead of one — e.g. everyone at the table. Use instead of username; each must be synced (untappd_sync_user_beers). | |
| api_budget | No | Max beer/info API calls this run for uncached/stale metadata (default 25). Keep modest to respect the ~100 calls/hour rate limit. | |
| prefer_favorites | No | Boost beers on the wishlist (+0.5) or from a favorite brewery (+0.25) when ranking (default true). false ranks by global rating alone. |