Vivino Scraper avatar

Vivino Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Vivino Scraper

Vivino Scraper

Scrape Vivino - the world's largest wine app. Search wines by name, explore by type and country, look up wines by ID, or scrape all wines from a specific winery. Returns ratings, prices, grapes, tasting notes, food pairings, and more.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

5 days ago

Last modified

Share

Extract wine data from Vivino — the world's largest wine community with 60M+ users and 14M+ wines. Retrieve ratings, prices, tasting notes, grapes, food pairings, winery information, and more.

What You Can Scrape

  • Search wines by name, producer, or region
  • Explore wines by type, country, or price range
  • Lookup specific wines by their Vivino ID
  • Browse all wines from a specific winery

Use Cases

  • Wine research and discovery
  • Price comparison and market analysis
  • Building wine recommendation systems
  • Tracking ratings and reviews trends
  • Competitive analysis for wineries and wine retailers

Input Configuration

FieldTypeDescription
modeselectsearch, explore, byWineId, or winery
searchQuerystringFree-text query (mode=search). E.g. barolo, napa cabernet
wineIdsarrayList of Vivino wine IDs (mode=byWineId)
wineryIdintegerVivino winery ID (mode=winery)
wineTypeselectFilter by type: Red, White, Sparkling, Rosé, Dessert, Fortified
countryselectFilter by country of origin (2-letter ISO code)
minRating / maxRatingnumberRating range filter (0–5 scale)
minPrice / maxPricenumberPrice range filter in USD
orderByselectSort by: most reviewed, highest rated, or price
maxItemsintegerMaximum number of records to return (default 50, max 2000)

Example Input — Search Mode

{
"mode": "search",
"searchQuery": "barolo",
"maxItems": 50
}

Example Input — Explore Mode (Top Rated Italian Reds)

{
"mode": "explore",
"wineType": "1",
"country": "it",
"minRating": 4.0,
"orderBy": "ratings_average",
"maxItems": 100
}

Example Input — Winery Mode

{
"mode": "winery",
"wineryId": 11472,
"maxItems": 50
}

Output Fields

Each record contains the following fields (only populated fields are included):

FieldTypeDescription
wineIdintegerVivino internal wine ID
vintageIdintegerVivino vintage ID
namestringWine name
fullNamestringFull vintage name including winery and year
vintageintegerVintage year
winerystringWinery / producer name
wineryUrlstringVivino winery page URL
typestringWine type: red, white, sparkling, rose, dessert, fortified
typeIdintegerVivino wine type ID
isNaturalbooleanWhether this is a natural wine
countrystringCountry of origin
countryCodestring2-letter ISO country code
regionstringWine region
stylestringWine style name (e.g. "Italian Barolo")
styleDescriptionstringDetailed style description
grapesarrayGrape varieties used
foodPairingarrayRecommended food pairings
tastingNotesarrayFlavor and tasting note keywords
tasteAciditynumberAcidity score (1–5)
tasteTanninnumberTannin score (1–5)
tasteSweetnessnumberSweetness score (1–5)
tasteIntensitynumberIntensity score (1–5)
tasteFizzinessnumberFizziness score (sparkling wines)
bodyintegerBody score (1–5)
bodyDescriptionstringBody description text
acidityintegerAcidity level
acidityDescriptionstringAcidity description text
ratingnumberAverage vintage rating (1–5)
ratingsCountintegerNumber of ratings for this vintage
wineRatingnumberAverage rating across all vintages
wineRatingsCountintegerTotal ratings across all vintages
pricenumberListed price in USD
currencystringCurrency code (USD)
imageUrlstringWine label image URL
wineUrlstringVivino wine page URL
vintageUrlstringVivino vintage page URL
topListRankingsarrayTop list appearances (award lists)
sourceUrlstringCanonical source URL
scrapedAtstringISO 8601 timestamp when scraped
recordTypestringAlways wine

Example Output Record

{
"wineId": 82199,
"vintageId": 2459253,
"name": "Barolo Riserva Monfortino",
"fullName": "Giacomo Conterno Barolo Riserva Monfortino 2013",
"vintage": 2013,
"winery": "Giacomo Conterno",
"type": "red",
"country": "Italy",
"countryCode": "it",
"region": "Barolo",
"style": "Italian Barolo",
"grapes": ["Nebbiolo"],
"foodPairing": ["Beef", "Lamb"],
"tastingNotes": ["leather", "tar", "tobacco", "cherry"],
"rating": 4.7,
"ratingsCount": 528,
"wineRating": 4.7,
"price": 2307.0,
"currency": "USD",
"imageUrl": "https://images.vivino.com/thumbs/abc_pl_375x500.png",
"wineUrl": "https://www.vivino.com/wines/82199-barolo-riserva-monfortino",
"sourceUrl": "https://www.vivino.com/wines/82199-barolo-riserva-monfortino",
"scrapedAt": "2026-06-06T12:00:00+00:00",
"recordType": "wine"
}

Frequently Asked Questions

Q: How many wines can I scrape? Set maxItems up to 2000 per run. For larger datasets, run multiple times with different search queries or filters.

Q: Can I filter by grape variety? Use the searchQuery field with the grape name (e.g. nebbiolo, pinot noir). Vivino's search understands grape names.

Q: How do I find a winery's Vivino ID? Visit the winery's page on vivino.com — the ID appears in the URL, e.g. https://www.vivino.com/wineries/11472-giacomo-conterno.

Q: How do I find a wine's Vivino ID? The wine ID appears in the Vivino wine URL, e.g. https://www.vivino.com/wines/82199.

Q: Are prices always in USD? Yes, prices are standardized to USD for consistency across markets.

Q: Does this scraper require login? No. Vivino's public API is used and no credentials are required.

Q: How fresh is the data? Data is fetched live from Vivino at the time of each run.

Data Source

Data is scraped from Vivino's public web API (vivino.com/api/explore/explore). No authentication is required. This actor respects Vivino's public data endpoints and does not bypass any access controls.