ForHosting KIT · Home, food & hobbies

Healthy coffee calorie calculator

A latte with 180 ml of whole milk and one teaspoon of sugar comes to 136.2 kcal, and the milk alone brings 115.2 of them. Pick the coffee type, enter the milk and the sugar, and get the total for your food log. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Coffee type
Latte
Milk volume
180
Sugar teaspoons
1
You get
Coffee kcal
5
Milk kcal
115.2
Sugar kcal
16
Daily calories
136.2

A coffee drink's calories are not a mystery once you separate the three things that actually contribute energy: the coffee itself, the milk you pour, and the sugar you stir in. This healthy coffee calorie calculator accepts a coffee type, a milk volume in millilitres, and a sugar amount in teaspoons, then returns the total kilocalories of that cup. Black espresso is almost empty of energy; a latte with a large splash of whole milk and two teaspoons of sugar is not. The coffee type is a closed enum so the same drink name always maps to the same base kilocalories, milk is priced at a fixed 64 kilocalories per 100 millilitres of whole cow's milk, and each teaspoon of granulated sugar adds 16 kilocalories.

Milk volume, sugar teaspoons, and the calorie identity

Most of the energy in a café drink is not the espresso. It is the milk and the sugar. Milk volume is required and is measured in millilitres.

Zero millilitres is a black cup; a typical cappuccino splash is about 120 millilitres and a latte pour is often 180 millilitres or more. The model does not switch to skim, oat, or almond: those beverages have different densities and labels, and mixing them into one volume field would make the same millilitre count mean two different energies. Sugar teaspoons is required and counts granulated sugar.

Fractions are allowed when someone used half a teaspoon; zero teaspoons yields no sugar energy.

Log the café stop without a nutrition database

Pick the drink type, enter the milk millilitres the barista poured, add the teaspoons of sugar you stirred in, and read the kilocalorie total for a food log.

Meal-log and coaching apps

Resolve a coffee line-item to kilocalories from type, milk, and sugar without maintaining a café calorie table in every client.

What milk and sugar conventions does the calculator use?

Milk is whole cow's milk at 64 kilocalories per 100 millilitres. Each teaspoon of granulated sugar is 16 kilocalories (4 grams at 4 kilocalories per gram). Skim, oat, syrups, and whipped cream are out of scope.

What happens if sugar teaspoons is negative?

Sugar teaspoons must be a finite non-negative number; a negative count cannot describe a cup, and the failure is not billed.

Can I use oat, almond or skim milk?

No. Milk is counted as whole cow's milk at 64 kcal per 100 ml. Skim, oat and almond drinks have different densities and labels, so mixing them into the same milk amount would give the wrong total.

Why do a latte and a cappuccino have the same coffee calories?

Because the coffee base is the same, about 5 kcal for both. What makes them differ is the milk you enter: a typical cappuccino splash is about 120 ml, while a latte pour is often 180 ml or more.

How many calories does a teaspoon of sugar add?

Each teaspoon of granulated sugar adds 16 kcal. You can enter half a teaspoon or any other fraction, and zero teaspoons adds nothing, so an unsweetened cup counts only the coffee and the milk.

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.

POSThttps://api.kit.forhosting.com/cook/healthy-coffee

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.

curl -X POST https://api.kit.forhosting.com/cook/healthy-coffee \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"coffee_type":"latte","milk_volume":180,"sugar_teaspoons":1}'
{
  "coffee_type": "latte",
  "milk_volume": 180,
  "sugar_teaspoons": 1
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "cook.healthy_coffee",
  "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.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

max_milk_ml2000
max_sugar_tsp50
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

If sugar teaspoons is negative the task fails with invalid_input instead of inventing a negative energy total.

Coffee type and the base kilocalorie table

A healthy coffee calorie calculator is only useful when the coffee name is attached to a known energy figure, not to a vague café special. This capability stores a closed table of base kilocalories for the coffee portion alone, with no milk and no sugar, for thirteen canonical types: espresso at 3, doppio at 6, americano at 5, black at 2, cold_brew at 5, latte at 5, cappuccino at 5, flat_white at 5, macchiato at 3, french_press at 7, pour_over at 5, instant at 4, and turkish at 7. Those figures are typical USDA-style values for the brewed coffee itself, so a latte and a cappuccino share the same coffee-base energy and differ in the milk you send separately. The field coffee_type is an enum: the form paints a select, the API rejects unknown strings with invalid_input, and two clients never disagree on whether latte means a milk-forward espresso drink. Aliases such as drip, black coffee, cold brew, and flat white resolve to the canonical ids, but the response always echoes the canonical key. If you need a custom café drink, pick the closest type and put the real milk millilitres and sugar teaspoons in the other fields; this endpoint does not accept a free-form calorie override, because a free-form number would make the coffee-type landing pointless.

Milk volume, sugar teaspoons, and the calorie identity

Calories from milk use whole cow's milk at 64 kilocalories per 100 millilitres, so milk_kcal equals milk_volume times 64 divided by 100. Each teaspoon is treated as 4 grams at 4 kilocalories per gram, which is 16 kilocalories, so sugar_kcal equals sugar_teaspoons times 16. A negative sugar_teaspoons value is not a cup, it is a data error, and the task fails with invalid_input naming the field and stating that teaspoons of sugar cannot be negative. Those failures are not billed. Total calories equal coffee_kcal plus milk_kcal plus sugar_kcal.

Input contract, response shape, and where it fits

Failed validation does not consume balance. POST a JSON body with three required fields: coffee_type (one of the thirteen canonical ids), milk_volume (non-negative millilitres, maximum 2000), and sugar_teaspoons (non-negative count, maximum 50). Missing fields, non-finite numbers, an unknown coffee type, a negative milk volume, a negative sugar count, and values above the declared limits all fail as invalid_input with a message that names the field. On success the body includes the echoed coffee_type, milk_volume, and sugar_teaspoons; coffee_kcal from the table; milk_kcal; sugar_kcal; calories as the sum; and a short formula string. Example: coffee_type latte, milk_volume 180, sugar_teaspoons 1 yields 5 plus 115.2 plus 16, which is 136.2 kilocalories. Pair the number with your own food diary or remaining budget; this endpoint only converts a coffee drink into kilocalories.

Compare milk-forward versus black cups

Hold coffee_type and sugar_teaspoons fixed and change milk_volume to see how much energy a latte pour adds compared with an americano or a black drip.

How are total calories of a coffee drink computed?

Calories equal the coffee-base table value for coffee_type plus milk_volume millilitres × 64 / 100 plus sugar_teaspoons × 16. The table is espresso 3, doppio 6, americano 5, black 2, cold_brew 5, latte 5, cappuccino 5, flat_white 5, macchiato 3, french_press 7, pour_over 5, instant 4, turkish 7.

Which coffee types can I send in coffee_type?

The enum is espresso, doppio, americano, black, cold_brew, latte, cappuccino, flat_white, macchiato, french_press, pour_over, instant, and turkish. Unknown strings are rejected. Names such as drip coffee or flat white are accepted as aliases of the canonical id.

Does the free healthy coffee widget match the API, and what does a call cost?

Yes: handler and widget share the same solve module, so calories agree byte-for-byte. The browser tool is free. API requests use prepaid balance at $0.002 per successful call; invalid input is not billed.

Read the full KIT documentation →