运动 API 的卡路里:MET 值怎么算
2026-09-10 · 7 min
一个动作消耗的卡路里由它的 MET 值用一条公式算出:每分钟千卡 = MET × 3.5 × 体重(kg) ÷ 200。MET 是静息代谢率的倍数,所以 3.5 MET 的动作消耗是静坐的三倍半。全部输入只有三项:动作的 MET、人的体重、持续时间。FitExerciseDB 为全部 1,324 个动作存了 MET 值,并在同一次请求里替你算好,客户端因此不必写死一张会过时的系数表。
In short
- 每分钟千卡 = MET × 3.5 × kg ÷ 200,再乘以分钟数得到整次训练。
- MET 是静息的倍数:1 MET 静坐,3.5 MET 轻量仰卧起坐,8 MET 跑步。
- 体重是必需的。不要体重就返回卡路里的 API 只是在猜。
- GET /v1/exercises/{id}/calories?bodyweightKg=80&minutes=30 直接返回数值。
- MET 表是人群平均值,结果是估算而非测量。
什么是 MET 值?
MET 是代谢当量。1 MET 是安静坐着时身体消耗的能量,约每公斤体重每分钟 3.5 毫升氧气。每种活动都表示为这个基准的倍数:慢走约 3 MET,仰卧起坐 3.5,快跑 8 以上。
这些数值来自 Compendium of Physical Activities,研究者通过测量耗氧量维护的参考表。这就是健身应用都采用 MET 的原因:它是每个动作已测量、已公开的常数,而不是某家厂商的发明。
卡路里消耗的公式是什么?
标准换算是:
每分钟千卡 = MET × 3.5 × 体重(kg) ÷ 200
3.5 是 1 MET 的耗氧量,200 把毫升氧气换算成千卡。乘以分钟数即为整次训练的总量。
| 输入 | 来源 |
|---|---|
| MET | 动作记录,已公开的常数 |
| 体重(kg) | 用户,唯一的个人数据 |
| 分钟数 | 本次训练 |
一个算例
以仰卧起坐为例,MET 3.5,80 公斤的人做 30 分钟:
3.5 × 3.5 × 80 ÷ 200 = 每分钟 4.9 千卡,30 分钟约 147 千卡。
同一个动作,60 公斤的人是每分钟 3.7 千卡,约 110 千卡。差别完全来自体重,这正是不问体重就返回单一数字的 API 不可能同时对这两个人都正确的原因。
怎样一次请求拿到它?
与其在客户端内置一张 MET 表自己算,不如直接要这个数字:
GET https://api.fitexercisedb.com/v1/exercises/0001/calories?bodyweightKg=80&minutes=30
Authorization: Bearer <你的密钥>响应里既有千卡也有所用的 MET,可以同时展示估算值和它的依据。每个动作详情还包含 met、caloriesPerMinute 和 averageCaloriesPerHour,以及指向上述端点的 _links.calories,让 API 对智能体自描述。
免费档每天 10 次请求,无需信用卡。完整参考见 API 文档。
MET 估算有多准?
它是估算,也应当这样呈现。MET 值是人群平均值,不考虑个人体能、身体成分、动作质量,也不考虑某一组实际用了多大力。同样体重的两个人做同一个动作,差距可能很大。
- 适合:比较不同动作、安排一次训练量、展示相对强度、观察数周趋势。
- 不适合:临床或营养级精度,或任何用户会当成医疗数据的数字。
- 在界面里说明:标注「估算」,既诚实也符合应用商店对健康功能的要求。
可以用它做什么
FAQ
- 如何根据 MET 值计算卡路里消耗?
- 每分钟千卡 = MET × 3.5 × 体重(kg) ÷ 200,再乘以分钟数。3.5 MET 的动作、80 公斤,即每分钟 4.9 千卡。
- 健身里的 MET 值是什么?
- 代谢当量:静息能耗的倍数。1 MET 静坐,3.5 MET 轻量仰卧起坐,8 MET 跑步。数值来自 Compendium of Physical Activities。
- 运动 API 需要我的体重才能给出卡路里吗?
- 需要。能量消耗随体重变化,同一动作对更重的人消耗明显更多。没有体重输入的 API 给的是平均值,不是你的数字。
- 有直接返回卡路里的运动 API 吗?
- FitExerciseDB 可以:GET /v1/exercises/{id}/calories?bodyweightKg=80&minutes=30 返回千卡和所用 MET。全部 1,324 个动作都有 MET,免费档无需信用卡。
- 基于 MET 的卡路里估算可靠吗?
- 它们是人群平均值,适合比较动作和观察趋势,但对个人并不精确。请以估算值的形式展示。