Browser extension "Warsaw Beer Overlay" — install & setup

The extension overlays your personal "already had it" status and, when the match is exact, your rating for beers from your Untappd history on craft beer shop pages. The supported shops, grouped by where they ship from, are:

To get everything working you need three things: (1) upload your beer history to the bot, (2) get an access token, (3) install and configure the extension. Step by step below.

What you see without a token

The extension works even without a token: shop pages show global Untappd ratings (the gold star badge) and links to the beer/search. This lets you see right away how it works.

Products that a supported shop itself files under a "not beer" category also get a grey ✕; it needs no token and is not a link.

Personal features are unlocked by a token (Part 2): a green check "you already had this" badge with your own rating, a dashed ? outline for uncertain matches, plus searching for missing beers and check-in syncing. The extension popup will show "Not connected" (English UI) until a token is added.


Prerequisites


Part 1. Register in the bot and import your beer list

This is done once in the Telegram bot. It's your Untappd history that gives the extension the data on what you've already had (without it, no badges will appear).

1.1. Start the bot and pick a language

  1. Open the bot in Telegram, send /start.
  2. Change the language if needed: /lang.

1.2. Link your Untappd account

Send:

/link <username>

where <username> is your Untappd handle (a full URL untappd.com/user/<username> also works). Reply: ✅ Linked to untappd.com/user/<username>.

1.3. Import your beer history — this is your "beer list"

  1. Send the /import command.
  2. The bot will ask for an Untappd export file: CSV, JSON, or ZIP (up to 20 MB).
  3. Where to get the export: in Untappd → Supporter → Account → Download History.
  4. Send the file to the bot as a document (attachment, not text).
  5. The bot will show progress and finish with: ✅ Imported N check-ins.

After this, the bot knows exactly what you've had and how you rated it — the extension will use this.

You can update your history any time by sending a new export via /import.

1.4. Get an access token for the extension

Send:

/extension

The bot will reply with instructions and a token in a copyable block (<code>…</code>), plus the API address and a Chrome Web Store link. The bot no longer sends zip files.

Important: the token rotates 1:1 — every /extension call creates a new token and invalidates the previous one. If you ever run /extension again, don't forget to update the token in the extension settings.

Copy the token — you'll need it in Part 3.


Part 2. Install the extension

The extension is installed from the Chrome Web Store — building from source is not required, and the bot no longer sends zip files.

2.1. Install from the store

Open the extension's store page and click "Add to Chrome":

https://chromewebstore.google.com/detail/fdelmnhijeiojadcaihfdpecfcldbndg

If you see "This item is not available" — sign in to your Google account in the browser and reload the page. The extension is flagged 18+ (beer content), so the store hides it from signed-out visitors and never shows it in store search. The direct link works for anyone signed in.

The extension will appear in the list. Pin its icon to the toolbar (optional, but handy).

2.2. Updating

Updates arrive automatically — Chrome pulls new versions from the store on its own. Nothing to download, unpack, or reload.

