Vivino Wines Scraper avatar

Vivino Wines Scraper

Pricing

from $1.50 / 1,000 wine scrapeds

Go to Apify Store
Vivino Wines Scraper

Vivino Wines Scraper

Scrape Vivino wines with rating, price, winery, region, grapes, taste profile and food pairings. Filter by type, country, price and rating. Export to CSV, Excel, JSON or XML.

Pricing

from $1.50 / 1,000 wine scrapeds

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Apify Partner

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

ParseForge Banner

🍷 Vivino Wines Scraper

🚀 Export Vivino wines in seconds. Up to 41 fields per wine, including the community rating, bottle price, winery, region, grapes, taste profile and food pairings, with no Vivino account and no API key.

Vivino is the largest wine community in the world, and its explore feed lists every wine a merchant currently sells in your market with the rating drinkers gave it. This Actor reads that public feed and returns one flat row per wine vintage: how good drinkers say it is, what a merchant asks for it, and what it tastes like.

Filter by wine type, country of origin, price range and minimum rating, sort by rating, popularity or price, and let the Actor walk the results. A search that Vivino itself would stop after about 2,300 wines is cut into price bands automatically, so a big export still comes back complete. Switch on the detail columns to add alcohol percent, the drinking window, global and country rank and the critic score average from each wine's own page.

🎯 Target Audience💡 Primary Use Cases
Wine retailers and importersBenchmark your shelf prices against what the market asks
Restaurants and sommeliersBuild a list of highly rated wines inside a price ceiling
Wine apps and recommendation sitesSeed a catalogue with ratings, grapes and flavor data
Market researchersTrack rating and price by country, grape and vintage
Wine investors and collectorsSpot rated bottles with a global rank and a drinking window
Data and ML teamsTrain taste and rating models on a labelled wine table

📋 What the Vivino Wines Scraper does

💡 Why it matters: a price list tells you what a bottle costs. A rating tells you whether to buy it. This Actor puts both in one row.

  • Collects wines from Vivino's public explore feed, one row per vintage.
  • Returns the average rating and rating count for the vintage and for the wine across all vintages.
  • Adds the lowest merchant offer: price, currency, bottle size, a link to the merchant, and any discount.
  • Adds winery, region, country, wine type, style, grapes, body and acidity.
  • Adds the taste profile: intensity, sweetness, tannin and acidity scores, plus the top flavors drinkers mention.
  • Adds food pairings and any Vivino top-list rankings the wine holds.
  • Filters by wine type, country of origin, price range and minimum rating.
  • Sorts by average rating, number of ratings or price.
  • Slices large searches into price bands, so one query is not capped at about 2,300 wines.
  • Optional detail columns: alcohol percent, drinking window, global and country rank, critic score average and count, biodynamic flag.
  • Dedupes on the Vivino vintage ID, so a wine never appears twice in one run.

🎬 Full Demo (🚧 Coming soon)

📊 Output

Every row is one Vivino wine vintage. The columns marked detail appear only when Add Detail Columns is on.

FieldTypeDescription
🖼 imageUrlstringBottle photo
🍷 wineNamestringFull wine name with the vintage
🏭 winerystringProducer
📅 vintageYearnumberVintage year, or N/V for a non-vintage wine
🎨 wineTypestringRed, White, Sparkling, Rosé, Dessert or Fortified
🧭 wineStylestringVivino style, for example Italian Amarone
📍 regionstringWine region
🌍 countrystringCountry of origin
⭐ ratingnumberAverage rating of this vintage, 1 to 5
💬 ratingsCountnumberRatings behind the vintage average
📊 wineRatingnumberAverage rating across all vintages of the wine
🗳 wineRatingsCountnumberRatings across all vintages
💵 pricenumberMerchant price for one bottle
💱 currencystringCurrency of the market
🏷 priceBeforeDiscountnumberPrice before a discount, or N/A
🍾 bottleSizestringBottle size of the offer
🛒 offerUrlstringMerchant offer link
🧮 offersCountnumberMerchant offers returned
🍇 grapesstringGrape varieties
💪 bodystringBody description
🍋 aciditystringAcidity description
🔥 tasteIntensitynumberIntensity score
🍯 tasteSweetnessnumberSweetness score
🌰 tasteTanninnumberTannin score
🍏 tasteAciditynumberAcidity score
👃 topFlavorsstringFlavors drinkers mention most
🍽 foodPairingsstringFoods Vivino suggests
🏆 topListRankingsstringVivino top lists the wine is on, or N/A
🌿 isNaturalstringYes for a natural wine
🆔 wineIdstringVivino wine ID
🔢 vintageIdstringVivino vintage ID
🔗 urlstringVivino page URL
🥃 alcoholPercentnumberAlcohol by volume (detail)
⏳ drinkingWindowstringRecommended drinking years (detail)
🌐 globalRanknumberGlobal Vivino rank (detail)
🚩 countryRanknumberRank within the country (detail)
🎓 criticScoreAveragenumberAverage critic score (detail)
📰 criticReviewCountnumberCritic reviews found (detail)
♻️ biodynamicstringYes when certified biodynamic (detail)
🕒 scrapedAtstringISO 8601 timestamp of the extraction
❌ errorstringError message on a failed row, null on a real wine

