Nutrition API
Photo in, macros out. Same user record as the wearable data.
A food recognition API for apps that already show sleep, HRV and workouts. Log a meal from a photo or a form, get calories and macros back, and read intake against burn from the wearable the user already connected.

1
request per meal photo
7
values per item: kcal, protein, carbs, fat, fibre, sugar, sodium
≤3
clarifying questions when unsure, never a guess
3
users on the free tier, manual logs unlimited
How it works
Three endpoints, one user record
Nutrition is not a separate product with its own user model. The user ID you already use for wearable data is the one you log meals against.
Log from a photo
POST the image. A vision model recognises the dishes, estimates portions and returns calories, macros, fibre, sugar and sodium per item with a quantity uncertainty. Genuine ambiguity comes back as a short question with answer options, not a wrong number.
Log manually
A form-based log for packaged foods, recipes and corrections. Unlimited on every tier, including free.
Read intake against burn
The summary endpoint joins the day's logged calories with active and resting energy from the user's connected wearable. One call, one answer.
# 1. Log a meal from a photo
curl -X POST https://wearlink.io/api/v1/nutrition/log/image \
-H "X-WearLink-API-Key: $WEARLINK_KEY" \
-F "user_id=usr_01J9X…" \
-F "image=@lunch.jpg"
# → 201
{
"log_id": "nlg_01JA…",
"items": [
{ "dish_name": "Chicken biryani",
"quantity_grams": 350, "quantity_uncertainty": 60,
"calories_kcal": 620, "protein_g": 32, "carbs_g": 78, "fat_g": 18,
"fiber_g": 3, "sugar_g": 4, "sodium_mg": 890,
"clarifying_questions": null },
{ "dish_name": "Raita",
"quantity_grams": 100, "quantity_uncertainty": 30,
"calories_kcal": 70, "protein_g": 3, "carbs_g": 5, "fat_g": 4,
"fiber_g": 0, "sugar_g": 4, "sodium_mg": 210,
"clarifying_questions": null }
]
}
# 2. Same user, same day: intake vs burn
curl https://wearlink.io/api/v1/nutrition/summary?user_id=usr_01J9X…&date=2026-09-02 \
-H "X-WearLink-API-Key: $WEARLINK_KEY"Built for real plates
Recognition that knows a thali from a tray
Most food-vision models are trained on US-centric databases. Ours is curated for Indian and South Asian dishes alongside Western ones, because that is where our users eat.
- Multi-item plates: each dish on the plate is a separate line with its own macros
- Indian and South Asian dishes recognised by name: dal, dosa, biryani, paneer, roti, idli, sambar, thali
- Quantity in grams with an uncertainty range on every item, editable by the user
- EXIF metadata, including GPS, stripped before the photo is stored
- A review queue so your team can approve, correct or reject recognitions before they count
- Per-user export and deletion cover nutrition logs and photos, the same as wearable data
Plans
Manual logs everywhere, photo recognition on paid tiers
Photo recognition costs us inference per image, so it is metered per day on the paid tiers. Nothing else about nutrition is metered.
Hobby
Free
Unlimited manual logs and energy balance. No photo recognition.
Developer
500 / day
Photo logs per day, plus everything on Hobby. $99 a month flat.
Scale
5,000 / day
Photo logs per day for products with real user volume. $399 a month flat.
Enterprise
Unlimited
Custom quotas, dedicated infrastructure and a HIPAA BAA on request.
Full tier comparison on the pricing page. Endpoint reference in the docs.
FAQ
Frequently asked questions
What does the food recognition API return?
Is photo recognition on the free tier?
Which cuisines does it recognise?
What happens to the photo?
How does energy balance work?
Connect your first wearable today
Free for up to 3 connected users. No credit card. Your first API key is issued the moment you sign up.