TrackUp Food Analyze
Use this skill to analyze a food image with:
https://deepeat.ai/step.aispark.api.API/AnalyzeWholeFood
https://deepeat.ai/step.aispark.api.API/ExtractFoodMacros
https://deepeat.ai/step.aispark.api.API/AnalyzeIngredients
https://deepeat.ai/step.aispark.api.API/GetHealthInsight
https://deepeat.ai/step.aispark.api.API/SearchFood
Rules
- Always use
POST
- Always send
Content-Type: application/json
- Image analysis requests must contain
image_url or image_base64
- If both exist,
image_base64 wins
image_base64 must be raw base64 without data:image/...;base64,
- For complete food image analysis, call
AnalyzeWholeFood directly
- Only call a specialized image-analysis API when the user explicitly asks for one specific analysis dimension
- Use
ExtractFoodMacros for basic macro extraction
- Use
AnalyzeIngredients for deep ingredient and metabolic analysis
- Use
GetHealthInsight for professional health insight
SearchFood request body must contain keyword
SearchFood returns at most the first 20 results
API Selection
Choose the API based on the user's intent:
- Full food analysis:
AnalyzeWholeFood
- Basic macro extraction only:
ExtractFoodMacros
- Deep ingredient and metabolic analysis only:
AnalyzeIngredients
- Professional health insight only:
GetHealthInsight
- Keyword-based lookup without image analysis:
SearchFood
Food Search
Use SearchFood when the user wants keyword-based food lookup instead of image analysis.
Request example:
curl --silent --show-error --location \
'https://deepeat.ai/step.aispark.api.API/SearchFood' \
--header 'Content-Type: application/json' \
--data '{
"keyword": "banana"
}'
Expected response shape:
{
"foods": [
{
"food_name": "Banana",
"calories_cal": "89000",
"weight_g": "100",
"carbs_g": "22.8",
"proteins_g": "1.1",
"fats_g": "0.3",
"display_gi": 51,
"brand": ""
}
],
"pagination": {
"size": 20,
"page": 1,
"total": 123
}
}
Local Image Workflow
Convert local image to base64:
base64 < /absolute/path/to/image.jpg | tr -d '\n' > /tmp/food_image.b64
Build payload:
printf '{"image_base64":"' > /tmp/food_image.json
cat /tmp/food_image.b64 >> /tmp/food_image.json
printf '"}' >> /tmp/food_image.json
Call full food analysis directly:
curl --silent --show-error --location \
'https://deepeat.ai/step.aispark.api.API/AnalyzeWholeFood' \
--header 'Content-Type: application/json' \
--data-binary @/tmp/food_image.json
Proxy Fix
If curl incorrectly tries a local proxy like 127.0.0.1:7890, retry with:
env -u http_proxy -u https_proxy -u HTTP_PROXY -u HTTPS_PROXY -u ALL_PROXY curl ...
Response Fields
AnalyzeWholeFood:
food_name
total_weight_g
total_calories_kcal
carbs_g
proteins_g
fats_g
display_gi
dietary_fiber_g
sugar_g
ingredients[]
health_score
health_profile
ExtractFoodMacros:
food_name
total_weight_g
total_calories_kcal
carbs_g
proteins_g
fats_g
AnalyzeIngredients:
display_gi
dietary_fiber_g
sugar_g
ingredients[]
GetHealthInsight:
health_score
health_profile
SearchFood:
foods[]
pagination.page
pagination.size
pagination.total
health_score meaning:
1-5 score generated by AI food evaluation
5 is the highest score
- Use it to help users make nutritionally informed choices
Output Rules
- Keep numeric values exactly as returned
- Do not invent missing fields
- For complete image analysis, use
AnalyzeWholeFood as the default API
- For specialized analysis, use only the dedicated API that matches the user's request
- For
SearchFood, return the foods in API order and do not claim more than 20 items unless the response actually contains them
Common Errors
400 invalid_request
422 food_not_recognized
422 barcode_only_result
429 rate_limit_exceeded
500 internal_error
502 upstream_flow_error