write scope, and every request body must be valid JSON sent with Content-Type: application/json.
Nothing deletes. There are no
DELETE routes and no bulk-clear operations. Open the app to correct or remove an entry you did not mean to log.No AI-billed operations are available via the API. Coach responses and photo logging are not reachable here.
POST /v1/water — Log a water intake entry
Adds a water intake entry to your log. You can optionally supply a date to back-fill a previous day; without one, the entry is assigned to today in UTC. Bounds:amountMl must be between 1 and 5000 millilitres.
Request body
number
required
Volume of water to log in millilitres. Must be between 1 and 5000.
string
Calendar date to log the entry on, in
YYYY-MM-DD format. Defaults to today in UTC.POST /v1/food — Log a food entry
Adds a food item to your nutrition log. Onlyname and calories are required; the macro fields are optional but recommended for accurate daily totals. If you omit meal, the entry is filed under snack.
Request body
string
required
Name of the food or meal item.
number
required
Calorie count for this entry in kcal.
number
Protein content in grams.
number
Carbohydrate content in grams.
number
Fat content in grams.
string
Meal slot to assign this entry to. One of
breakfast, lunch, dinner, or snack. Defaults to snack.string
Calendar date to log the entry on, in
YYYY-MM-DD format. Defaults to today in UTC.POST /v1/weight — Log a body weight measurement
Records a body weight weigh-in. If a weigh-in already exists for the target date, this replaces it rather than creating a second entry — so it is safe to send an updated reading for the same day. Bounds:weightKg must be between 20 and 400 kilograms.
Request body
number
required
Body weight in kilograms. Must be between 20 and 400.
string
Calendar date to record the weigh-in on, in
YYYY-MM-DD format. Defaults to today in UTC.POST /v1/workouts — Log a workout session
Records a complete workout session including all exercises and their sets. You may include a total duration and a specific date; without a date the session is assigned to today in UTC. Limits:- Maximum 20 exercises per session.
- Maximum 30 sets per exercise.
- Maximum 2 sessions per calendar day. A third POST on the same date returns a
400with an explanation — it is not silently dropped.
Request body
object[]
required
Array of exercises performed in the session. Each object must include a
name and a sets array.string
required
Name of the exercise (for example
"Squat" or "Bench Press").object[]
required
Array of sets performed for this exercise. Each set must include
reps and may include weightKg.number
required
Number of repetitions completed in this set.
number
Load used for this set in kilograms. Omit for bodyweight exercises.
number
Total session duration in minutes. Optional.
string
Calendar date to assign the session to, in
YYYY-MM-DD format. Defaults to today in UTC.POST /v1/rest-days — Mark dates as rest days
Marks one or more calendar dates as planned rest days. You can submit up to 31 dates in a single request, which makes it easy to pre-schedule a full month at once. Limit: Maximum 31 dates per request.Request body
string[]
required
Array of calendar dates to mark as rest days, each in
YYYY-MM-DD format. Maximum 31 entries per request.