Vivino Wine Scraper avatar

Vivino Wine Scraper

Pricing

from $0.70 / 1,000 results

Go to Apify Store
Vivino Wine Scraper

Vivino Wine Scraper

Scrapes wine data from Vivino (vivino.com), including wine name, winery, vintage, region, country, grapes, average rating, number of ratings, price, taste profile, food pairings and label image.

Pricing

from $0.70 / 1,000 results

Rating

0.0

(0)

Developer

ActorFlow

ActorFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Scrape wine data from Vivino (vivino.com) — the world's largest wine community and marketplace. This Vivino wine scraper extracts wine name, winery, vintage year, region, country, wine type, average rating and number of ratings, bottle price, grapes, style, food pairings, taste structure and label image. Filter by wine type, rating and price, or paste a Vivino explore URL directly. Export to JSON, CSV or Excel, or call it as an API.

Target website: vivino.com

✨ Features of this Vivino wine scraper

  • Wine data extraction — name, winery, vintage year, region, country and wine type for every matching wine
  • Ratings — the vintage's average rating and rating count, plus the wine's rating across all vintages
  • Prices — bottle price in your chosen currency and market, with the bottle format
  • Taste structure — acidity, sweetness, tannin, intensity and fizziness where Vivino scores them
  • Tasting notes — the flavour keywords reviewers actually used, most mentioned first
  • Food pairings — the dishes Vivino recommends for the wine's style
  • Filters — wine type, minimum rating and price range, or a pasted Vivino explore URL
  • Market selection — prices and availability for a chosen country and currency
  • Repeat-run caching — name a cache project and later runs return only wines you have not seen before, so scheduled runs never re-download the same bottles
  • Proxy support — configurable, so you stay in control of run cost
  • No browser required — runs on plain HTTP requests, which makes it fast and cheap

🚀 How to scrape Vivino wines in 5 steps

  1. Sign up for a free Apify account — includes $5 monthly credit.
  2. Open the actor page and click Try for free.
  3. Choose your filters (wine type, minimum rating, price range) or paste a Vivino explore URL.
  4. Click Start and wait for the run to complete.
  5. Download results from the Output tab in JSON, CSV, or Excel format.

You can also run this actor via the Apify API or integrate it directly into your workflows using Zapier, Make, or n8n.

💰 Pricing

This actor uses pay-per-result billing based on the compute units a run consumes.

  • New Apify accounts include $5 of free monthly credit.
  • It runs on plain HTTP requests rather than a headless browser, so it costs significantly less to run than browser-based wine scrapers.

🔧 Input configuration

FieldTypeRequiredDefaultDescription
startUrlstring——A vivino.com/explore URL to use instead of the filter fields below.
wineTypesarray—allRED, WHITE, SPARKLING, ROSE, DESSERT, FORTIFIED.
minRatinginteger——Only wines rated at least this highly (1–5).
priceMininteger——Lowest bottle price to include.
priceMaxinteger——Highest bottle price to include.
sortBystring—RATINGRATING, POPULARITY or PRICE.
maxItemsinteger—5Maximum wines to scrape. 0 collects every wine the search returns.
countrystring—USMarket country code for prices and availability.
currencystring—USDCurrency code for prices.
cacheProjectNamestring——Name a project to remember scraped wines across runs, so repeated runs return only new ones.
proxyConfigurationobject——Proxy settings, configurable per run.

Supported URL types: startUrl accepts a vivino.com/explore?... URL — for example one you copy from your browser after setting filters on the Vivino site. Its wine type, rating and price filters are read directly from the URL.

📦 Vivino scraper output data

Each result is a JSON object with the keys vintageId, wineId, url, name, wineName, winery, wineryId, year, wineType, wineTypeId, isNatural, region, country, countryCode, rating, ratingCount, wineRating, wineRatingCount, labelsCount, price, currency, bottleType, grapes, style, styleDescription, foodPairings, tasteProfile, flavorKeywords, tasteStructure, image and exploreUrl. The dataset ships with two views: Overview, a compact table of name, winery, type, rating and price; and Full wine details, which adds region, country, grapes, style, food pairings, taste structure and the label image.

Sample output:

