apyhub
Back
▣ E-COMMERCE QUICK TOOLS · SMART GENERATION

Wine Pairing & Recommendations API

What it does

Wine Pairing helps you connect wines with foods and food with wines. Send a food or wine query string, and get back a plain-language pairing summary plus structured match data you can use in an app, menu builder, or recommendation flow.

Use GET /food/wine/pairing when you have a dish such as steak and want pairedWines, a pairingText explanation, and productMatches for related wine products. Use GET /food/wine/dishes when you already know the wine and need matching pairings for dishes, along with a short text summary. Both endpoints accept an optional maxPrice filter.

For wine discovery, GET /food/wine/recommendation accepts wine plus optional number, maxPrice, and minRating, then returns totalFound and a recommendedWines array. Each recommendation includes id, title, averageRating, description, imageUrl, link, price, ratingCount, and score, so you can sort, display, and link out without extra lookups.

GET /food/wine/description is the simplest endpoint: send a wine string and get a wineDescription back. It fits product detail pages, search refinement, and content enrichment where you need a concise wine summary before showing pairings or recommendations.

▣ 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)

AttributeTypeMandatoryDescription
wineStringYesThe 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.

AttributeTypeMandatoryDescription
textStringYesPairing description text.
pairingsString ArrayYesArray 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)

AttributeTypeMandatoryDescription
wineStringYesWine name or style to base the recommendations on.
numberNumberNoMaximum number of recommendations to return. Default: 10. Minimum: 1, maximum: 100.
maxPriceNumberNoMaximum price filter for recommendations.
minRatingNumberNoMinimum 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.

AttributeTypeMandatoryDescription
totalFoundIntegerYesTotal number of recommended wines found.
recommendedWinesObject ArrayYesArray of recommended wine objects. Each item includes the fields below.
recommendedWines[].idIntegerYesWine identifier.
recommendedWines[].titleStringYesWine title.
recommendedWines[].averageRatingNumberYesAverage rating for the wine.
recommendedWines[].descriptionStringYesWine description.
recommendedWines[].imageUrlStringYesImage URL for the wine.
recommendedWines[].linkStringYesLink to the wine.
recommendedWines[].priceStringYesPrice of the wine.
recommendedWines[].ratingCountIntegerYesNumber of ratings received.
recommendedWines[].scoreNumberYesRecommendation 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)

AttributeTypeMandatoryDescription
foodStringYesThe food to use for the pairing lookup.
maxPriceNumberNoMaximum 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.

ParameterTypeMandatoryDescription
pairedWinesString ArrayYesWine names recommended for the requested food.
pairingTextStringYesHuman-readable text describing the pairing.
productMatchesObject ArrayYesMatching 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)

AttributeTypeMandatoryDescription
wineStringYesThe wine name to describe.

Response

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

ParameterTypeMandatoryDescription
wineDescriptionStringYesThe 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.