Vivino Scraper - Wine Ratings, Prices & Vintages avatar

Vivino Scraper - Wine Ratings, Prices & Vintages

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Vivino Scraper - Wine Ratings, Prices & Vintages

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

MrBridge

Maintained by Community

Actor stats

0

Bookmarked

51

Total users

8

Monthly active users

18 days

Issues response

an hour ago

Last modified

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.

Vivino Scraper Input Interface

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 options
Debug 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

FilterDescription
Region299 wine regions across 32 countries — France, Italy, Spain, Portugal, Germany, USA, Argentina, Australia...
Sub-regionsDrill down to specific appellations: Meursault, Pauillac, Barolo, Napa Valley, Rioja Alta, etc.
Wine TypeRed, White, Sparkling, Rosé, Dessert, Fortified
Grape Variety21 varietals: Pinot Noir, Chardonnay, Cabernet Sauvignon, Syrah, Nebbiolo, Tempranillo...
ProducerSearch by winery name (partial match supported)
RatingFilter by minimum/maximum Vivino rating (1-5 stars)
PriceSet 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

ParameterTypeDefaultDescription
regionSelectAll RegionsWine region or appellation — 299 regions across 32 countries with sub-regions for France, Italy, and Spain
wineTypeSelectAll TypesRed, White, Sparkling, Rose, Dessert, or Fortified
grapeSelectAll GrapesGrape variety — 21 options: Pinot Noir, Chardonnay, Cabernet Sauvignon, Syrah, Nebbiolo, Tempranillo, etc.
wineryNameTextProducer/winery name. Examples: Coche-Dury, Romanee-Conti, Rayas. Partial match supported.

Rating Range

Filter wines by rating (optional)

ParameterTypeDefaultDescription
minRatingNumber3.5Minimum Vivino rating (1–5 stars)
maxRatingNumber5Maximum Vivino rating (1–5 stars)

Price Range

Filter wines by price (optional)

ParameterTypeDefaultDescription
priceRangeMinNumberMinimum price in selected currency
priceRangeMaxNumberMaximum price in selected currency

Regional Settings

Configure country and currency for prices

ParameterTypeDefaultDescription
countryCodeSelectFranceCountry for price availability and currency conversion
currencyCodeSelectEURCurrency for displaying prices

Output Settings

Configure sorting and limits

ParameterTypeDefaultDescription
orderBySelectHighest RatedSort by rating, popularity, price, or discount
orderSelectDescendingDescending (highest first) or ascending (lowest first)
maxWinesNumber100Maximum wines to scrape (1–10,000)

Vintage Analysis

Enable to get year-by-year ratings for each wine

ParameterTypeDefaultDescription
includeAllVintagesCheckboxNoFetch ratings for all vintage years per wine. Creates one row per vintage — significantly slower but essential for investment analysis.
vintageStartYearNumber2005Start year for vintage scanning (min: 1970)

Advanced

Developer options

ParameterTypeDefaultDescription
debugCheckboxNoEnable 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)

FieldDescription
wineNameWine name (without producer)
wineryNameProducer/winery name
vintageYearVintage year from the API (standard mode)
fullNameComplete wine name with vintage
ratingVivino rating (1-5 scale)
ratingsCountNumber of user ratings
pricePrice (if available, null for winery-only wines)
regionNameWine region/appellation
wineTypeRed, White, Sparkling, Rosé, Dessert, Fortified
isNaturalNatural wine indicator
sweetnessSweetness score (taste structure)
tanninTannin score (taste structure)
imageUrlWine bottle image URL
wineUrlDirect link to Vivino wine page
vintageUrlDirect link to the specific vintage page
wineIdVivino wine ID
vintageIdVivino vintage ID
wineryIdVivino winery ID
regionIdVivino region ID
countryNameCountry of origin
currencyPrice currency code
alcoholAlcohol percentage (when available)
acidityAcidity score (taste structure)
intensityIntensity score (taste structure)
fizzinessFizziness score (taste structure)
tasteProfileFull taste profile with flavor groups, each containing primary and secondary keywords with mention counts
scrapedAtTimestamp 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 RegionsSub-Regions
BourgogneChablis, 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
BordeauxMé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ôneCô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
LoireSancerre, Pouilly-Fumé, Muscadet, Vouvray, Chinon, Bourgueil, Anjou, Saumur, Saumur-Champigny, Savennières, Touraine, Coteaux du Layon, Menetou-Salon
ChampagneCôte des Blancs, Grand Cru, Premier Cru
BeaujolaisBrouilly, Côte de Brouilly, Fleurie, Morgon, Moulin-à-Vent, Saint-Amour
AlsaceCrémant d'Alsace, Grand Cru
OtherProvence (Bandol, Côtes de Provence), Languedoc-Roussillon, Jura, Corse, Sud-Ouest (Cahors, Madiran, Jurançon), Savoie

