What the micronutrient biomarkers measure
Daily logged intake of each vitamin and mineral, on days with at least one log, over a midnight-to-midnight window in the profile’s local time zone. None requires a wearable.
Vitamins
| Biomarker | Unit |
|---|---|
vitamin_a_intake | Micrograms |
vitamin_c_intake | Milligrams |
vitamin_d_intake | Micrograms |
vitamin_e_intake | Milligrams |
vitamin_k_intake | Micrograms |
thiamin_intake (B1) | Milligrams |
riboflavin_intake (B2) | Milligrams |
niacin_intake (B3) | Milligrams |
pantothenic_acid_intake (B5) | Milligrams |
vitamin_b6_intake | Milligrams |
biotin_intake (B7) | Micrograms |
folate_intake (B9) | Micrograms |
vitamin_b12_intake | Micrograms |
Minerals
| Biomarker | Unit |
|---|---|
calcium_intake | Milligrams |
iron_intake | Milligrams |
magnesium_intake | Milligrams |
phosphorus_intake | Milligrams |
potassium_intake | Milligrams |
sodium_intake | Milligrams |
zinc_intake | Milligrams |
chloride_intake | Milligrams |
copper_intake | Milligrams |
manganese_intake | Milligrams |
chromium_intake | Micrograms |
molybdenum_intake | Micrograms |
selenium_intake | Micrograms |
iodine_intake | Micrograms |
| Access | |
|---|---|
| API | GET /api/v1/profile/biomarker/{externalId}?categories=nutrition plus one types parameter per field and a date range |
| Webhook | BiomarkerCreatedIntegrationEvent. Entries update in place, upsert on id. |
Data sources
| Platform | Record | Notes |
|---|---|---|
| iOS, HealthKit | The dietary type for each nutrient | Written by detailed loggers, Cronometer above all. Most apps write none of these. |
| Android, Health Connect | NutritionRecord fields | Same, plus Samsung Health for a subset |
| Direct integrations | None | |
| Phone only | Manual entry, or entries your own app writes |
How Sahha calculates vitamins and minerals
- Pick one source for the day, per nutrient. The source with the highest daily total of that nutrient wins.
- Sum the winning source’s entries with an end time inside the local day.
Absence means no source logged that nutrient that day, which is the normal state for nearly every profile.
Interpreting the values
Coverage decides everything. Before building on any of these, count profiles with a value in the last 30 days. It will be a small number.
Two fields have a product use beyond a breakdown table. Sodium and potassium relate to blood pressure and are the micronutrients a cardiovascular feature might reasonably surface. Iron and vitamin D are the ones supplement features most often target.
The rest belong in a table, not a feature. A nutrient breakdown view for users who log in detail is the honest ceiling.
Related scores and insights
None of the 27 is a score factor or has a trend or comparison insight. The supplement recommendations by archetype guide shows how to build supplement features from archetypes rather than from logged micronutrients, which is the path that works for users who do not log.
Use cases
A breakdown table for detailed loggers. Show every field with a value for the day, hide the rest. Do not render 27 blank rows.
GET /api/v1/profile/biomarker/{externalId}?categories=nutrition&types=sodium_intake&types=potassium_intake&types=iron_intake&types=vitamin_d_intake&startDateTime=2026-08-27&endDateTime=2026-09-03A sodium note next to blood pressure. For users who log and own a cuff, the two together are a coherent story. For everyone else, neither field exists.
Limitations
- Logged only, and rarely logged.
- Per-nutrient winners. A day’s nutrients can come from different apps.
- Absence is not zero for any field.
Related guides
- Macronutrients for the energy-bearing nutrients
- Energy intake for how nutrition sources and selection work
- Supplement recommendations by archetype for the archetype-driven alternative
- Data dictionary in the developer docs