Three real records from a run:

[
{
"imageUrl": "https://images.vivino.com/thumbs/RqFtSGpgTlKL1VwkBjccxA_pl_480x640.png",
"wineName": "Quintarelli Giuseppe Amarone della Valpolicella Classico 2003",
"winery": "Quintarelli Giuseppe",
"vintageYear": 2003,
"wineType": "Red",
"wineStyle": "Italian Amarone",
"region": "Amarone della Valpolicella Classico",
"country": "Italy",
"rating": 4.8,
"ratingsCount": 987,
"wineRating": 4.7,
"wineRatingsCount": 11168,
"price": 1495,
"currency": "USD",
"priceBeforeDiscount": "N/A",
"bottleSize": "Bottle (0.75l)",
"offerUrl": "https://www.drinkdivino.com/quintarelli-giuseppe-amarone-della-valpol-61894496.html",
"offersCount": 1,
"grapes": "Corvina, Rondinella, Corvinone",
"body": "Very full-bodied",
"acidity": "High",
"tasteIntensity": 4.59,
"tasteSweetness": 3.29,
"tasteTannin": 2.31,
"tasteAcidity": 2.38,
"topFlavors": "raisin, chocolate, plum, cherry, tobacco, leather",
"foodPairings": "Beef, Lamb, Game (deer, venison), Blue cheese",
"topListRankings": "#2 Vivino's 2019 Wine Style Awards: Italian Amarone",
"isNatural": "No",
"wineId": "84065",
"vintageId": "1503453",
"url": "https://www.vivino.com/wines/1503453",
"alcoholPercent": 17,
"drinkingWindow": "2008-2028",
"globalRank": 23,
"countryRank": 2,
"criticScoreAverage": 94,
"criticReviewCount": 1,
"biodynamic": "No",
"scrapedAt": "2026-10-23T14:16:03.431Z",
"error": null
},
{
"imageUrl": "https://images.vivino.com/thumbs/gNqENZhnSFqU1BIv9insRA_pl_480x640.png",
"wineName": "Antinori Tenuta Tignanello 'Solaia' 2016",
"winery": "Antinori",
"vintageYear": 2016,
"wineType": "Red",
"wineStyle": "Tuscan Red",
"region": "Toscana",
"country": "Italy",
"rating": 4.7,
"ratingsCount": 1014,
"wineRating": 4.6,
"wineRatingsCount": 41927,
"price": 1204,
"currency": "USD",
"priceBeforeDiscount": "N/A",
"bottleSize": "Bottle (0.75l)",
"offerUrl": "https://www.drinkdivino.com/antinori-tenuta-tignanello-solaia-2016.html",
"offersCount": 1,
"grapes": "Cabernet Sauvignon, Merlot, Sangiovese, Canaiolo Nero",
"body": "Medium-bodied",
"acidity": "Medium",
"tasteIntensity": 3.49,
"tasteSweetness": 1.9,
"tasteTannin": 2.99,
"tasteAcidity": 3.07,
"topFlavors": "leather, oak, blackberry, tobacco, chocolate, plum",
"foodPairings": "Beef, Lamb, Veal, Poultry, Cured Meat",
"topListRankings": "N/A",
"isNatural": "No",
"wineId": "1651",
"vintageId": "85547126",
"url": "https://www.vivino.com/wines/85547126",
"alcoholPercent": 14.5,
"drinkingWindow": "2021-2036",
"globalRank": 626,
"countryRank": 65,
"criticScoreAverage": 97.8,
"criticReviewCount": 11,
"biodynamic": "No",
"scrapedAt": "2026-10-23T14:16:04.113Z",
"error": null
},
{
"imageUrl": "https://images.vivino.com/thumbs/LtqnB-H2QFmN6ixL3FQcdw_pl_480x640.png",
"wineName": "Antinori Tignanello 2023",
"winery": "Antinori",
"vintageYear": 2023,
"wineType": "Red",
"wineStyle": "Tuscan Red",
"region": "Toscana",
"country": "Italy",
"rating": 4.5,
"ratingsCount": 657,
"wineRating": 4.5,
"wineRatingsCount": 181816,
"price": 169,
"currency": "USD",
"priceBeforeDiscount": "N/A",
"bottleSize": "Bottle (0.75l)",
"offerUrl": "https://awsfindingwine.myshopify.com/products/marchesi-antinori-tignanello-750-ml-2023",
"offersCount": 1,
"grapes": "Cabernet Sauvignon, Merlot, Sangiovese, Canaiolo Nero",
"body": "Medium-bodied",
"acidity": "Medium",
"tasteIntensity": 3.44,
"tasteSweetness": 1.72,
"tasteTannin": 3,
"tasteAcidity": 3.09,
"topFlavors": "leather, oak, tobacco, cherry, chocolate, blackberry",
"foodPairings": "Beef, Lamb, Veal, Poultry, Cured Meat",
"topListRankings": "N/A",
"isNatural": "No",
"wineId": "1652",
"vintageId": "173697416",
"url": "https://www.vivino.com/wines/173697416",
"alcoholPercent": 14.5,
"drinkingWindow": "2025-2033",
"globalRank": 10330,
"countryRank": 1481,
"criticScoreAverage": "Not Disclosed",
"criticReviewCount": 0,
"biodynamic": "No",
"scrapedAt": "2026-10-23T14:16:08.971Z",
"error": null
}
]

