Vivino Scraper - Wines, Ratings, Reviews & Prices avatar

Vivino Scraper - Wines, Ratings, Reviews & Prices

Pricing

from $5.00 / 1,000 wine scrapeds

Go to Apify Store
Vivino Scraper - Wines, Ratings, Reviews & Prices

Vivino Scraper - Wines, Ratings, Reviews & Prices

Discover wines on Vivino by type, country, region, grape, price & rating: ratings, taste profile, flavor notes, food pairings, awards, critic & user reviews, live + median prices, and price/rating monitoring.

Pricing

from $5.00 / 1,000 wine scrapeds

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Vivino Scraper — Wines, Ratings, Reviews & Prices (Taste Profiles, Rankings & Price Tracking)

Extract complete wine data from Vivino — the world's largest wine marketplace and community. Discover wines exactly like Vivino's own Explore page (by type, country, region, grape, price and rating) and get the fields other scrapers leave empty: average rating and ratings count, full taste structure, flavor notes, food pairings, grape composition, alcohol, awards, professional critic reviews, recommended drinking window, global/country/region/winery rankings, the live lowest price, the median market price, every merchant offer, and the community reviews.

No login, no cookies, no browser — fast JSON extraction straight from Vivino's own back end.

Why this Vivino scraper?

Most Vivino scrapers return a name, a rating and a price. This actor reads Vivino's explore, vintage-detail, price and review endpoints and ships the richest dataset in the category — the same data a wine buyer, sommelier, retailer or collector actually needs to make a decision.

DataTypical scrapersThis actor
Wine name, year, type, rating
Ratings count + reviews count + ratings distributionpartial
Taste structure (acidity, intensity, sweetness, tannin, fizziness)
Flavor notes (oak, black fruit, earth… with keywords)
Food pairings
Region, country, winery + grape compositionpartial
Alcohol %, wine style, closure
Awards + professional critic reviews✅ opt-in
Recommended drinking window
Global / country / region / winery ranking
Live lowest price + median market price + every merchant offerpartial
Community reviews (rating, text, taster, flavor words)✅ opt-in
All vintages of a wine (price/rating by year)✅ opt-in
Price / rating monitoring (only new or changed)

Use cases

  • Wine retail & e-commerce — enrich product catalogs with ratings, taste, region, grapes and food pairings; benchmark competitive pricing against the live lowest and median market price; reprice on a schedule.
  • Price tracking & investing — watch fine-wine prices and ratings over time, with drinking windows and global rankings for cellar and investment decisions.
  • Wine apps, marketplaces & content sites — power discovery, recommendations and affiliate pages with clean, LLM-ready wine data and real community reviews.
  • Restaurants & sommeliers — build and curate wine lists by rating, region, grape, price band and food pairing.
  • Market & trend research — analyze ratings, pricing and popularity across countries, regions, grapes and price tiers.
  • Catalog & monitoring — schedule recurring runs to capture new vintages, price drops and rating changes automatically.

How to use

  1. Sign up for Apify — the free plan is enough to try this actor.
  2. Open the Vivino Scraper, choose your Explore filters (wine type, country, price, rating…) or paste Vivino wine URLs, and click Start.
  3. Watch results stream into the dataset table.
  4. Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.

Input

{
"wineTypes": ["red"],
"wineCountries": ["us"],
"minRating": "4.0",
"priceMin": 20,
"priceMax": 80,
"sortBy": "mostPopular",
"marketCountry": "US",
"currency": "USD",
"includeWineDetails": true,
"includeReviews": true,
"maxReviewsPerWine": 10,
"maxResults": 100
}
  • wineTypesred, white, sparkling, rose, dessert, fortified (empty = all).
  • wineCountries — origin countries (ISO codes): us, fr, it, es, pt, ar, cl, au, de
  • minRating / priceMin / priceMax — narrow by Vivino average rating and price band.
  • sortBymostPopular (most rated), topRated, priceAsc, priceDesc.
  • grapeIds / regionIds / foodIds / wineStyleIds — advanced numeric facets (find them in any Vivino Explore URL); map 1:1 to Vivino's own filters.
  • marketCountry / currency — the pricing market and currency for live + median prices.
  • startUrls — Vivino wine page URLs (/w/<id>); wineIds — wine IDs directly.
  • includeWineDetails (default true) — full detail: description, food pairings, grape composition, alcohol, awards, critic reviews, ratings distribution, drinking window, rankings.
  • includeReviews (default false) — community reviews per wine as separate records.
  • includeAllVintages (default false) — for direct wines, emit every vintage year (price/rating by year).
  • includeMedianPrice (default true) — add the median market price alongside the live lowest price.
  • monitorMode / monitorKey — emit only new or changed wines across runs (see below).

Output

One record per wine (type: "wine"), plus optional community review records (type: "review"):

