Vivino Wines Scraper — Ratings & Bottle Data avatar

Vivino Wines Scraper — Ratings & Bottle Data

Pricing

from $2.00 / 1,000 wines

Go to Apify Store
Vivino Wines Scraper — Ratings & Bottle Data

Vivino Wines Scraper — Ratings & Bottle Data

Scrape Vivino wines by name or URL: ratings (0–5), winery, vintage, grapes, region and country. Price and currency when Vivino lists a marketplace price. Optional reviews. HTTP JSON for importers researching ES/EU bottles.

Pricing

from $2.00 / 1,000 wines

Rating

0.0

(0)

Developer

Noah Adler

Noah Adler

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 hours ago

Last modified

Categories

Share

Vivino Wines — Ratings, Prices & Reviews

Vivino scraper / Vivino API stand-in for wine ratings, prices and reviews. Search by bottle name (Rioja, Marqués de Riscal Reserva) or paste a vivino.com wine URL. Each Dataset row is one wine: wineId, name, winery, vintage, rating (0–5), ratings count, price, currency, grapes, region, country, URL, and optional nested reviews[].

Vivino has no official public API. This Actor talks to the same HTTP JSON the website uses (search/wines + /api/vintages/{id} + /api/wines/{id}/reviews). No Playwright on the happy path.

Ideal for importers, wine shops, and price/rating research on ES/EU bottles — a clean schema challenger, not a clone title of the bloated Store incumbents.

Why this Actor: Vivino ratings + prices · Rioja / ES examples · HTTP-only · PPE per Wine


What you get

FieldDescription
wineId / vintageIdVivino identifiers
name / winery / vintageLabel + year (N.V. when non-vintage)
rating / ratingsCountCommunity score 0–5 and vote count
price / currencyMarketplace amount when Vivino shows one
grapes / region / countryStyle geography
urlCanonical vivino.com wine page
reviewsOptional sample (includeReviews)

Input example

{
"queries": ["Marques de Riscal Reserva"],
"maxItems": 8,
"includeReviews": false,
"proxyConfiguration": { "useApifyProxy": false }
}

Output example

{
"wineId": "1163903",
"name": "Marqués de Riscal Reserva",
"winery": "Marqués de Riscal",
"vintage": "2019",
"rating": 4.2,
"ratingsCount": 85000,
"price": 14.95,
"currency": "EUR",
"grapes": ["Tempranillo"],
"region": "Rioja",
"country": "Spain",
"url": "https://www.vivino.com/en/marques-de-riscal-reserva/w/1163903"
}

Numbers above are illustrative — live runs return current Vivino catalog values.

Proxy

Leave proxy off first. If you see HTTP 403 / AWS WAF, enable RESIDENTIAL (Spain ES if you care about EUR shelf prices). If residential still fails after 2–3 honest runs, treat it as a drop — do not rewrite the Actor as a browser farm.

Limitations

  • Unofficial endpoints can change without notice (same constraint as every Vivino scraper in the Store).
  • Search HTML embeds the first results page; maxItems caps how many of those wines you keep.
  • Some wines have a rating but no marketplace price in your country — price stays null (honest), we do not invent a number from the vintage year.
  • includeReviews adds extra calls; reviews stay nested so PPE is still one Wine row.

Racimo

  1. Hero (this Actor): wines — ratings, prices, optional reviews
  2. Later only if this one has runs: vintage history / merchant prices
  3. Winelist monitor

PPE is per Wine (volume, cheap vs lead scrapers).