✨ Why choose this Actor

  • Rating and price in one row. Most wine feeds give one or the other.
  • Complete big exports. Vivino stops a single search after about 2,300 wines. The Actor cuts the search into price bands so you are not stuck at that ceiling.
  • Your market, your currency. Pick the United States, United Kingdom, Germany, France, Italy, Spain, Canada or Australia.
  • Taste data, not just labels. Intensity, sweetness, tannin, acidity, flavors and food pairings are on the row.
  • Honest limits. Free-text search is not offered, and the limits are listed below.
  • Clean tables. Fixed column order, no nulls, ready for CSV, Excel, JSON or XML.

📈 How it compares to alternatives

This ActorTypical Vivino scraperManual browsing
Rating and merchant price per wine✅✅✅ one at a time
Taste profile and food pairings✅Sometimes✅ one at a time
Exports past the 2,300 wine search ceiling✅ price bands❌❌
Eight markets and currencies✅Sometimes✅
Alcohol, drinking window, global rank✅ optionalSometimes✅ one at a time
Free-text wine search❌ filters onlySometimes✅
Individual user reviews❌Sometimes✅

🚀 How to use

  1. Create a free Apify account. New accounts get $5 in free credit: sign up here.
  2. Open the Vivino Wines Scraper and click Try for free.
  3. Pick one or more wine types and countries of origin, or leave both empty for every wine.
  4. Set a minimum rating, a price range and the market country.
  5. Set how many wines you want.
  6. Turn on Add Detail Columns if you need alcohol percent, drinking window or rank.
  7. Click Start and watch the run log.
  8. When the run finishes, open the Storage tab and download CSV, Excel, JSON or XML, or pull the same rows through the Apify API.

💼 Business use cases

Retail and wholesale benchmarking

Export the wines in your price band, sorted by rating, and compare what a merchant asks for each bottle against how drinkers rate it. Bottles rated 4.2 or higher under a set price are the ones to stock.

Wine list building

Restaurants can pull every highly rated red from one country under a price ceiling, with food pairings and body on the same row, and shortlist a list in an afternoon.

