Wine-Searcher scraper by grape variety: prices
Pricing
from $2.00 / 1,000 wine result extracteds
Wine-Searcher scraper by grape variety: prices
Scrape Wine-Searcher's 1,054 grape variety pages, from Pinot Noir to obscure indigenous grapes. Get popularity, critic scores and prices with auto-detected currency, plus product names, regions and countries. Export, schedule, or pipe into Zapier, Make, and n8n. By MrBridge (mr-bridge.com)
Pricing
from $2.00 / 1,000 wine result extracteds
Rating
5.0
(2)
Developer
MrBridge
Maintained by CommunityActor stats
1
Bookmarked
18
Total users
0
Monthly active users
6 days ago
Last modified
Categories
Share
Wine-Searcher Grape Scraper: popularity, scores & prices
Extract wine data from Wine-Searcher grape variety pages at scale. This Actor scrapes popularity, critic scores, and average prices for every wine listed under a grape, plus product names, regions, and countries, from canonical varieties like Pinot Noir or Cabernet Sauvignon down to obscure indigenous grapes like Voskehat or Xynomavro. Pick a grape from a dropdown of 1,054 varieties, paste a Wine-Searcher grape URL, or flip one switch to crawl every grape on the site.
No Wine-Searcher subscription needed, no API key, no coding. Just pick a grape and click Start.
What does Wine-Searcher Grape Scraper do?
Wine-Searcher is the world's largest wine search engine, indexing over 18 million wines from 120,000+ merchants. This scraper extracts structured data from Wine-Searcher's grape variety pages, which rank wines by popularity, ratings, value, or price within any single grape (or grape blend).
For each wine found, the scraper extracts:
- Product name and direct link to the Wine-Searcher listing
- Region and country of the wine, plus the link to the region page
- Popularity ranking within the grape's listing
- Critics' score (average across professional reviewers, out of 100)
- Average price per 750ml bottle with currency detection
- Bottle label image URL when Wine-Searcher shows one
- Source grape (the grape page that was scraped, e.g. "Pinot Noir") and
source_grape_id(Wine-Searcher's internal numeric ID, e.g.384)
The scraper handles pagination automatically (up to 50 pages × ~25 wines = 1,250 wines per grape) and can sweep every one of Wine-Searcher's 1,054 grape varieties in a single run via scrapeAllGrapes.
Which wine scraper should I use?
| Need | Best scraper | What it does |
|---|---|---|
| Grape popularity, scores & prices | Wine-Searcher Grape Scraper (this one) | Popularity, critic scores & prices by grape variety on Wine-Searcher |
| Look up specific wines by name, URL or LWIN | Wine-Searcher Scraper from List | Critic scores, cheapest prices, winery info & popularity for each wine |
| Critic ratings (Parker, Spectator, Decanter...) | Millesima Wine Scraper | Prices + scores from 18 major critics |
| Community ratings & taste profiles | Vivino Wine Scraper | Browse Vivino wines by region |
| Look up specific wines by name/URL | Vivino Wine Data Scraper | Search Vivino by wine name or URL |
Why scrape Wine-Searcher grape data?
Grape-level data lets you compare prices, ratings, and popularity across regions and producers. Use cases:
- Importers and distributors: benchmark a producer's pricing against the global Pinot Noir or Chardonnay distribution before negotiating allocation.
- Sommeliers and wine buyers: build varietal sections of a wine list driven by data: top-rated Riesling under $40, best-value Nebbiolo, the 25 most popular Sauvignon Blancs of the year.
- Ampelographic research: collect comparable price/rating signals across regional expressions of the same grape (Syrah vs Shiraz, Tempranillo across Rioja, Ribera del Duero, Toro).
- Wine investors and collectors: identify rising grape categories (Assyrtiko, Xinomavro, Mencía) before they hit mainstream price brackets.
- E-commerce platforms and wine clubs: enrich product catalogs with grape-level critics' scores, rankings, and average market prices.
Quick start: test in 60 seconds
- Click "Try for free" to open this actor in Apify Console
- The default input scrapes Pinot Noir. Leave it or pick any of 1,054 grapes from the dropdown.
- Click "Start"
- Download your results from the Dataset tab (JSON, CSV, Excel)
That's it! No Wine-Searcher subscription needed, no API key, no coding. The full input reference (grape dropdown, customUrl override, scrapeAllGrapes sweep, pagination, sort, currency conversion) is detailed in How do I configure the scraper? below.
What data can you extract?
| Field | Description | Example |
|---|---|---|
product_name | Full wine name with producer and origin | "Domaine de la Romanee-Conti Romanee-Conti Grand Cru" |
product_url | Direct link to the wine on Wine-Searcher | https://www.wine-searcher.com/find/... |
region | Wine region shown in the listing row | "Cote de Nuits" |
region_url | Link to the region page (null when the row carries no region link) | https://www.wine-searcher.com/regions-cote-de-nuits |
country | Country slug read from the row's flag icon (empty when absent) | "france" |
label_image_url | Bottle label thumbnail URL (null when absent) | https://www.wine-searcher.com/images/labels/... |
popularity | Popularity ranking within the grape page | "12th in popularity" |
critics_score | Average score from professional critics | "98 / 100" |
avg_price | Average price per 750ml bottle | "$ 24,099" |
currency | Detected ISO currency code | "USD" |
avg_price_converted | Price converted to your target currency (null if disabled) | 22150.45 |
target_currency | ISO code of the target currency (empty if disabled) | "EUR" |
source_grape | Grape page name that produced the row | "Pinot Noir" |
source_grape_id | Wine-Searcher numeric ID of that grape page | "384" |
source_url | The grape page URL that was scraped | https://www.wine-searcher.com/grape-384-pinot-noir?tab_F=mostpopular |
Note on
regionvs.source_grape:regiondescribes the wine itself (the region column of the listing row, e.g. "Cote de Nuits"), whilesource_grapealways names the grape page the row was scraped from ("Pinot Noir"). This distinction matters when joining data across grape pages. Wine-Searcher relabelled that column from "Grape" to "Region" in 2026-05, which is why the fields are namedregion/region_urlsince v2.2.0 (they weregrape/grape_urlup to v2.1).
Supported currencies
Wine-Searcher displays prices in the proxy's local currency. The scraper detects 200+ source currencies on every row, including Unicode symbols (₹, ₺, ₱, ₫), ASCII abbreviations (Rs, Rp, RM), ISO 4217 codes (IDR, COP, ZAR) and ISO 3166 country codes (ID, ZA, AR). Optionally convert all prices to any of the 30 most-traded ISO codes via targetCurrency.
More wine data tools
This Actor is part of the MrBridge wine toolkit - see the Wine-Searcher region scraper page or browse all scrapers. Related analysis: Burgundy vs Bordeaux: a price comparison.
How do I configure the scraper?
Three precedence-ordered ways to specify the target:
- Dropdown (
grape): 1,054 grape varieties baked from Wine-Searcher's official index. Default: Pinot Noir. Each entry maps tohttps://www.wine-searcher.com/grape-{id}-{slug}. - Custom URL (
customUrl): paste any Wine-Searcher grape URL. This overrides the dropdown. Useful for brand-new grapes not yet baked. Pattern:^https://www\.wine-searcher\.com/grape-\d+-[a-zA-Z0-9%+\-]+. - Scrape all (
scrapeAllGrapes): tick to ignore both fields and walk all 1,054 grapes. Pair with lowmaxPagesPerGrape(1–3) to keep cost predictable.
Full input reference
| Parameter | Type | Console prefill | Description |
|---|---|---|---|
grape | dropdown · 1,054 grapes | Pinot Noir | Grape variety selector (Wine-Searcher's full official grape index) |
customUrl | textfield (URL) | - | Optional override for grape pages not in the dropdown (must match the grape-{id}-{slug} pattern) |
scrapeAllGrapes | checkbox | false | Ignore the dropdown and crawl every grape variety on Wine-Searcher |
maxPagesPerGrape | integer | 3 | Pages per grape (~25 wines/page, range 1–50) |
maxWines | integer | 1000 | Soft cap on the total number of wines across all grapes. 0 means unlimited (only your Apify spending limit applies) |
tabFilter | dropdown · 5 options | Most Popular | Sort: Most Popular, Best Rated, Best Value, Most Expensive, Cheapest |
targetCurrency | dropdown · 30 currencies | (none) | Optional ISO code to convert prices using live exchange rates (300+ source currencies) |
Numeric defaults shown above are the Console prefills. Programmatic API callers that omit
maxPagesPerGrapeentirely fall back to the schema default of5.
Proxies, timeouts, and anti-bot handling are managed automatically. No configuration needed.
Example: default, top Pinot Noir wines
{"grape": "https://www.wine-searcher.com/grape-384-pinot-noir","maxPagesPerGrape": 3,"tabFilter": "mostpopular"}
Example: Top-rated Nebbiolo via customUrl override
{"customUrl": "https://www.wine-searcher.com/grape-316-nebbiolo","maxPagesPerGrape": 5,"tabFilter": "best"}
Example: Sweep every grape on Wine-Searcher
{"scrapeAllGrapes": true,"maxPagesPerGrape": 3,"tabFilter": "mostpopular"}
Output example
{"product_name": "Domaine de la Romanee-Conti Romanee-Conti Grand Cru, Cote de Nuits, France","product_url": "https://www.wine-searcher.com/find/domaine+romanee+conti+grand+cru+cote+nuits+france","region": "Cote de Nuits","region_url": "https://www.wine-searcher.com/regions-cote-de-nuits","country": "france","label_image_url": "https://www.wine-searcher.com/images/labels/12/34/example-label.jpg","popularity": "1st in popularity","critics_score": "98 / 100","avg_price": "$ 24,099","currency": "USD","avg_price_converted": 22150.45,"target_currency": "EUR","source_grape": "Pinot Noir","source_grape_id": "384","source_url": "https://www.wine-searcher.com/grape-384-pinot-noir?tab_F=mostpopular"}
How much does it cost?
Wine-Searcher Grape Scraper uses pay-per-event pricing. Each wine successfully saved to the dataset triggers one wine-result event. ZenRows fetch failures, diagnostic error rows, empty pages, and circuit-breaker sentinels do not trigger that event.
See the Pricing tab for the current rate for your subscription tier, automatic discounts, and any platform-managed events. You can set a maximum cost per run in Apify Console.
Memory: 512 MB is the default and is sufficient for normal runs. Since v2.0 the Actor runs no browser and processes one page at a time. Users can select up to 2048 MB for unusual workloads, but increasing memory is normally unnecessary.
Which grapes can I scrape?
Any of the 1,054 grape varieties in Wine-Searcher's official grape index. The 15 featured grapes below are the highest-volume targets and a sensible starting point:
| Grape | URL |
|---|---|
| Bordeaux Blend Red | https://www.wine-searcher.com/grape-3-bordeaux-blend-red |
| Cabernet Sauvignon | https://www.wine-searcher.com/grape-76-cabernet-sauvignon |
| Chardonnay | https://www.wine-searcher.com/grape-98-chardonnay |
| Chenin Blanc | https://www.wine-searcher.com/grape-102-chenin-blanc |
| Gewurztraminer | https://www.wine-searcher.com/grape-187-gewurztraminer |
| Malbec | https://www.wine-searcher.com/grape-261-malbec |
| Merlot | https://www.wine-searcher.com/grape-275-merlot |
| Nebbiolo | https://www.wine-searcher.com/grape-316-nebbiolo |
| Pinot Gris/Grigio | https://www.wine-searcher.com/grape-382-pinot-grisgrigio |
| Pinot Noir | https://www.wine-searcher.com/grape-384-pinot-noir |
| Riesling | https://www.wine-searcher.com/grape-407-riesling |
| Sangiovese | https://www.wine-searcher.com/grape-432-sangiovese |
| Sauvignon Blanc | https://www.wine-searcher.com/grape-435-sauvignon-blanc |
| Shiraz and Syrah | https://www.wine-searcher.com/grape-1112-shiraz-and-syrah |
| Tempranillo | https://www.wine-searcher.com/grape-483-tempranillo |
Beyond featured grapes, the dropdown covers the full long tail: Albariño, Assyrtiko, Carmenère, Furmint, Grenache, Lagrein, Mencía, Petit Verdot, Touriga Nacional, Verdejo, Vermentino, Viognier, Xinomavro, Zinfandel, and ~1,000 more.
Tips for best results
- Start small: Test with a single grape and
maxPagesPerGrape: 1to verify the output format before running a full sweep. - Use
scrapeAllGrapescarefully: with 1,054 grapes × even just 3 pages each, you can comfortably exceed 5,000 wines, and every wine saved is one billed event. LowermaxPagesPerGrapeto 1 for a wide-but-shallow sweep, and keepmaxWinesat a value you are happy to pay for. The run stops as soon as that cap is reached. - Use sorting wisely: "Most Popular" returns the widest market sample; "Best Rated" surfaces critic favourites; "Best Value" finds bargains; "Most Expensive" / "Cheapest" anchor each end of the price ladder.
- Pair with a target currency: scraping multiple grapes from different proxy locations can return mixed currencies. Set
targetCurrencyto USD or EUR to make rows directly comparable. - Monitor your runs: the Actor logs every grape it visits and the wine count per page, which is useful for spotting blocked or empty grape pages early.
- Export and analyze: Download results as CSV for spreadsheet analysis or JSON for programmatic processing.
FAQ
Q: How many wines can I extract per grape?
A: Each grape page shows up to 25 wines per page. The Console pre-fills maxPagesPerGrape to 3 (~75 wines), and you can raise it up to 50 (~1,250 wines). Long-tail indigenous grapes will hit their natural ceiling well before that. The scraper stops paginating as soon as Wine-Searcher returns no more rows.
Q: Does the scraper handle anti-bot protection? A: Yes, and you do not have to configure anything. Since v2.0 the fetching is done entirely through the ZenRows premium proxy (JS rendering plus PerimeterX bypass), which handles proxy rotation and fingerprinting on its side. There is no browser in the Actor itself: the earlier Camoufox and Crawlee stack, its session pool and the Apify residential-proxy fallback were all removed in v2.0. The ZenRows key belongs to the Actor operator, so you never provide one.
Q: What happens if a page fails to load? A: A page that fails on a transient condition (HTTP 408, 429 or a 5xx, plus network timeouts) is retried once after a 5-second pause. Permanent failures are not retried. A page that still fails is logged as a warning and written to the dataset as a free error row, then the run moves on to the next grape. If five pages fail in a row, the run stops gracefully rather than burning through your timeout.
Q: What happens when I hit the maximum cost I set for the run? A: Each wine is written to the dataset and charged in the same operation, so you are never billed for a wine you did not receive, and never receive a wine that was not billed. When the budget can no longer cover the next wine, the run stops right there, sets a status message saying how many wines were delivered, and makes no further page request.
Q: Can I scrape an obscure grape that isn't in the dropdown?
A: Yes. Paste the full Wine-Searcher grape URL into the customUrl field. The URL must follow the pattern https://www.wine-searcher.com/grape-{id}-{slug} (e.g. https://www.wine-searcher.com/grape-2120-areni-noir for the Armenian grape Areni Noir).
Q: Can I scrape every grape on Wine-Searcher in one run?
A: Yes. Flip the scrapeAllGrapes checkbox to true. The Actor walks all 1,054 baked grape varieties. With maxPagesPerGrape: 3, expect 5,000 to 15,000 wines, so raise maxWines (default 1,000) if you want the sweep to run past a thousand, and check the Pricing tab for what that volume costs on your plan.
Q: How long does a typical run take?
A: A single grape with 1 page takes about 30–60 seconds. A single grape paginated to 50 pages takes 15–30 minutes. A full scrapeAllGrapes run typically runs 4–8 hours depending on maxPagesPerGrape and the proxy backend. The default Actor timeout is 2 hours; raise it explicitly if you launch a deep scrapeAllGrapes sweep.
Q: Are prices always in USD?
A: Prices depend on the proxy IP location. The scraper records the exact price and currency shown by Wine-Searcher. The currency field contains the ISO code (USD, EUR, GBP, INR, COP, ZAR, and 200+ others) so you can filter or convert as needed.
Q: Can I convert all prices to a single currency?
A: Yes. Set the targetCurrency input to one of the 30 most-traded ISO codes (USD, EUR, GBP, CHF, JPY, and 25 others). The scraper fetches a live currency feed at startup (300+ source currencies covered, including Argentine Peso, Colombian Peso, Vietnamese Dong, Indonesian Rupiah, and other emerging-market currencies that some proxy locales return) and adds two fields to each wine: avg_price_converted (numeric value) and target_currency (ISO code). The original avg_price and currency are always kept alongside for transparency.
Q: Can I schedule regular scrapes? A: Yes. Use Apify's built-in scheduler to run the Actor on a daily, weekly, or monthly basis. This is useful for tracking grape-level price trends and new releases.
Q: What grape pages are supported?
A: Any grape page on Wine-Searcher is supported, anything matching https://www.wine-searcher.com/grape-{id}-{slug}. The dropdown ships with 1,054 entries, but customUrl accepts any valid grape URL.
Is it legal to scrape Wine-Searcher?
This scraper only extracts publicly available data that any visitor can see on Wine-Searcher.com: grape rankings, wine ratings, prices, and merchant listings. It does not access private accounts, bypass authentication, or extract personal user data.
When used for legitimate purposes such as market research, price comparison, or wine collection management, web scraping of publicly available data is generally considered acceptable. However, scraped data may be subject to Wine-Searcher's Terms of Service and applicable data protection regulations (GDPR in the EU).
Always use scraped data responsibly and in compliance with your local laws.
Integrate into your workflow
Run this Actor programmatically via the Apify API, schedule it, push results into your tools, or compose it with other Actors. Get your token from Settings → Integrations.
Quick API call (cURL)
curl "https://api.apify.com/v2/acts/mrbridge~wine-searcher-grape-scraper/run-sync-get-dataset-items" \-X POST -H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_APIFY_TOKEN" \-d '{"grape": "https://www.wine-searcher.com/grape-384-pinot-noir", "maxPagesPerGrape": 3, "tabFilter": "mostpopular"}'
The API tab on the Actor page auto-generates equivalent apify-client snippets for Node.js and Python.
Schedules, webhooks, MCP
| Feature | What it does | Where to configure |
|---|---|---|
| Schedules | Run automatically (e.g. 0 2 * * 1 for every Monday 02:00 UTC) | Schedules tab → Create schedule from a Task |
| Webhooks | POST {datasetId, runMetadata} to your endpoint when a run succeeds | Integrations tab → Webhooks |
| MCP | Expose this Actor as a tool to Claude, ChatGPT, Cursor | MCP tab on the Actor page, or mcp.apify.com |
No-code integrations
| Platform | What it does |
|---|---|
| Google Sheets / Drive | Auto-export wine rankings to a Sheet |
| Airtable | Sync grape data to an Airtable base |
| Zapier | Trigger 5,000+ apps on run completion |
| Make | Visual workflows: scrape → transform → DB |
| n8n | Self-hosted workflows with the Apify trigger node |
Support
- Bug reports & questions: Use the Actor's Issues tab on Apify Console
- Feature requests: same place (Issues tab on the Apify Console)
Related actors
- Wine-Searcher Scraper from List: look up specific Wine-Searcher wines by name, URL or LWIN
- Vivino Wine Scraper: Vivino wines by region, with ratings, prices and reviews
- Vivino Wine Data Scraper: look up specific Vivino wines by name or URL
- Millesima Wine Scraper: wine prices and critic ratings from Millesima