Docs/Sources/Calories Burned Grounding Data

Calories Burned Grounding Data

Calculate Calories Burned for 1,100+ Activities

OperationalCredits 1 per callp50 145msHealth/Wellness

Overview

Activities and MET values come from the 2024 Adult Compendium of Physical Activities (Herrmann SD, Willis EA, Ainsworth BE, et al. 2024 Adult Compendium of Physical Activities: A third update of the energy costs of human activities. J Sport Health Sci. 2024;13(1):6-12; https://pacompendium.com). The Compendium is free for commercial use with citation. A monthly collector copies its activity tables into our storage; MET values are stored and returned exactly as published.

Calories per minute are `met x 3.5 x weightKg / 200`: one MET is 3.5 ml of oxygen per kilogram per minute and a litre of oxygen releases about 5 kcal. `caloriesPerHour` and `totalCalories` are rounded to whole kcal. `intensity` classifies the standard MET with the Physical Activity Guidelines bands: light under 3, moderate 3 to 5.9, vigorous 6 and above, with 1.5 or below reported as sedentary.

With `age`, `sex` and `height` (all three) the API estimates resting metabolic rate with Mifflin-St Jeor (10 x kg + 6.25 x cm - 5 x age, plus 5 for men or minus 161 for women); `rmr` replaces the estimate with a measured value. That rate is converted to ml O2/kg/min and `correctedMet = met x 3.5 / RMR`, the Compendium's corrected MET method; calories then use the corrected value. `minutesToBurn` is `calories` divided by calories per minute. Search ranks activities that contain every word of the query (after synonyms such as biking to bicycling), preferring general and non-competitive entries, and falls back to partial matches.

Live Test Calories Burned Grounding Data Source →

The tool

Once your client is connected to the VerveContext server, this appears in its tool list as CaloriesBurnedGroundingData. It is read-only and open-world — it fetches and never mutates anything on your side — so most clients call it without asking you to confirm.

Tool call
{
  "name": "CaloriesBurnedGroundingData",
  "arguments": {}
}

Connecting

One server URL covers every source in the catalog, including this one. Authorization is OAuth: the client opens a browser once, and there is no key to paste into a config file.

{
  "mcpServers": {
    "vervecontext": {
      "url": "https://api.vervecontext.com/v1/mcp"
    }
  }
}

Per-client setup — Claude, Cursor, VS Code, ChatGPT — is on the MCP setup page.

Arguments

These are the properties on the tool's inputSchema, so a well-behaved client validates them before the call is made. Premium arguments are accepted on every plan but only take effect on plans that include them.

ArgumentTypeDescription
activityOptionalstringActivity to search for, e.g. running, biking, yoga or mowing lawn. Required unless code is given.
length 0–100
codeOptionalstringFive-digit Compendium activity code to look up directly, e.g. 12150.
length 5–5
weightOptionalnumberBody weight in kg (metric) or lb (imperial). Defaults to 70 kg.
range 1–1100
unitOptionalstringUnit system for weight and height: metric (kg, cm) or imperial (lb, in). Defaults to metric.
metricimperial
durationOptionalnumberDuration of the activity in minutes (1-1440). Defaults to 60.
range 1–1440
caloriesOptionalnumberCalorie target: adds minutesToBurn, the minutes each activity takes to burn this many kcal.
range 1–20000
ageOptionalPremiumintegerAge in years (18-120), for a personalised estimate with sex and height.
range 18–120
sexOptionalPremiumstringSex for the resting metabolic rate estimate, with age and height.
malefemale
heightOptionalPremiumnumberHeight in cm (metric) or inches (imperial), with age and sex.
range 1–300
rmrOptionalPremiumnumberMeasured resting metabolic rate in kcal per day (500-5000). Overrides age, sex and height.
range 500–5000
limitOptionalPremiumintegerNumber of matching activities to return (1-25). Defaults to 5.
range 1–25

What the model gets back

The result carries a structuredContent object matching the tool's declared outputSchema, so a client reads fields without parsing prose. status is "ok" and error is null on success; a null field means the value was not available for that input, not that the call failed.

Result
{
  "status": "ok",
  "error": null,
  "data": {
    "query": "running",
    "count": 5,
    "totalMatches": 73,
    "weightKg": 70,
    "durationMinutes": 30,
    "targetCalories": null,
    "personalized": false,
    "rmrKcalPerDay": null,
    "activities": [
      {
        "code": "12145",
        "activity": "Running, self-selected pace",
        "heading": "Running",
        "met": 10.5,
        "correctedMet": null,
        "intensity": "vigorous",
        "caloriesPerHour": 772,
        "durationMinutes": 30,
        "totalCalories": 386,
        "minutesToBurn": null
      },
      {
        "code": "12140",
        "activity": "Running, cross country",
        "heading": "Running",
        "met": 9.3,
        "correctedMet": null,
        "intensity": "vigorous",
        "caloriesPerHour": 684,
        "durationMinutes": 30,
        "totalCalories": 342,
        "minutesToBurn": null
      },
      {
        "code": "12170",
        "activity": "Running, stairs, up",
        "heading": "Running",
        "met": 15,
        "correctedMet": null,
        "intensity": "vigorous",
        "caloriesPerHour": 1103,
        "durationMinutes": 30,
        "totalCalories": 551,
        "minutesToBurn": null
      },
      {
        "code": "12150",
        "activity": "Running (Taylor Code 200)",
        "heading": "Running",
        "met": 8,
        "correctedMet": null,
        "intensity": "vigorous",
        "caloriesPerHour": 588,
        "durationMinutes": 30,
        "totalCalories": 294,
        "minutesToBurn": null
      },
      {
        "code": "12180",
        "activity": "Running, on a track, team practice",
        "heading": "Running",
        "met": 10,
        "correctedMet": null,
        "intensity": "vigorous",
        "caloriesPerHour": 735,
        "durationMinutes": 30,
        "totalCalories": 368,
        "minutesToBurn": null
      }
    ]
  }
}

Response fields

Paths are relative to data. Premium fields are absent rather than zeroed on plans that do not include them, so check for presence instead of comparing to 0.

FieldTypeExampleDescription
querystringrunningThe activity searched for, or the code looked up
countnumber5Number of activities returned
totalMatchesnumber73Number of activities that matched the search
weightKgnumber70Body weight used, in kilograms
durationMinutesnumber30Duration used, in minutes
targetCaloriesobjectnullThe calorie target from the calories parameter, or null
personalizedbooleanfalseWhether results use a resting metabolic rate (corrected METs)
rmrKcalPerDayPremiumobjectnullResting metabolic rate used, kcal per day: measured, or estimated with Mifflin-St Jeor
activitiesarray[5]Matching activities, best match first
activities.0.codestring12145Five-digit Compendium activity code
activities.0.activitystringRunning, self-selected paceActivity description as published in the Compendium
activities.0.headingstringRunningCompendium major heading, e.g. Running or Water Activities
activities.0.metnumber10.5Standard MET value as published in the Compendium
activities.0.correctedMetPremiumobjectnullMET corrected for the person's resting metabolic rate; null unless personalised
activities.0.intensitystringvigorousIntensity class of the standard MET: sedentary (1.5 or less), light (under 3), moderate (3 to 5.9) or vigorous (6 or more)
activities.0.caloriesPerHournumber772Calories (kcal) burned per hour
activities.0.durationMinutesnumber30Duration the total is for, in minutes
activities.0.totalCaloriesnumber386Calories (kcal) burned over the duration
activities.0.minutesToBurnobjectnullMinutes this activity takes to burn targetCalories; null without the calories parameter

Why ground on it

A model can produce something that looks like this answer from its training data, and be confidently out of date or simply wrong. This source returns the current value in a shape you can check, which is the difference between an answer you can cite and one you have to hedge.

Point an evaluation at query: it is the field most worth pinning a claim to, and it is either present and current or absent — never plausibly invented.

Failure modes

Errors come back as tool errors carrying a sentence the model can act on, not a bare status code. Error handling covers the full list.

StatusWhat it means
400 / 422The arguments did not validate. The message names the offending one.
401The OAuth session is invalid or expired — reconnect the server.
403Blocked by a key restriction or an IP allow-list. Never a bad identity.
404This source is not part of VerveContext. Check the catalog.
429Out of credits, or a brief rate limit. The message tells them apart.

A call costs 1 credit each time the tool actually runs; a model that reasons about the tool without calling it costs nothing.

Use cases

Workout Logging Apps
Fitness apps turn a logged activity and duration into calories burned, showing the MET and intensity class so users see why a session counted the way it did.
Calorie Goal Planning
Nutrition coaches use the reverse mode to tell clients how many minutes of walking, cycling or swimming offset a snack or meal.
Corporate Wellness Challenges
Step and activity challenges convert mixed activities, from yard work to basketball, into one comparable calorie or MET-minute total.
Wearable and Health Platforms
Device makers fill in activities their sensors cannot classify with Compendium-based estimates personalised to the wearer's age, sex, height and weight.

Other ways to use Calories Burned Grounding Data

Set up Calories Burned Grounding Data on VerveContext, or reach the same source a different way. Your VerveContext account and credits work on all of them — one key, one balance.

Call it as a REST APIOne HTTPS endpoint and an x-api-key header, with SDKs for Node, Python and .NET.APIVerve →Reference →
Give it to an AI agentConnect over MCP and your agent calls it as a native tool — Claude, Cursor, ChatGPT.VerveKit →Reference →
Google Sheets or ExcelA =VERVE() formula fills a column — no script, no export, recalculates in place.VerveSheets →Reference →

More in Health/Wellness:

Was this page helpful?