Catalogue seeding

Wine apps and shops can start a catalogue from rated, photographed wines with grapes, region and style already filled in.

Market research

Run the same filters across several markets and compare rating, price and currency by country, grape or vintage year.

🔌 Automating Vivino Wines Scraper

  • Make and Zapier: run the Actor on a schedule and push new rows into a spreadsheet or a store.
  • Slack: post an alert when a wine above a rating threshold drops under your price.
  • Airbyte: sync the dataset into a warehouse and join it to your own sales data.
  • GitHub Actions: run weekly and commit the CSV so a price history builds itself.
  • Google Drive: drop each export into a shared folder for the buying team.
  • Apify Scheduler: run daily, weekly or hourly with no external tooling at all.

🌟 Beyond business use cases

  • Research: study how rating relates to price, grape and country across thousands of wines.
  • Personal: find the best rated bottle under your budget before a dinner.
  • Non-profit: build a tasting list for a charity auction from rated wines.
  • Experimentation: train a taste model on intensity, sweetness, tannin and acidity scores.

🤖 Ask an AI assistant about this scraper

Paste this into ChatGPT, Claude or any assistant:

I am using the Vivino Wines Scraper on Apify. It returns fields such as wineName, winery, vintageYear, wineType, region, country, rating, ratingsCount, price, currency, grapes, tasteIntensity, tasteTannin, topFlavors and foodPairings. Help me design an analysis that finds the best rated wines per grape under a fixed price in one country.

❓ Frequently Asked Questions

🔑 Do I need a Vivino account or API key?

No. The Actor reads Vivino's public explore feed. There is nothing to sign up for and no key to paste.

🌍 What does the market country change?

Vivino decides which wines have a merchant offer, and in which currency, from the location of the visitor. The Actor sends its traffic through a residential IP in the market country you choose, so the United States market returns dollar prices and the German market returns euro prices.

🔎 Can I search by wine name?

No. Vivino serves free-text search only as a rendered page with the first 25 results, so the Actor works with filters instead: type, country of origin, price range and minimum rating.

📦 How many wines can I export?

A single Vivino search stops after about 2,300 wines. The Actor splits the search into price bands, so a run can go far past that. A sample search for red Italian wines rated 4.0 or higher returned 6,722 matches in the United States market.

⭐ How are ratings calculated?

They come straight from Vivino. rating is the average for the vintage and wineRating is the average for the wine across all vintages. A vintage with no ratings yet reports Not Disclosed.

💵 Why is the price the lowest offer?

Vivino returns one headline merchant offer per wine in the explore feed. offersCount and offerUrl tell you how many offers came back and where the headline one is.

🥃 What do the detail columns add?

Alcohol percent, drinking window, global and country rank, critic score average and count, and the biodynamic flag. Each needs one extra request per wine, so runs with it on are slower.

🔀 Can the same wine appear twice?

No. Rows are deduped on the Vivino vintage ID within a run.

⚡ How fast is it?

Each page of 24 wines answers in roughly one second. With detail columns on, expect a few wines per second less.

🌐 Do I need a proxy?

Yes, and the default already is one. Vivino blocks datacenter IPs, so the Actor uses Apify residential proxy in the market country. Leave the default unless you bring your own residential proxies.

🛑 What happens when Vivino blocks the run?

The Actor retries with fresh IPs. If Vivino still does not answer, the run ends as failed with an error row instead of finishing empty.

🧹 Why do I see "Not Disclosed" and "N/A" instead of empty cells?

Not Disclosed means Vivino has no value for that field on that wine. N/A means the field does not apply, for example no discount exists so there is no price before discount.

🔌 Integrate with any app

Every run writes to an Apify dataset you can read over the REST API, stream into a webhook, or export as CSV, Excel, JSON or XML. Apify's integrations cover Make, Zapier, Airbyte, Slack, Google Drive, GitHub, Google Sheets and plain HTTP webhooks, so the rows land wherever your team already works.

💡 Pro Tip: browse the complete ParseForge collection.

🆘 Need Help? Open our contact form

⚠️ Disclaimer: This is an independent tool and is not affiliated with, endorsed by, or connected to Vivino. It collects only publicly available data.