Skip To Main Content
All modules

Fitness

Fields marked * are required. Updates keep every field they are not given. An AI app can ask vritto_describe for the same details, filtered to what its connection may use.

Fitness Summaryfitness_summaryHealth, off until allowed

Dashboard, trends, insights, correlations, and yearly recap; read-only.

fitness_queryFitnessCorrelationsFindthrough vritto_find

Read honest journal-tag correlations over the last 90 days: 'on days tagged X, your sleep / resting HR / HRV averaged Y vs Z' with sample sizes. Statistics, not causal claims, needs enough tagged days to report anything (ready=false otherwise). The tags come from the user's private Journal and only entries they shared with AI are included (journalEntriesWithheld counts the rest): report the correlation itself and never quote, expand on, or speculate about what was written behind a tag.

No input.

fitness_queryFitnessDashboardFindthrough vritto_find

Read the fitness dashboard: profile with goals and units, 12 weeks of daily summaries, recent workouts with sets, routines, sleep sessions, measurements, PRs, hydration, and gear.

No input.

fitness_queryFitnessInsightsFindthrough vritto_find

Read server-computed daily insights: today's readiness score with band and disclosed component weights, a training prescription for today, weekly WHO-style intensity minutes vs the 150 target, and training load (fitness/fatigue/form). Quote these numbers instead of re-deriving them.

No input.

fitness_queryFitnessRecapFindthrough vritto_find

Read a year-in-review recap: workout count, total minutes and distance, strength sets, PR count, active days, total steps, and top activity for a given year.

FieldTypeDescription
yearintegerCalendar year; defaults to the current year.
fitness_queryFitnessTrendsFindthrough vritto_find

Read a year of slim daily series (steps, energy, exercise/zone minutes, sleep, resting HR, HRV, VO2max) plus weight history, for trend questions like 'is my resting HR improving'.

No input.

WorkoutworkoutHealth, off until allowed

One workout, cardio or strength.

fitness_upsertWorkoutCreate or Updatethrough vritto_create or vritto_update

Log a workout the user describes ('I ran 5k in 28 minutes this morning'). Provide durationSec or endedAt. For strength workouts include exercises with sets; mark warm-ups with setType 'warmup' (excluded from PRs). PRs are detected automatically. Include record.id to correct a previously logged workout.

FieldTypeDescription
record*object
record.idstringExisting workout ID from the dashboard to update. Omit to create.
record.activityType*stringUnified activity type, e.g. running, walking, cycling, strength_training, hiit, yoga, swimming_pool. Unknown values fall back to 'other'.
record.titlestring
record.startedAt*stringISO date-time when the workout started.
record.endedAtstringISO date-time when the workout ended, alternative to durationSec.
record.durationSecintegerDuration in seconds. Required unless endedAt is provided.
record.timeZoneIdstringIANA time zone of the workout, e.g. 'America/New_York'.
record.distanceMnumber
record.activeEnergyKcalnumber
record.avgHrnumberAverage heart rate, bpm.
record.maxHrnumberMax heart rate, bpm.
record.elevationGainMnumberElevation gain in meters.
record.effortRpenumberPerceived effort 1-10; 7+ counts as vigorous.
record.feelsintegerHow the workout felt, 1 (awful) to 5 (great).
record.notesstring
record.routineIdstringID of the routine this workout followed, from the dashboard's routines: never invented.
record.exerciseslist of objectStrength exercises with sets; omit for cardio.
Example input
{
  "record": {
    "activityType": "running",
    "title": "Morning 5K",
    "startedAt": "2026-09-26T07:05:00-05:00",
    "durationSec": 1680,
    "distanceM": 5000
  }
}

Sleep Sessionsleep_sessionHealth, off until allowed

One night's sleep or a nap.

fitness_upsertSleepSessionCreate or Updatethrough vritto_create or vritto_update

Log a sleep session ('I slept 11pm to 7am'). Wake time must be after bed time. Include record.id to correct a previously logged session.

