apyhub
Back
▣ E-COMMERCE QUICK TOOLS · SMART GENERATION

Wine Pairing & Recommendations API

What it does

The wine pairing API matches wines to food and food to wines. Send a food query such as steak and get back pairedWines, a plain-language pairingText, and productMatches with title, price, rating and link. Send a wine query such as merlot and get back the dishes that go with it.

Four endpoints cover the full flow. Wine Pairing takes a dish and returns wine styles plus product matches, with an optional maxPrice. Dish Pairing for Wine returns pairings for a given wine. Wine Recommendation returns ranked recommendedWines with averageRating, ratingCount, price and score, filtered by maxPrice, minRating and number (up to 100). Wine Description returns a short wineDescription you can show next to a product.

Use the wine pairing API to add food and wine pairing to recipe apps and meal planners, show a suggested bottle on restaurant menus and ordering flows, recommend wines at checkout in grocery and wine shops, and power a sommelier-style assistant in chat. Online wine retailers can pull descriptions and dish suggestions into product pages without writing tasting notes by hand.

Pair it with the Food Ingredient Information API for ingredient search, nutrition and substitutes, and the Ingredient Parser API to turn free-text recipes into structured ingredients before you pick a wine. For recipe discovery and food trivia, use the Food Search API.

▣ ENDPOINT 01 / 04
GET
Dish Pairing for Wine
https://api.eu.apyhub.com/skycraft/wine-pairing-recommendations-api/food/wine/dishes

QUICKSTART

GUIDE

Quickstart

Fetch wine dish pairings for a wine query.

curl -X GET "https://api.eu.apyhub.com/skycraft/wine-pairing-recommendations-api/food/wine/dishes?wine=malbec" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with required pairings and text fields. pairings is an array of strings, and text is a non-empty string.

{
  "pairings": ["grilled steak", "mushroom risotto"],
  "text": "Best paired with rich, savory dishes."
}
TRY ITLIVE · 20 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Returns dish pairing suggestions for a wine. You provide the wine query parameter, and the response returns a JSON object containing pairing text plus an array of paired dishes.

Query Parameter(s)

AttributeTypeDescription
wineStringThe wine name to look up.

Response

Returns a JSON object with two top-level fields: text as a string and pairings as a string array. The response includes the pairing description in text and the dish suggestions in pairings.

AttributeTypeDescription
textStringPairing description text.
pairingsString ArrayArray of dish pairing suggestions.
▣ ENDPOINT 02 / 04
GET
Wine Recommendation
https://api.eu.apyhub.com/skycraft/wine-pairing-recommendations-api/food/wine/recommendation

QUICKSTART

GUIDE

Quickstart

Find wine recommendations for a wine name by passing it as a query parameter.

curl -X GET "https://api.eu.apyhub.com/skycraft/wine-pairing-recommendations-api/food/wine/recommendation?wine=merlot" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with a recommendedWines array and a totalFound integer. Each item in recommendedWines is an object with id, title, averageRating, description, imageUrl, link, price, ratingCount, and score.

{
  "totalFound": 1,
  "recommendedWines": [
    {
      "id": 123,
      "title": "Merlot Reserve",
      "averageRating": 4.6,
      "description": "A smooth red wine with cherry and plum notes.",
      "imageUrl": "https://example.com/wine.jpg",
      "link": "https://example.com/wine/123",
      "price": "$24.99",
      "ratingCount": 128,
      "score": 0.91
    }
  ]
}
TRY ITLIVE · 20 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Returns wine recommendations for a given wine query, with optional filters for result count, maximum price, and minimum rating. The response includes the total number found and an array of recommended wine objects.

Query Parameter(s)

AttributeTypeDescription
wineStringWine name or style to base the recommendations on.
numberNumberMaximum number of recommendations to return. Default: 10. Minimum: 1, maximum: 100.
maxPriceNumberMaximum price filter for recommendations.
minRatingNumberMinimum rating filter for recommendations.

