CalAI / NutriScan: Food Photo, Barcode & Label Nutrition API
收藏资源简介:
Four endpoints. Every way a human logs a meal. Photo, barcode, label, or plain text → every ingredient, with 27 nutrients, gram weights, allergen tags, and diet compatibility. Any cuisine, any language. Structured and editable, not a black-box calorie count.
CalAI / NutriScan: Food Photo, Barcode & Label Nutrition API 数据集详情
核心功能
该API提供四个端点,覆盖用户记录饮食的四种方式(照片、条形码、营养标签、文本),返回结构化的、可编辑的营养成分数据,而非黑盒式的单一卡路里数值。
主要特点
- 基于克数、按成分分解:每道菜被分解为独立成分,每个成分都附带克重、27种营养素、过敏原标签和饮食兼容性判断。
- 结果可重新计算:允许用户编辑(如减少某成分),系统会基于实际每100克数据重新计算总营养,而非使用修正系数。
四个API端点
| 端点 | 输入 | 用途 |
|---|---|---|
POST /v2/recognize |
食物照片 或 纯文本菜品名称 | 主要场景:相机胶卷、餐饮记录、聊天输入 |
POST /v2/barcode |
条形码字符串 | 包装商品,覆盖460万产品数据库 |
POST /v2/label |
营养成分标签照片 | 处理条形码数据库中未收录的产品 |
POST /v2/ingredient/measure |
[{ name, amount, unit }] |
用户编辑:例如“2汤匙改为1汤匙” |
前三个端点返回相同的 { dish, food_response[], billing } 结构,统一渲染。
返回数据的核心内容
- 27种营养素:17种宏量营养素(卡路里、蛋白质、脂肪、碳水化合物、纤维素、糖、饱和/单不饱和/多不饱和/反式脂肪、胆固醇、钠、钾、钙、铁)及10种微量营养素(维生素A、C、D、E、K、B6、B12、叶酸、烟酸、镁、锌、Omega-3)。始终存在且为数值,无空值。
- 饮食兼容性:对
vegan、vegetarian、plantbased、pescatarian、flexitarian返回yes、no或maybe三态判断。 - 过敏原标签:来自EU/FDA标准集(13项):gluten、milk、egg、peanut、tree_nut、soy、fish、shellfish、sesame、celery、mustard、lupin、sulphites。在菜品级别汇总,并按成分细分。
- 本地化名称:每个成分返回
{ en, tr, de, fr, it }五种语言名称,无需额外翻译。 - 国家感知解析:通过
country参数(如"TR"、"US")调整食材解析(如sucuk解析为牛肉而非猪肉,biscuit解析为松软类型)。
编辑循环机制
- 每个成分返回
count、unit和per_unit_grams,支持用户端无需服务器往返即可调整数量。 /v2/ingredient/measure端点可标准化单位(如tbsp、cup、oz、slice、piece、can、ml、g等),并针对特定食物转换克数与营养。- 批量处理时,单项失败不会影响其他项(返回
{ resolved: false, error: "invalid_unit" })。
示例响应结构
以 POST /v2/recognize 请求 { "dish": "Eggs Benedict", "country": "US" } 为例:
json
{
"dish": {
"name": "Eggs Benedict",
"total_metric_amount": 239,
"total_nutritional_content": {
"calories": 580, "protein": 28.29, "fat": 38.53, "carbohydrate": 28.32,
"sodium": 1073.25, "cholesterol": 595.94
},
"diet_compat": {
"vegan": "no", "vegetarian": "no", "plantbased": "no",
"pescatarian": "no", "flexitarian": "yes"
},
"allergens": ["egg", "gluten", "milk"],
"ingredient_count": 4
},
"food_response": [
{
"food_name": { "en": "Poached Egg", "tr": "Poşe Yumurta", "de": "Pochiertes Ei" },
"eaten": {
"total_metric_amount": 100,
"count": 2, "unit": "egg", "per_unit_grams": 50,
"total_nutritional_content": { "calories": 147, "protein": 12.6 }
},
"diet_compat": { "vegan": "no", "vegetarian": "yes" },
"allergens": ["egg"]
}
]
}
每次响应均包含计费信息,无月末意外。
其他技术细节
- 错误处理:一致的
{ error: { code, message } }格式,如NO_FOOD_DETECTED(422)、BARCODE_NOT_FOUND(404)、LABEL_NOT_DETECTED(422)、VALIDATION_ERROR(400)。 - 图片要求:JPEG / PNG / WebP,最大8 MB,支持multipart上传或URL。
- 多语言输入:支持任何语言(如“kıymalı pide”或“tonkotsu ramen”),内部解析为标准英文。
定价方案
- BASIC:$0.00/月
- PRO:$39.00/月
- ULTRA:$149.00/月
- MEGA:$499.00/月
提供商信息
- API创建者:NutriScan
- 订阅者数量:1
- 类别:Food




