Nutrition API

Read what your users already log.

Your users are already logging meals somewhere. Sahha reads 40 nutrition fields out of 22 connected apps, from calories and macros through to selenium and iodine, normalized to one schema. No food logging to build and no nutrient database to license.

Free for 30 days · No credit card

22
connected sources
40
nutrition fields
27
vitamins and minerals
Daily
per-metric rollup
FitFocusSuggesticPrescribeLife.AIPrismatic StackIntervengineNowFit
Why Sahha

What you do not have to build.

    • MyFitnessPalsame day
    • Cronometersame day
    • Lose Itsame day
    protein_intake128g

    No logging screen, no database licence

    Food logging is a product in itself: a search box, a barcode scanner, a nutrient database to license and keep current, and a user willing to do it three times a day. Sahha returns the finished daily total from the app they already chose, so none of that is yours to build or maintain.

  • Vitamins and minerals
    27
    Energy, macros, water
    13

    Micronutrients, not just macros

    Calories and the big four are table stakes. Sahha returns 27 vitamins and minerals as their own fields alongside them, so a product that cares about iron, folate or sodium reads the number rather than inferring it from a meal name.

  • 22

    food and hydration apps read through one integration

    You do not have to pick the winning app

    Your users are scattered across twenty food and hydration apps and none of them is going to switch for you. Integrating one means missing everyone on the others; Sahha reads all of them through a single connection, so the app someone prefers stops being your problem.

API reference

Every endpoint, payload and field.

Energy, protein, carbohydrate, the five fat breakdowns, cholesterol, sugar, fiber, water and caffeine. One value per nutrient per day, in a fixed unit.

GET /api/v1/profile/biomarker/{externalId}?categories=nutrition
{
  "id": "a91f7c04-3d62-4e18-b5a7-0c93e2d18f56",
  "type": "protein_intake",
  "category": "nutrition",
  "value": "128",
  "valueType": "double",
  "unit": "gram",
  "aggregation": "total",
  "periodicity": "daily",
  "startDateTime": "2026-08-11T00:00:00+12:00",
  "endDateTime": "2026-08-11T23:59:59+12:00",
  "createdAtUtc": "2026-08-12T06:10:00Z"
}

Macronutrients and intake 13

FieldDescriptionUnit
energy_intake Total energy consumed kcal
protein_intake Total protein consumed gram
carbohydrate_intake Total carbohydrate consumed gram
fat_intake Total dietary fat consumed gram
fat_saturated_intake Saturated fat consumed gram
fat_monounsaturated_intake Monounsaturated fat consumed gram
fat_polyunsaturated_intake Polyunsaturated fat consumed gram
fat_trans_intake Trans fat consumed gram
cholesterol_intake Cholesterol consumed milligram
sugar_intake Total sugar consumed gram
fiber_intake Dietary fiber consumed gram
water_intake Total water consumed liter
caffeine_intake Total caffeine consumed milligram

Coverage depends on the logging app. Every connected source supplies energy and the core macros; the fat breakdowns and caffeine depend on what the user’s app records.

The full vitamin and mineral set, returned as its own fields rather than estimated from a meal name. This is the layer most nutrition integrations do not expose at all.

GET /api/v1/profile/biomarker/{externalId}?categories=nutrition
{
  "id": "6b28d15e-9a47-4c30-8ef2-71b4a0c635d9",
  "type": "iron_intake",
  "category": "nutrition",
  "value": "14.2",
  "valueType": "double",
  "unit": "milligram",
  "aggregation": "total",
  "periodicity": "daily",
  "startDateTime": "2026-08-11T00:00:00+12:00",
  "endDateTime": "2026-08-11T23:59:59+12:00",
  "createdAtUtc": "2026-08-12T06:10:00Z"
}

Vitamins and minerals 27

FieldNutrientUnit
vitamin_a_intake Vitamin A microgram
vitamin_c_intake Vitamin C milligram
vitamin_d_intake Vitamin D microgram
vitamin_e_intake Vitamin E milligram
vitamin_k_intake Vitamin K microgram
vitamin_b6_intake Vitamin B6 milligram
vitamin_b12_intake Vitamin B12 microgram
thiamin_intake Thiamin, B1 milligram
riboflavin_intake Riboflavin, B2 milligram
niacin_intake Niacin, B3 milligram
pantothenic_acid_intake Pantothenic acid, B5 milligram
biotin_intake Biotin, B7 microgram
folate_intake Folate, B9 microgram
calcium_intake Calcium milligram
iron_intake Iron milligram
magnesium_intake Magnesium milligram
phosphorus_intake Phosphorus milligram
potassium_intake Potassium milligram
sodium_intake Sodium milligram
zinc_intake Zinc milligram
chloride_intake Chloride milligram
copper_intake Copper milligram
manganese_intake Manganese milligram
chromium_intake Chromium microgram
molybdenum_intake Molybdenum microgram
selenium_intake Selenium microgram
iodine_intake Iodine microgram

Micronutrient coverage is the clearest difference between logging apps. Cronometer records most of this set; a calorie-first tracker will populate few of these fields.

Individual entries as they are logged rather than the daily rollup, each naming the app that recorded it. This is the one layer delivered by webhook only.

