Nutrition & Energy Balance data from every wearable, in one schema

Photo-based meal recognition with per-dish macros, fused with wearable burn into daily energy balance.

3 / 3

Providers connectable today

1

Webhook events in this family

grams for macros, kilocalories for energy

Canonical units

What nutrition & energy balance looks like through one API

Nutrition is the half of the energy equation wearables cannot see. A device measures expenditure; it has no idea what went in. Products that want to show a deficit have historically had to integrate a second vendor for food logging and then reconcile two incompatible daily boundaries themselves.

WearLink ingests nutrition directly. A user uploads a meal photo, the vision pipeline returns per-item dishes with grams and macros verified against a curated food database, and the result lands on the same event bus as the wearable data. Three webhook events cover the lifecycle: nutrition.log.created when the photo is accepted, nutrition.log.recognized when recognition completes, and nutrition.log.corrected when a user edits a result.

That correction event is the one most teams underuse. Every user edit is a labelled example — which dishes your population eats, which the model gets wrong, and where portion estimates drift. It is a training signal delivered as a webhook.

The food database is weighted toward Indian and South-Asian dishes as well as Western plates, because most nutrition APIs are built on US-centric databases and fail on a thali, a masala dosa or a paneer butter masala. Low-confidence recognitions route to human review rather than guessing.

Where providers disagree

The part that costs you weeks if you build this yourself. None of the following is a WearLink limitation — it is how the underlying providers actually behave.

Intake and expenditure use different day boundaries

Wearable days are bounded by device-local midnight; meal logs are bounded by when the user actually logged. A late-night meal logged after midnight lands on the wrong side of a naive join. The energy-balance endpoint applies one consistent boundary to both sides.

Portion estimation is the dominant error source

Dish identification from a photo is comparatively reliable; estimating grams from a two-dimensional image is not. Expect portion to be the field users correct most, and design the UI so correcting it is one tap rather than a form.

Regional coverage varies by database, not by model

Recognition quality tracks whether the dish exists in the underlying food database. A dish absent from the database cannot be scored no matter how clearly it is photographed, which is why the regional curation matters more than the vision model.

Providers that supply nutrition & energy balance

Status is read from the same provider table the rest of the site uses, so nothing here can claim a provider is connectable when it is not. Coverage also varies by hardware generation within a brand.

ProviderCategoryStatus
Apple HealthMobile SDKMobile SDK
Google Health ConnectMobile SDKMobile SDK
Samsung HealthMobile SDKMobile SDK

Webhook events for nutrition & energy balance

Subscribe to the summary event for settled records, and to the series streams when you need the underlying samples. Event names below are generated from the backend enum, so they cannot drift out of date relative to the API.

Summary object

nutrition.log.created

Frequently asked questions

How does photo-based meal logging work?
POST the image to the nutrition log endpoint; the API returns 202 immediately and recognition runs in the background. When it completes you receive nutrition.log.recognized with per-item dishes, grams and macros.
Does it handle Indian food?
Yes — the food database is curated for Indian and South-Asian dishes alongside Western foods, and multi-item plates such as thalis are split into per-dish rows rather than scored as one item.
What happens to photos and location data?
EXIF GPS coordinates are stripped before the image reaches storage.
Can I combine nutrition with wearable calorie burn?
That is what the energy-balance endpoint is for — it fuses logged intake with wearable expenditure into a single daily figure using one consistent day boundary for both sides.

Related data types

15 normalised data families in total — see them all or browse integrations by provider.