FieldTypeDescription
record*object
record.idstringExisting sleep session ID from the dashboard to update. Omit to create.
record.startedAt*stringISO date-time the user went to bed.
record.endedAt*stringISO date-time the user woke up.
record.timeZoneIdstringIANA time zone of the night, e.g. 'America/New_York'.
record.isNapboolean
record.qualityRatinginteger
record.interruptionsintegerNumber of times the user woke during the night.
record.stageslist of objectSleep-stage spans, if the user reports them. Usually omit for manual logs.
record.notesstring
Example input
{
  "record": {
    "startedAt": "2026-09-25T23:10:00-05:00",
    "endedAt": "2026-09-26T06:50:00-05:00",
    "qualityRating": 4
  }
}

Body Measurementbody_measurementHealth, off until allowed

A weight, body fat, or body measurement.

fitness_upsertMeasurementCreate or Updatethrough vritto_create or vritto_update

Log a body measurement. SI units: kg for weight/lean_mass, cm for lengths, percent for body_fat. Include record.id to correct a previously logged measurement.

Note: SI units: kg for weight and lean mass, cm for lengths, percent for body fat.

FieldTypeDescription
record*object
record.idstringExisting measurement ID from the dashboard to update. Omit to create.
record.type*one of weight, body_fat, lean_mass, height, neck, shoulders, chest, waist, hips, biceps_left, biceps_right, forearm_left, forearm_right, thigh_left, thigh_right, calf_left, calf_right
record.value*numberSI value (kg / cm / percent).
record.measuredAtstringISO date-time; defaults to now.
record.notesstring
Example input
{
  "record": {
    "type": "weight",
    "value": 78.4,
    "measuredAt": "2026-09-26T07:30:00-05:00"
  }
}

HydrationhydrationHealth, off until allowed

Water the user drank.

fitness_logHydrationCreatethrough vritto_create

Log water the user drank, in milliliters.

FieldTypeDescription
volumeMl*numberVolume in ml, e.g. 500.
loggedAtstringISO date-time the water was drunk; defaults to now. Use for backfills like 'this morning'.
Example input
{
  "volumeMl": 500
}

Daily Activitydaily_activityHealth, off until allowed

A day's manual activity totals: steps, exercise, energy.

fitness_logActivityUpdatethrough vritto_update

Set the user's manual daily activity totals (steps, exercise minutes, active energy, distance, mindful minutes). Values REPLACE the day's manual entry: read the dashboard first when adjusting.

Note: Values replace the day's manual entry; read the dashboard first when adjusting.

FieldTypeDescription
datestringDefaults to today.
stepsinteger
exerciseMinutesnumber
activeEnergyKcalnumber
distanceMnumber
floorsnumberFloors/flights climbed.
mindfulMinutesnumber
timeZoneIdstringIANA time zone the day belongs to, e.g. 'America/New_York'.
Example input
{
  "date": "2026-09-25",
  "steps": 9420,
  "exerciseMinutes": 35
}

NutritionnutritionHealth, off until allowed

A meal's calorie and macro totals.

fitness_logNutritionCreatethrough vritto_create

Log a meal's nutrition totals (calories, protein, carbs, fat), light totals only, not a food database. At least one value must be > 0. Each call creates a new log entry that rolls into the day's totals.

FieldTypeDescription
namestringWhat was eaten, e.g. 'Chicken burrito'.
mealTypeone of breakfast, lunch, dinner, snack, unknownDefaults to 'unknown'.
kcalnumberCalories.
proteinGnumberProtein in grams.
carbsGnumberCarbohydrates in grams.
fatGnumberFat in grams.
loggedAtstringISO date-time the meal was eaten; defaults to now. Use for backfills.
Example input
{
  "name": "Chicken burrito bowl",
  "mealType": "lunch",
  "kcal": 720,
  "proteinG": 48,
  "carbsG": 70,
  "fatG": 24
}