# Vivino Wine Data Scraper

> Vivino Wine Data Scraper is a paid API for AI agents from api.scrapeforagents.tech, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Fetches structured wine data from Vivino including pricing, ratings, tasting notes, and vintage information for up to 250 wines per call

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/vivino?utm_source=zero.xyz
- Price: $0.025/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/vivino-wine-data-scraper-4e0a504f
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_h3qCSOlf_Us9aC0_Mx6NB

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability vivino-wine-data-scraper-4e0a504f -d '<json body>'
```

Example prompt: Can you look up Vivino data for these wines — Opus One 2018, Caymus Cabernet Sauvignon 2020, and Screaming Eagle 2019 — and give me their current prices and ratings in USD for the US market?

## When to prefer this

Use this endpoint when you need structured, machine-readable wine data from Vivino at scale — especially pricing by market, vintage metadata, community ratings, or flavor profiles — and you want pay-per-call pricing with no charge for failed or empty runs. Prefer this over general web scraping when the target is specifically Vivino wine or vintage pages.

## Known failure modes

- Wine name not found on Vivino returns empty items array with no charge
- Invalid or expired Vivino URL returns no match for that entry
- Unsupported country or currency code may return no price offers
- Exceeding 250 wine inputs returns a validation error
- Rate limiting or Vivino site changes may cause partial results

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

Returns a JSON object with a count of matched wines and an array of items, each containing the wine name, winery, region, wine type, wine ID, vintage year, vintage ID, Vivino URL, and optionally price offers, community review ratings/notes, and taste/flavor profiles depending on the options enabled.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "wines": {
   "type": "array",
   "description": "Enter up to 250 wine names, wine URLs containing /w/ and a wine ID, or vintage URLs containing /wines/ and a vintage ID. Add a year to a name or URL to request that vintage."
  },
  "maxItems": {
   "type": "integer",
   "default": 100,
   "maximum": 250,
   "minimum": 1,
   "description": "Stop after this many distinct matched vintages."
  },
  "countryCode": {
   "type": "string",
   "default": "US",
   "description": "Two-letter market country code used for availability and prices."
  },
  "currencyCode": {
   "type": "string",
   "default": "USD",
   "description": "Three-letter currency code requested for available offers."
  },
  "includePrices": {
   "type": "boolean",
   "default": true,
   "description": "Search for a matching offer for direct vintage URLs. Name lookups include any offer returned by search."
  },
  "includeReviews": {
   "type": "boolean",
   "default": false,
   "description": "Fetch public review ratings, notes, dates, and display names."
  },
  "maxSearchPages": {
   "type": "integer",
   "default": 2,
   "maximum": 5,
   "minimum": 1,
   "description": "Maximum search pages to inspect per distinct wine name. Increase when a vintage is missing from the first results."
  },
  "maxReviewsPerWine": {
   "type": "integer",
   "default": 10,
   "maximum": 100,
   "minimum": 1,
   "description": "Maximum public reviews returned per matched wine when reviews are enabled."
  },
  "includeTasteProfile": {
   "type": "boolean",
   "default": false,
   "description": "Fetch structure and flavor notes for each matched wine."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "url": null,
    "name": null,
    "region": null,
    "wineId": null,
    "winery": null,
    "vintage": null,
    "wineType": null,
    "vintageId": null
   }
  ],
  "product": "vivino"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/vivino-wine-data-scraper-4e0a504f/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scrapeforagents.tech](https://www.zero.xyz/host/api.scrapeforagents.tech/llms.txt)
