Documentacion del API de Análisis Nutricional

Análisis de receta vs. Consulta a base de datos de alimentos

Los dos tipos de consultas usan dos distintos URL de acceso estan descritos en esta documentacion. Aun más importante es tener en cuenta que cada de los consultas utiliza un formato distinto (POST vs. GET) y que las consultas estan destinadas a distintos URL’s parte de éste API.

Análisis de receta

Todas las consultas se realizan mediante POST. Es una consulta diseñada para que se utilice para recetas enteras, en inglés o español- título de la receta, lista de ingredientes e instrucciones incluido. Esta consulta le ahorra tiempo y esfuerzo para analizar las recetas y los ingredientes línea por línea.
También el resultado incluye todas las etiquetas de nutrición en un nivel de comida, así que se puede facilmente qué tipo de dieta es aplicable para la receta.
Finalmente se ajusta la cantidad de determinados ingredientes para tener en cuenta las técnicas de cocinar. Por ejemplo, se calcula la absorción de aceite para las recetas fritas, se excluyen los sólidos en recetas de caldo, se calcula la absorción de marinata y mucho más.

Consulta al base de datos de alimentos

Todas las solicitudes de aquí se realizan utilizando GET. Esta es la API de base de datos de alimentos clásica del que está usted acostumbrado con unos importantes innovaciones de Edamam.
Puede enviar un ingrediente entero con la cantidad incluida y Edamam devlovera las etiquetas de nutrición y de la dieta para dicho ingrediente. Debe presentar juntos la cantidad y el ingrediente para obtener los datos correctos. ‘1 patata grande’ vs ‘una patata’
De esta manera puede ahorar tiempo y esfuerzo.

Analisis de Receta

Para análisis de ingredientes y recetas en ingles

Path: https://api.edamam.com/api/nutrition-details

Para la beta de análisis de recetas in ingredientes en español

Path: https://test-es.edamam.com/api/nutrition-data

Devuelve la información nutricional en base a una consulta POST con el contenido de la receta

Los siguentes parámetros son parte del URL de la consulta POST:

Parámetro Requerido Typo Descripción
app_id yes string Identificador de aplicación 3scale
app_key yes string Llave de aplicación 3scale
force No Requiere que la receta esta re-evaluada

Consulta POST

La consulta POST está destinada para que se analice el contenido de la receta – titulo y la lista de ingredientes.

La respuesta del API va a contener los valores nutricionales y la receta en un formato normalizado.

El contenido de la consulta JSON es un objeto con el siguente formato:

Nombre Requerido Descripción
title si el nombre de la receta
ingr si los ingredientes de la receta
summary no descripción corta de la receta
yield no número de porciones
ttime no tiempo total para la receta
prep no instrucciones de preparación
cuisine no tipo de cocina

La consulta tiene que contener el header

Content-Type: application/json

Las nuevas recetas, re-entrando una receta y la cuenta de licencias

Una vez que presente una receta a través de la API Edamam, empieza a llevar una cuenta mensual para las licencias para cada nueva receta analizada. A veces sin embargo, es posible que necesite actualizar los datos de nutrición para una receta ya presentada, en caso de que haya perdido los datos de nutrición, por ejemplo. La presentación de una receta directamente contará como un análisis de una nueva receta y va a contar como una receta más para la cuenta de licencias de información nutricional. Para evitar esto hemos implementado un sistema basado en “Etag” de HTTP: https: mecanismo de https://en.wikipedia.org/wiki/HTTP_ETag.

En primer lugar, cada receta procesada con éxito también devolverá una etiqueta en la cabecera de la respuesta @ @ ETag. Este valor debe ser preservada, junto con la receta. Entonces, cuando vuelva a presentar la receta, debe incluir el valor en el @ If-None-Match petición @ cabecera.

