Calculate basal metabolic rate with the Mifflin-St Jeor equation
A 35-year-old woman weighing 70 kg and 175 cm tall uses about 1457.75 kcal a day at rest, according to the Mifflin-St Jeor equation. Enter weight, height, age and biological sex to get a basal metabolic rate, with no activity added. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Weight
- 70
- Height
- 175
- Age
- 35
- Sex
- Female
- Bmr
- 1,457.75 kcal/day
- Equation
- Mifflin-St Jeor
Basal metabolic rate, usually shortened to BMR, estimates how much energy a person’s body uses during a day at rest. This calculator applies the Mifflin-St Jeor equation to weight in kilograms, height in centimeters, age in years, and biological sex. It returns a clear result in kilocalories per day without adding an activity multiplier. The calculation is deterministic, transparent, and suitable for personal checks, nutrition software, research preparation, or automated workflows that need a consistent resting-energy estimate.
Understand what the BMR result represents
Basal metabolic rate is an estimate of the energy required to maintain essential biological functions while the body is at rest. Those functions include breathing, circulating blood, regulating temperature, supporting cellular processes, and maintaining organ activity. The result is expressed in kilocalories per day, which is the same calorie unit normally used on food labels and in nutrition planning.
It is important to distinguish BMR from total daily energy expenditure. BMR does not include walking, training, occupational movement, digestion, or other ordinary activity. A person whose result is 1,500 kcal per day will generally use more than 1,500 kcal across a normal day because daily life adds energy expenditure above the resting baseline.
Treat the returned number as an equation-based starting point, not a direct measurement or a complete calorie target. Laboratory methods can measure resting energy more directly, while this calculator supplies a practical estimate when those methods are unavailable. It can support planning and comparison, but it should not replace individualized advice from a qualified healthcare professional when nutrition decisions involve illness, pregnancy, recovery, eating disorders, or other clinical considerations.
Enter the four inputs and check their units
Provide weight in kilograms, height in centimeters, age in years, and biological sex as either male or female. Every numeric input must be finite and greater than zero. Zero, negative numbers, missing values, numeric strings, infinity, and non-numeric values are rejected instead of being silently converted.
Strict validation makes integrations easier to audit because an accidental value such as a height measured in meters, a blank age, or a string copied from a form cannot quietly produce a plausible-looking answer. The biological-sex input selects the constant defined by the Mifflin-St Jeor equation: plus five for male and minus one hundred sixty-one for female. The calculator normalizes capitalization and surrounding spaces, but it does not infer this field or substitute identity labels for the equation’s required biological-sex category.
Before using the result, verify that weight and height are in metric units. Convert pounds to kilograms and inches to centimeters upstream if your source records use imperial units. A valid response repeats the normalized inputs, names the equation, and reports the result in kcal/day, making it straightforward to confirm exactly which measurements produced a stored estimate.
Apply the estimate responsibly in a workflow
The calculation multiplies weight in kilograms by ten, adds height in centimeters multiplied by 6.25, subtracts age multiplied by five, and then applies the biological-sex constant. If a workflow needs estimated total daily energy expenditure, apply an appropriate activity factor after calculating BMR and label the resulting value as an estimate. Do not present BMR itself as a recommended intake: goals such as weight maintenance, gain, or loss depend on activity, health, body composition, and professional judgment.
For longitudinal comparisons, keep units and data-collection practices consistent so that changes reflect updated measurements rather than conversion errors. No network service, random value, clock, or external model participates in the formula, so results do not drift because of changing third-party data. Version your own activity assumptions separately from this resting-energy calculation if downstream business rules may evolve.
What you can do with it
Nutrition app onboarding
Turn a new user’s metric measurements into a consistent resting-energy estimate before applying a separately documented activity factor.
Research data preparation
Calculate a reproducible Mifflin-St Jeor value for each valid participant record while rejecting incomplete or non-positive measurements.
Personal baseline check
Estimate resting daily energy needs and clearly separate that baseline from exercise and total daily expenditure.
FAQ
What equation does this calculator use?
It uses the Mifflin-St Jeor equation, with the equation’s male or female constant selected from the biological-sex input.
Which measurement units should I enter?
Enter weight in kilograms, height in centimeters, and age in years.
Is BMR the same as daily calorie needs?
No. BMR estimates resting energy only. Total daily energy expenditure also accounts for movement, exercise, and digestion.
Why did the calculator reject my input?
Weight, height, and age must each be finite numbers greater than zero, and sex must be either male or female.
Why does the result differ between men and women?
The Mifflin-St Jeor equation uses the same weight, height and age terms for everyone but a different constant: plus five for men and minus one hundred sixty-one for women. That constant explains the gap for otherwise identical measurements.
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/math/bmr-calculate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"weight":70,"height":175,"age":35,"sex":"female"}'const res = await fetch("https://api.kit.forhosting.com/math/bmr-calculate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"weight": 70,
"height": 175,
"age": 35,
"sex": "female"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/bmr-calculate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"weight": 70,
"height": 175,
"age": 35,
"sex": "female"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/bmr-calculate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"weight":70,"height":175,"age":35,"sex":"female"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"weight":70,"height":175,"age":35,"sex":"female"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/bmr-calculate", 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": 70,
"height": 175,
"age": 35,
"sex": "female"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.bmr_calculate",
"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
Apply the estimate responsibly in a workflow
Because the implementation uses only deterministic arithmetic, identical inputs produce identical JSON results in browser and API contexts. The browser calculator is convenient for an individual check, while the API costs $0.002 per request and fits repeatable automation.
Technical questions
How much does the API call cost?
Each API request costs $0.002. The calculation can also run free in the browser.