Vivino Scraper
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
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
5 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.