Hay tres posibles resultados:

  1. Usted ya está usando la versión más actualizada de los datos Edamam. Es decir, que ya tiene la versión más reciente de la información nutricional. En este caso, el sistema devolverá el código de estado HTTP 304 – No modificado. Tenga en cuenta, que puede obligar a la reevaluación en este caso (por ejemplo, si ha perdido sus datos) pasando el parámetro @ @ force. Edamam sabrá que ya están pagando la licencia para la información nutricional de ésta receta y que no será cobrado dos veces.
  2. Hemos actualizado nuestra base de datos, la receta se procesa de nuevo. En este caso, recibirá los datos de nutrición posiblemente actualizados, así como la actualización de ETag @ @ cabecera. Debe almacenar este nuevo valor y utilizarlo para obtener más información modificada.
  3. La receta enviada fue cambiada por usted. A medida que el @ @ ETag de hash contiene una “firma” para el contenido de la receta que el sistema responderá con el código de estado HTTP 409 – Conflicto. En caso de que utilizó el mal @ @ ETag puede utilizar el código correcto, o si la receta ha cambiado puede volver a enviar la receta como nueva (es decir, sin necesidad de enviar el @ If-None-Match @ cabecera).

Ejempo de la cuenta de licencias. Ha analizado 100 recetas el primer mes, 50 el segundo mes y 1 el tercer mes. El primer mes tendrá que pagar una cuota de licencia para la nutrición de 100 recetas, el segundo mes de 150 y el tercero para 151. Si no analiza ningúna receta más, después del tercer mes tendrá que pagar una cuota de licencia para la nutrición para el total de 151 recetas todos los meses a partir de entonces.

Ejemplo de consulta POST

Aqui se un ejemplo usando curl:

Este va a enviar un archivo recipe.json.

Aqui está el contenido del archivo recipe.json :

Respuesta

HTTP Status code Content-Type Typo Descripcion
200 OK application/json Receta Objecto receta con contenido de umero re raciones (yield), numero da colorias total de la receta entera, informacion nutricional (totalNutrients, totalDaily), typo de dieta(dietLabels, healthLabels)
404 Not Found text/html HTML No podemos encontrar este URL
422 Uprocessable Entity text/html HTML No podemos leer la receta para analizar la
555 text/html HTML El contenido de la receta esta de mala calidad

Ejemplos de respuesta

Aqui puede encontrar ejemplo de la respuesta con informacion al nivel de cada ingrediente

Receta

Nota: Puede que sólo un subconjunto de los campos esté presente, dependiendo de la interfaz a través de la cual se obtiene la receta. Consulte la descripción de la interfaz específica para los detalles.

Campo Tipo Descripción
uri string Identificador de ontología
yield integer URL de la receta original
calories float Total de energía, kcal
totalNutrients NutrientInfo[] Total de nutrientes por porción
totalDaily NutrientInfo[] % del valor diario por porción
dietLabels enum[] Etiquetas de dieta: “balanced”, “high-protein”, “high-fiber”, “low-fat”, “low-carb”, “low-sodium”
healthLabels enum[] Etiquetas de salud: “vegan”, “vegetarian”, “paleo”, “dairy-free”, “gluten-free”, “wheat-free”, “fat-free”, “low-sugar”, “egg-free”, “peanut-free”, “tree-nut-free”, “soy-free”, “fish-free”, “shellfish-free”

Ingredient

Campo Tipo Descripción
uri string Identificador de ontología
quantity float Cantidad de medida especificada
measure Measure Medida
weight float Peso total, g
food Food Comida

NutrientInfo

Campo Tipo Descripción
uri string Identificador de ontología
label string Etiqueta visualizada
quantity float Cantidad de unidades especificadas
unit string Unidades

Consulta en la Base de datos de alimentos

Path: https://api.edamam.com/api/nutrition-data

Responde con la informacíon nutricional para el ingrediente especificado.

GET Consulta

Tiene que usar una consulta GET.

Parámetro Requerido Typo Descripción
app_id yes string Identificador de aplicación 3scale
app_key yes string Llave de aplicación 3scale
force No El ingrediente que quere analyzar con la cantidad incluida

El API responde con los valores nutricionales para la cantidad especifica del ingrediente .

Ejemlpo de consulta GET

A modo de ejemplo, supongamos que queremos encontrar la información nutricional de una manzana. Siempre debe incluir la cantidad y la medida, por lo que tendremos que decir “1 large apple” no solo “apple”. Después es necesario que URL-encode- esta cadena. En este caso, esto significa que basta con sustituir los espacios con %20, para “1%20large%20apple”. Tenga en cuenta, que las comillas no son parte de la cadena.

Aqui se muestra un ejemplo usando curl:

Respuesta

