Exercise API calories: how MET values work
2026-09-10 · 7 min
Calories burned for an exercise are calculated from its MET value with one formula: kcal per minute = MET × 3.5 × bodyweight in kg ÷ 200. A MET is a multiple of resting metabolic rate, so a 3.5 MET exercise burns three and a half times what sitting still burns. The only inputs are the MET of the movement, the person's weight, and the duration. FitExerciseDB stores a MET on all 1,324 exercises and will do the arithmetic for you in the same request, so a client app never has to hard-code a table of coefficients that goes stale.
In short
- kcal per minute = MET × 3.5 × kg ÷ 200. Multiply by minutes for the session.
- A MET is a multiple of resting rate: 1 MET is sitting, 3.5 METs is a light sit-up, 8 METs is running.
- Bodyweight is required. Any API that returns calories without asking for weight is guessing.
- GET /v1/exercises/{id}/calories?bodyweightKg=80&minutes=30 returns the number directly.
- MET tables are population averages, so treat the result as an estimate, not a measurement.
What is a MET value?
MET stands for metabolic equivalent of task. One MET is the energy your body uses sitting quietly, about 3.5 millilitres of oxygen per kilogram of bodyweight per minute. Every activity is then expressed as a multiple of that baseline. A slow walk is around 3 METs, a 3/4 sit-up is 3.5, and running at a good pace is 8 or more.
The values come from the Compendium of Physical Activities, the reference list researchers maintain by measuring oxygen consumption across activities. That is why MET is the unit fitness apps converge on: it is a measured, published constant per movement, not a vendor's invention.
What is the formula for calories burned?
The standard conversion is:
kcal per minute = MET × 3.5 × bodyweight in kg ÷ 200
The 3.5 is the oxygen cost of one MET, and the 200 converts millilitres of oxygen into kilocalories. Multiply the result by the number of minutes for a session total.
| Input | Where it comes from |
|---|---|
| MET | The exercise record, a published constant |
| Bodyweight in kg | The user, the only personal input |
| Minutes | The session |
A worked example
Take a 3/4 sit-up, MET 3.5, for a person of 80 kg over 30 minutes:
3.5 × 3.5 × 80 ÷ 200 = 4.9 kcal per minute, so 30 minutes is about 147 kcal.
The same movement for a 60 kg person gives 3.7 kcal per minute, about 110 kcal. The difference is entirely bodyweight, which is why an API that returns a single calorie figure without asking for weight cannot be right for both people.
How do you get it from the API in one call?
Rather than shipping a MET table inside your client and doing the maths there, ask for the number:
GET https://api.fitexercisedb.com/v1/exercises/0001/calories?bodyweightKg=80&minutes=30
Authorization: Bearer <your key>The response carries the kilocalories along with the MET used, so you can show the user both the estimate and where it came from. Every exercise detail response also includes met, caloriesPerMinute and averageCaloriesPerHour, and a _links.calories entry pointing at the endpoint above, which makes the API self-describing for agents and tool-use loops.
The free tier gives 10 requests a day with no card, which is enough to wire this up and see the shape of the data. The full reference is in the API docs.
How accurate is a MET estimate?
It is an estimate and should be presented as one. MET values are population averages measured on groups of people, so they do not account for individual fitness, body composition, technique, or how hard someone is actually working on a given set. Two people of the same weight doing the same movement can differ by a wide margin.
- Good for: comparing exercises, budgeting a session, showing relative effort, trends over weeks.
- Not good for: clinical or nutritional precision, or anything a user might treat as a medical number.
- Say so in the interface: label it "estimated", which is both honest and what app stores expect from health features.
The reference values are documented publicly in the Compendium of Physical Activities.
What to build with it
Once calories are one request away, the useful features are small: a session total that updates as the user adds exercises, a weekly energy trend, a swap suggestion that offers a higher-MET alternative for the same muscle, or a plan that targets a calorie budget. All of it rests on the same three inputs.
Browse the data behind it in the exercise database, or start with a free key from the pricing page.
FAQ
- How do you calculate calories burned from a MET value?
- kcal per minute = MET × 3.5 × bodyweight in kg ÷ 200, then multiply by the number of minutes. For a 3.5 MET exercise at 80 kg, that is 4.9 kcal per minute.
- What is a MET value in fitness?
- A metabolic equivalent of task: a multiple of the energy used sitting quietly. 1 MET is rest, 3.5 METs is a light sit-up, 8 METs is running. The values come from the Compendium of Physical Activities.
- Does an exercise API need my bodyweight to return calories?
- Yes. Energy expenditure scales with bodyweight, so the same movement burns noticeably more for a heavier person. An API returning calories without a weight input is returning an average, not your number.
- Is there an exercise API that returns calories directly?
- FitExerciseDB does: GET /v1/exercises/{id}/calories?bodyweightKg=80&minutes=30 returns the kilocalories and the MET used. All 1,324 exercises carry a MET value, and the free tier needs no card.
- How accurate are MET-based calorie estimates?
- They are population averages, useful for comparing exercises and tracking trends, but not precise for an individual. Label them as estimates in your interface.