{
"type": "wine",
"vintageId": 164821583,
"wineId": 5978015,
"name": "Hundred Acre Wraith Cabernet Sauvignon 2017",
"wineName": "Wraith Cabernet Sauvignon",
"year": 2017,
"url": "https://www.vivino.com/w/5978015?year=2017",
"wineType": "Red",
"rating": 4.9,
"ratingsCount": 77,
"reviewsCount": 16,
"wineRating": 4.8,
"wineRatingsCount": 881,
"ratingsDistribution": { "1": 0, "2": 0, "3": 0, "4": 34, "5": 43 },
"wineryName": "Hundred Acre",
"regionName": "Napa Valley",
"countryCode": "US",
"countryName": "United States",
"grapes": ["Cabernet Sauvignon"],
"grapeComposition": { "Cabernet Sauvignon": 100 },
"alcohol": 15.5,
"style": "Napa Valley Cabernet Sauvignon",
"foodPairings": ["Beef", "Lamb", "Poultry", "Game (deer, venison)", "Mature and hard cheese"],
"taste": { "acidity": 3.01, "intensity": 4.75, "sweetness": 2.04, "tannin": 3.1 },
"flavorGroups": [{ "group": "oak", "keywords": ["vanilla", "oak", "coffee"] }],
"flavorKeywords": ["vanilla", "oak", "coffee", "black fruit", "dark chocolate"],
"drinkingWindowFrom": 2022,
"drinkingWindowTo": 2032,
"ranking": {
"global": { "rank": 292, "total": 12225908 },
"country": { "rank": 115, "total": 1323232 },
"winery": { "rank": 20, "total": 229 }
},
"price": 695,
"currency": "USD",
"medianPrice": 1004,
"merchant": "vinfolio.com",
"merchantUrl": "https://vinfolio.com/product/…",
"offers": [{ "amount": 695, "merchant": "vinfolio.com", "bottleType": "Bottle (0.75l)", "url": "https://vinfolio.com/product/…" }],
"labelImage": "https://images.vivino.com/thumbs/…_pl_375x500.png",
"image": "https://images.vivino.com/thumbs/…_pb_x960.png",
"scrapedAt": "2026-06-19T12:00:00.000Z"
}

A review record (type: "review") carries rating, note (text), language, createdAt, userAlias, flavorKeywords, plus wineId/vintageId/wineName/year and the wineUrl.

What to expect (field coverage)

Vivino is community- and merchant-sourced, so a few fields are populated only when the data exists. Verified live, you can typically expect:

FieldCoverage
name, year, type, rating, ratingsCount, region, country, winery, taste, image~100%
grapes, food pairings, alcohol, style, ratings distribution, drinking window, ranking~90% (with detail on)
price / merchant offerspresent when the wine is sold in the chosen market
medianPricepresent when enough market prices exist
awards, critic reviewspresent for wines that have them (typically higher-end wines)

A blank field means Vivino doesn't publish that value — not that scraping failed. Nothing is dropped, so you always get the richest dataset available.

Automate & schedule

Run this actor on autopilot and pull results into your own stack:

  • Apify API — start runs, fetch datasets, and manage schedules over REST.
  • apify-client for JavaScript and apify-client for Python — official SDKs.
  • Schedules — run it daily/weekly to track prices, ratings and new vintages; perfect for repricing and price-drop alerts.
  • Webhooks — trigger downstream actions (catalog sync, Slack alert, price-drop email) the moment a run finishes.
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/vivino-scraper').call({
wineTypes: ['red'],
wineCountries: ['fr'],
minRating: '4.2',
priceMax: 60,
includeReviews: true,
maxResults: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} wines & reviews`);

Monitor mode (only new or changed wines)

Turn on monitorMode to remember wines across runs in a named key-value store and emit only wines that are new or whose price or rating changed since the last run — each tagged with a changeType (new, price_drop, price_rise, rating_up, rating_down). It complements Apify Schedules: the schedule starts the run, and monitor mode dedupes against prior runs — so a daily schedule becomes a hands-off price-drop and rating-change feed. Use different monitorKey values to run several independent watches.

Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

  • Make — multi-step automation scenarios.
  • Zapier — push new wines or price drops straight into your tools.
  • Slack — get notified when a monitored wine drops in price.
  • Google Drive / Sheets — auto-export every run to a spreadsheet.
  • Airbyte — pipe results into your data warehouse.
  • GitHub — trigger runs from commits or releases.

Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "find top-rated Napa Cabernets under $80 with their tasting notes and where to buy them" and let it run the scraper for you.

Agent-ready: autonomous payments (x402 & Skyfire)

This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:

  • x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
  • Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

More scrapers from scrapesage

Build a complete product, price & marketplace intelligence stack:

Tips

  • Explore like Vivino does — combine wineTypes, wineCountries, minRating and a price band, then sort by mostPopular or topRated. Vivino Explore returns 24 wines per page; raise maxPagesPerSearch to go deeper.
  • Best value finds — set sortBy: "topRated" with a tight priceMax to surface the highest-rated wines you can actually afford.
  • All vintages — paste a wine URL and turn on includeAllVintages to get every year of that wine with its own price and rating.
  • Reviews — enable includeReviews for community tasting notes and flavor words; add reviewsLanguage to keep one language.
  • Proxies — keep the default RESIDENTIAL proxy group; Vivino throttles datacenter IPs.

FAQ

How do I find wines by region, grape or food pairing? Use the Explore filters: wineCountries for origin, and the advanced regionIds / grapeIds / foodIds facets (the same numeric IDs Vivino uses in its own Explore URLs).

Can I search for a specific wine by name? Vivino's keyword search isn't a public data endpoint, so for a specific bottle paste its Vivino page URL into startUrls (or its wine ID into wineIds). For discovery, the Explore filters are the powerful, reliable path — they're exactly how Vivino's own Explore page works.

Does it need the Vivino API or a key? No. This actor reads the same public data Vivino's own website uses — no key, login or browser required.

Where do prices come from? From Vivino's merchant listings for the market you choose (marketCountry / currency): the live lowest price, the median market price and the individual merchant offers. Prices appear only for wines actually sold in that market.

Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.

How do I track price drops automatically? Turn on monitorMode, then create a Schedule (e.g. daily). Each run emits only new or changed wines; add a webhook or Zapier zap to alert you on price_drop.

A field is empty — why? Some wines have no awards or critic reviews, some aren't sold in your chosen market (no price), and some new wines have few ratings. Fields are blank only when Vivino doesn't publish them — never because the scraper skipped them.

Is scraping Vivino legal? This actor collects publicly available data only. You're responsible for using the data in compliance with applicable laws (e.g. GDPR/CCPA for personal data) and Vivino's terms.

Need help?

Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.