Harris-Benedict BMR calculator
Find your resting calorie baseline with the revised Harris-Benedict equation from 1984: a 30-year-old man weighing 80 kg at 180 cm burns 1,853.632 kcal a day at complete rest. Start from this number before adding activity. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Weight
- 80
- Height
- 180
- Age
- 30
- Sex
- Male
- Bmr
- 1,853.632 kcal/day
- Bmr kcal day
- 1,853.632
- Weight (kg)
- 80
- Height (cm)
- 180
Basal metabolic rate is the energy your body spends at complete rest to keep essential systems running: breathing, circulation, cell repair, and temperature regulation. The revised Harris-Benedict equation, published by Roza and Shizgal in 1984, updates the classic 1919 Harris and Benedict formulas with sex-specific coefficients on weight in kilograms, height in centimeters, and age in years. This calculator applies those closed-form equations exactly, returns BMR in kilocalories per day, and rejects non-positive measurements so invalid demographics never produce a false energy floor. Use it to set a transparent resting-calorie baseline before activity multipliers, meal planning, or clinical education demos.
How the revised Harris-Benedict BMR is computed
Basal metabolic rate estimates the kilocalories burned in twenty-four hours under standardized rest conditions. The revised Harris-Benedict equations keep a constant term plus three linear contributions from body weight, standing height, and chronological age, with separate coefficients for male and female physiology. For males the formula is eighty-eight point three six two plus thirteen point three nine seven times weight in kilograms plus four point seven nine nine times height in centimeters minus five point six seven seven times age in years.
For females it is four hundred forty-seven point five nine three plus nine point two four seven times weight in kilograms plus three point zero nine eight times height in centimeters minus four point three three zero times age in years. Weight and height must use metric units as published; age may be whole or fractional years. The result is reported in kilocalories per day, the unit most diet and coaching tools expect when they later multiply BMR by an activity factor to approximate total daily energy expenditure.
This capability implements the analytic path only: no machine learning, no population tables fetched at runtime, and no random jitter. Non-positive weight, height, or age fail early because a zero or negative measurement cannot represent a living adult body in this model. Unrecognized sex strings fail because the equation set is sex-specific and inventing a third coefficient table would invent science the classic paper never published.
Where Harris-Benedict BMR calculators show up in real work
Registered dietitians and nutrition students still teach the revised Harris-Benedict equations as a transparent resting-energy baseline before introducing newer equations such as Mifflin-St Jeor, so a single oracle that returns the exact classic numbers speeds grading and demo setup. Fitness coaches and product teams building calorie planners need a documented BMR step that clients can audit by hand rather than a black-box estimate. Research assistants preparing synthetic datasets for energy-balance simulations need deterministic BMR labels from weight, height, age, and sex without network calls or model drift.
If you later need total daily energy expenditure with activity multipliers, body mass index, ideal body weight formulas, or the Mifflin-St Jeor equation, treat those as separate search intents and landings rather than overloading this Harris-Benedict basal metabolic rate calculator page. Always frame results as educational estimates, not medical diagnosis; clinical decisions require qualified professionals and context this tool does not collect.
What you can do with it
Coaching intake baselines
Compute a transparent resting kcal/day floor from metric weight, height, age, and sex before applying activity factors in meal or training plans.
Classroom answer keys
Generate deterministic revised Harris-Benedict BMR values for homework sets so teachers and auto-graders share one ground truth.
FAQ
What is the revised Harris-Benedict equation?
It is the 1984 Roza and Shizgal update of the 1919 Harris-Benedict formulas. Sex-specific linear equations estimate basal metabolic rate in kcal/day from weight (kg), height (cm), and age (years).
What units should I use?
Weight in kilograms, height in centimeters, and age in years. Convert imperial measurements first; the published coefficients assume metric inputs.
What happens if weight, height, or age is zero or negative?
Non-positive measurements are rejected because they are not valid body descriptors for this BMR model.
Is this the same as Mifflin-St Jeor?
No. This capability implements only the revised Harris-Benedict equations. Mifflin-St Jeor uses different coefficients and is a separate search intent.
What does it cost?
The browser tool is free and runs locally.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/health/bmr-harris-benedict \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"weight":80,"height":180,"age":30,"sex":"male"}'const res = await fetch("https://api.kit.forhosting.com/health/bmr-harris-benedict", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"weight": 80,
"height": 180,
"age": 30,
"sex": "male"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/bmr-harris-benedict",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"weight": 80,
"height": 180,
"age": 30,
"sex": "male"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/bmr-harris-benedict", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"weight":80,"height":180,"age":30,"sex":"male"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"weight":80,"height":180,"age":30,"sex":"male"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/bmr-harris-benedict", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"weight": 80,
"height": 180,
"age": 30,
"sex": "male"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.bmr_harris_benedict",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
How the revised Harris-Benedict BMR is computed
Identical weight, height, age, and sex always yield the same JSON.
What you send and what you get back
Send four fields. All four fields are required. Classic smoke checks include an eighty kilogram, one hundred eighty centimeter, thirty-year-old male and a sixty-five kilogram, one hundred sixty-five centimeter, twenty-eight-year-old female; both produce stable positive BMR values suitable for answer keys. Convert pounds and inches to kilograms and centimeters before calling if your forms collect imperial units, because the published coefficients assume metric inputs only. Weight is body mass in kilograms and must be a finite number strictly greater than zero; aliases weight_kg, kg, and mass are accepted. Height is standing height in centimeters and must also be finite and positive; aliases height_cm and cm are accepted. Age is age in years, finite and positive; aliases age_years and years are accepted. Sex selects the male or female revised equation and accepts male, female, m, f, man, or woman case-insensitively; the alias gender is accepted. Missing fields, non-numeric strings for the numeric fields, NaN, Infinity, zero, negative values, and unrecognized sex labels fail with invalid_input and are not charged. On success the response returns bmr and bmr_kcal_day as the same cleaned kilocalories-per-day value, unit kcal/day, the cleaned weight_kg, height_cm, and age_years, the normalized sex string male or female, equation revised_harris_benedict, equation_year nineteen eighty-four, the formula string for the chosen sex, and method harris_benedict_revised. Pricing for successful API calls is the published base of $0.002 per item; validation failures do not consume prepaid balance.
Where Harris-Benedict BMR calculators show up in real work
Electronic health record teaching modules and public-health workshops often walk through sex-specific basal rates with sample adults, and matching hand arithmetic to API output matters more than asymptotic cost. Because this capability is a pure parse engine, API pricing is the published base of $0.002 per successful item and failed validation does not consume balance.
Integration use cases
App and API fixtures
Bulk-produce golden BMR JSON for onboarding flows and regression tests without network calls or non-deterministic models.