Vivino Scraper - Wine Ratings, Prices & Vintages
Pricing
from $3.00 / 1,000 results
Vivino Scraper - Wine Ratings, Prices & Vintages
Extract wine data from Vivino: ratings, reviews, prices, vintages, taste profiles. Filter by region (Burgundy, Bordeaux, Champagne...), grape variety, producer. Perfect for wine merchants, sommeliers, and collectors.
Pricing
from $3.00 / 1,000 results
Rating
5.0
(1)
Developer
MrBridge
Actor stats
0
Bookmarked
51
Total users
8
Monthly active users
18 days
Issues response
an hour ago
Last modified
Categories
Share
Vivino Wine Scraper
Scrape wine data at scale from Vivino, the world's largest wine marketplace (60M+ users, 12M+ wines). No browser, no Vivino account, no API key — just fast, reliable HTTP calls.
Filter by region (299 appellations, 32 countries), producer, grape, price, or rating. Get ratings, prices, taste profiles, and year-by-year vintage data in JSON, CSV, or Excel.

At a Glance — Input Form
Four primary filters at the top of the form, followed by six dedicated sections. Just pick what you need and click Start.
┌──── PRIMARY FILTERS ──────────────────────────────────────│ Wine Region ▸ Bourgogne ▾ (299 options)│ Wine Type ▸ White ▾ (Red, White, Sparkling…)│ Grape Variety ▸ All Grapes ▾ (21 options)│ Producer / Winery ▸ (text input — partial match)│├──── ▾ Rating Range ────────────── filter wines by rating│ Minimum Rating ▸ 3.5│ Maximum Rating ▸ 5.0│├──── ▾ Price Range ─────────────── filter wines by price│ Minimum Price ▸ (empty = no minimum)│ Maximum Price ▸ (empty = no maximum)│├──── ▾ Regional Settings ───────── country & currency for prices│ Market Country ▸ France ▾ (15 markets)│ Currency ▸ EUR ▾ (8 currencies)│├──── ▾ Output Settings ─────────── sorting and limits│ Sort By ▸ Highest Rated ▾│ Sort Order ▸ Descending ▾│ Maximum Wines ▸ 100 (up to 10 000)│├──── ▾ Vintage Analysis ────────── year-by-year ratings (slower)│ Include All Vintages [ ]│ Vintage Start Year 2005│└──── ▾ Advanced ────────────────── developer optionsDebug Mode [ ]
→ See Input Parameters below for the full reference.
Why Use This Scraper?
Whether you're a wine merchant, sommelier, data analyst, or wine enthusiast, this scraper gives you access to the most comprehensive wine database in the world:
- Market Research: Analyze wine trends, pricing, and consumer preferences
- Inventory Management: Track ratings and popularity for your wine selection
- Investment Analysis: Monitor vintage ratings for fine wine investments
- Competitive Analysis: Compare producers and regions
- Personal Collection: Build a database of highly-rated wines to explore
Key Features
Easy-to-Use Interface
No coding required! Simply select your filters from dropdown menus and click Start.
Comprehensive Filters
| Filter | Description |
|---|---|
| Region | 299 wine regions across 32 countries — France, Italy, Spain, Portugal, Germany, USA, Argentina, Australia... |
| Sub-regions | Drill down to specific appellations: Meursault, Pauillac, Barolo, Napa Valley, Rioja Alta, etc. |
| Wine Type | Red, White, Sparkling, Rosé, Dessert, Fortified |
| Grape Variety | 21 varietals: Pinot Noir, Chardonnay, Cabernet Sauvignon, Syrah, Nebbiolo, Tempranillo... |
| Producer | Search by winery name (partial match supported) |
| Rating | Filter by minimum/maximum Vivino rating (1-5 stars) |
| Price | Set price range in your preferred currency |
Vintage Analysis (Exclusive Feature!)
Enable "Include All Vintages" to get ratings for every vintage year of each wine. Perfect for:
- Tracking vintage quality variations
- Finding the best years for a specific wine
- Investment-grade wine analysis
Includes Wines WITHOUT Prices
Unlike other scrapers that only return wines with marketplace listings, this scraper uses Vivino's winery API to include ALL wines - even those not currently for sale.
Input Parameters
The input form mirrors the Apify console UI: four primary filters at the top, followed by six grouped option sections.
Primary Filters
| Parameter | Type | Default | Description |
|---|---|---|---|
region | Select | All Regions | Wine region or appellation — 299 regions across 32 countries with sub-regions for France, Italy, and Spain |
wineType | Select | All Types | Red, White, Sparkling, Rose, Dessert, or Fortified |
grape | Select | All Grapes | Grape variety — 21 options: Pinot Noir, Chardonnay, Cabernet Sauvignon, Syrah, Nebbiolo, Tempranillo, etc. |
wineryName | Text | — | Producer/winery name. Examples: Coche-Dury, Romanee-Conti, Rayas. Partial match supported. |
Rating Range
Filter wines by rating (optional)
| Parameter | Type | Default | Description |
|---|---|---|---|
minRating | Number | 3.5 | Minimum Vivino rating (1–5 stars) |
maxRating | Number | 5 | Maximum Vivino rating (1–5 stars) |
Price Range
Filter wines by price (optional)
| Parameter | Type | Default | Description |
|---|---|---|---|
priceRangeMin | Number | — | Minimum price in selected currency |
priceRangeMax | Number | — | Maximum price in selected currency |
Regional Settings
Configure country and currency for prices
| Parameter | Type | Default | Description |
|---|---|---|---|
countryCode | Select | France | Country for price availability and currency conversion |
currencyCode | Select | EUR | Currency for displaying prices |
Output Settings
Configure sorting and limits
| Parameter | Type | Default | Description |
|---|---|---|---|
orderBy | Select | Highest Rated | Sort by rating, popularity, price, or discount |
order | Select | Descending | Descending (highest first) or ascending (lowest first) |
maxWines | Number | 100 | Maximum wines to scrape (1–10,000) |
Vintage Analysis
Enable to get year-by-year ratings for each wine
| Parameter | Type | Default | Description |
|---|---|---|---|
includeAllVintages | Checkbox | No | Fetch ratings for all vintage years per wine. Creates one row per vintage — significantly slower but essential for investment analysis. |
vintageStartYear | Number | 2005 | Start year for vintage scanning (min: 1970) |
Advanced
Developer options
| Parameter | Type | Default | Description |
|---|---|---|---|
debug | Checkbox | No | Enable verbose logging for troubleshooting |
Output Data
Each wine record includes:
{"wineName": "Meursault Blanc","wineryName": "Domaine Coche-Dury","vintageYear": 2019,"fullName": "Domaine Coche-Dury Meursault Blanc 2019","rating": 4.6,"ratingsCount": 245,"price": 450,"regionName": "Meursault","wineType": "White","isNatural": false,"sweetness": 1.8,"tannin": null,"imageUrl": "https://images.vivino.com/thumbs/..._375x500.jpg","wineUrl": "https://www.vivino.com/meursault-blanc/w/85904","vintageUrl": "https://www.vivino.com/domaine-coche-dury-meursault-blanc/v/2019","wineId": 85904,"vintageId": 12345678,"wineryId": 11620,"regionId": 2246,"countryName": "France","currency": "EUR","alcohol": null,"acidity": 3.2,"intensity": 3.7,"fizziness": null,"tasteProfile": [{"group": "earth","count": 35,"primaryKeywords": [{ "name": "minéraux", "count": 18 },{ "name": "cuir", "count": 8 }],"secondaryKeywords": [{ "name": "vanille", "count": 3 }]},{"group": "citrus_fruit","count": 34,"primaryKeywords": [{ "name": "citron", "count": 18 },{ "name": "agrume", "count": 10 }],"secondaryKeywords": []}],"scrapedAt": "2026-04-06T12:00:00.000Z"}
Output Fields (27 fields)
| Field | Description |
|---|---|
wineName | Wine name (without producer) |
wineryName | Producer/winery name |
vintageYear | Vintage year from the API (standard mode) |
fullName | Complete wine name with vintage |
rating | Vivino rating (1-5 scale) |
ratingsCount | Number of user ratings |
price | Price (if available, null for winery-only wines) |
regionName | Wine region/appellation |
wineType | Red, White, Sparkling, Rosé, Dessert, Fortified |
isNatural | Natural wine indicator |
sweetness | Sweetness score (taste structure) |
tannin | Tannin score (taste structure) |
imageUrl | Wine bottle image URL |
wineUrl | Direct link to Vivino wine page |
vintageUrl | Direct link to the specific vintage page |
wineId | Vivino wine ID |
vintageId | Vivino vintage ID |
wineryId | Vivino winery ID |
regionId | Vivino region ID |
countryName | Country of origin |
currency | Price currency code |
alcohol | Alcohol percentage (when available) |
acidity | Acidity score (taste structure) |
intensity | Intensity score (taste structure) |
fizziness | Fizziness score (taste structure) |
tasteProfile | Full taste profile with flavor groups, each containing primary and secondary keywords with mention counts |
scrapedAt | Timestamp of data extraction |
Vintage mode (includeAllVintages: true) produces one row per vintage with a year field instead of vintageYear, plus per-vintage rating and ratingsCount.
Usage Examples
Example 1: Top Burgundy White Wines
Find the best-rated white Burgundy wines:
{"region": "bourgogne","wineType": "white","minRating": 4.2,"maxWines": 200}
Example 2: Specific Producer with All Vintages
Get all wines and vintages from Domaine de la Romanée-Conti:
{"wineryName": "Romanee-Conti","includeAllVintages": true,"maxWines": 50}
Example 3: Affordable Châteauneuf-du-Pape
Find value wines under €50:
{"region": "chateauneuf-du-pape","minRating": 4.0,"priceRangeMax": 50,"orderBy": "ratings_average","maxWines": 100}
Example 4: Pinot Noir Comparison
Compare Pinot Noir across regions:
{"grape": "pinot-noir","minRating": 4.0,"maxWines": 500,"orderBy": "ratings_count"}
Supported Regions (299 regions, 32 countries)
France (101 regions)
| Main Regions | Sub-Regions |
|---|---|
| Bourgogne | Chablis, Côte de Beaune, Côte de Nuits, Meursault, Puligny-Montrachet, Chassagne-Montrachet, Gevrey-Chambertin, Chambolle-Musigny, Nuits-Saint-Georges, Marsannay, Pommard, Volnay, Vosne-Romanée, Mâconnais, Pouilly-Fuissé, Saint-Véran |
| Bordeaux | Médoc, Haut-Médoc, Margaux, Pauillac, Saint-Julien, Saint-Estèphe, Saint-Émilion, Pomerol, Pessac-Léognan, Sauternes, Graves, Fronsac, Moulis-en-Médoc, Lalande-de-Pomerol, Castillon Côtes de Bordeaux |
| Rhône | Côtes-du-Rhône, Châteauneuf-du-Pape, Côte-Rôtie, Hermitage, Crozes-Hermitage, Gigondas, Condrieu, Cornas, Saint-Joseph, Vacqueyras, Cairanne, Rasteau, Lirac, Tavel, Ventoux |
| Loire | Sancerre, Pouilly-Fumé, Muscadet, Vouvray, Chinon, Bourgueil, Anjou, Saumur, Saumur-Champigny, Savennières, Touraine, Coteaux du Layon, Menetou-Salon |
| Champagne | Côte des Blancs, Grand Cru, Premier Cru |
| Beaujolais | Brouilly, Côte de Brouilly, Fleurie, Morgon, Moulin-à-Vent, Saint-Amour |
| Alsace | Crémant d'Alsace, Grand Cru |
| Other | Provence (Bandol, Côtes de Provence), Languedoc-Roussillon, Jura, Corse, Sud-Ouest (Cahors, Madiran, Jurançon), Savoie |
Italy (64 regions)
| Main Regions | Sub-Regions |
|---|---|
| Piemonte | Barolo, Barbaresco, Barbera d'Alba, Barbera d'Asti, Gattinara, Gavi, Langhe, Moscato d'Asti, Roero |
| Toscana | Brunello di Montalcino, Chianti, Chianti Classico, Bolgheri, Vino Nobile di Montepulciano, Carmignano, Maremma Toscana, Vernaccia di San Gimignano, Morellino di Scansano |
| Veneto | Amarone della Valpolicella, Valpolicella, Valpolicella Ripasso, Prosecco, Soave, Bardolino, Conegliano-Valdobbiadene |
| Other | Sicilia (Etna, Marsala), Lombardia (Franciacorta, Lugana, Valtellina), Campania (Taurasi, Fiano di Avellino), Puglia, Umbria, Friuli, Abruzzo, Sardegna, Trentino-Alto Adige |
Spain (35 regions)
| Main Regions | Sub-Regions |
|---|---|
| Rioja | Rioja Alta, Rioja Alavesa |
| Other | Ribera del Duero, Priorat, Cava, Navarra, Rueda, Toro, Bierzo, Rías Baixas, Jerez/Sherry, Montsant, Penedès, Jumilla, Somontano, La Mancha |
Other Countries (99 regions across 29 countries)
| Country | Regions |
|---|---|
| Portugal | Douro, Porto, Alentejo, Dão, Vinho Verde, Madeira, Bairrada, Lisboa, Setúbal |
| Germany | Mosel, Rheingau, Pfalz, Rheinhessen, Nahe, Franken, Baden, Ahr, Württemberg |
| Austria | Wachau, Kamptal, Kremstal, Burgenland, Südsteiermark, Weinviertel, Wagram |
| USA | Napa Valley, Sonoma County, Willamette Valley, Paso Robles, Central Coast, Russian River Valley, Stags Leap District, Columbia Valley, Alexander Valley, Lodi, Santa Barbara County |
| Argentina | Mendoza, Uco Valley, Luján de Cuyo, Salta, Cafayate Valley, Patagonia |
| Chile | Maipo Valley, Colchagua Valley, Casablanca Valley, Rapel Valley, Leyda Valley, Maule Valley, Limarí Valley, Aconcagua Valley |
| Australia | Barossa Valley, McLaren Vale, Margaret River, Yarra Valley, Hunter Valley, Clare Valley, Adelaide Hills, Coonawarra, Eden Valley, Tasmania |
| New Zealand | Marlborough, Central Otago, Hawke's Bay, Martinborough, Waipara |
| South Africa | Stellenbosch, Swartland, Franschhoek, Hemel-en-Aarde Valley, Walker Bay, Paarl, Constantia, Elgin |
| Greece | Santorini, Naoussa, Nemea, Peloponnesos, Crete |
| + 19 more | Hungary, Georgia, Lebanon, Croatia, Israel, Slovenia, Canada, Brazil, Uruguay, Mexico, UK, Romania, Bulgaria, Moldova, Turkey, Japan, Morocco, India |
Performance & Costs
Speed
- Standard mode: ~2-3 wines/second
- With vintages: ~1 wine/minute (checks years from 2005 onward, with early stop)
Estimated Costs (Apify Platform)
| Wines | Without Vintages | With Vintages |
|---|---|---|
| 100 | ~$0.05 | ~$0.50 |
| 500 | ~$0.20 | ~$2.50 |
| 1000 | ~$0.40 | ~$5.00 |
Costs may vary based on Apify pricing and network conditions.
Export Formats
Download your data in multiple formats:
- JSON - For developers and APIs
- CSV - For Excel and spreadsheets
- Excel - Direct .xlsx export
- XML - For legacy systems
Tips for Best Results
-
Use region filters when searching for specific producers - it speeds up the search significantly
-
Start with smaller
maxWinesvalues to test your filters before running large scrapes -
Enable
includeAllVintagesonly when you need year-by-year data - it's much slower but provides unique insights -
Combine filters for precise results: region + grape + rating range
-
Use
debugmode to see detailed logs if results are unexpected
Limitations
- Vivino's API may rate-limit requests during high-traffic periods
- Some wines without user reviews may not have rating data
- Vintage data is limited to years with actual user reviews on Vivino
- Price data is only available for wines currently listed for sale
Legal Disclaimer
This scraper is intended for personal use, research, and legitimate business purposes. Please respect Vivino's terms of service and rate limits. The data scraped belongs to Vivino and its users.
Support & Feedback
- Issues: Report bugs or request features on GitHub
- Questions: Contact us through Apify support
Changelog
v1.0.103 (2026-04-11)
- Screenshot updated — the README header image now shows the v1.0.100+ form layout (4 primary filters at the root + 6 collapsed sections: Rating Range, Price Range, Regional Settings, Output Settings, Vintage Analysis, Advanced)
- The PNG was uploaded to the existing Apify KV store (
vivino-scraper-images) by replacingvivino-apify.png— the README URL is unchanged - Local backup committed to
screenshots/vivino-powerful-scraper.pngfor versioning - Documentation-only change
v1.0.102 (2026-04-11)
- New "At a Glance — Input Form" section at the top of the README — visual ASCII mockup of the actual input form, mirroring the Apify console UI exactly (4 primary filters at the root + 6 grouped sections)
- The mockup shows real prefill values (Bourgogne, White, 3.5, 100, 2005) and dropdown counts (299 regions, 21 grapes, 15 markets, 8 currencies)
- Validates schemas:
input_schema.jsonconfirmed at 16 fields / 7 groups, parity 1:1 with the README; all.actor/*.json(input, output, dataset, pay-per-event) aligned with build 1.0.101+ - Documentation-only change
v1.0.101 (2026-04-11)
- README Input Parameters section rewritten to mirror the Apify console Input tab — four primary filters at the top, followed by six dedicated sections: Rating Range, Price Range, Regional Settings, Output Settings, Vintage Analysis, Advanced
- Every section caption, field order, and default value now matches
input_schema.jsonexactly — one-to-one visual parity with the form shown in the Apify UI - Documentation-only change: no behavior change, no schema change, no code change
v1.0.100 (2026-04-11)
- Input form reorganized — the four primary filters (Region, Wine Type, Grape, Producer) are now at the root of the form for immediate visibility; the "Wine Filters" section has been removed
- New "Rating Range" section groups Minimum and Maximum Rating, mirroring the adjacent "Price Range" section for a consistent range-filter UX
- No behavior changes: identical field names, defaults, and prefills — the automated daily test is unaffected
v1.0.99 (2026-04-10)
- Code cleanup — removed unreachable "Unknown region" warning (Apify input schema enum blocks invalid region slugs at HTTP 400 before reaching code)
- Simplified
regionIds/wineTypeIds/grapeIdsinitialization into single-line ternary expressions - Stress test: 5/5 runs on v1.0.98 SUCCEEDED — 100% success rate across volume, producer, vintages, obscure region, and separator validation scenarios
v1.0.95 (2026-04-07)
- Fixed price retrieval in Producer Search — wines searched by producer name now include marketplace prices (was always
null) - New
enrichWithExplorePrices()queries the Explore API withwinery_ids[]filter after collecting wines from the Winery API - Tested on Domaine Coche-Dury: 14/17 wines enriched with prices (3 without = no marketplace listing on Vivino)
- Discovered Explore API supports
winery_ids[]parameter (array format, likeregion_ids[]andwine_type_ids[])
v1.0.92 (2026-04-06)
- Major reliability update — 7 bug fixes to reduce failure rate on public runs
Actor.exit()now properly stops execution (was continuing after exit)- Content-type validation on API responses (detects CAPTCHA/geo-block pages)
- Fetch timeout (30s) prevents hanging on unresponsive requests
- Batch pushData prevents OOM on large vintage runs (200k+ records)
- Safe error handling —
pushErrorItemnever throws - Fixed
parseFloatedge case in spending limit check countryCodesinput coerced to array (prevents crash on string input)- Code deduplication: unified
fetchJson/fetchHtmlintofetchWithRetry, added 8 helper functions - Updated User-Agent strings to Chrome 134
v1.0.91 (2026-04-06)
- Added taste fields (sweetness, tannin, acidity, intensity, fizziness, tasteProfile) to dataset table view in Apify console
v1.0.90 (2026-03-31)
- Faster winery search — HTML-based search replaces slow Explore API scan (~2s vs ~40s)
- Reliably finds small/niche producers (e.g. Caroline Morey, previously unfindable)
- Code quality fixes:
||→??for numeric fields,imageUrlin winery wine data
v1.0.86 (2026-03-30)
- Full taste profile with flavor keywords —
primaryKeywordsandsecondaryKeywordswith mention counts per group - Breaking change:
flavorsfield replaced bytasteProfile - Winery wines now enriched with taste data via
/api/wines/{id}/tastes
v1.0.80 (2026-03-25)
- 299 wine regions across 32 countries — dropdown extended from ~50 to 299 regions
- Country separators in dropdown for easy navigation (France, Italy, Spain, Portugal, Germany, USA, Argentina, Chile, Australia, New Zealand, South Africa, Greece, Hungary, and 19 more)
- Sub-regions for France (101), Italy (64), and Spain (35) with parent—child labels
- Regions sorted alphabetically within each country
- Moved mapping constants to dedicated
src/regions.jsfile - Fixed region IDs: Piemonte (392→389), Rioja (404→492)
v1.0.76 (2026-03-25)
- Output tab now displays wine data table directly in the Apify console
- Added
output_schema.jsonanddataset_schema.jsonwith 11-column table view
v1.0.68 (2026-03-24)
- Reorganized dataset columns: key data (name, rating, price) on the left, secondary fields (alcohol, flavors) on the right
v1.0.67 (2026-03-24)
- Improved rate-limiting handling for vintage fetching: smarter 429 detection, exponential backoff, consecutive 429 tracking with automatic pause
v1.0.66 (2026-03-24)
- Added
alcoholfield (when available from Vivino API) - Fixed price filter bug: removed default values on
priceRangeMin/priceRangeMaxthat sent0to the API
v1.0.61 (2026-03-24)
- Fixed falsy value checks in API URL builder (
maxRating,priceRangeMin,priceRangeMaxwith value0were silently ignored)
v1.0.60 (2026-03-23)
- Region hierarchy: selecting "Bourgogne" now automatically includes all sub-regions (Meursault, Pommard, Chablis, etc.)
- Hybrid collection: Step 1 now collects wines AND wineries from Explore API (was wineries-only)
- Stagnation detection: stops pagination after 20 pages without new data (was running up to 1000 pages)
- Optimized vintages: starts at 2005 (configurable via
vintageStartYear), early stop after 5 empty years - New input parameter:
vintageStartYear(default: 2005, min: 1970)
v1.0.59 (2026-03-23)
- Code refactoring: extracted helpers (
fetchJson,buildWineUrl,getWineTypeName,passesWineFilters) - Removed dead code (
fetchVintagesViaExplore) - Batched
Actor.pushData()calls for better performance - ~17% code reduction (1057→872 lines)
v1.0.58 (2026-03-23)
- Fixed "Under Maintenance" flag caused by missing prefill values in input schema
- Added prefill values for automated Apify testing
v1.0.18 (2026-01-13)
- Hosted input interface screenshot locally on Apify
v1.0.17 (2026-01-13)
- Added comprehensive README documentation
- Added input interface screenshot
v1.0.15
- Fixed vintage year matching issue (fullName year now matches year column)
- Improved filtering of invalid vintage data
v1.0.14
- Added "Include All Vintages" feature
- Smart filtering of default/aggregate statistics
- Filters out fake vintages with default wine stats
v1.0.11
- Added strict region filtering for winery searches
- Fixed rating filter for wines without ratings
v1.0.0
- Initial release
- Region, grape, wine type, and producer filters
- Support for wines without prices (uses winery API)
Made with by wine lovers, for wine lovers.