Response

Returns a JSON object with totalFound as an integer and recommendedWines as an array of wine objects. Each recommended wine object contains id, title, averageRating, description, imageUrl, link, price, ratingCount, and score.

AttributeTypeDescription
totalFoundIntegerTotal number of recommended wines found.
recommendedWinesObject ArrayArray of recommended wine objects. Each item includes the fields below.
recommendedWines[].idIntegerWine identifier.
recommendedWines[].titleStringWine title.
recommendedWines[].averageRatingNumberAverage rating for the wine.
recommendedWines[].descriptionStringWine description.
recommendedWines[].imageUrlStringImage URL for the wine.
recommendedWines[].linkStringLink to the wine.
recommendedWines[].priceStringPrice of the wine.
recommendedWines[].ratingCountIntegerNumber of ratings received.
recommendedWines[].scoreNumberRecommendation score.
▣ ENDPOINT 03 / 04
GET
Wine Pairing
https://api.eu.apyhub.com/skycraft/wine-pairing-recommendations-api/food/wine/pairing

QUICKSTART

GUIDE

Quickstart

Get a wine pairing recommendation for a food item using the required food query parameter.

curl -X GET "https://api.eu.apyhub.com/skycraft/wine-pairing-recommendations-api/food/wine/pairing?food=steak" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with pairedWines (an array of strings), pairingText (a string), and productMatches (an array of objects). Each product match includes id, title, averageRating, imageUrl, link, price, ratingCount, and score.

{
  "pairedWines": ["cabernet sauvignon", "merlot"],
  "pairingText": "Rich red wines pair well with steak.",
  "productMatches": [
    {
      "id": 12345,
      "title": "Cabernet Sauvignon",
      "averageRating": 4.7,
      "imageUrl": "https://example.com/wine.jpg",
      "link": "https://example.com/product/12345",
      "price": "$24.99",
      "ratingCount": 128,
      "score": 0.98
    }
  ]
}
TRY ITLIVE · 20 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Returns wine pairing suggestions for a food item. You provide the food to pair, and the response includes paired wine names, pairing text, and a list of matching products.

Query Parameter(s)

AttributeTypeDescription
foodStringThe food to use for the pairing lookup.
maxPriceNumberMaximum price filter for the returned product matches.

Response

Returns a JSON object with three required fields: pairedWines as a string array, pairingText as a string, and productMatches as an array of product objects. The productMatches array may be empty; when present, each product object contains id, title, averageRating, imageUrl, link, price, ratingCount, and score as required fields, with description as an additional optional field.

ParameterTypeDescription
pairedWinesString ArrayWine names recommended for the requested food.
pairingTextStringHuman-readable text describing the pairing.
productMatchesObject ArrayMatching product entries. The array can be empty. Each item includes:
id (Integer, required)
title (String, required)
averageRating (Number, required)
imageUrl (String, required)
link (String, required)
price (String, required)
ratingCount (Integer, required)
score (Number, required)
description (String, optional)
▣ ENDPOINT 04 / 04
GET
Wine Description
https://api.eu.apyhub.com/skycraft/wine-pairing-recommendations-api/food/wine/description

QUICKSTART

GUIDE

Quickstart

Look up a wine description by passing the wine name as a query parameter.

curl -X GET "https://api.eu.apyhub.com/skycraft/wine-pairing-recommendations-api/food/wine/description?wine=merlot" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with a wineDescription string field containing the description of the wine.

{
  "wineDescription": "Merlot is a dry red wine which is smooth and medium bodied."
}
TRY ITLIVE · 20 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Returns a textual description for the wine specified in the wine query parameter.

Query Parameter(s)

AttributeTypeDescription
wineStringThe wine name to describe.

Response

Returns a JSON object with a wineDescription string field containing the description of the requested wine.

ParameterTypeDescription
wineDescriptionStringThe wine description text.
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.