Vivino Scraper - Wines, Ratings, Reviews & Prices
Pricing
from $5.00 / 1,000 wine scrapeds
Vivino Scraper - Wines, Ratings, Reviews & Prices
Discover wines on Vivino by type, country, region, grape, price & rating: ratings, taste profile, flavor notes, food pairings, awards, critic & user reviews, live + median prices, and price/rating monitoring.
Pricing
from $5.00 / 1,000 wine scrapeds
Rating
0.0
(0)
Developer
Scrape Sage
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Vivino Scraper — Wines, Ratings, Reviews & Prices (Taste Profiles, Rankings & Price Tracking)
Extract complete wine data from Vivino — the world's largest wine marketplace and community. Discover wines exactly like Vivino's own Explore page (by type, country, region, grape, price and rating) and get the fields other scrapers leave empty: average rating and ratings count, full taste structure, flavor notes, food pairings, grape composition, alcohol, awards, professional critic reviews, recommended drinking window, global/country/region/winery rankings, the live lowest price, the median market price, every merchant offer, and the community reviews.
No login, no cookies, no browser — fast JSON extraction straight from Vivino's own back end.
Why this Vivino scraper?
Most Vivino scrapers return a name, a rating and a price. This actor reads Vivino's explore, vintage-detail, price and review endpoints and ships the richest dataset in the category — the same data a wine buyer, sommelier, retailer or collector actually needs to make a decision.
| Data | Typical scrapers | This actor |
|---|---|---|
| Wine name, year, type, rating | ✅ | ✅ |
| Ratings count + reviews count + ratings distribution | partial | ✅ |
| Taste structure (acidity, intensity, sweetness, tannin, fizziness) | ❌ | ✅ |
| Flavor notes (oak, black fruit, earth… with keywords) | ❌ | ✅ |
| Food pairings | ❌ | ✅ |
| Region, country, winery + grape composition | partial | ✅ |
| Alcohol %, wine style, closure | ❌ | ✅ |
| Awards + professional critic reviews | ❌ | ✅ opt-in |
| Recommended drinking window | ❌ | ✅ |
| Global / country / region / winery ranking | ❌ | ✅ |
| Live lowest price + median market price + every merchant offer | partial | ✅ |
| Community reviews (rating, text, taster, flavor words) | ❌ | ✅ opt-in |
| All vintages of a wine (price/rating by year) | ❌ | ✅ opt-in |
| Price / rating monitoring (only new or changed) | ❌ | ✅ |
Use cases
- Wine retail & e-commerce — enrich product catalogs with ratings, taste, region, grapes and food pairings; benchmark competitive pricing against the live lowest and median market price; reprice on a schedule.
- Price tracking & investing — watch fine-wine prices and ratings over time, with drinking windows and global rankings for cellar and investment decisions.
- Wine apps, marketplaces & content sites — power discovery, recommendations and affiliate pages with clean, LLM-ready wine data and real community reviews.
- Restaurants & sommeliers — build and curate wine lists by rating, region, grape, price band and food pairing.
- Market & trend research — analyze ratings, pricing and popularity across countries, regions, grapes and price tiers.
- Catalog & monitoring — schedule recurring runs to capture new vintages, price drops and rating changes automatically.
How to use
- Sign up for Apify — the free plan is enough to try this actor.
- Open the Vivino Scraper, choose your Explore filters (wine type, country, price, rating…) or paste Vivino wine URLs, and click Start.
- Watch results stream into the dataset table.
- Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.
Input
{"wineTypes": ["red"],"wineCountries": ["us"],"minRating": "4.0","priceMin": 20,"priceMax": 80,"sortBy": "mostPopular","marketCountry": "US","currency": "USD","includeWineDetails": true,"includeReviews": true,"maxReviewsPerWine": 10,"maxResults": 100}
- wineTypes —
red,white,sparkling,rose,dessert,fortified(empty = all). - wineCountries — origin countries (ISO codes):
us,fr,it,es,pt,ar,cl,au,de… - minRating / priceMin / priceMax — narrow by Vivino average rating and price band.
- sortBy —
mostPopular(most rated),topRated,priceAsc,priceDesc. - grapeIds / regionIds / foodIds / wineStyleIds — advanced numeric facets (find them in any Vivino Explore URL); map 1:1 to Vivino's own filters.
- marketCountry / currency — the pricing market and currency for live + median prices.
- startUrls — Vivino wine page URLs (
/w/<id>); wineIds — wine IDs directly. - includeWineDetails (default true) — full detail: description, food pairings, grape composition, alcohol, awards, critic reviews, ratings distribution, drinking window, rankings.
- includeReviews (default false) — community reviews per wine as separate records.
- includeAllVintages (default false) — for direct wines, emit every vintage year (price/rating by year).
- includeMedianPrice (default true) — add the median market price alongside the live lowest price.
- monitorMode / monitorKey — emit only new or changed wines across runs (see below).
Output
One record per wine (type: "wine"), plus optional community review records (type: "review"):
{"type": "wine","vintageId": 164821583,"wineId": 5978015,"name": "Hundred Acre Wraith Cabernet Sauvignon 2017","wineName": "Wraith Cabernet Sauvignon","year": 2017,"url": "https://www.vivino.com/w/5978015?year=2017","wineType": "Red","rating": 4.9,"ratingsCount": 77,"reviewsCount": 16,"wineRating": 4.8,"wineRatingsCount": 881,"ratingsDistribution": { "1": 0, "2": 0, "3": 0, "4": 34, "5": 43 },"wineryName": "Hundred Acre","regionName": "Napa Valley","countryCode": "US","countryName": "United States","grapes": ["Cabernet Sauvignon"],"grapeComposition": { "Cabernet Sauvignon": 100 },"alcohol": 15.5,"style": "Napa Valley Cabernet Sauvignon","foodPairings": ["Beef", "Lamb", "Poultry", "Game (deer, venison)", "Mature and hard cheese"],"taste": { "acidity": 3.01, "intensity": 4.75, "sweetness": 2.04, "tannin": 3.1 },"flavorGroups": [{ "group": "oak", "keywords": ["vanilla", "oak", "coffee"] }],"flavorKeywords": ["vanilla", "oak", "coffee", "black fruit", "dark chocolate"],"drinkingWindowFrom": 2022,"drinkingWindowTo": 2032,"ranking": {"global": { "rank": 292, "total": 12225908 },"country": { "rank": 115, "total": 1323232 },"winery": { "rank": 20, "total": 229 }},"price": 695,"currency": "USD","medianPrice": 1004,"merchant": "vinfolio.com","merchantUrl": "https://vinfolio.com/product/…","offers": [{ "amount": 695, "merchant": "vinfolio.com", "bottleType": "Bottle (0.75l)", "url": "https://vinfolio.com/product/…" }],"labelImage": "https://images.vivino.com/thumbs/…_pl_375x500.png","image": "https://images.vivino.com/thumbs/…_pb_x960.png","scrapedAt": "2026-06-19T12:00:00.000Z"}
A review record (type: "review") carries rating, note (text), language, createdAt, userAlias, flavorKeywords, plus wineId/vintageId/wineName/year and the wineUrl.
What to expect (field coverage)
Vivino is community- and merchant-sourced, so a few fields are populated only when the data exists. Verified live, you can typically expect:
| Field | Coverage |
|---|---|
| name, year, type, rating, ratingsCount, region, country, winery, taste, image | ~100% |
| grapes, food pairings, alcohol, style, ratings distribution, drinking window, ranking | ~90% (with detail on) |
| price / merchant offers | present when the wine is sold in the chosen market |
| medianPrice | present when enough market prices exist |
| awards, critic reviews | present for wines that have them (typically higher-end wines) |
A blank field means Vivino doesn't publish that value — not that scraping failed. Nothing is dropped, so you always get the richest dataset available.
Automate & schedule
Run this actor on autopilot and pull results into your own stack:
- Apify API — start runs, fetch datasets, and manage schedules over REST.
- apify-client for JavaScript and apify-client for Python — official SDKs.
- Schedules — run it daily/weekly to track prices, ratings and new vintages; perfect for repricing and price-drop alerts.
- Webhooks — trigger downstream actions (catalog sync, Slack alert, price-drop email) the moment a run finishes.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });const run = await client.actor('scrapesage/vivino-scraper').call({wineTypes: ['red'],wineCountries: ['fr'],minRating: '4.2',priceMax: 60,includeReviews: true,maxResults: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Got ${items.length} wines & reviews`);
Monitor mode (only new or changed wines)
Turn on monitorMode to remember wines across runs in a named key-value store and emit only wines that are new or whose price or rating changed since the last run — each tagged with a changeType (new, price_drop, price_rise, rating_up, rating_down). It complements Apify Schedules: the schedule starts the run, and monitor mode dedupes against prior runs — so a daily schedule becomes a hands-off price-drop and rating-change feed. Use different monitorKey values to run several independent watches.
Integrate with any app
Connect the dataset to 5,000+ apps — no code required:
- Make — multi-step automation scenarios.
- Zapier — push new wines or price drops straight into your tools.
- Slack — get notified when a monitored wine drops in price.
- Google Drive / Sheets — auto-export every run to a spreadsheet.
- Airbyte — pipe results into your data warehouse.
- GitHub — trigger runs from commits or releases.
Use with AI assistants (MCP)
The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "find top-rated Napa Cabernets under $80 with their tasting notes and where to buy them" and let it run the scraper for you.
Agent-ready: autonomous payments (x402 & Skyfire)
This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:
- x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
- Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.
Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.
More scrapers from scrapesage
Build a complete product, price & marketplace intelligence stack:
- Amazon Scraper — products, prices, reviews & sellers.
- eBay Scraper — listings, sold prices & seller leads.
- Catawiki Scraper — collectibles auctions (incl. wine) with bids & estimates.
- Discogs Scraper — records, prices, artists & sellers.
- Goodreads Scraper — books, authors, ratings & reviews.
- Reverb Scraper — music gear listings, price guide & sellers.
- AliExpress Scraper — products, prices, orders & suppliers.
- Poshmark Scraper — listings, sold comps & seller leads.
Tips
- Explore like Vivino does — combine
wineTypes,wineCountries,minRatingand a price band, then sort bymostPopularortopRated. Vivino Explore returns 24 wines per page; raisemaxPagesPerSearchto go deeper. - Best value finds — set
sortBy: "topRated"with a tightpriceMaxto surface the highest-rated wines you can actually afford. - All vintages — paste a wine URL and turn on
includeAllVintagesto get every year of that wine with its own price and rating. - Reviews — enable
includeReviewsfor community tasting notes and flavor words; addreviewsLanguageto keep one language. - Proxies — keep the default RESIDENTIAL proxy group; Vivino throttles datacenter IPs.
FAQ
How do I find wines by region, grape or food pairing? Use the Explore filters: wineCountries for origin, and the advanced regionIds / grapeIds / foodIds facets (the same numeric IDs Vivino uses in its own Explore URLs).
Can I search for a specific wine by name? Vivino's keyword search isn't a public data endpoint, so for a specific bottle paste its Vivino page URL into startUrls (or its wine ID into wineIds). For discovery, the Explore filters are the powerful, reliable path — they're exactly how Vivino's own Explore page works.
Does it need the Vivino API or a key? No. This actor reads the same public data Vivino's own website uses — no key, login or browser required.
Where do prices come from? From Vivino's merchant listings for the market you choose (marketCountry / currency): the live lowest price, the median market price and the individual merchant offers. Prices appear only for wines actually sold in that market.
Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.
How do I track price drops automatically? Turn on monitorMode, then create a Schedule (e.g. daily). Each run emits only new or changed wines; add a webhook or Zapier zap to alert you on price_drop.
A field is empty — why? Some wines have no awards or critic reviews, some aren't sold in your chosen market (no price), and some new wines have few ratings. Fields are blank only when Vivino doesn't publish them — never because the scraper skipped them.
Is scraping Vivino legal? This actor collects publicly available data only. You're responsible for using the data in compliance with applicable laws (e.g. GDPR/CCPA for personal data) and Vivino's terms.
Need help?
Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.