Indian Food Calorie & Macronutrient Nutrition Counter
Describe an Indian meal the way you would say it out loud and get calories, protein, carbs, fat and fibre for the whole plate. Over 130 dishes and 300 spellings recognised, quantities and portion words read from your sentence, and every portion adjustable afterwards. Runs entirely in your browser.
What Is an AI Indian Food Calorie Counter?
It is a calorie calculator you talk to in sentences instead of filling in a form. You write "2 roti, dal makhani and half plate rice" and it returns the nutrition for that whole meal, rather than making you search for each dish, pick a serving size, and add them one at a time.
That difference matters more for Indian food than for most cuisines, because Indian meals are rarely one item. A normal lunch is three or four dishes plus a bread plus rice plus something to drink. On a conventional calorie app that is seven separate lookups, and most people give up after the third and log "lunch, 600 calories" as a guess.
What it does that a nutrition chart cannot
- Reads quantities from your sentence. "2 roti", "half plate rice", "three idli" and "a bowl of dal" are all understood, including fractions and number words.
- Handles portion size words. "Large" scales a portion up by about 40 percent, "small" down by about 30, because a small bowl of dal and a large one are genuinely different meals.
- Lets you fix the parse. Every dish it finds appears as an editable row with a stepper. If it read your portion wrong, you correct it there instead of rewriting the sentence.
- Tells you what it missed. Anything it could not place is listed separately. A silent miss is how calorie tools produce confidently wrong totals, and this one refuses to do that.
What it is not
It is not a medical or dietetic tool, it does not know anything about you, and it cannot see how much oil went into your food. It gives an estimate of a described meal. For anything where precision matters — a clinical diet, a competition weight cut, managing diabetes — work with a registered dietitian who can account for the things a text box cannot.
How Does the AI Calorie Counter Work?
It is worth being precise about the word "AI" here, because most tools using it will not tell you what is behind it. This one uses natural language parsing — a rule-based matcher running in your browser — not a large language model and not a server API. That has real consequences, good and bad, and you should know which you are getting.
The four steps, in order
- Normalise the text. Your sentence is lowercased, punctuation is stripped, and multiple spaces collapse. "2 Roti, Dal-Makhani!" and "2 roti dal makhani" become the same thing.
- Match longest first. Every dish name and alias in the database is sorted by length, and the longest is tried first. This is the step that decides whether the tool is right or badly wrong, and it is where most calorie parsers fail.
- Consume what is matched. Once "dal makhani" claims those eleven characters, they are marked as used and cannot match again. "Dal" cannot then also match inside them.
- Read the quantity backwards from the match. The words immediately before a dish are checked for a number, a fraction, a number word, a portion word like "bowl" or "plate", and a size word like "large" or "half".
What this approach is good at
- Speed and privacy. No network call, no waiting, nothing leaves your device.
- Being predictable. The same sentence always gives the same answer. A language model will not always do that.
- Being honest about gaps. Because it knows exactly which words it consumed, it can tell you precisely what it did not understand.
What it is bad at
- Dishes not in the database. It holds 133 dishes and just over 300 spellings and regional names. Regional dishes outside that list will be reported as unrecognised rather than guessed at.
- Unusual spellings. "Chapathi" and "chapati" are both handled, but every possible transliteration cannot be. If something is missed, try the more common spelling.
- Inferring what you did not say. If you write "thali" it cannot know which six bowls were on it. Listing the dishes gets a far better answer.
- Knowing how much oil your cook used. No tool can do this, which is the subject of the accuracy section below.
The formula underneath
size multiplier: small = 0.7, medium = 1.0, large = 1.4, half = 0.5, quarter = 0.25
How to Calculate Calories in Indian Food
If you are doing it by hand, Indian food has one dominant variable and everything else is detail. That variable is fat — the oil, ghee, butter, cream and coconut that goes into a dish after the ingredients are already decided.
The three-part method
- Count the base carbohydrate. Rotis, rice, dosa, idli, bread. This is usually the most predictable part of the meal and the easiest to measure, because these items come in discrete units.
- Count the protein dish. Dal, rajma, chole, paneer, chicken, fish, egg. This part is fairly stable too, since the amount of dal or paneer in a standard bowl does not vary hugely.
- Add the fat, and take it seriously. One teaspoon of oil is 40 calories and one of ghee is 45. A tempering, a knob of butter on a roti and a cream finish on a gravy can quietly add 200 calories to a plate whose ingredients list has not changed at all.
A home dal tadka: 60 g cooked lentils, one teaspoon of oil in the tempering. About 180 calories, 10 g protein.
The same quantity of lentils as restaurant dal makhani: rajma and urad, finished with 15 ml of cream and a tablespoon of butter. About 320 calories, 12 g protein.
The lentils contributed the same. The extra 140 calories are entirely the finish. This is the single biggest source of error in any Indian calorie estimate, including this tool's.
Rules of thumb worth keeping
| What you add | Calories | Where it hides |
|---|---|---|
| 1 tsp oil | 40 | Tempering, shallow frying, the sabzi base |
| 1 tsp ghee | 45 | On roti, on rice, in the dal |
| 1 tbsp cream | 50 | Restaurant gravies, finished off the heat |
| 1 tbsp butter | 100 | Dal makhani, butter chicken, naan |
| 1 tsp sugar | 20 | Chai, twice a day, five days a week |
| Deep frying vs shallow | +60 to +120 per item | Puri, pakora, vada, samosa |
The part people get wrong
Not the curry. It is the roti count and the rice portion. People who carefully estimate the paneer then write "some rice" for what was two full cups — 400 calories, which is more than the paneer. Rice and roti are the easiest things in an Indian meal to measure accurately and the easiest to undercount, because they feel like background rather than food.
Indian Food Calories by Common Dish
The most searched dishes, with the serving each figure refers to. All values are estimates for a typical preparation — see the accuracy section for how much room to leave around them.
Scroll the table sideways to see every column.
| Dish | Serving | Calories | Protein | Fat |
|---|---|---|---|---|
| Roti / chapati | 1 (40 g) | 105 | 3 g | 1.5 g |
| Plain rice | 1 cup cooked | 200 | 4 g | 0.4 g |
| Dal tadka | 1 bowl | 180 | 10 g | 4 g |
| Dal makhani | 1 bowl | 320 | 12 g | 18 g |
| Paneer butter masala | 1 bowl | 420 | 15 g | 34 g |
| Butter chicken | 1 bowl | 480 | 26 g | 36 g |
| Chicken biryani | 1 plate | 450 | 22 g | 16 g |
| Masala dosa | 1 | 390 | 8 g | 16 g |
| Idli | 1 | 65 | 2 g | 0.3 g |
| Samosa | 1 | 160 | 3 g | 8 g |
| Chole bhature | 1 plate | 700 | 16 g | 34 g |
| Naan | 1 | 280 | 8 g | 6 g |
| Mango lassi | 1 glass | 250 | 7 g | 7 g |
| Gulab jamun | 1 | 175 | 2 g | 8 g |
| Masala chai | 1 cup | 90 | 3 g | 3 g |
Three comparisons worth knowing
- Chole bhature is not a snack. At around 700 calories it is more than a full thali, and most of it is the two deep-fried bhature rather than the chole.
- A bowl of paneer butter masala carries 34 g of fat. That is around 306 calories from fat alone, in a single bowl of vegetarian curry, before the roti or rice it is eaten with.
- Two masala dosa is 780 calories. South Indian breakfast is widely treated as light, and one dosa at 390 is a full meal's worth of calories.
Calories in Indian Breakfast Foods
Breakfast is where the gap between the reputation of a dish and its actual number is widest. Idli deserves its reputation. Masala dosa does not.
Scroll the table sideways to see every column.
| Breakfast | Serving | Calories | Protein | Verdict |
|---|---|---|---|---|
| Idli | 2 with sambar | 270 | 11 g | Genuinely light, steamed not fried |
| Poha | 1 bowl | 250 | 5 g | Light, but very low protein |
| Upma | 1 bowl | 250 | 6 g | Depends on the oil |
| Plain dosa | 1 | 170 | 4 g | Fine on its own |
| Masala dosa | 1 | 390 | 8 g | The potato filling and the ghee |
| Medu vada | 2 | 280 | 8 g | Deep fried, despite the lentils |
| Aloo paratha | 1 with curd | 400 | 10 g | Heavy, and rarely eaten alone |
| Pongal | 1 bowl | 320 | 8 g | The ghee is the point of it |
| Boiled eggs | 2 | 156 | 12 g | Best protein per calorie at breakfast |
| Chai with sugar | 1 cup | 90 | 3 g | Small, but four a day is 360 |
The protein problem at breakfast
Look down the protein column. Poha, upma, plain dosa and pongal all sit between 4 and 8 grams. A typical Indian breakfast delivers 250 to 400 calories with under 10 grams of protein, which is why people are hungry again by eleven. Adding two boiled eggs costs 156 calories and adds 12 grams — more than doubling the protein of most of these breakfasts for a modest calorie cost. A bowl of curd adds 6 grams for 100 calories.
The chai arithmetic nobody does
90 calories each, 360 a day, about 2,520 calories a week, roughly 11,000 a month.
Dropping to two cups, or halving the sugar in all four, removes around 180 calories a day without touching a single meal. It is the most common invisible 10 percent in an Indian diet.
Calories in Indian Lunch and Dinner Foods
Main meals are built the same way almost everywhere in India: a bread or rice base, a dal or protein dish, a vegetable, and something on the side. The base and the protein are predictable. The variation lives in the gravy and the ghee.
Typical meal patterns
| Meal | What is on the plate | Calories | Protein |
|---|---|---|---|
| Light home lunch | 2 roti, dal, sabzi | 540 | 19 g |
| Standard home lunch | 2 roti, 1 cup rice, dal, sabzi, curd | 840 | 29 g |
| North Indian thali | 3 roti, rice, dal makhani, paneer butter masala, raita, gulab jamun | 1,540 | 47 g |
| South Indian meals | Rice, sambar, rasam, 2 poriyal, curd, papad | 940 | 29 g |
| Office tiffin | 3 roti, sabzi, rice, pickle | 695 | 16 g |
| Restaurant dinner | 2 butter naan, butter chicken, jeera rice | 1,390 | 46 g |
| Biryani dinner | Chicken biryani plate, raita | 560 | 27 g |
Where a restaurant meal separates from a home meal
Compare the standard home lunch at 840 with the restaurant dinner at 1,390. Both are a bread, a protein dish and a rice. The 550 calorie gap comes from three specific substitutions: butter naan instead of roti (+450 for two), butter chicken instead of dal (+300), and jeera rice instead of plain (+50). None of those is a bigger portion. They are the same plate with fat added at every stage.
The vegetarian protein gap
A vegetarian thali at 1,540 calories carrying 47 g of protein sounds reasonable until you notice how many calories it took to get there. The light home lunch at 540 calories gives 19 g. Most Indian vegetarian main meals land around 3 g of protein per 100 calories, against 5 to 6 for a meal built around chicken or fish.
The three cheapest fixes, by protein added per calorie: a bowl of curd (6 g for 100 kcal), rajma or chole instead of a potato sabzi (+8 g for +80 kcal), and paneer tikka instead of paneer butter masala (+5 g protein for 140 fewer calories, because grilling replaces the gravy).
Calories in Roti, Rice and Dal
These three are the base of most Indian meals and account for the majority of the calories in them. They are also the three most worth getting right, because a small error repeated at every meal compounds faster than anything else.
Breads, ranked
| Bread | Calories (1 pc) | Fat | Fibre |
|---|---|---|---|
| Phulka / roti (no ghee) | 105 | 1.5 g | 3 g |
| Thepla | 120 | 4 g | 2 g |
| Tandoori roti | 140 | 2 g | 3 g |
| Missi roti | 150 | 4 g | 4 g |
| Puri | 100 | 5 g | 1 g |
| Kulcha | 250 | 5 g | 2 g |
| Bhatura | 250 | 11 g | 1 g |
| Plain paratha | 260 | 11 g | 3 g |
| Naan | 280 | 6 g | 2 g |
| Laccha paratha | 290 | 14 g | 2 g |
| Aloo paratha | 300 | 12 g | 4 g |
| Garlic naan | 320 | 9 g | 2 g |
| Butter naan | 330 | 11 g | 2 g |
Puri is the interesting entry. At 100 calories it looks like the lightest thing on the list, and per piece it is — but nobody eats one puri. Six puris is 600 calories and 30 g of fat, which puts it close to two butter naan.
The practical takeaway: one butter naan is three rotis. If you swap two butter naan for three rotis at a restaurant meal, you remove about 345 calories and gain fibre, and you still have bread on the table.
Rice portions
| Rice | Serving | Calories |
|---|---|---|
| Plain rice | 1 cup cooked (~150 g) | 200 |
| Plain rice | Full restaurant plate (~2.5 cups) | 500 |
| Jeera rice | 1 cup | 250 |
| Ghee rice | 1 cup | 300 |
| Veg pulao | 1 cup | 280 |
| Curd rice | 1 bowl | 220 |
| Khichdi | 1 bowl | 250 |
One cup of cooked rice is smaller than most people picture. A standard restaurant rice plate is around two and a half cups, which is 500 calories — roughly five rotis. If your meal log says "rice" without a quantity, that is very likely where your missing calories are.
Dals, and the fat that separates them
| Dal (1 bowl) | Calories | Protein | Fibre |
|---|---|---|---|
| Moong dal | 160 | 11 g | 7 g |
| Dal tadka | 180 | 10 g | 8 g |
| Sambar | 140 | 7 g | 6 g |
| Rajma | 230 | 12 g | 10 g |
| Chole | 250 | 11 g | 9 g |
| Dal makhani | 320 | 12 g | 9 g |
Every one of these is a good source of protein and fibre. The spread from 140 to 320 is almost entirely the fat added at the end. Rajma and chole earn their higher figures with genuinely more protein and fibre; dal makhani earns its 320 with cream.
Calories in Indian Snacks and Street Food
Street food is the category where portion honesty matters most, because these things are eaten standing up, between meals, and almost never logged.
Scroll the table sideways to see every column.
| Snack | Serving | Calories | Fat | Usually eaten as |
|---|---|---|---|---|
| Dhokla | 2 pc | 150 | 4 g | Steamed — the light option |
| Samosa | 1 | 160 | 8 g | Rarely one; two is 320 |
| Pakora | 4 pc | 180 | 10 g | A plate is usually 8 to 10 |
| Kachori | 1 | 180 | 9 g | Usually with aloo sabzi |
| Aloo tikki | 2 pc | 220 | 10 g | With chutney and curd, add 80 |
| Pani puri | 6 pc | 220 | 7 g | A plate is often 8 to 12 |
| Bhel puri | 1 plate | 250 | 8 g | The sev and chutney carry it |
| Momos | 6 steamed | 280 | 8 g | Fried momos add about 150 |
| Sev puri | 6 pc | 280 | 13 g | Heavier than bhel |
| Vada pav | 1 | 290 | 11 g | Fried vada in a bread roll |
| Maggi | 1 pack | 350 | 13 g | Two packs is standard for many |
| Kathi roll | 1 | 400 | 18 g | A meal, not a snack |
| Pav bhaji | 1 plate | 450 | 21 g | The butter is most of the fat |
| Misal pav | 1 plate | 450 | 18 g | High fibre at least — 10 g |
| Chole bhature | 1 plate | 700 | 34 g | A full meal's calories |
Indian sweets, per piece
| Sweet | Serving | Calories |
|---|---|---|
| Soan papdi | 1 pc | 110 |
| Kaju katli | 2 pc | 130 |
| Rasgulla | 1 | 140 |
| Barfi | 1 pc | 160 |
| Gulab jamun | 1 | 175 |
| Mysore pak | 1 pc | 180 |
| Laddu | 1 | 190 |
| Jalebi | 2 pc | 200 |
| Rasmalai | 1 | 220 |
| Kheer | 1 bowl | 250 |
| Gajar halwa | 1 bowl | 330 |
Rasgulla is the lightest of the popular milk sweets because it is boiled in syrup rather than fried, so the calories are sugar rather than sugar plus fat. Gulab jamun is fried first and then soaked, which is why it carries 8 g of fat that a rasgulla does not.
How Accurate Are AI Calorie Estimates?
Honest answer: accurate enough to compare two meals against each other, not accurate enough to build a clinical diet on. The error is not evenly spread, and knowing where it concentrates is what makes the estimates useful.
Error by food type
| Food type | Likely error | Why |
|---|---|---|
| Idli, boiled egg, plain rice, fruit | Under 10% | Fixed recipe, discrete unit, no added fat |
| Roti, dosa, bread, milk, curd | 10–15% | Size varies, but the recipe does not |
| Dal, sambar, rajma, chole | 15–25% | The tempering can be 1 tsp of oil or 3 |
| Sabzi, paneer curries, chicken curry | 25–40% | Oil, cream and gravy quantity all vary |
| Biryani, pulao, fried rice | 25–40% | Plate size and ghee, plus the meat cut |
| Deep-fried snacks | 30–50% | Oil absorption depends on frying temperature |
| Restaurant gravies | Up to 50% | Commercial kitchens use far more fat than homes |
The four sources of error, in order of size
- Cooking fat. The largest by a distance. The same sabzi can be 110 calories or 240 depending on the oil, and nothing in a text description reveals which.
- Portion size. "One bowl" is not a standard unit. A katori in one house is 150 ml and in another 250, a 60 percent difference before the food is even chosen.
- Recipe variation by region. A Punjabi rajma and a Kashmiri one are different dishes wearing the same name.
- Parsing. The smallest source, and the only one this tool can control — which is why it shows you what it matched and what it skipped rather than hiding it.
How to use an estimate that has this much error in it
Use it for comparison, not for absolutes. The tool is far more reliable at telling you that butter chicken with two butter naan is roughly twice the meal that dal with three rotis is, than at telling you either one is exactly 1,140 or 560 calories. That comparison is stable even when both absolute numbers are 30 percent off, because the error moves both in the same direction.
Use it consistently. If you always describe your meals the same way, the errors become a constant offset rather than noise, and week-to-week changes in your total are real even if the total itself is not exact.
And treat any single-meal number as a range. If it says 640, read it as "somewhere around 550 to 750". That range is still enormously more informative than not knowing, which is the actual alternative.
Tips for Getting Better Calorie Estimates
Most of the error you can actually control comes from how you describe the meal, not from the tool. These are ordered by how much difference each one makes.
1. Give a number to everything
"Roti" is read as one roti. If you ate three, write three. This is the single biggest avoidable error, and it runs in one direction — people undercount, never over. The same applies to rice: "rice" defaults to one cup, and a restaurant plate is two and a half.
2. Say which version of the dish
"Dal" and "dal makhani" differ by 140 calories. "Paneer" and "paneer butter masala" differ by 130. "Dosa" and "masala dosa" differ by 220. The extra word costs you two seconds and removes the largest category of error after portion size.
3. Use the portion words
The parser understands "half", "quarter", "small", "large" and "big". "Half plate rice" is read as 0.5 servings; "large bowl dal" as 1.4. If your katori is genuinely bigger than average, say large every time — consistency matters more than getting the multiplier exactly right.
4. Count the oil and ghee separately when it is significant
If your roti is smeared with ghee, write "2 roti, 2 tsp ghee". If the sabzi was swimming, add "2 tsp oil". These are recognised as their own entries. It feels fussy, and it is the difference between a 490 calorie lunch and a 570 one.
5. Check the unrecognised list every time
The tool lists what it could not place. If half your meal is sitting in that list, the total is missing half your meal. Rewrite those items using a more common name and analyse again.
6. Correct the portions in the results, not in the sentence
Once the meal is parsed, every dish has a stepper. Adjusting there is faster and more accurate than rewriting and re-analysing, and it lets you see the total move as you change each portion — which is itself informative about which dish is actually driving your meal.
"roti, dal, sabzi, rice" → 635 calories
"3 roti, 1 bowl dal makhani, large bowl aloo gobi, 2 cups rice, 2 tsp ghee" → 1,377 calories
Same meal, described honestly. The 742 calorie difference is not the tool being wrong the first time — it is the first description not containing the information.
AI Indian Food Calorie Counter FAQs
Roughly 390 calories: about 105 per roti and about 180 for a standard bowl of dal tadka. Swap the dal for dal makhani and the same meal becomes about 530, because dal makhani is finished with cream and butter. Add a bowl of sabzi and you are at 540 to 680 depending on how much oil went into it.
About 105 calories for a standard 40 gram wheat roti made without ghee, with roughly 3 grams of protein and 3 grams of fibre. A roti smeared with ghee adds about 45 calories per teaspoon. A tandoori roti is larger and denser at around 140, and a plain paratha is about 260 because the dough is layered with fat before it is cooked.
A typical restaurant plate is around 450 calories with about 22 grams of protein. Home portions vary widely. The two things that move the number most are the amount of oil or ghee the rice was finished with and whether the plate includes a leg piece. A mutton biryani plate is usually closer to 520 because mutton carries more fat than chicken.
It uses natural language parsing rather than a large language model, and it runs entirely in your browser. The tool reads your sentence, finds the longest matching dish name at each position, works out the quantity and portion size from the words around it, and adds up the nutrition. There is no server call and nothing you type leaves your device. The How It Works section on this page explains the matching step in detail, including where it fails.
Either the dish is not in the database, or it was spelled in a way the matcher did not expect. The tool lists every word it could not place under the results, so you can see exactly what was skipped rather than getting a silently wrong total. Regional names help: writing "chole" rather than "chana", or "medu vada" rather than just "vada", usually resolves it.
For dishes with a stable recipe such as roti, rice, idli or a boiled egg, the estimates are usually within about 10 percent. For oily curries, restaurant gravies and anything fried, the honest range is 25 to 40 percent either way, because the same dish name covers wildly different amounts of oil. A home dal tadka with one teaspoon of oil and a restaurant dal fry finished with butter can differ by 150 calories for the same bowl.
That depends on your body size, age, sex and activity, and it is not something a calorie counter can decide for you. The 2,000 calorie figure used for scale on this page is the general reference value printed on nutrition labels, not a personal target. If you are eating for a specific goal such as weight loss or muscle gain, a registered dietitian can set a figure that fits you rather than an average.
Per serving, the leaders are tandoori chicken at around 35 grams, chicken tikka at 32, paneer tikka at 20, and rajma or chole at 11 to 12 grams a bowl. Per calorie, tandoori chicken and chicken tikka are far ahead of everything else because they are grilled rather than cooked in gravy. A vegetarian thali built on roti, rice, dal and sabzi typically lands between 15 and 22 grams of protein for 600 to 800 calories, which is the gap most Indian vegetarian diets need to close.
Yes. Describe everything on the plate in one sentence and the tool adds it up as one meal. A thali is usually the case where people most underestimate, because six small bowls do not look like much but commonly total 700 to 1,100 calories once the rice, breads, sweet and ghee are counted. After it parses, you can adjust each portion up or down without retyping.
No. Everything runs in your browser, nothing is sent to a server, and nothing is stored. Reloading the page clears it. If you want to keep a record, use the copy button and paste the summary wherever you track your food.