Simple daily calorie intake
A sedentary 30-year-old man of 80 kg and 180 cm needs about 2136 kcal a day to keep his weight steady: a basal rate of 1780 kcal times an activity factor of 1.2. Pick one of five activity levels. 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
- Activity
- Sedentary
- Calories per day
- 2,136 kcal/day
- Bmr
- 1,780
- Activity factor
- 1.2
- Weight (kg)
- 80
This simple calorie intake calculator estimates how many kilocalories you need each day from body weight, standing height, age, sex, and activity level. It first computes basal metabolic rate with the Mifflin-St Jeor equation, then multiplies by a standard physical-activity factor so the result is a maintenance-style daily calorie intake, not a resting-only figure.
How daily calorie intake is estimated from body stats and activity
Daily calorie intake, in this calculator, means an estimate of the energy you need over twenty-four hours to maintain current body weight given your size and how active you are. The path has two explicit steps. First the engine computes basal metabolic rate with the Mifflin-St Jeor equation, which is the linear combination of ten times weight in kilograms plus six point two five times height in centimeters minus five times age in years, plus five for males or minus one hundred sixty-one for females.
That basal figure is the energy a typical adult would expend at complete rest; it is not yet a food target. Because every step is finite arithmetic with no Date, no sampling, and no network, the same body stats always produce the same intake. Treat the number as a planning estimate, not a clinical prescription: real energy needs also depend on lean mass, illness, climate, and adaptive thermogenesis, none of which this simple model claims to capture.
Where a simple calorie intake calculator is used
People searching for a calorie intake calculator usually want a single daily number they can type into a food log, not a fitness-jargon TDEE worksheet with extra columns. Coaches use that number as a maintenance starting point before they apply a surplus or a deficit on a different tool. App builders map a short onboarding form—weight, height, age, sex, activity dropdown—into a default calorie budget without shipping opaque calculator code.
Students and dietetic trainees check textbook Mifflin-St Jeor examples and need a fast, offline source of intake that does not drift between spreadsheet rounding modes. Product and education tools use the same contract when a learner picks moderate activity and the UI must show both basal rate and calories per day beside a method label. Pair it with deficit or surplus helpers when you are building a small lab of deterministic health tools, and always treat the output as a planning estimate rather than a prescription from a clinician.
What you can do with it
Daily food-log calorie budget
Turn weight, height, age, sex, and a five-level activity choice into a whole-number daily calorie intake for a diary or meal-plan default.
Coaching onboarding and worksheets
Give new clients a reproducible maintenance intake before a later surplus or deficit step, using the same Mifflin-St Jeor arithmetic every time.
FAQ
How is daily calorie intake calculated?
Basal metabolic rate uses Mifflin-St Jeor from weight in kilograms, height in centimeters, age, and sex.
What units should I send for weight and height?
Weight is kilograms and height is centimeters. Convert pounds and inches before calling. Age is in years. Sex is male or female (m, man, f, and woman are accepted).
Which activity level should I choose?
Sedentary is desk work with little exercise, light means training 1 to 3 days a week, moderate 3 to 5 sessions, active hard training most days, and very active very hard training or a physical job.
Is this the number to eat for losing weight?
No. It is a maintenance estimate, the energy needed to keep your current weight. To lose or gain, apply a deficit or a surplus to this starting point with a separate tool.
Why might my real needs be different?
This simple model does not account for lean mass, illness, climate or the way the body adapts its energy use over time. Treat the result as a planning estimate, not a clinical prescription.
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/simple-calorie-intake \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"weight":80,"height":180,"age":30,"sex":"male","activity":"sedentary"}'const res = await fetch("https://api.kit.forhosting.com/health/simple-calorie-intake", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"weight": 80,
"height": 180,
"age": 30,
"sex": "male",
"activity": "sedentary"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/simple-calorie-intake",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"weight": 80,
"height": 180,
"age": 30,
"sex": "male",
"activity": "sedentary"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/simple-calorie-intake", 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","activity":"sedentary"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"weight":80,"height":180,"age":30,"sex":"male","activity":"sedentary"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/simple-calorie-intake", 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",
"activity": "sedentary"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.simple_calorie_intake",
"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.
Limits
max_weight_kg | 500 |
max_height_cm | 300 |
max_age_years | 120 |
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
Five activity options are supported: sedentary, light, moderate, active, and very_active. Any other activity label is rejected as invalid_input instead of being silently mapped to a nearby factor. Use it on this page at no charge, or call the API at $0.002 per successful request when you need reproducible intake numbers in apps, logs, or tests.
How daily calorie intake is estimated from body stats and activity
Second, the engine multiplies basal metabolic rate by a physical-activity factor drawn from the classic five-level Harris-Benedict scale: sedentary at one point two for desk work with little exercise, light at one point three seven five for training one to three days a week, moderate at one point five five for three to five sessions, active at one point seven two five for hard training most days, and very_active at one point nine for very hard training or a physical job. The product is rounded to the nearest whole kilocalorie and returned as calories_per_day, which is the primary result you should display. The response also echoes the normalized inputs, the basal rate to two decimal places, the activity factor that was applied, a method tag mifflin_st_jeor, a formula string you can print next to the answer, and the unit kcal/day so a client can show the working without re-deriving coefficients.
Input contract, supported activity levels, and error behaviour
Missing or non-finite weight, height, or age, a sex value outside the accepted set, and values above the documented ceilings also fail, and those failures are not billed. POST a JSON body with five required fields. weight is body mass in kilograms, a finite positive number up to five hundred, with aliases weight_kg, kg, and mass. height is standing height in centimeters, from thirty to three hundred, with aliases height_cm and cm. age is years of life from zero to one hundred twenty, with aliases age_years and years. sex selects the Mifflin-St Jeor constant and accepts male, m, or man, and female, f, or woman, case-insensitive, with alias gender. activity is the closed list sedentary, light, moderate, active, and very_active, with aliases activity_level and pal; hyphens and spaces are folded to underscores so Very Active and very-active both become very_active. Any other activity token, including empty strings, extra, athlete, extreme, or a free-text job title, fails with invalid_input and a message that names the supported options. That rejection is the contract, not a hint: the calculator will not guess a factor for an unknown lifestyle label, because a guessed multiplier would silently shift calories_per_day by hundreds of kilocalories. On success the body includes calories_per_day as an integer, bmr, activity_factor, the canonical activity and sex strings, the numeric inputs, method, formula, and unit. Example: eighty kilograms, one hundred eighty centimeters, thirty years, male, sedentary yields basal metabolic rate one thousand seven hundred eighty and calories_per_day two thousand one hundred thirty-six, because one thousand seven hundred eighty times one point two is two thousand one hundred thirty-six exactly. Pair the free browser run on this page with the priced API when you need the identical mathematical result inside an automated pipeline.
Where a simple calorie intake calculator is used
Extreme or unknown activity strings are rejected so a typo cannot inflate a meal plan; the five-option select on the web form is the same closed set the API validates. On this page the work runs entirely in your browser; through the API each successful lookup costs $0.002, failed validation is not charged, and nothing is stored after the response returns. That split—free interactive exploration and a priced, identical API—matches the rest of the KIT tier-A catalog and lets you move from a classroom demo to an automated pipeline without changing the mathematical result.
Integration use cases
Apps, quizzes, and CI fixtures
Call a tiny parse API for calories_per_day instead of re-implementing activity factors, and assert goldens when an unsupported activity label must fail.
Technical questions
Which activity levels are supported?
Only sedentary, light, moderate, active, and very_active. Hyphens and spaces fold to underscores. Any other label, including empty or invented levels such as extreme or athlete, fails with invalid_input and is not billed.
Is this the same as BMR or TDEE?
BMR is the resting component returned as bmr. calories_per_day is BMR times the activity factor, which is the usual maintenance intake (often called TDEE) for the five supported PAL levels.
What does the simple calorie intake calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input, including an unsupported activity level, is not billed.