HTTP Status code Content-Type Typo Descripcion
200 OK application/json Receta Objeto receta con contenido de numero re raciones (yield), numero da colorias total de la receta entera, informacion nutricional (totalNutrients, totalDaily), typo de dieta(dietLabels, healthLabels)
404 Not Found text/html HTML No podemos encontrar esté URL
422 Uprocessable Entity text/html HTML No podemos leer la cadena para analizarla
555 text/html HTML El contenido del texto es de mala calidad

Example response

  • Siempre incluya cantidad y medida en los requerimentos. La presentación de ’ 1 large apple ’ frente a la presentación de sólo ’ apple ’

Respuesta

Nota: Puede que sólo un subconjunto de los campos este presente, dependiendo de la interfaz a través de la cual se obtiene la receta. Consulte la descripción de la interfaz específica para los detalles.

Campo Tipo Descripción
uri string Identificador de ontología
yield integer URL de la receta original
calories float Total de energía, kcal
totalNutrients NutrientInfo[] Total de nutrientes por porción
totalDaily NutrientInfo[] % del valor diario por porción
dietLabels enum[] Etiquetas de dieta: “balanced”, “high-protein”, “high-fiber”, “low-fat”, “low-carb”, “low-sodium”
healthLabels enum[] Etiquetas de salud: “vegan”, “vegetarian”, “paleo”, “dairy-free”, “gluten-free”, “wheat-free”, “fat-free”, “low-sugar”, “egg-free”, “peanut-free”, “tree-nut-free”, “soy-free”, “fish-free”, “shellfish-free”

Ingredient

Campo Tipo Descripción
uri string Identificador de ontología
quantity float Cantidad de medida especificada
measure Measure Medida
weight float Peso total, g
food Food Comida

NutrientInfo

Campo Tipo Descripción
uri string Identificador de ontología
label string Etiqueta visualizada
quantity float Cantidad de unidades especificadas
unit string Unidades

Etiquetas de Dieta y Salud

Las etiquetas de nutrición son compartidos por las recetas y alimentos por igual. Ellos son asignados por Edamam sobre la base de los ingredientes contenidos en la etiqueta de los alimentos para los alimentos CPG y por los ingredientes básicos de cada receta para las recetas.

Tipo Etiqueta Web Parámetro API Definición
Diet High-protein high-protein Las proteínas proporcionan mas del 50% del total de calorías
Diet Low carb low-carb Los carbohidratos proporcionan menos del 20% del total de calorías
Diet Low fat low-fat Las grasas proporcionan menos del 15% del total de calorías
Diet Balanced balanced Los valores de Proteína/Grasa/Carbohidratos en razón de 15/35/50
Diet High fiber high-fiber Más de 5g de fibra por porción
Diet Low-Sodium low-sodium Menos de 140mg Na por porción
Health No-sugar low-sugar Sin azúcar natural – glucosa, dextrosa, galactosa, fructuosa, sacarosa, lactosa, maltosa
Health Sugar-conscious sugar-conscious Menos de 4g de azúcar por porción
Health n/a low-fat-abs Menos de 3g de grase por porción
Health Gluten gluten-free Sin ingredientes que contengan gluten
Health Vegetarian vegetarian No contiene carnes, aves o pescado
Health Vegan vegan No contiene, aves, pescado, lácteos, huevos o miel
Health Paleo paleo Se excluye lo que se percibe como productos agrícolas; granos, legumbres, productos lácteos, papas, sal refinada, azúcar refinada y aceites procesados
Health Wheat-free wheat-free Sin trigo, aunque puede tener gluten
Health Dairy dairy-free Sin lácteos, sin lactosa
Health Eggs egg-free Sin huevo o productos que contengan huevo
Health Soy soy-free Sin soya o productos que contengan soya
Health Fish fish-free Sin pescado o derivados de pescado
Health Shellfish shellfish-free Sin mariscos o productos derivados de los mariscos
Health Tree Nuts tree-nut-free Sin nueces o productos que contengan nueces
Health Low potassium low-potassium Menos de 150mg por porción
Health Alcohol-free alcohol-free No se usa alcohol o productos que contengan alcohol
Health No oil added No-oil-added No se agrega aceite excepto que lo contenga en los ingredientes básicos
Health Kidney friendly kidney-friendly Por porción – fósforo menos de 250 mg Y potasio menos de 500 mg Y sodio menos de 500 mg
Health Peanuts peanut-free Sin cacahuetes o productos que contengan cacahuetes
Health Alcohol alcohol-free La receta no usa o está hecha con bebidas alcoholicas