POST your webhook endpoint
[
  {
    "logType": "nutrition",
    "dataType": "energy_intake",
    "externalId": "ext-908",
    "receivedAtUtc": "2026-08-11T12:41:00+00:00",
    "dataLogs": [
      {
        "id": "b7104f2c-5e83-4a19-9d6b-3f21c8e07a45",
        "parentId": null,
        "value": 612,
        "unit": "kcal",
        "source": "MyFitnessPal",
        "recordingMethod": "RECORDING_METHOD_MANUAL_ENTRY",
        "startDateTime": "2026-08-11T12:30:00+12:00",
        "endDateTime": "2026-08-11T12:30:00+12:00",
        "additionalProperties": {}
      }
    ]
  }
]

The layer that runs both ways. Reserved tags such as appetite_changes arrive on their own when a user logs one in their phone’s health app; fasting windows, supplement stacks and coaching plans you post yourself.

POST /api/v1/profile/tag/{externalId}
{
  "type": "state",
  "category": "nutrition",
  "name": "fasting_window",
  "value": "16_hour",
  "source": "acme.nutritionapp",
  "startDateTime": "2026-08-14T20:00:00+12:00",
  "endDateTime": "2026-08-15T12:00:00+12:00",
  "additionalProperties": {
    "protocol": "16_8"
  }
}
  • REST API

    Pull any of it on demand, per profile, whenever your app asks.

  • Webhooks

    Or have it pushed to your endpoint as it arrives, so you never have to poll for it.

  • Mobile SDK

    Read straight from the device on iOS and Android, with no round trip.

What you build

What reading an existing food log lets you ship.

Skip the food logger

Ship nutrition features without building search, barcode scanning or a nutrient database, and without asking a user to log their meals twice.

Browse integrations

Recommend on real gaps

A supplement or coaching recommendation grounded in a user’s actual iron, folate or fiber intake beats one grounded in a signup questionnaire.

Supplement brands

Pair intake with output

Energy in against energy burned, on one profile and one timeline, which is the whole calculation a weight management product runs on.

Weight management

Explain a bad night

Caffeine at 4pm and a late heavy meal are the obvious suspects behind poor sleep. Both are fields, sitting on the same profile as the sleep score.

Sleep API

Track hydration properly

Water intake is its own field, read from dedicated hydration apps as well as general food loggers, rather than inferred from anything.

Sahha Biomarkers

Measure a protocol

Tag a fasting window, a cut or a diet phase and compare intake and body metrics inside it against everything outside it.

Sahha Tags
How it compares

Three ways to get nutrition data.

Sahha Nutrition API Food database APIs Build it yourself
Food and recipe lookup
What a user actually ate If they log it
Logging UI to build None Yours Yours
Micronutrient fields 27 Per food
Normalized across apps On you
Time to ship Days Weeks Months

The first row is the honest one: Sahha has no food, recipe or barcode database and cannot tell you what is in an apple. A food database answers "what is in this food"; Sahha answers "what did this person eat". Teams building a logging experience from scratch usually need both, and FatSecret is one of the sources Sahha reads from.

What building it yourself actually costs

FAQ

Questions that come up before you integrate.

Is this a food or recipe database?

No. Sahha has no food catalogue, no barcode lookup and no recipe data, and cannot tell you what is in a given food. It reads what a user has already logged in an app that does have those things, and returns it as normalized daily nutrition fields. If you need lookup, a food database API is the right tool and the two work together.

Is there a nutrition score?

No, and that is deliberate. Sahha scores sleep, activity, readiness, mental wellbeing and overall wellbeing, all from passively collected signal. Nutrition data is self-reported, so it is only as complete as what someone remembered to log. Scoring it would hide those gaps behind a number rather than show them. You get the fields and decide what they mean for your product.

Where does the data actually come from?

From the food and hydration apps your users already use, including MyFitnessPal, Cronometer, Lose It, YAZIO, Lifesum, MacroFactor, Carb Manager, FatSecret, My Macros+ and WaterMinder. Most write to Apple Health or Health Connect, which Sahha reads with a single permission prompt, so there is no per-app integration work.

Do I get micronutrients or just calories and macros?

Both, where the logging app records them. Alongside energy, protein, carbohydrate, the fat breakdowns, sugar, fiber, water and caffeine, Sahha returns 27 vitamins and minerals as their own fields. Coverage varies by app: Cronometer records most of the micronutrient set, while a calorie-first tracker will populate few of those fields.

What if a user logs in more than one app?

Sahha reconciles them into one value per nutrient per day, so a meal entered twice is not counted twice. The raw entries from every source stay available, so you can always see which reading fed the daily number.

What happens on days a user logs nothing?

You get nothing for those days, and that is the honest answer. Unlike sleep or activity, nutrition cannot be inferred from passive signal: if nobody logged a meal, there is no meal. Design for gaps rather than assuming a continuous series.

Is Sahha HIPAA and GDPR compliant?

Yes, and SOC 2. Health data is handled under all three, and the end-user consent screens are configurable to carry your brand rather than Sahha’s.

Add nutrition data in days.

One integration for every food logger your users already use, normalized to one schema with no logging screen of your own.

Free for 30 days · No credit card

  • 40 nutrition fields, macros through micronutrients
  • Read from the apps they already log in, no new UI
  • One schema and fixed units across every source
  • HIPAA, GDPR and SOC 2, with your brand on the consent screen