Changelog
0.3.1 - 2026-09-24
Fixed:
FoodPortion.selectionsent the portion's amount in the serving's unit as the number of servings, so a portion of a serving whose quantity isn't 1 (such as 6 oz or 100 g) was logged that many times over. It now sends the number of servings.Fixed: a request canceled through its
signalrejects with anAbortError, as documented, instead of aJanuaryErrorwith categorytransport.Fixed: the React demo's food detail predicts glucose for the amount shown; it sent one 6 oz serving as six servings.
The React demo logs the portion shown on a food's detail, and Tracking and Logs show each logged food as servings of its serving size, such as "1 × 6 oz".
0.3.0 - 2026-09-23
Upgrade required: 0.2.0 and earlier can't read food logs from the current API, which now sends
created_atWater logs with
waterLogs.create,list(daily totals in a chosen unit), anddelete, plusVolumeUnit(fl_oz,ml, andcup); the API accepts 0.1–101.4 cupsWeight logs with
weightLogs.createandlist(latest weight per day)Food logs send and read the API's
created_at, which replaceseaten_at;timestampUtcis unchanged. Water and weight logs usecreated_attoo, asconsumedAtandmeasuredAtLog list and summary
startandendmust be real calendar dates. An impossible date such as2026-02-31is rejected before any request, as aJanuaryErrorwith categorytransportwhosecauseis aTypeError, instead of rolling into the next monthServingSummaryandServingDetailscarryweightGramsand non-nullidandquantity;DetectedFood.idandquantityare non-nullBreaking:
AlternativeFood.id,RestaurantMenuEntry.id,LoggedFood.id, andServingOption.idare non-null strings, matching the current January APIfoodLogs.updatesends only the fields you set and rejects an empty updatefoodAnalysis.correctforwards a scan field for field, including a serving weight when it has oneA photo scan without
reasoningEffortnow uses the API's default, the reasoning-based analyzer; pass'none'for the standard oneThe React example adds a Tracking tab for meals, water, and weight with charts, food alternatives, and scan corrections
0.2.0 and earlier
Breaking:
DetectedFoodexposesservingandquantityinstead ofservings, matching the current January API;0.1.xfails to decode photo scans and description analysesFood alternatives are
AlternativeFoodvalues withservings: ServingSummary[]Food-log summaries per day or week with
foodLogs.getSummaryOptional photo analysis effort with
ScanFoodPhotoRequest.reasoningEffortRemoved the unused
NaturalLanguageFood,NaturalLanguageServing, andNaturalLanguageFoodDetectiontypesRestaurant and menu-item searches accept the v1.2 radius range through 50,000 meters
Typed Promise-based Web SDK for browser applications
Provider-managed short-lived tokens with single-flight refresh
Nine-attempt bounded exponential backoff with jitter
AbortSignal support across public requests
User-scoped foods, restaurants, food analysis, food logs, and glucose clients
Food autocomplete, full food details with
foods.get, and local portion calculationsBrowser photo preparation helper
Browser voice transcription with live levels and duration, without retaining recorded audio
Typed imperial and metric glucose-profile measurements
Shared, white-label-ready React demo components
Restaurant menu-item search, and paginated restaurant-menu lookup by restaurant ID (
getMenuItems)Single food-log retrieval and no-content deletion aligned with API
v1.2
Last updated
Was this helpful?