Typo-tolerante Vorschläge
Leichtgewichtige Vorschlagsliste (nur ID + Name) für Eingabefelder.
Parameters
| Parameter | Type | Description |
|---|---|---|
|
Authorization
Required
|
String
|
API-Key als Bearer, z. B. `fo_live_…`. |
|
q
Required
|
string (query)
|
|
|
lang
|
string (query)
|
Sprach-Code (de | en | es). Default en. |
|
limit
|
integer (query)
|
curl
-X GET "https://api.foodoracle.app/v1/ingredients/autocomplete?q=value"
-H "Authorization: Bearer fo_live_..."
{
"language" : "string",
"query" : "string",
"suggestions" : [
{
"ingredientId" : "string",
"name" : "string"
}
]
}
Anzahl Zutaten-Einträge
Anzahl Zutaten-Einträge
Parameters
| Parameter | Type | Description |
|---|---|---|
|
Authorization
Required
|
String
|
API-Key als Bearer, z. B. `fo_live_…`. |
curl
-X GET "https://api.foodoracle.app/v1/ingredients/count"
-H "Authorization: Bearer fo_live_..."
{
}
Zutatensuche (Hybrid Keyword + semantisch)
MeiliSearch-Hybridsuche; Treffer werden zu vollständigen Zutaten aufgelöst.
Parameters
| Parameter | Type | Description |
|---|---|---|
|
Authorization
Required
|
String
|
API-Key als Bearer, z. B. `fo_live_…`. |
|
q
Required
|
string (query)
|
|
|
lang
|
string (query)
|
Sprach-Code (de | en | es). Default en. |
|
limit
|
integer (query)
|
curl
-X GET "https://api.foodoracle.app/v1/ingredients/search?q=value"
-H "Authorization: Bearer fo_live_..."
{
"language" : "string",
"limit" : 0,
"query" : "string",
"results" : [
{
"confidence" : 0,
"ingredient" : {
"allergen_profile" : null,
"allowed_units" : null,
"animal_source" : null,
"category" : null,
"density" : null,
"flavor_profile" : null,
"id" : null,
"ingredient_relationships" : null,
"name" : null,
"piece_weight" : null,
"subcategory" : null,
"synonyms" : null
}
}
]
}
Detail-Lookup — volles Zutaten-Profil
Das vollständige Profil (Allergene, Flavor, Physik, Relationen) als Datenprodukt.
Parameters
| Parameter | Type | Description |
|---|---|---|
|
Authorization
Required
|
String
|
API-Key als Bearer, z. B. `fo_live_…`. |
|
canonicalId
Required
|
string (path)
|
Kanonische Zutaten-ID. |
|
lang
|
string (query)
|
Sprach-Code (de | en | es). Default en. |
curl
-X GET "https://api.foodoracle.app/v1/ingredients/canonicalId"
-H "Authorization: Bearer fo_live_..."
{
"ingredient" : {
"allergen_profile" : {
"dairy" : null,
"egg" : null,
"fish" : null,
"fodmap" : null,
"gluten" : null,
"histamine" : null,
"lactose" : null,
"pancreas" : null,
"peanut" : null,
"sesame" : null,
"shellfish" : null,
"soy" : null,
"sulfite" : null,
"treeNut" : null
},
"allowed_units" : [
"string"
],
"animal_source" : [
"string"
],
"category" : "string",
"density" : 0,
"flavor_profile" : {
},
"id" : "string",
"ingredient_relationships" : {
"functionallySimilarTo" : null,
"oftenUsedWith" : null,
"pairsWellWith" : null,
"sameFamilyAs" : null,
"substitutesPartially" : null,
"substitutesWell" : null
},
"name" : "string",
"piece_weight" : 0,
"subcategory" : "string",
"synonyms" : [
"string"
]
},
"ingredientId" : "string",
"language" : "string"
}
Vorkommende Kategorien
Vorkommende Kategorien
Parameters
| Parameter | Type | Description |
|---|---|---|
|
Authorization
Required
|
String
|
API-Key als Bearer, z. B. `fo_live_…`. |
curl
-X GET "https://api.foodoracle.app/v1/meta/categories"
-H "Authorization: Bearer fo_live_..."
{
"categories" : [
"string"
]
}
Unterstützte Sprach-Codes
Unterstützte Sprach-Codes
Parameters
| Parameter | Type | Description |
|---|---|---|
|
Authorization
Required
|
String
|
API-Key als Bearer, z. B. `fo_live_…`. |
curl
-X GET "https://api.foodoracle.app/v1/meta/languages"
-H "Authorization: Bearer fo_live_..."
{
"languages" : [
"de",
"en",
"es"
]
}
Verfügbare Einheiten (lokalisiert)
Verfügbare Einheiten (lokalisiert)
Parameters
| Parameter | Type | Description |
|---|---|---|
|
Authorization
Required
|
String
|
API-Key als Bearer, z. B. `fo_live_…`. |
|
lang
|
string (query)
|
Sprach-Code (de | en | es). Default en. |
curl
-X GET "https://api.foodoracle.app/v1/meta/units"
-H "Authorization: Bearer fo_live_..."
{
"language" : "string",
"units" : [
{
"id" : "teaspoon",
"name" : "Teelöffel",
"precision" : "weight",
"shortcut" : "TL"
}
]
}
Zutatenliste über alle 14 Domänen prüfen
Bewertet eine Zutatenliste über alle Unverträglichkeits-Domänen. Mit `concerns` (z. B. `["gluten","histamine"]`) kommen klare Urteile zurück: `compatible | caution | incompatible | uncertain`. Ohne Mengenangabe wird mit 100 g gerechnet (`amountAssumed = true`).
Parameters
| Parameter | Type | Description |
|---|---|---|
|
Authorization
Required
|
String
|
API-Key als Bearer, z. B. `fo_live_…`. |
curl
-X POST "https://api.foodoracle.app/v1/compatibility/check"
-H "Authorization: Bearer fo_live_..."
-H "Content-Type: application/json"
-d '{"concerns":["string"],"items":[null]}'
{
"concerns" : [
{
"concern" : "string",
"risk" : "string",
"verdict" : "compatible"
}
],
"evaluation" : {
},
"items" : [
{
"amountAssumed" : true,
"grams" : 0,
"ingredientId" : "string"
}
],
"unresolved" : [
{
"ingredientId" : "string",
"reason" : "string"
}
]
}
Bis zu 100 Compatibility-Checks in einem Request (Credits = Anzahl × 5)
Führt bis zu 100 einzelne Compatibility-Checks synchron in einem Request aus. Jedes Element entspricht einem Aufruf von `/v1/compatibility/check`; `concerns` auf Top-Ebene gilt als Default für alle Elemente und wird von Element-`concerns` überstimmt. Die Ergebnisse kommen in Anfrage-Reihenfolge (`index`); Fehler eines Elements (z. B. unbekannte Concerns) betreffen nur dieses Element (`error` statt `result`), unbekannte Zutaten stehen wie beim Einzel-Check in `unresolved`. Leere Batches und mehr als 100 Checks werden mit 400 abgelehnt (`EMPTY_BATCH` / `BATCH_TOO_LARGE`). Abgerechnet werden Anzahl Checks × 5 Credits (M2-Gewicht); für das Rate-Limit zählt der Batch als ein Request.
Parameters
| Parameter | Type | Description |
|---|---|---|
|
Authorization
Required
|
String
|
API-Key als Bearer, z. B. `fo_live_…`. |
curl
-X POST "https://api.foodoracle.app/v1/compatibility/check/batch"
-H "Authorization: Bearer fo_live_..."
-H "Content-Type: application/json"
-d '{"checks":[{"concerns":null}],"concerns":["string"]}'
{
"results" : [
{
"error" : {
"code" : null,
"message" : null
},
"index" : 0,
"result" : null
}
]
}
Diät-Prüfung (vegan/vegetarian/pescetarian/porkFree)
Diät-Prüfung (vegan/vegetarian/pescetarian/porkFree)
Parameters
| Parameter | Type | Description |
|---|---|---|
|
Authorization
Required
|
String
|
API-Key als Bearer, z. B. `fo_live_…`. |
curl
-X POST "https://api.foodoracle.app/v1/compatibility/diet"
-H "Authorization: Bearer fo_live_..."
-H "Content-Type: application/json"
-d '{"ingredientIds":["string"],"diet":"vegan"}'
{
"diet" : "string",
"uncertain" : [
"string"
],
"unresolved" : [
"string"
],
"verdict" : "compatible",
"violations" : [
{
"ingredientId" : "string",
"sources" : [
"string"
]
}
]
}
FODMAP-Bewertung inkl. sicherer Portionsgrößen
FODMAP-Bewertung inkl. sicherer Portionsgrößen
Parameters
| Parameter | Type | Description |
|---|---|---|
|
Authorization
Required
|
String
|
API-Key als Bearer, z. B. `fo_live_…`. |
curl
-X POST "https://api.foodoracle.app/v1/compatibility/fodmap"
-H "Authorization: Bearer fo_live_..."
-H "Content-Type: application/json"
-d '{"items":[{"amount":0,"ingredientId":"string","unit":"string"}]}'
{
"ingredients" : [
{
"ingredientId" : "string",
"profile" : {
"confidence" : null,
"fodmapGroups" : null,
"fodmapLevel" : null,
"processed" : null,
"safeServingGrams" : null
}
}
],
"items" : [
{
"amountAssumed" : true,
"grams" : 0,
"ingredientId" : "string"
}
],
"result" : {
"dominantGroups" : [
"string"
],
"hasUnknown" : true,
"level" : "none"
},
"unresolved" : [
{
"ingredientId" : "string",
"reason" : "string"
}
]
}
Histamin-Bewertung inkl. DAO-Effekt & Schwellenwerten
Histamin-Bewertung inkl. DAO-Effekt & Schwellenwerten
Parameters
| Parameter | Type | Description |
|---|---|---|
|
Authorization
Required
|
String
|
API-Key als Bearer, z. B. `fo_live_…`. |
curl
-X POST "https://api.foodoracle.app/v1/compatibility/histamine"
-H "Authorization: Bearer fo_live_..."
-H "Content-Type: application/json"
-d '{"items":[{"ingredientId":"string","unit":"string","amount":0}]}'
{
"ingredients" : [
{
"ingredientId" : "string",
"profile" : {
"aged" : null,
"confidence" : null,
"daoEffect" : null,
"fermented" : null,
"histamineContent" : null,
"liberator" : null,
"thresholdGrams" : null
}
}
],
"items" : [
{
"amountAssumed" : true,
"grams" : 0,
"ingredientId" : "string"
}
],
"result" : {
"containsAged" : true,
"containsFermented" : true,
"containsLiberators" : true,
"hasUnknown" : true,
"risk" : "none",
"topContributors" : [
"string"
]
},
"unresolved" : [
{
"ingredientId" : "string",
"reason" : "string"
}
]
}
Allergen-/Unverträglichkeitsprofil einer Zutat
Das 14-Dimensionen-Profil inkl. Histamin, FODMAP und Pankreas.
Parameters
| Parameter | Type | Description |
|---|---|---|
|
Authorization
Required
|
String
|
API-Key als Bearer, z. B. `fo_live_…`. |
|
canonicalId
Required
|
string (path)
|
Kanonische Zutaten-ID. |
|
lang
|
string (query)
|
Sprach-Code (de | en | es). Default en. |
curl
-X GET "https://api.foodoracle.app/v1/ingredients/canonicalId/allergens"
-H "Authorization: Bearer fo_live_..."
{
"allergenProfile" : {
"dairy" : {
"confidence" : "low",
"crossContactRisk" : "string",
"processed" : true,
"thresholdGrams" : 0
},
"egg" : {
"confidence" : "low",
"crossContactRisk" : "string",
"processed" : true,
"thresholdGrams" : 0
},
"fish" : {
"confidence" : "low",
"crossContactRisk" : "string",
"processed" : true,
"thresholdGrams" : 0
},
"fodmap" : {
"confidence" : "low",
"fodmapGroups" : [
null
],
"fodmapLevel" : "none",
"processed" : true,
"safeServingGrams" : 0
},
"gluten" : {
"confidence" : "low",
"crossContactRisk" : "string",
"processed" : true,
"thresholdGrams" : 0
},
"histamine" : {
"aged" : true,
"confidence" : "low",
"daoEffect" : "none",
"fermented" : true,
"histamineContent" : "high",
"liberator" : "no",
"thresholdGrams" : 0
},
"lactose" : {
"confidence" : "low",
"crossContactRisk" : "string",
"processed" : true,
"thresholdGrams" : 0
},
"pancreas" : {
"alcohol" : true,
"confidence" : "low",
"fatLoad" : "string",
"fiberLoad" : "string",
"friedOrGreasy" : true,
"pancreasRisk" : "low",
"safeServingGrams" : 0
},
"peanut" : {
"confidence" : "low",
"crossContactRisk" : "string",
"processed" : true,
"thresholdGrams" : 0
},
"sesame" : {
"confidence" : "low",
"crossContactRisk" : "string",
"processed" : true,
"thresholdGrams" : 0
},
"shellfish" : {
"confidence" : "low",
"crossContactRisk" : "string",
"processed" : true,
"thresholdGrams" : 0
},
"soy" : {
"confidence" : "low",
"crossContactRisk" : "string",
"processed" : true,
"thresholdGrams" : 0
},
"sulfite" : {
"confidence" : "low",
"crossContactRisk" : "string",
"processed" : true,
"thresholdGrams" : 0
},
"treeNut" : {
"confidence" : "low",
"crossContactRisk" : "string",
"processed" : true,
"thresholdGrams" : 0
}
},
"ingredientId" : "string",
"name" : "string"
}
Flavor-Pairings + häufige Ko-Nutzung
Flavor-Pairings + häufige Ko-Nutzung
Parameters
| Parameter | Type | Description |
|---|---|---|
|
Authorization
Required
|
String
|
API-Key als Bearer, z. B. `fo_live_…`. |
|
canonicalId
Required
|
string (path)
|
Kanonische Zutaten-ID. |
|
lang
|
string (query)
|
Sprach-Code (de | en | es). Default en. |
|
limit
|
integer (query)
|
curl
-X GET "https://api.foodoracle.app/v1/ingredients/canonicalId/pairings"
-H "Authorization: Bearer fo_live_..."
{
"ingredientId" : "string",
"language" : "string",
"oftenUsedWith" : [
{
"ingredientId" : "string",
"name" : "string"
}
],
"pairsWellWith" : [
{
"ingredientId" : "string",
"name" : "string",
"reasons" : [
"string"
],
"score" : 0
}
]
}
Ähnliche Zutaten (Familie + funktional)
Ähnliche Zutaten (Familie + funktional)
Parameters
| Parameter | Type | Description |
|---|---|---|
|
Authorization
Required
|
String
|
API-Key als Bearer, z. B. `fo_live_…`. |
|
canonicalId
Required
|
string (path)
|
Kanonische Zutaten-ID. |
|
lang
|
string (query)
|
Sprach-Code (de | en | es). Default en. |
|
limit
|
integer (query)
|
curl
-X GET "https://api.foodoracle.app/v1/ingredients/canonicalId/similar"
-H "Authorization: Bearer fo_live_..."
{
"ingredientId" : "string",
"language" : "string",
"similar" : [
{
"ingredientId" : "string",
"name" : "string",
"reasons" : [
"string"
],
"relation" : "sameFamily",
"score" : 0
}
]
}
Substitutions-Vorschläge (Food-Graph)
Substitutions-Vorschläge (Food-Graph)
Parameters
| Parameter | Type | Description |
|---|---|---|
|
Authorization
Required
|
String
|
API-Key als Bearer, z. B. `fo_live_…`. |
|
canonicalId
Required
|
string (path)
|
Kanonische Zutaten-ID. |
|
lang
|
string (query)
|
Sprach-Code (de | en | es). Default en. |
|
limit
|
integer (query)
|
|
|
includePartial
|
boolean (query)
|
Teilweise geeignete Substitute mit einbeziehen (Default true). |
curl
-X GET "https://api.foodoracle.app/v1/ingredients/canonicalId/substitutes"
-H "Authorization: Bearer fo_live_..."
{
"ingredientId" : "string",
"language" : "string",
"substitutes" : [
{
"ingredientId" : "string",
"name" : "string",
"quality" : "well",
"reasons" : [
"string"
],
"score" : 0
}
]
}
Einheiten-Umrechnung einer Zutat
Gewicht ↔ Volumen ↔ Stück über Dichte und Stückgewicht.
Parameters
| Parameter | Type | Description |
|---|---|---|
|
Authorization
Required
|
String
|
API-Key als Bearer, z. B. `fo_live_…`. |
curl
-X POST "https://api.foodoracle.app/v1/units/convert"
-H "Authorization: Bearer fo_live_..."
-H "Content-Type: application/json"
-d '{"toUnit":"gram","amount":1,"ingredientId":"butter","fromUnit":"tablespoon"}'
{
"amount" : 0,
"estimated" : true,
"fromUnit" : "string",
"ingredientId" : "string",
"result" : 0,
"toUnit" : "string"
}
Nährwerte einer Zutat (pro 100 g)
Mit `amount` + `unit` wird zusätzlich die umgerechnete Menge geliefert.
Parameters
| Parameter | Type | Description |
|---|---|---|
|
Authorization
Required
|
String
|
API-Key als Bearer, z. B. `fo_live_…`. |
|
canonicalId
Required
|
string (path)
|
Kanonische Zutaten-ID. |
|
amount
|
number (query)
|
|
|
unit
|
string (query)
|
curl
-X GET "https://api.foodoracle.app/v1/ingredients/canonicalId/nutrition"
-H "Authorization: Bearer fo_live_..."
{
"basis" : "per100g",
"computed" : {
"amount" : 0,
"estimated" : true,
"grams" : 0,
"nutrients" : {
"id" : "string",
"lipids" : null,
"macros" : null,
"minerals" : null,
"vitamins" : null
},
"unit" : "string"
},
"ingredientId" : "string",
"nutrients" : {
"id" : "string",
"lipids" : {
"cholesterol" : null,
"monounsaturatedFat" : null,
"polyunsaturatedFat" : null,
"saturatedFat" : null
},
"macros" : {
"alcohol" : null,
"carbohydrates" : null,
"energyKcal" : null,
"energyKilojoule" : null,
"fat" : null,
"fibre" : null,
"protein" : null,
"salt" : null,
"sugar" : null,
"water" : null
},
"minerals" : {
"calcium" : null,
"iron" : null,
"magnesium" : null,
"phosphorus" : null,
"potassium" : null,
"sodium" : null,
"zinc" : null
},
"vitamins" : {
"a" : null,
"b1" : null,
"b2" : null,
"b6" : null,
"c" : null,
"k" : null,
"niacin" : null,
"pantothenicAcid" : null
}
}
}
Nährwertanalyse einer Zutatenliste
Summe und — bei `servings` — Werte pro Portion. Nicht auflösbare Positionen unter `unresolved`.
Parameters
| Parameter | Type | Description |
|---|---|---|
|
Authorization
Required
|
String
|
API-Key als Bearer, z. B. `fo_live_…`. |
curl
-X POST "https://api.foodoracle.app/v1/nutrition/analyze"
-H "Authorization: Bearer fo_live_..."
-H "Content-Type: application/json"
-d '{"servings":0,"items":[{"amount":0,"unit":"string","ingredientId":"string"}]}'
{
"items" : [
{
"amount" : 0,
"estimated" : true,
"grams" : 0,
"ingredientId" : "string",
"nutrients" : {
"id" : null,
"lipids" : null,
"macros" : null,
"minerals" : null,
"vitamins" : null
},
"unit" : "string"
}
],
"perServing" : {
"id" : "string",
"lipids" : null,
"macros" : null,
"minerals" : null,
"vitamins" : null
},
"servings" : 0,
"total" : {
"id" : "string",
"lipids" : {
"cholesterol" : null,
"monounsaturatedFat" : null,
"polyunsaturatedFat" : null,
"saturatedFat" : null
},
"macros" : {
"alcohol" : null,
"carbohydrates" : null,
"energyKcal" : null,
"energyKilojoule" : null,
"fat" : null,
"fibre" : null,
"protein" : null,
"salt" : null,
"sugar" : null,
"water" : null
},
"minerals" : {
"calcium" : null,
"iron" : null,
"magnesium" : null,
"phosphorus" : null,
"potassium" : null,
"sodium" : null,
"zinc" : null
},
"vitamins" : {
"a" : null,
"b1" : null,
"b2" : null,
"b6" : null,
"c" : null,
"k" : null,
"niacin" : null,
"pantothenicAcid" : null
}
},
"unresolved" : [
{
"ingredientId" : "string",
"reason" : "string"
}
]
}
Eigener API-Verbrauch pro Tag/Funktion
Eigener API-Verbrauch pro Tag/Funktion
Parameters
| Parameter | Type | Description |
|---|---|---|
|
Authorization
Required
|
String
|
API-Key als Bearer, z. B. `fo_live_…`. |
|
days
|
integer (query)
|
curl
-X GET "https://api.foodoracle.app/v1/account/usage"
-H "Authorization: Bearer fo_live_..."
{
"customerId" : "uuid",
"days" : 0,
"modules" : [
"string"
],
"plan" : "string",
"usage" : [
{
"avgLatencyMs" : 0,
"day" : "2026-07-07",
"errors" : 0,
"function" : "string",
"module" : "string",
"requests" : 0,
"units" : 0
}
]
}
Healthcheck
Healthcheck
Parameters
| Parameter | Type | Description |
|---|---|---|
|
Authorization
Required
|
String
|
API-Key als Bearer, z. B. `fo_live_…`. |
curl
-X GET "https://api.foodoracle.app/health"
-H "Authorization: Bearer fo_live_..."
{
}
Healthcheck (versioniert)
Healthcheck (versioniert)
Parameters
| Parameter | Type | Description |
|---|---|---|
|
Authorization
Required
|
String
|
API-Key als Bearer, z. B. `fo_live_…`. |
curl
-X GET "https://api.foodoracle.app/v1/health"
-H "Authorization: Bearer fo_live_..."
{
}