Protein intake by fitness goal calculator
At 70 kg with a muscle-gain goal, the daily target is 126 g of protein, using 1.8 g per kilo. Pick a goal from sedentary to athlete instead of guessing a g/kg number, and get your daily grams. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Weight
- 70
- Goal
- Muscle gain
- Daily protein g
- 126 g
- Protein g
- 126
- Weight (kg)
- 70
- Grams per kg
- 1.8
A protein intake by fitness goal calculator answers a search people actually type: how many grams of protein should I eat for muscle gain, fat loss, endurance, or everyday maintenance? Sports nutrition education usually expresses protein as grams per kilogram of body weight, then multiplies by mass—but many athletes and coaches do not want to pick a raw g per kg number first. They want a goal label that maps to a transparent educational target, then a clear daily gram total. This tool takes body weight in kilograms and a fitness goal such as sedentary, maintenance, endurance, strength, muscle gain, fat loss, or athlete, looks up the matching grams-per-kilogram factor from a fixed table, multiplies, and returns the daily protein goal in grams plus the resolved goal and factor. The arithmetic is deterministic pure math with no network calls, no random seeds, and no medical diagnosis. Missing weight, non-numeric values, non-positive mass, and unknown goals fail with invalid input so bad form data never masquerades as a meal plan.
How protein by fitness goal is calculated
Start with body weight in kilograms and a fitness goal string. The calculator normalizes the goal—trimming whitespace, lowercasing, turning spaces and hyphens into underscores—and resolves common synonyms such as bulk or hypertrophy to muscle gain, and cutting or weight loss to fat loss.
It then looks up a fixed educational grams-per-kilogram table: sedentary zero point eight, maintenance one point two, endurance one point four, strength one point six, muscle gain one point eight, fat loss two point zero, and athlete two point two grams of protein per kilogram of body weight per day. Those factors are transparent teaching defaults drawn from commonly cited sports-nutrition ranges; they are not personalized prescriptions and are not medical advice. Daily protein in grams equals weight kilograms times the looked-up grams per kilogram for that goal.
For example, seventy kilograms at the muscle gain factor of one point eight yields one hundred twenty-six grams; eighty kilograms at the sedentary factor of zero point eight yields sixty-four grams. Entries must be finite; NaN and Infinity are rejected. Zero or negative weight fails early with invalid input rather than inventing absolute values.
Unknown goals fail with a message listing the accepted keys so forms can show a clear correction instead of a silent default.
Where goal-based protein calculators show up in real work
Strength coaches and sports dietitians set gram targets when clients describe a phase—bulk, cut, base endurance, or general maintenance—without first committing to a raw decimal. Recreational gyms and hybrid athletes compare phases when body mass stays similar but the goal label changes, so the table factor updates transparently and the product is easy to explain. Physical education and sports science courses assign homework that maps a named goal to a published density and multiplies by kilograms, so students see goal policy and body size as separate levers.
Meal-prep services that scale protein boxes by client weight and program type need a single audited table plus multiply rather than spreadsheet drift across staff machines. Treat free-form g per kg multiplication, BMR, TDEE, calories burned, BMI-style ratios, and food database lookups as separate product intents rather than overloading this protein-by-fitness-goal landing with every related health formula. Always present the table values as educational defaults and encourage professional guidance when medical conditions or special populations apply.
What you can do with it
Training phase protein targets
Map muscle gain, fat loss, strength, or endurance goals to a consistent daily gram target from body weight for check-ins and meal planning.
Classroom sports-nutrition drills
Generate answer keys that look up a goal-based g/kg factor and multiply by kilograms without spreadsheet drift.
FAQ
Which fitness goals are supported?
Common synonyms such as bulk or cutting are accepted and normalized.
Is this medical advice?
No. Table values are transparent educational defaults from commonly cited ranges, not individualized clinical prescriptions. Consult a qualified professional for personal nutrition care.
What happens if weight is zero or the goal is unknown?
Non-positive weight and goals that do not resolve to the table are rejected rather than inventing defaults.
What does it cost?
The browser tool is free and runs locally.
How much protein do I need for muscle gain at 70 kg?
About 126 g a day. The muscle-gain goal uses 1.8 g of protein per kilo of body weight, and 70 kg times 1.8 gives 126 g. It is an educational target, not a personal 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/protein-by-goal \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"weight":70,"goal":"muscle_gain"}'const res = await fetch("https://api.kit.forhosting.com/health/protein-by-goal", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"weight": 70,
"goal": "muscle_gain"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/protein-by-goal",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"weight": 70,
"goal": "muscle_gain"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/protein-by-goal", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"weight":70,"goal":"muscle_gain"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"weight":70,"goal":"muscle_gain"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/protein-by-goal", 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,
"goal": "muscle_gain"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.protein_by_goal",
"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 protein by fitness goal is calculated
The response echoes cleaned weight, the canonical goal key, the grams per kilogram used, daily protein grams and protein grams as the same cleaned total, unit set to g, a formula string, and method goal_g_per_kg_table so every client can audit the product. The pipeline is deterministic floating-point arithmetic with no timestamps and no model drift, so identical weight and goal always produce identical JSON.
What you send and what you get back
Send two fields. Both fields are required. If you need basal metabolic rate or calories burned, those are separate tools and search intents. The field weight is body mass in kilograms as a finite positive number greater than zero, or you may use aliases weight_kg, kg, mass, or body_weight. The field goal is the fitness goal string, required, with aliases fitness_goal, activity_goal, target_goal, and objective. Accepted canonical values are sedentary, maintenance, endurance, strength, muscle_gain, fat_loss, and athlete; case is ignored and common synonyms are accepted as documented in the author notes. Missing fields, empty strings, non-numeric weight, NaN, Infinity, non-positive weight, and goals that do not resolve to the table fail with invalid_input and are not charged. On success the response includes daily_protein_g and protein_g as the same cleaned product, unit set to g, cleaned weight_kg, the resolved goal key, grams_per_kg from the table, formula documenting weight times grams per kilogram of goal, and method goal_g_per_kg_table. Classic checks include seventy kilograms with muscle_gain yielding one hundred twenty-six grams, and eighty kilograms with sedentary yielding sixty-four grams. Pricing for successful API calls is the published base of $0.002 per item; validation failures do not consume prepaid balance. If you already know the exact g per kg multiplier and do not want a goal table, use the sibling daily protein intake calculator that multiplies weight by a free-form grams_per_kg.
Where goal-based protein calculators show up in real work
Nutrition content teams building interactive lesson pages want the same JSON offline and online so worksheets and auto-graders stay aligned. 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 bulk goals
Compute protein goals for many profiles from weight plus a goal label; reject unknown goals and non-positive weight with invalid_input.
Technical questions
How is daily protein by fitness goal calculated?
The tool looks up an educational grams-per-kilogram factor for your fitness goal, then multiplies: daily_protein_g = weight_kg × grams_per_kg(goal). For example, 70 kg at muscle_gain (1.8 g/kg) yields 126 g.