Pricing
from $3.00 / 1,000 results
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
Actor stats
0
Bookmarked
3
Total users
0
Monthly active users
22 days ago
Last modified
Categories
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
| Field | Type | Description |
|---|---|---|
mode | select | search, explore, byWineId, or winery |
searchQuery | string | Free-text query (mode=search). E.g. barolo, napa cabernet |
wineIds | array | List of Vivino wine IDs (mode=byWineId) |
wineryId | integer | Vivino winery ID (mode=winery) |
wineType | select | Filter by type: Red, White, Sparkling, RosΓ©, Dessert, Fortified |
country | select | Filter by country of origin (2-letter ISO code) |
minRating / maxRating | number | Rating range filter (0β5 scale) |
minPrice / maxPrice | number | Price range filter in USD |
orderBy | select | Sort by: most reviewed, highest rated, or price |
maxItems | integer | Maximum 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):
| Field | Type | Description |
|---|---|---|
wineId | integer | Vivino internal wine ID |
vintageId | integer | Vivino vintage ID |
name | string | Wine name |
fullName | string | Full vintage name including winery and year |
vintage | integer | Vintage year |
winery | string | Winery / producer name |
wineryUrl | string | Vivino winery page URL |
type | string | Wine type: red, white, sparkling, rose, dessert, fortified |
typeId | integer | Vivino wine type ID |
isNatural | boolean | Whether this is a natural wine |
country | string | Country of origin |
countryCode | string | 2-letter ISO country code |
region | string | Wine region |
style | string | Wine style name (e.g. "Italian Barolo") |
styleDescription | string | Detailed style description |
grapes | array | Grape varieties used |
foodPairing | array | Recommended food pairings |
tastingNotes | array | Flavor and tasting note keywords |
tasteAcidity | number | Acidity score (1β5) |
tasteTannin | number | Tannin score (1β5) |
tasteSweetness | number | Sweetness score (1β5) |
tasteIntensity | number | Intensity score (1β5) |
tasteFizziness | number | Fizziness score (sparkling wines) |
body | integer | Body score (1β5) |
bodyDescription | string | Body description text |
acidity | integer | Acidity level |
acidityDescription | string | Acidity description text |
rating | number | Average vintage rating (1β5) |
ratingsCount | integer | Number of ratings for this vintage |
wineRating | number | Average rating across all vintages |
wineRatingsCount | integer | Total ratings across all vintages |
price | number | Listed price in USD |
currency | string | Currency code (USD) |
imageUrl | string | Wine label image URL |
wineUrl | string | Vivino wine page URL |
vintageUrl | string | Vivino vintage page URL |
topListRankings | array | Top list appearances (award lists) |
sourceUrl | string | Canonical source URL |
scrapedAt | string | ISO 8601 timestamp when scraped |
recordType | string | Always 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.
