Vivino Reviews Scraper avatar

Vivino Reviews Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Vivino Reviews Scraper

Vivino Reviews Scraper

Extract detailed wine reviews from Vivino.com with precision. Scrape ratings, user profiles, tasting notes, language data, and timestamps across multiple pages — perfect for wine researchers, retailers, and sentiment analysis projects.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

Stealth mode

Stealth mode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Vivino Reviews Scraper: Harvest Wine Review Data at Scale


What Is Vivino.com?

Vivino.com is the world's largest wine social network and marketplace, hosting millions of wine reviews, ratings, and user-generated tasting notes. With over 10 million wines cataloged and a vibrant community of wine enthusiasts, Vivino represents an invaluable source of consumer sentiment, regional trends, and vintage-specific feedback. Manually collecting review data is impractical — the Vivino Reviews Scraper automates extraction of structured review records, enabling bulk analysis and competitive intelligence.


Overview

The Vivino Reviews Scraper extracts detailed review records from individual Vivino wine product pages, capturing ratings, user profiles, tasting notes, and metadata in a structured format. It is designed for:

  • Wine retailers & distributors analyzing customer sentiment by vintage or region
  • Researchers studying wine appreciation trends and review patterns
  • Data analysts building datasets for sentiment or rating prediction models
  • Aggregators feeding wine review data into comparison or recommendation platforms

Key strengths include flexible filtering by star rating, sorting by helpfulness or recency, pagination support for large review sets, and robust URL failure handling.


Input Format

The scraper accepts a JSON configuration object to target specific wine products and refine results:

