Daily sodium limit calculator
Get your daily sodium ceiling by age and see it as table salt: at 40 the limit is 2300 mg of sodium, about 5.85 g of salt, and it drops to 1500 mg with high blood pressure. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Age
- 40
- Guideline
- standard
- Age band limit mg
- 2,300
- Sodium limit mg
- 2,300
- Salt g
- 5.8465419748
Most people know salt should be limited, but few can name a personal daily sodium ceiling in milligrams or translate that number into teaspoons of table salt. Public-health tables give upper limits by age; hypertension guidance often tightens the same number further; and nutrition labels report sodium, not salt, so a conversion is required before shopping or cooking. This daily sodium limit calculator accepts age and optional hypertension and guideline flags, applies an Institute of Medicine style age-band upper limit with optional WHO or ideal caps, and converts the resulting milligrams of sodium into grams of table salt using the sodium to sodium-chloride molecular-weight ratio. Results are educational estimates only and do not replace medical advice for kidney disease, heart failure, or clinician-prescribed sodium restrictions.
How the daily sodium limit is chosen and why salt grams follow
Sodium is an essential electrolyte, but chronic excess intake is linked to higher blood pressure and population-level cardiovascular risk. Label law and dietary guidelines therefore speak in milligrams of sodium per day, not in pinches of salt. This capability starts from widely cited life-stage upper limits: about fifteen hundred milligrams for ages one through three, nineteen hundred for ages four through eight, twenty-two hundred for ages nine through thirteen, and twenty-three hundred for ages fourteen and older.
Those age-band figures match the familiar United States Dietary Guidelines style upper limit for adults and the corresponding pediatric upper-limit ladder. Optional guideline modes then tighten the number without inventing a new table: standard leaves the age band alone; who applies a two-thousand-milligram population-style cap commonly associated with World Health Organization messaging; ideal applies a fifteen-hundred-milligram cap aligned with stricter heart-healthy messaging. If hypertension is marked true, the final limit is further capped at fifteen hundred milligrams so blood-pressure-aware clients do not have to reimplement that rule.
Table salt is sodium chloride. Using atomic weights sodium twenty-two point nine nine and sodium chloride fifty-eight point four four, grams of salt equal sodium milligrams times fifty-eight point four four divided by twenty-two point nine nine times one thousand. That identity is exact for pure NaCl and is close enough for kitchen planning when most dietary sodium still arrives as salt or salty processed foods.
Where a daily sodium limit helps
Coaching and wellness apps use a daily sodium limit calculator so users see a single authoritative ceiling next to bar charts of estimated intake. Meal-plan generators convert the milligram ceiling into salt grams when recipes still list salt by mass rather than sodium by label. Classroom and public-health homework needs a deterministic oracle that rejects missing age instead of silently assuming an adult.
Always disclose that the numbers are educational upper-limit estimates: individual medical conditions, medications, and clinician orders can require stricter or different targets than any public table.
What you can do with it
Recipe and meal-plan salt conversion
Convert the recommended sodium ceiling into grams of table salt when kitchen tools measure salt by mass rather than sodium milligrams on a nutrition label.
FAQ
How is the daily sodium limit calculated?
Age selects an upper-limit band (1500–2300 mg). Optional guideline who or ideal caps at 2000 or 1500 mg. Hypertension true also caps at 1500 mg.
What fields are required?
Only age (whole years 1–120) is required. Hypertension defaults to false; guideline defaults to standard.
Does this replace medical advice?
No. Results are educational estimates from public-style tables. People with kidney disease, heart failure, pregnancy, or clinician-prescribed limits should follow professional guidance, not this calculator alone.
What is the daily sodium limit for children?
It rises with age: 1500 mg for ages 1 to 3, 1900 mg for ages 4 to 8 and 2200 mg for ages 9 to 13. From age 14 the adult figure of 2300 mg applies.
Which guideline option should I choose?
Standard keeps the limit for your age group. The WHO-style option caps it at 2000 mg, and the ideal option caps it at 1500 mg, in line with stricter heart-healthy advice. A restriction set by your own doctor always comes first.
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/sodium-limit \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"age":40}'const res = await fetch("https://api.kit.forhosting.com/health/sodium-limit", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"age": 40
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/sodium-limit",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"age": 40
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/sodium-limit", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"age":40}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"age":40}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/sodium-limit", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"age": 40
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.sodium_limit",
"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
Missing age or non-finite inputs fail with invalid_input and are not billed.
How the daily sodium limit is chosen and why salt grams follow
The response returns both sodium_limit_mg and salt_g so product copy can say milligrams of sodium or grams of salt without a second calculator.
Input contract, response fields, and error behaviour
Optional guideline defaults to standard and accepts standard, who, or ideal, plus a few common synonyms such as fda for standard and aha or strict for ideal. Example: age forty with default flags yields twenty-three hundred milligrams of sodium and about five point eight five grams of table salt. Age forty with hypertension true yields fifteen hundred milligrams and a proportionally smaller salt mass. POST a JSON body with required age as a whole number of years between one and one hundred twenty inclusive. Age may arrive as a JSON number or as a numeric string; fractional ages, empty strings, null, and non-finite values fail with invalid_input naming the field. Optional hypertension defaults to false and accepts true or false, yes or no, and one or zero in either boolean or string form. On success the body echoes age, hypertension, and guideline; reports age_band_limit_mg before optional caps; and reports the final sodium_limit_mg after guideline and hypertension logic. Salt fields include salt_g and salt_mg from the molecular conversion, plus unit_sodium mg/day, unit_salt g/day, a short formula string, and method age_band_ul_nacl_conversion for clients that branch on algorithm identity. Failed validation does not consume prepaid balance. The endpoint does not store inputs, call external nutrition databases, or personalize beyond the declared fields; if you need multi-day averages or food-log parsing, compose this limit check with your own intake tracker rather than expecting a full diet engine here.
Where a sodium limit API earns its keep
Keep requests small, pin salt_g in tests with the documented molecular weights, and you get reproducible limits for edge workers, LMS plugins, and consumer health funnels without standing up clinical decision support you are not licensed to offer.
Integration use cases
Wellness app daily ceiling
Show each user a personal sodium_limit_mg and salt_g from age and optional hypertension so intake trackers can color-code progress against one clear number.
Education and content widgets
Embed the free browser calculator on pages targeting daily sodium limit search intent; the same lib.js powers prepaid API checks for homework and demos.
Technical questions
How do you convert sodium milligrams to table salt grams?
Table salt is NaCl. Using atomic weights Na 22.99 and NaCl 58.44, salt_g = sodium_limit_mg × 58.44 / (22.99 × 1000). The API also returns salt_mg for the same conversion.
What does the daily sodium limit calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.