Untappd Scraper avatar

Untappd Scraper

Pricing

$0.90 / 1,000 scraped beers

Go to Apify Store
Untappd Scraper

Untappd Scraper

Scrape public Untappd beer data from top-rated lists, beer URLs, brewery pages, beer IDs, or search terms. Export ratings, ABV, IBU, breweries, check-in counts, visible check-ins, venues, serving styles, and photos.

Pricing

$0.90 / 1,000 scraped beers

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

🍺 Untappd scraper for beer ratings and check-ins

Untappd Scraper collects public beer data from Untappd and saves one clean Apify dataset row per beer. Use it to export beer names, breweries, styles, ratings, ABV, IBU, check-in totals, descriptions, images, source URLs, and visible public check-ins when you want review-style context.

Start with no targets to collect top-rated beers, or add beer URLs, brewery URLs, beer IDs, and search terms when you need specific beers or brewery portfolios. The Actor works with public Untappd pages and does not ask for Untappd cookies, login details, or an API key.

This Untappd scraper is useful for brewery research, beer market analysis, review monitoring, bar or bottle-shop planning, content research, and repeatable beer datasets. You can run it in Apify Console, schedule repeat runs, call it through the Apify API, and export results as JSON, CSV, Excel, XML, RSS, or HTML.

✅ What this Actor does

  • Collects top-rated public beers when targets are empty.
  • Accepts public Untappd beer URLs.
  • Accepts public Untappd brewery URLs and collects beers from those brewery pages.
  • Accepts Untappd beer IDs.
  • Searches public Untappd beer data from search terms.
  • Optionally narrows top-rated discovery by beer style.
  • Saves one dataset row per beer.
  • Adds visible public check-ins inside each beer row when includeCheckins is enabled.
  • Stops at your maxRecords beer-row limit.
  • Runs without user-provided Untappd credentials.

The output is built around beer rows, not separate check-in rows. That keeps exports easier to join with beer metadata while still giving you recent public check-in context when Untappd exposes it.

📦 Data you can extract

Each beer row can include:

  • beerId and beerUrl
  • beerName
  • breweryName and breweryUrl
  • beerStyle
  • abvPercent
  • ibu
  • globalRating
  • ratingCount
  • totalCheckins and totalCheckinsText
  • description
  • imageUrl
  • sourceRank
  • checkins

Each item in checkins can include:

  • checkinId and checkinUrl
  • checkinDate
  • userName, userSlug, userProfileUrl, and userAvatarUrl
  • rating
  • comment
  • servingStyle
  • venueName and venueUrl
  • purchasedFrom
  • photoUrls

Some public Untappd pages do not expose every field for every beer or check-in. Missing values are returned as null, and missing lists are returned as empty arrays. The Actor does not invent values that are not visible in the public source data.

🚀 How to run

  1. Leave Untappd targets empty for a first top-rated beer run, or paste beer URLs, brewery URLs, beer IDs, or search terms.
  2. Use Beer style only when you want to narrow top-rated discovery. Source-style names such as IPA - Imperial / Double work best.
  3. Set Maximum records to the number of beer rows you want.
  4. Keep Include check-ins enabled if you want visible public check-ins nested under each beer.
  5. Start the Actor and open the dataset in Apify Console.

For a quick preview, run with a small limit such as 25 and leave check-ins on. After you inspect the output shape, raise the limit or add specific breweries and beer URLs.

⚙️ Input

{
"targets": [
"https://untappd.com/b/the-alchemist-heady-topper/4691",
"https://untappd.com/w/sierra-nevada-brewing-co/1142",
"Pliny the Elder"
],
"beerStyle": "IPA - Imperial / Double",
"maxRecords": 25,
"includeCheckins": true
}

🔎 Targets

targets can contain a mix of:

  • Beer URLs such as https://untappd.com/b/the-alchemist-heady-topper/4691
  • Brewery URLs such as https://untappd.com/w/sierra-nevada-brewing-co/1142
  • Beer IDs such as 4691
  • Search terms such as Pliny the Elder

Leave targets empty to use top-rated beer discovery.

🎚️ Limits and check-ins

maxRecords caps saved beer rows across the whole run. includeCheckins controls whether each beer row includes the public check-ins Untappd shows on the beer page.

Check-ins are not separate top-level dataset rows and are not charged separately. They are nested in the checkins array on the beer row when requested.

🧪 Output example

{
"beerId": "4691",
"beerUrl": "https://untappd.com/b/the-alchemist-heady-topper/4691",
"beerName": "Heady Topper",
"breweryName": "The Alchemist",
"breweryUrl": "https://untappd.com/TheAlchemist",
"beerStyle": "IPA - Imperial / Double",
"abvPercent": 8,
"ibu": 120,
"globalRating": 4.5,
"ratingCount": 420000,
"totalCheckins": 700000,
"totalCheckinsText": "700,000 Ratings",
"description": "An American double IPA...",
"imageUrl": "https://assets.untappd.com/site/beer_logos/...",
"sourceRank": 1,
"checkins": [
{
"checkinId": "1234567890",
"checkinUrl": "https://untappd.com/user/example/checkin/1234567890",
"checkinDate": "2026-06-19T12:00:00.000Z",
"userName": "Example User",
"userSlug": "example",
"userProfileUrl": "https://untappd.com/user/example",
"userAvatarUrl": "https://assets.untappd.com/profile/...",
"rating": 4.5,
"comment": "Bright, bitter, and fresh.",
"servingStyle": "Can",
"venueName": "Example Taproom",
"venueUrl": "https://untappd.com/v/example-taproom/12345",
"purchasedFrom": null,
"photoUrls": ["https://assets.untappd.com/photos/..."]
}
]
}

💳 Pricing

This Actor uses pay-per-event pricing. You are charged $0.0009 for each public beer saved to the dataset.

Visible public check-ins are included inside the beer row when includeCheckins is enabled. They are not charged as separate dataset rows.

Use a small maxRecords value for your first run, then scale up after you confirm the row shape and the number of check-ins you need.

⚠️ Limits and caveats

  • The Actor works with public Untappd data only.
  • It does not scrape private, friends-only, logged-in-only, or account-specific data.
  • It does not ask for Untappd cookies, passwords, user accounts, or API keys.
  • Public beer pages may expose only a visible set of check-ins. The Actor does not promise a complete historical check-in archive for every beer.
  • Some beers, breweries, styles, or search terms may return fewer results than your maxRecords value.
  • Source pages can change, omit fields, or temporarily expose no usable data. The Actor saves available beer rows and reports skipped pages in logs.

❓ FAQ

🔐 Do I need an Untappd account?

No. The Actor is designed for public Untappd pages and does not ask for Untappd credentials, cookies, or an API key.

💬 Are check-ins returned as separate records?

No. The dataset saves one row per beer. When includeCheckins is enabled, visible public check-ins are returned in the checkins array inside that beer row.

🔗 Can I scrape a brewery's beers?

Yes. Add a public Untappd brewery URL to targets. The Actor discovers public beer links from the brewery page and saves matching beer rows until it reaches your limit.

🍻 Can I collect top-rated beers by style?

Yes. Leave targets empty and set beerStyle. Public Untappd style names such as IPA - Imperial / Double, Stout - Imperial / Double, or Sour - Fruited are the clearest inputs.

📅 Can I schedule this Untappd scraper?

Yes. Save an input in Apify Console, schedule repeat runs, read the dataset through the Apify API, or connect outputs to Apify integrations and webhooks.

📝 Changelog

  • 0.0: Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

🔗 Other actors

Made with ❤️ by Maxime Dupré