Wine Searcher Grape Scraper — Rankings & Scores
Pricing
$3.00 / 1,000 wine result extracteds
Wine Searcher Grape Scraper — Rankings & Scores
Scrape Wine-Searcher's 1,054 grape variety pages — from Pinot Noir to obscure indigenous grapes. Get product names, grape blends, popularity rankings, critics scores, and prices with auto-detected currency. Export, schedule, or integrate with AI workflows or Zapier.
Pricing
$3.00 / 1,000 wine result extracteds
Rating
5.0
(2)
Developer
MrBridge
Actor stats
1
Bookmarked
19
Total users
3
Monthly active users
2 hours ago
Last modified
Categories
Share
Extract wine data from Wine-Searcher grape variety pages at scale. This Actor scrapes product names, grape blends, popularity rankings, critics' scores, and average prices for every wine listed under a grape — from canonical varieties like Pinot Noir or Cabernet Sauvignon 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
- Grape variety of the wine itself (which may differ from the page grape on blends)
- Popularity ranking within the grape's listing
- Critics' score (average across professional reviewers, out of 100)
- Average price per 750ml bottle with currency detection
- 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 Actor | What it does |
|---|---|---|
| Grape rankings & prices | Wine Searcher Grape Scraper (this one) | Rankings, prices & critics scores by grape variety on Wine-Searcher |
| Critic ratings (Parker, Spectator, Decanter...) | Millesima Wine Scraper | Prices + scores from 8 major critics |
| Community ratings & taste profiles | Vivino Wine Scraper | Explore wines by region on Vivino |
| 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 is the connective tissue of the wine industry. 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/... |
grape | Grape variety or blend of the wine itself | "Pinot Noir" |
grape_url | Link to the grape variety page | https://www.wine-searcher.com/grape-384-pinot-noir |
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
grapevs.source_grape: a wine listed on the Pinot Noir page may itself be a blend — itsgrapefield holds the wine's actual blend ("Pinot Noir, Chardonnay" for some Champagnes), whilesource_grapealways names the page the row was scraped from ("Pinot Noir"). This distinction matters when joining data across grape pages.
Supported currencies
Wine-Searcher displays prices in the proxy's local currency. The scraper detects 200+ source currencies on every row — Unicode symbols (₹, ₺, ₱, ₫), ASCII abbreviations (Rs, Rp, RM), ISO 4217 codes (IDR, COP, ZAR), and ISO 3166 country codes (ID, ZA, AR) — and can optionally convert them to any of the 30 most-traded ISO codes via targetCurrency.
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 — 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) |
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","grape": "Pinot Noir","grape_url": "https://www.wine-searcher.com/grape-384-pinot-noir","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?
| Tier | Cost | What you get |
|---|---|---|
| Per result | ~$0.003/wine | Pay only for extracted data, not compute time |
| Free tier | $5 free credits/month | ~1,600 wines for free every month |
| Starter plan | $29/month | ~9,600 wines/month |
This Actor uses Apify's pay-per-event pricing. You only pay for results — no monthly commitment required. Start with $5 free credits.
Estimates based on event pricing only. Actual costs include residential proxy bandwidth and platform compute. The free $5 credit covers everything.
Cost estimates (including proxy)
| Scenario | Wines | Approx. total cost |
|---|---|---|
| Single grape, 1 page | ~25 | ~$0.15-$0.20 |
| Single grape, all pages (max 50) | up to ~1,250 | ~$5-$8 |
| 10 popular grapes, 5 pages each | ~1,250 | ~$7-$10 |
scrapeAllGrapes mode (1,054 × 3 pages) | ~5,000-15,000 | ~$20-$60 |
Memory recommendation: 4096 MB is the default and is sufficient for every scenario above (no recursive crawl is involved). The minimum is 1024 MB for single-grape scrapes; the maximum is 8192 MB if you want extra headroom on scrapeAllGrapes runs.
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 ~$20 in event cost. LowermaxPagesPerGrapeto 1 for a wide-but-shallow sweep. - Use sorting wisely: "Most Popular" surfaces the broadest market signal; "Best Rated" highlights 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 — 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. The scraper combines ZenRows premium proxy (with PerimeterX bypass) and Camoufox — a stealth Firefox fork with C++-level anti-detection patches — plus Apify residential proxies as a fallback. Human-like behavioural simulation, session management, and the proxy rotation are all managed automatically.
Q: What happens if a page fails to load? A: The scraper retries each page automatically with a fresh proxy session. Failed pages are logged as warnings and the run continues with the next grape page or grape.
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 and the pay-per-event price of $0.003/wine, expect 5,000–15,000 wines and $20–$60 total.
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 — 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
- Vivino Wine Scraper — Explore wines by region with ratings, prices & reviews from Vivino
- Vivino Wine Data Scraper — Look up specific wines by name or URL on Vivino
- Millesima Wine Scraper — Extract wine prices & critic ratings from Millesima
Changelog
v1.0.0 (2026-05)
⚠️ Major pivot: this Actor now scrapes grape variety pages instead of region pages. Wine-Searcher modified its region page layout, breaking the previous scraper. Grape pages retained the legacy DOM structure, so the Actor was redirected at v1.0.
Breaking changes:
- Input field
region→grape(dropdown of 1054 grape varieties) - Input field
customUrlpattern:/grape-{id}-{slug}instead of/regions-... - Input field
maxPagesPerRegion→maxPagesPerGrape - Removed:
scrapeSubRegions,maxDepth(no hierarchy among grapes) - Added:
scrapeAllGrapescheckbox to crawl every grape variety in one run - Output field
region→source_grape(page name, e.g. "Pinot Noir") +source_grape_id(Wine-Searcher numeric ID)
What stayed the same:
- All other output fields (
product_name,product_url,grape,grape_url,popularity,critics_score,avg_price,currency,avg_price_converted,target_currency,source_url) - The
tabFiltersort (Most Popular / Best Rated / Best Value / Most Expensive / Cheapest) - The currency conversion feature (now backed by a 300+ currency live feed, see changelog v1.0.x entries)
- Pay-per-event pricing at $0.003/wine
- The Camoufox + ZenRows anti-detection stack
If you had scheduled runs on the v0.x region scraper, they will now log a deprecation warning and require reconfiguration with the new grape or customUrl fields.
Earlier (v0.1 — v0.3, 2025-12 to 2026-04) — Region scraper era
Before the v1.0.0 pivot, this Actor scraped Wine-Searcher region pages instead of grape pages, under the slug wine-searcher-region-scraper. Across the v0.x line it accumulated: pay-per-event pricing, the Camoufox + ZenRows anti-detection stack, the 30-currency conversion via ECB rates (predecessor of today's 300+ live feed), a 146-region dropdown, recursive sub-region crawling, parser hardening for ~30 currency symbols (Rs / Rp / RM / R / kn / лв / Kč …), price-column SVG-marker extraction, popularity-rank leak fix, proxy-country URL cleanup, and graceful exits.
When Wine-Searcher changed its region-page layout in 2026-05, the region scraper broke. The grape pages kept the legacy DOM, so the Actor was redirected to grape pages at v1.0.0. All of the v0.x engineering — anti-detection, currency parsing, pay-per-event billing — carried over and remains live in v1.0.x.