{
"urls": [
"https://www.vivino.com/en/san-marzano-sixty-sessantanni-old-vines-primitivo-di-manduria/w/11890?year=2020&price_id=42539229#all_reviews"
],
"page": 2,
"rating": "5",
"sort_by": "latest_reviews",
"ignore_url_failures": true,
"max_items_per_url": 200
}
FieldTypeDescription
urlsArrayDirect Vivino product page URLs (include the #all_reviews anchor). Paste one or multiple wine product links.
pageIntegerStarting page number for review pagination (default: 1). Useful for resuming interrupted runs or targeting specific review batches.
ratingStringFilter reviews by star rating: "" (any), "5" (5-star), "4" (4-star), ..., "1" (1-star). Leave empty to include all ratings.
sort_byStringSort order: "reviews" (most helpful first) or "latest_reviews" (newest first). Helps prioritize recent or community-validated feedback.
ignore_url_failuresBooleanIf true, the scraper continues if individual URLs fail; if false, it halts. Recommended: true for bulk runs.
max_items_per_urlIntegerMaximum reviews per product URL (e.g., 200). Limits volume and runtime. Vivino pages typically contain 10–30 reviews per page.

Pro tip: Use sort_by: "latest_reviews" to capture fresh consumer sentiment; use "reviews" to find the most-discussed feedback.


Output Format

Example Output Record

{
"id": 357034454,
"rating": 4.5,
"note": "Maravilhoso!",
"language": "tn",
"created_at": "2026-05-16T22:26:42.000Z",
"user": {
"id": 21640127,
"seo_name": "mateus.lupo",
"alias": "Mateus Lupo",
"is_featured": false,
"is_premium": false,
"visibility": "all",
"image": {
"location": "//images.vivino.com/avatars/5BlLfZPCRKOAkrDlgaybLQ.jpg",
"variations": {
"large": "//thumbs.vivino.com/avatars/5BlLfZPCRKOAkrDlgaybLQ_300x300.jpg",
"small_square": "//thumbs.vivino.com/avatars/5BlLfZPCRKOAkrDlgaybLQ_50x50.jpg"
}
},
"background_image": {
"location": "//images.vivino.com/users/backgrounds/default_1.jpg",
"variations": {
"large": "//images.vivino.com/users/backgrounds/default_1_1200x400.jpg",
"medium": "//images.vivino.com/users/backgrounds/default_1_600x200.jpg",
"small": "//images.vivino.com/users/backgrounds/default_1_140x60.jpg"
}
},
"language": "pt",
"relationship": {
"is_followed_by_me": false,
"is_following_me": false,
"follow_requested": false,
"ignored_my_follow_request": false,
"requested_to_follow_me": false,
"follow_ignored_by_me": false,
"is_blocked_by_me": false,
"is_blocking_me": false
},
"statistics": {
"followers_count": 14,
"followings_count": 2,
"ratings_count": 5179,
"ratings_sum": 20193.3,
"reviews_count": 5062,
"purchase_order_count": 0
}
},
"vintage": {
"id": 1504641,
"seo_name": "san-marzano-sixty-sessantanni-old-vines-primitivo-di-manduria-uv",
"name": "San Marzano 60 Sessantanni Old Vines Primitivo di Manduria U.V.",
"statistics": {
"status": "Normal",
"ratings_count": 117906,
"ratings_average": 4.5,
"labels_count": 4404,
"reviews_count": 1662
},
"organic_certification_id": null,
"certified_biodynamic": null,
"image": {
"location": "//images.vivino.com/thumbs/tLtS1VwaRxCL25zZ-j6pZg_pl_480x640.png",
"variations": {
"bottle_large": "//images.vivino.com/thumbs/tLtS1VwaRxCL25zZ-j6pZg_pb_x960.png",
"bottle_medium": "//images.vivino.com/thumbs/tLtS1VwaRxCL25zZ-j6pZg_pb_x600.png",
"bottle_medium_square": "//images.vivino.com/thumbs/tLtS1VwaRxCL25zZ-j6pZg_pb_600x600.png",
"bottle_small": "//images.vivino.com/thumbs/tLtS1VwaRxCL25zZ-j6pZg_pb_x300.png",
"bottle_small_square": "//images.vivino.com/thumbs/tLtS1VwaRxCL25zZ-j6pZg_pb_300x300.png",
"label": "//images.vivino.com/thumbs/tLtS1VwaRxCL25zZ-j6pZg_pl_480x640.png",
"label_large": "//images.vivino.com/thumbs/tLtS1VwaRxCL25zZ-j6pZg_pl_375x500.png",
"label_medium": "//images.vivino.com/thumbs/tLtS1VwaRxCL25zZ-j6pZg_pl_150x200.png",
"label_medium_square": "//images.vivino.com/thumbs/tLtS1VwaRxCL25zZ-j6pZg_pl_150x150.png",
"label_small_square": "//images.vivino.com/thumbs/tLtS1VwaRxCL25zZ-j6pZg_pl_80x80.png",
"large": "//images.vivino.com/thumbs/tLtS1VwaRxCL25zZ-j6pZg_pl_375x500.png",
"medium": "//images.vivino.com/thumbs/tLtS1VwaRxCL25zZ-j6pZg_pl_150x200.png",
"medium_square": "//images.vivino.com/thumbs/tLtS1VwaRxCL25zZ-j6pZg_pl_150x150.png",
"small_square": "//images.vivino.com/thumbs/tLtS1VwaRxCL25zZ-j6pZg_pl_80x80.png"
}
},
"wine": {
"id": 11890,
"name": "60 Sessantanni Old Vines Primitivo di Manduria",
"seo_name": "sixty-sessantanni-old-vines-primitivo-di-manduria",
"type_id": 1,
"vintage_type": 0,
"is_natural": false,
"region": {
"id": 2753,
"name": "Primitivo di Manduria",
"name_en": "",
"seo_name": "primitivo-di-manduria",
"country": {
"code": "it",
"name": "Italy",
"native_name": "Italia",
"seo_name": "italy",
"currency": {
"code": "EUR",
"name": "Euros",
"prefix": "€",
"suffix": null
},
"regions_count": 565,
"users_count": 4903445,
"wines_count": 301208,
"wineries_count": 44031,
"most_used_grapes": [
{
"id": 16,
"name": "Sangiovese",
"seo_name": "sangiovese",
"has_detailed_info": true,
"wines_count": 125094,
"parent_grape_id": null,
"color": 5
},
{
"id": 5,
"name": "Chardonnay",
"seo_name": "chardonnay",
"has_detailed_info": true,
"wines_count": 604208,
"parent_grape_id": null,
"color": 1
},
{
"id": 10,
"name": "Merlot",
"seo_name": "merlot",
"has_detailed_info": true,
"wines_count": 566719,
"parent_grape_id": null,
"color": 5
}
]
},
"parent_id": 548,
"background_image": {
"location": "//images.vivino.com/regions/backgrounds/4hk4tWhkSueipqpj6rBxqQ.jpeg",
"variations": {
"large": "//thumbs.vivino.com/region_backgrounds/4hk4tWhkSueipqpj6rBxqQ_1280x760.jpeg",
"medium": "//thumbs.vivino.com/region_backgrounds/4hk4tWhkSueipqpj6rBxqQ_600x356.jpeg"
}
},
"class": "VivinoAPI::Region",
"statistics": {
"wineries_count": 138,
"wines_count": 1528,
"sub_regions_count": 0,
"parent_regions_count": 2
}
},
"review_status": 2,
"winery": {
"id": 55648,
"name": "San Marzano",
"seo_name": "san-marzano",
"status": 3,
"review_status": "Completed",
"dashboard_url": "https://analytics-pbl.vivino.com/dashboards-next/60",
"background_image": {
"location": "//images.vivino.com/wineries/backgrounds/HxEtPoUBQF2f3rLG7QoXzA.jpeg",
"variations": {
"large": "//thumbs.vivino.com/winery_backgrounds/HxEtPoUBQF2f3rLG7QoXzA_2560x1520.jpeg",
"medium": "//thumbs.vivino.com/winery_backgrounds/HxEtPoUBQF2f3rLG7QoXzA_1280x760.jpeg",
"small": "//thumbs.vivino.com/winery_backgrounds/HxEtPoUBQF2f3rLG7QoXzA_600x356.jpeg"
}
},
"statistics": {
"ratings_count": 509081,
"ratings_average": 4.1,
"labels_count": 3462764,
"wines_count": 175
}
},
"style": null,
"has_valid_ratings": false
},
"year": "",
"grapes": null,
"has_valid_ratings": true
},
"activity": {
"id": 929967228,
"statistics": {
"likes_count": 1,
"comments_count": 1
}
},
"tagged_note": "Maravilhoso!",
"from_url": "https://www.vivino.com/en/san-marzano-sixty-sessantanni-old-vines-primitivo-di-manduria/w/11890?year=2020&price_id=42539229#all_reviews"
}

Each review record returns 9 key fields capturing both review content and metadata:

Review Content & Ratings

FieldMeaning
IDUnique identifier for the review within Vivino's database
RatingStar rating given by the reviewer (1–5 stars)
NoteFull text of the tasting review or comment
LanguageLanguage code of the review (e.g., en, fr, de)

Reviewer & Context

FieldMeaning
UserUsername or profile identifier of the reviewer
Created AtISO timestamp when the review was posted
VintageWine vintage year (e.g., 2020) referenced in the review or product page

Engagement & Classification

FieldMeaning
ActivityEngagement metric (e.g., helpfulness count, number of upvotes received on the review)
Tagged NoteCommunity-applied tags or labels (e.g., "fruity", "bold", "food_pairing") if available

How to Use

  1. Find wine URLs — Browse Vivino.com and open a wine's detail page. Copy the full URL including the #all_reviews anchor (e.g., https://www.vivino.com/en/.../w/12345#all_reviews).

  2. Configure input — Paste URLs into the urls array. Adjust rating and sort_by to focus on specific feedback (e.g., 5-star reviews sorted by latest).

  3. Set pagination — Use page: 1 to start from the first review page. Adjust max_items_per_url based on your data needs (e.g., 200 for comprehensive datasets).

  4. Enable resilience — Set ignore_url_failures: true for bulk scraping to skip broken or region-restricted product pages.

  5. Run the scraper — Execute the actor and monitor the run log for progress.

  6. Export results — Download the dataset as JSON, CSV, or Excel for analysis.

Troubleshooting:

  • If a URL returns zero reviews, verify the product has a reviews section and the URL is correctly formatted.
  • Region-specific Vivino URLs (e.g., .com/it, .com/de) may have different review counts or accessibility.
  • Large max_items_per_url values (>500) may increase runtime; consider running multiple smaller jobs.

Use Cases & Business Value

  • Sentiment analysis: Quantify customer opinions by vintage, region, or price point
  • Competitive benchmarking: Compare review volumes and average ratings across similar wines
  • Trend research: Identify emerging preferences (e.g., natural wines, organic) through tagged notes and language patterns
  • Market intelligence: Monitor reviewer engagement and community reception for new releases
  • Quality control: Correlate Vivino ratings with sales data to inform purchasing and stocking decisions

The Vivino Reviews Scraper transforms subjective review feedback into quantifiable datasets, unlocking insights that support product decisions, marketing strategies, and consumer understanding.


Conclusion

The Vivino Reviews Scraper is a powerful tool for anyone needing structured wine review data at scale. With filtering, sorting, and pagination options built in, it delivers clean, multi-language review records ready for analytics, reporting, or integration into wine platforms. Unlock Vivino's rich review ecosystem and turn consumer feedback into actionable intelligence.