Italy (64 regions)

Main RegionsSub-Regions
PiemonteBarolo, Barbaresco, Barbera d'Alba, Barbera d'Asti, Gattinara, Gavi, Langhe, Moscato d'Asti, Roero
ToscanaBrunello di Montalcino, Chianti, Chianti Classico, Bolgheri, Vino Nobile di Montepulciano, Carmignano, Maremma Toscana, Vernaccia di San Gimignano, Morellino di Scansano
VenetoAmarone della Valpolicella, Valpolicella, Valpolicella Ripasso, Prosecco, Soave, Bardolino, Conegliano-Valdobbiadene
OtherSicilia (Etna, Marsala), Lombardia (Franciacorta, Lugana, Valtellina), Campania (Taurasi, Fiano di Avellino), Puglia, Umbria, Friuli, Abruzzo, Sardegna, Trentino-Alto Adige

Spain (35 regions)

Main RegionsSub-Regions
RiojaRioja Alta, Rioja Alavesa
OtherRibera 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)

CountryRegions
PortugalDouro, Porto, Alentejo, Dão, Vinho Verde, Madeira, Bairrada, Lisboa, Setúbal
GermanyMosel, Rheingau, Pfalz, Rheinhessen, Nahe, Franken, Baden, Ahr, Württemberg
AustriaWachau, Kamptal, Kremstal, Burgenland, Südsteiermark, Weinviertel, Wagram
USANapa Valley, Sonoma County, Willamette Valley, Paso Robles, Central Coast, Russian River Valley, Stags Leap District, Columbia Valley, Alexander Valley, Lodi, Santa Barbara County
ArgentinaMendoza, Uco Valley, Luján de Cuyo, Salta, Cafayate Valley, Patagonia
ChileMaipo Valley, Colchagua Valley, Casablanca Valley, Rapel Valley, Leyda Valley, Maule Valley, Limarí Valley, Aconcagua Valley
AustraliaBarossa Valley, McLaren Vale, Margaret River, Yarra Valley, Hunter Valley, Clare Valley, Adelaide Hills, Coonawarra, Eden Valley, Tasmania
New ZealandMarlborough, Central Otago, Hawke's Bay, Martinborough, Waipara
South AfricaStellenbosch, Swartland, Franschhoek, Hemel-en-Aarde Valley, Walker Bay, Paarl, Constantia, Elgin
GreeceSantorini, Naoussa, Nemea, Peloponnesos, Crete
+ 19 moreHungary, 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)

WinesWithout VintagesWith 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

  1. Use region filters when searching for specific producers - it speeds up the search significantly

  2. Start with smaller maxWines values to test your filters before running large scrapes

  3. Enable includeAllVintages only when you need year-by-year data - it's much slower but provides unique insights

  4. Combine filters for precise results: region + grape + rating range

  5. Use debug mode 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

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 replacing vivino-apify.png — the README URL is unchanged
  • Local backup committed to screenshots/vivino-powerful-scraper.png for 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.json confirmed 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.json exactly — 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/grapeIds initialization 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 with winery_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, like region_ids[] and wine_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 — pushErrorItem never throws
  • Fixed parseFloat edge case in spending limit check
  • countryCodes input coerced to array (prevents crash on string input)
  • Code deduplication: unified fetchJson/fetchHtml into fetchWithRetry, 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, imageUrl in winery wine data

v1.0.86 (2026-03-30)

  • Full taste profile with flavor keywordsprimaryKeywords and secondaryKeywords with mention counts per group
  • Breaking change: flavors field replaced by tasteProfile
  • 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.js file
  • 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.json and dataset_schema.json with 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 alcohol field (when available from Vivino API)
  • Fixed price filter bug: removed default values on priceRangeMin/priceRangeMax that sent 0 to the API

v1.0.61 (2026-03-24)

  • Fixed falsy value checks in API URL builder (maxRating, priceRangeMin, priceRangeMax with value 0 were 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.