Evaluate a configured item's food from the same draft or released source as the menu preview
curl --request POST \
--url https://api.example.com/api/v1/catalog/workspace/configuration-preview \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"menuId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"quantity": 50,
"preferences": {
"preferences": [],
"avoidAllergenIds": []
},
"locationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"productId": "<string>",
"source": {
"kind": "draft",
"expectedDraftRevision": 4503599627370495
},
"selections": [],
"at": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://api.example.com/api/v1/catalog/workspace/configuration-preview"
payload = {
"menuId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"quantity": 50,
"preferences": {
"preferences": [],
"avoidAllergenIds": []
},
"locationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"productId": "<string>",
"source": {
"kind": "draft",
"expectedDraftRevision": 4503599627370495
},
"selections": [],
"at": "2023-11-07T05:31:56Z"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
menuId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
quantity: 50,
preferences: {preferences: [], avoidAllergenIds: []},
locationId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
productId: '<string>',
source: {kind: 'draft', expectedDraftRevision: 4503599627370495},
selections: [],
at: '2023-11-07T05:31:56Z'
})
};
fetch('https://api.example.com/api/v1/catalog/workspace/configuration-preview', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/catalog/workspace/configuration-preview",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'menuId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'quantity' => 50,
'preferences' => [
'preferences' => [
],
'avoidAllergenIds' => [
]
],
'locationId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'productId' => '<string>',
'source' => [
'kind' => 'draft',
'expectedDraftRevision' => 4503599627370495
],
'selections' => [
],
'at' => '2023-11-07T05:31:56Z'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/catalog/workspace/configuration-preview"
payload := strings.NewReader("{\n \"menuId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"quantity\": 50,\n \"preferences\": {\n \"preferences\": [],\n \"avoidAllergenIds\": []\n },\n \"locationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"productId\": \"<string>\",\n \"source\": {\n \"kind\": \"draft\",\n \"expectedDraftRevision\": 4503599627370495\n },\n \"selections\": [],\n \"at\": \"2023-11-07T05:31:56Z\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/v1/catalog/workspace/configuration-preview")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"menuId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"quantity\": 50,\n \"preferences\": {\n \"preferences\": [],\n \"avoidAllergenIds\": []\n },\n \"locationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"productId\": \"<string>\",\n \"source\": {\n \"kind\": \"draft\",\n \"expectedDraftRevision\": 4503599627370495\n },\n \"selections\": [],\n \"at\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/catalog/workspace/configuration-preview")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"menuId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"quantity\": 50,\n \"preferences\": {\n \"preferences\": [],\n \"avoidAllergenIds\": []\n },\n \"locationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"productId\": \"<string>\",\n \"source\": {\n \"kind\": \"draft\",\n \"expectedDraftRevision\": 4503599627370495\n },\n \"selections\": [],\n \"at\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body{
"source": {
"menuId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"locationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"channel": "online",
"kind": "released",
"menuReleaseId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"contributions": [
{
"entityId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"selectionPath": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"fraction": {
"numerator": 1,
"denominator": 1
},
"provenance": {
"kind": "entered"
},
"nutrients": {
"caloriesKcal": 1,
"proteinGrams": 1,
"carbohydrateGrams": 1,
"fatGrams": 1,
"fiberGrams": 1,
"sugarGrams": 1,
"saturatedFatGrams": 1,
"sodiumMilligrams": 1
}
}
],
"serving": {
"label": "<string>",
"grams": 1
},
"quantity": {
"unit": "serving",
"count": 5000
},
"trayYield": {
"servingsPerTray": 1
},
"perServing": {
"caloriesKcal": 1,
"proteinGrams": 1,
"carbohydrateGrams": 1,
"fatGrams": 1,
"fiberGrams": 1,
"sugarGrams": 1,
"saturatedFatGrams": 1,
"sodiumMilligrams": 1
},
"perTray": {
"caloriesKcal": 1,
"proteinGrams": 1,
"carbohydrateGrams": 1,
"fatGrams": 1,
"fiberGrams": 1,
"sugarGrams": 1,
"saturatedFatGrams": 1,
"sodiumMilligrams": 1
},
"lineTotal": {
"caloriesKcal": 1,
"proteinGrams": 1,
"carbohydrateGrams": 1,
"fatGrams": 1,
"fiberGrams": 1,
"sugarGrams": 1,
"saturatedFatGrams": 1,
"sodiumMilligrams": 1
},
"completeness": "complete",
"missing": [
{
"entityId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"nutrient": "caloriesKcal"
}
],
"warnings": [
{
"code": "DIETARY_CONFLICT",
"entityId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"preferenceId": "vegetarian",
"selectionPath": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
]
}API Reference
Evaluate a configured item's food from the same draft or released source as the menu preview
POST
/
api
/
v1
/
catalog
/
workspace
/
configuration-preview
Evaluate a configured item's food from the same draft or released source as the menu preview
curl --request POST \
--url https://api.example.com/api/v1/catalog/workspace/configuration-preview \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"menuId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"quantity": 50,
"preferences": {
"preferences": [],
"avoidAllergenIds": []
},
"locationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"productId": "<string>",
"source": {
"kind": "draft",
"expectedDraftRevision": 4503599627370495
},
"selections": [],
"at": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://api.example.com/api/v1/catalog/workspace/configuration-preview"
payload = {
"menuId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"quantity": 50,
"preferences": {
"preferences": [],
"avoidAllergenIds": []
},
"locationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"productId": "<string>",
"source": {
"kind": "draft",
"expectedDraftRevision": 4503599627370495
},
"selections": [],
"at": "2023-11-07T05:31:56Z"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
menuId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
quantity: 50,
preferences: {preferences: [], avoidAllergenIds: []},
locationId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
productId: '<string>',
source: {kind: 'draft', expectedDraftRevision: 4503599627370495},
selections: [],
at: '2023-11-07T05:31:56Z'
})
};
fetch('https://api.example.com/api/v1/catalog/workspace/configuration-preview', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/catalog/workspace/configuration-preview",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'menuId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'quantity' => 50,
'preferences' => [
'preferences' => [
],
'avoidAllergenIds' => [
]
],
'locationId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'productId' => '<string>',
'source' => [
'kind' => 'draft',
'expectedDraftRevision' => 4503599627370495
],
'selections' => [
],
'at' => '2023-11-07T05:31:56Z'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/catalog/workspace/configuration-preview"
payload := strings.NewReader("{\n \"menuId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"quantity\": 50,\n \"preferences\": {\n \"preferences\": [],\n \"avoidAllergenIds\": []\n },\n \"locationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"productId\": \"<string>\",\n \"source\": {\n \"kind\": \"draft\",\n \"expectedDraftRevision\": 4503599627370495\n },\n \"selections\": [],\n \"at\": \"2023-11-07T05:31:56Z\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/v1/catalog/workspace/configuration-preview")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"menuId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"quantity\": 50,\n \"preferences\": {\n \"preferences\": [],\n \"avoidAllergenIds\": []\n },\n \"locationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"productId\": \"<string>\",\n \"source\": {\n \"kind\": \"draft\",\n \"expectedDraftRevision\": 4503599627370495\n },\n \"selections\": [],\n \"at\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/catalog/workspace/configuration-preview")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"menuId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"quantity\": 50,\n \"preferences\": {\n \"preferences\": [],\n \"avoidAllergenIds\": []\n },\n \"locationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"productId\": \"<string>\",\n \"source\": {\n \"kind\": \"draft\",\n \"expectedDraftRevision\": 4503599627370495\n },\n \"selections\": [],\n \"at\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body{
"source": {
"menuId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"locationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"channel": "online",
"kind": "released",
"menuReleaseId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"contributions": [
{
"entityId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"selectionPath": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"fraction": {
"numerator": 1,
"denominator": 1
},
"provenance": {
"kind": "entered"
},
"nutrients": {
"caloriesKcal": 1,
"proteinGrams": 1,
"carbohydrateGrams": 1,
"fatGrams": 1,
"fiberGrams": 1,
"sugarGrams": 1,
"saturatedFatGrams": 1,
"sodiumMilligrams": 1
}
}
],
"serving": {
"label": "<string>",
"grams": 1
},
"quantity": {
"unit": "serving",
"count": 5000
},
"trayYield": {
"servingsPerTray": 1
},
"perServing": {
"caloriesKcal": 1,
"proteinGrams": 1,
"carbohydrateGrams": 1,
"fatGrams": 1,
"fiberGrams": 1,
"sugarGrams": 1,
"saturatedFatGrams": 1,
"sodiumMilligrams": 1
},
"perTray": {
"caloriesKcal": 1,
"proteinGrams": 1,
"carbohydrateGrams": 1,
"fatGrams": 1,
"fiberGrams": 1,
"sugarGrams": 1,
"saturatedFatGrams": 1,
"sodiumMilligrams": 1
},
"lineTotal": {
"caloriesKcal": 1,
"proteinGrams": 1,
"carbohydrateGrams": 1,
"fatGrams": 1,
"fiberGrams": 1,
"sugarGrams": 1,
"saturatedFatGrams": 1,
"sodiumMilligrams": 1
},
"completeness": "complete",
"missing": [
{
"entityId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"nutrient": "caloriesKcal"
}
],
"warnings": [
{
"code": "DIETARY_CONFLICT",
"entityId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"preferenceId": "vegetarian",
"selectionPath": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Pattern:
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Available options:
online, catering Available options:
serving, person, item, dozen, tray, pack, lb, oz, kg, g, gallon, quart, liter, ml, fl_oz Required range:
1 <= x <= 99Show child attributes
Show child attributes
Pattern:
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Required string length:
1 - 128- Option 1
- Option 2
Show child attributes
Show child attributes
Maximum array length:
50Show child attributes
Show child attributes
Pattern:
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$Response
Committed authoring evidence or read-only review; no publication is activated by a review.
- Option 1
- Option 2
Show child attributes
Show child attributes
Maximum array length:
10000Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Available options:
complete, partial, unknown Maximum array length:
10000Show child attributes
Show child attributes
Maximum array length:
10000Show child attributes
Show child attributes