{
"vintageId": 164942645,
"wineId": 1122095,
"url": "https://www.vivino.com/wines/164942645",
"name": "Moët & Chandon Impérial Brut Champagne",
"wineName": "Impérial Brut Champagne",
"winery": "Moët & Chandon",
"wineryId": 7799,
"year": "N.V.",
"wineType": "Sparkling",
"wineTypeId": 3,
"isNatural": false,
"region": "Champagne",
"country": "France",
"countryCode": "fr",
"rating": 4.1,
"ratingCount": 143362,
"wineRating": 4.1,
"wineRatingCount": 143362,
"labelsCount": 1578330,
"price": 117.02,
"currency": "USD",
"bottleType": "Bottle (0.75l)",
"grapes": [],
"style": "French Champagne",
"styleDescription": "While there are many sparkling wine regions around the globe, only Champagne from the Champagne appellation in France can be labeled as such...",
"foodPairings": [
"Pork",
"Rich fish (salmon, tuna etc)",
"Shellfish",
"Mild and soft cheese"
],
"tasteProfile": {
"tree_fruit": { "score": 575900, "mentions": 4022 },
"citrus_fruit": { "score": 385100, "mentions": 3136 }
},
"flavorKeywords": [
{ "name": "citrus", "mentions": 2229 },
{ "name": "green apple", "mentions": 1963 }
],
"tasteStructure": {
"acidity": 4.2,
"fizziness": 4.28,
"intensity": 3.75,
"sweetness": 0,
"tannin": 0
},
"image": "https://images.vivino.com/thumbs/LP_B9yqMQHSuMyd4SLgUSw_pl_480x640.png",
"exploreUrl": "https://www.vivino.com/explore?min_rating=1"
}

🐍 How to scrape Vivino with Python, JavaScript or the API

Run the actor programmatically with the official Apify clients. Replace <YOUR_API_TOKEN> with the token from your Apify Console.

Python (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("<username>/vivino-wine-scraper").call(run_input={
"wineTypes": ["RED"],
"minRating": 4,
"maxItems": 20,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript (npm install apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('<username>/vivino-wine-scraper').call({
wineTypes: ['RED'],
minRating: 4,
maxItems: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

cURL — start a run and wait for the dataset:

curl -X POST "https://api.apify.com/v2/acts/<username>~vivino-wine-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"wineTypes": ["RED"], "minRating": 4, "maxItems": 20}'

💡 What you can use Vivino wine data for

  • Price monitoring for wine retailers and marketplaces
  • Building or enriching a wine catalog with ratings, tasting notes and food pairings
  • Market research on wine trends by region, grape or style
  • Feeding a recommendation engine with structured taste profiles
  • Comparing bottle prices across countries and currencies

Sommeliers, wine retailers, e-commerce teams, data analysts and hospitality businesses use this data to track pricing, benchmark inventory against Vivino's community ratings, and power wine recommendation features.

❓ Frequently asked questions

Can I scrape Vivino legally?

Yes. This actor only collects wine data that is already publicly visible on Vivino's pages — no login, paywall, or private account content is accessed. Scraping publicly available data is generally considered lawful (see hiQ Labs v. LinkedIn as precedent). You're responsible for complying with Vivino's Terms of Service and any applicable laws, such as GDPR or CCPA, if you scrape or store personal data.

Does this scraper get every wine matching my filters?

Vivino's own search endpoint caps each result set at roughly 35 wines per filter combination, regardless of maxItems. To build a larger dataset, run the actor with different filter combinations (wine type, price range, rating) and use cacheProjectName so repeat runs skip wines you've already collected.

Can I search Vivino by wine name or keyword?

Not directly — Vivino's public search doesn't support keyword search from server-side requests. Instead, filter by wine type, rating and price range, or paste a vivino.com/explore URL with the filters already applied.

Do I need a proxy to scrape Vivino?

No. Vivino's explore endpoint is reachable without a proxy, which keeps runs cheap. Proxy configuration is available if you want to use one.

How do I scrape Vivino wine data with Python?

Install apify-client, call this actor with your filters as run_input, and iterate over client.dataset(run["defaultDatasetId"]).iterate_items(). See the Python example above for a complete script.

Can I run this Vivino scraper on a schedule?

Yes. Use Apify Schedules to run it daily, weekly, or on any cron interval. Set cacheProjectName so scheduled runs only return wines added since the last run.

What output formats are supported?

JSON, CSV, Excel, XML and RSS, either from the Output tab or through the Apify API.

🔗 Other actors you may find useful

💬 Support & Contact

If you encounter any issues or have questions, please open an issue

You can also find more of our actors on the Actor Flow .