If you have an extension token, the bot sends you a Telegram message once a new version actually reaches users (not when it's merely submitted for review). Don't want those — send the bot /announce off.

Switching from an older unpacked build? Paste the token in Options (Part 3) and remove the old copy in chrome://extensions. It's the same token — no need to re-issue it: it isn't tied to an extension ID and works in both copies at once until you remove the old one. Do remove the old copy, though: two installed copies both draw badges on the same shop page and duplicate each other.

For developers: building from source. If you want to build it yourself: cd extension && npm install && npm run build → load extension/dist/. The same npm run build also writes extension/warsaw-beer-overlay-<version>.zip next to it.


Part 3. Configure the extension

The settings page itself has a "Read the setup guide →" link at the top that brings you back here — handy if you land on Options without having seen this guide first.

  1. Open the extension's settings page:

  2. Paste the token you got from the bot (/extension) into the "Token" field.

  3. Leave the "API URL" field at its default: https://beer-api.ysilvestrov-ai.uk (change it only if you're running your own API instance).

  4. (Optional) Check "Find missing beers via Untappd (uses your Untappd session)" — then the extension will search for beers not yet in the bot's catalog, using your own Untappd session/IP: the bot returns the search parameters, and the extension makes a browser request to Untappd's public Algolia API and sends the bot only the resulting JSON candidates. Search is limited to a few requests per page, respecting anti-ban limits. The browser will ask for permission to access untappd.com and *.algolia.net — allow it. Off by default.

    Separately from this checkbox, on Flasker. On flasker.com.ua pages, the extension automatically loads the pages of all visible products in the background, even without this permission. From there it reads the product category, the brewery, and the Untappd link the shop publishes. This way beers with no volume listed aren't lost, and glasses, souvenirs, and other products the shop confirms aren't sent for matching as beer and get a red ✕. Requests go only to flasker.com.ua itself — no new browser permission is needed. It also works for imported items that Flasker labels with the generic brand "Імпортне пиво" (imported beer): the extension doesn't treat that label as a brewery name and instead checks the product against the published Untappd link.

  5. Click "Save".

  6. Click "Test connection":


Part 4. Using it

  1. Open any shop from the supported list above, either directly or from the popup's "Supported shops" directory described below.

  2. The extension automatically reads the beer grid on the page, sends it to the bot for matching, and draws a corner badge on the cards. What the badges mean:

    On a large page the finished cards get their usual badge while later ones may still be showing a check-in-progress state — you do not have to wait for the whole catalog.

    Only two marks carry colour — the green check and the gold star. Those are the cards you choose between; everything else is grey on purpose, so it does not compete for your attention.

    Badge What it means
    green check + a rating (e.g. 4.2) you've already had this beer — shows your rating; click opens Untappd
    green check + gold star with a rating you've had it but never rated it — the global rating is shown; click opens Untappd
    green check with no number you've had it; there is neither your rating nor a global one yet
    gold star + a rating you haven't had it yet — shows the global rating; click opens Untappd
    gold star with no number you haven't had it, and Untappd has too few ratings to show one
    any of those in a dashed outline with ? the match is uncertain — the beer was found, but we are not sure; click opens Untappd to check. Here a check only means “you probably had this”, so we do not show your rating. If a star and number appear, that number is still the global rating — not evidence that you did not leave your own
    a magnifier not found on Untappd; click opens a search pre-filled with the name
    a grey ring the card is waiting its turn
    a grey spinning arc this beer is being checked right now
    a grey reload arrow we did not get to this one this time. Hover for the hint; reload the page and these cards carry on being checked
    a triangle with ! the check failed: Untappd did not answer, the connection dropped, or the card could not be parsed. Hover to see which
    a grey ✕ the shop itself filed the product as not beer; the badge is not clickable

    Every badge carries a screen-reader label that spells the state out, and hovering it shows the same wording. For example, ✅ ? ⭐ 3.6 is read and shown as “Uncertain match. You probably had this. Global rating 3.6”. No badge at all now means one thing only: the overlay does not run on this page (a whole not-beer category).

  3. This also works with SPA navigation: when the shop re-renders the list (filters, pagination), the overlay updates itself.

The check + your rating only appear for beers from your own history (requires /import, Part 1). The star is also shown for beers you haven't had yet, if they're already in the bot's catalog. A number without a star after the check is always yours; a number with a star is the global one.

The dashed ? outline means every table row about your own rating is qualified: we do not know for certain that this is the same beer. For example, ✅ ? ⭐ 3.6 means “you probably had this; 3.6 is the global rating”, not “you did not rate it”. The outline now appears on beers you have not had, too: an uncertain match used to look exactly like a certain one, with no cue to check for yourself.

When a shop's product page links to Untappd itself, the extension follows that link — the badge then shows exactly that beer, even if the shop spells its name differently. When the link disagrees with the brewery the shop names on the same page, the badge stays cautious (a dashed ? outline): the beer was found, but we are not certain — click to check.

The toolbar button (popup)

Clicking the extension's icon on the browser toolbar opens a small menu. The buttons are ordered by importance — the main action on top, the housekeeping one at the bottom:

Until a token is saved, the popup puts a "Not connected" block with a "Get a token" button directly under the header — it's the first stop for Tab. The "Sync my check-ins" button is greyed out and inactive in this state, captioned Add a token to sync your check-ins.: without a token, syncing couldn't succeed anyway, so the extension doesn't ask for extra access to untappd.com only to show a connection error.

Once you save a token (Part 3), that block disappears and "Sync my check-ins" becomes the main button again. The "Read the setup guide →" link doesn't go anywhere — it just moves down to the bottom of the popup, above "Clear all cache".

The popup follows your browser theme: in dark mode it's dark too.

"Sync my check-ins" — sync check-ins without Supporter

The "Sync my check-ins" button in the popup loads your check-in history directly from your Untappd session in the browser and sends it to the bot — this is an alternative to /import that does not require Untappd Supporter.


Troubleshooting

Symptom What to do
Test connection → health Check the "API URL" field and your internet/tunnel access.
Test connection → unauthorized The token expired or is wrong. Run /extension, paste the new token, Save.
Test connection → network The browser couldn't reach the API: for a non-default URL, grant permission for the host (Save again, or chrome://extensions → Details); check your network.
Badges don't appear 1) Are you on a supported site from the list above? 2) Have you run /import? 3) Reload the page.
Ran /extension again — it stopped working The old token was invalidated. Paste the new token in the settings and Save.
Changed the API URL — it's not fetching During Save the browser asks for host permission — allow it (or add the permission via chrome://extensions → Details).
Something else is wrong: a wrong beer or rating, a missing badge, a button that does nothing Send /report to the bot, choose Extension, describe what you saw and attach a screenshot. The bot checks whether it is already known and replies with a link. Screenshots stay on our server and are not published.

In short (quick start)

  1. In the bot: /start → /link <username> → /import (send your Untappd export) → /extension (copy the token; the bot also gives you the store link).
  2. Install the extension from the store: https://chromewebstore.google.com/detail/fdelmnhijeiojadcaihfdpecfcldbndg (if you see "Item not available" — sign in to Google and reload).
  3. Extension Options → paste the token → Save → Test connection → ✅.
  4. Go to a supported shop — "already had it" badges + ratings will appear on their own.
  5. Updating: automatic, straight from the store — nothing to download.