Vivino wine explorer

GET https://api.api.sh/vivino/v1/explore
1 credit / call media & music try it in the playground →

Wines from Vivino's explorer with every filter: market country and currency, wine type, minimum rating, price range, grapes, regions, origin countries, wine styles and wineries, sorted by rating, number of ratings, price or discount. Each wine has vintage and wine ids, name, year, link, type, winery, region, vintage and wine ratings with counts, the best offer price with merchant link, style with body and acidity, taste structure and flavour notes, and bottle image. 24 a page; pass next_page back as page.

Every response includes credits_used: the credits this call cost.

Parameters

nametypedescription
country string Market country (prices and availability), two letters. Default US. Example: US
currency string Price currency, three letters. Default the market's.
type string Comma-separated: red, white, sparkling, rose, dessert, fortified. Example: red
min_rating number Minimum average rating, 1-5. Example: 4
price_min number Minimum bottle price.
price_max number Maximum bottle price. Example: 50
grapes string Comma-separated grape ids (2 = Cabernet Sauvignon, 14 = Pinot Noir, 5 = Chardonnay).
regions string Comma-separated region ids.
countries string Comma-separated origin countries (fr, it, es, us ...). Example: fr
styles string Comma-separated wine style ids.
wineries string Comma-separated winery ids.
sort ratings_average | ratings_count | price | discount_percent | top_list_rank ratings_average (default), ratings_count, price, discount_percent or top_list_rank. Example: ratings_average
order asc | desc asc or desc. Example: desc
page integer Page number, starting at 1. Example: 1

Every endpoint also takes fresh, raw, fields (see lean responses and caching).

Example

curl "https://api.api.sh/vivino/v1/explore?country=US" \
  -H "x-api-key: $APISH_KEY"

Response

A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).

The fastest way to see the full response is the playground: it runs this endpoint with your account and shows the exact JSON.