ML to KG converter
Turn a volume in millilitres into kilograms with the density of your substance: 1000 ml of water at 1 kg per litre is 1 kg. No density is assumed, so oil, honey or ethanol each get their own correct mass. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Ml
- 1,000
- Density
- 1
- Result
- 1 kg
- Converted
- 1
- Density unit
- kg/L
- Liters
- 1
A milliliters-to-kilograms converter turns a measured liquid or slurry volume in milliliters into a mass in kilograms once you know how many kilograms occupy one liter of that substance. Water is a common sanity check: one kilogram per liter yields one kilogram for one thousand milliliters.
Why milliliters are not kilograms until density is known
Milliliters measure volume. Kilograms measure mass. One thousand milliliters of water near four degrees Celsius has a mass of about one kilogram, while one thousand milliliters of ethanol at a density near zero point seven eight nine kilograms per liter has a mass of about zero point seven eight nine kilograms, and one thousand milliliters of honey near one point four two kilograms per liter has a mass of about one point four two kilograms.
A milliliters-to-kilograms landing that hid a single default density would silently lie on every substance except the one it assumed. The identity is mass equals volume times density when volume is in liters and density is in kilograms per liter. One liter is defined as exactly one thousand milliliters, so liters equals milliliters divided by one thousand, and kilograms equals milliliters times density divided by one thousand.
That is the whole algorithm: two finite numbers, one divide, one multiply, then stable rounding. Callers must supply density because density is a substance property, not a unit factor between milliliters and kilograms. Typical figures people already have from a data sheet include one kilogram per liter for liquid water, about zero point nine one for olive oil, about zero point seven nine for ethanol, and about one point eight four for concentrated sulfuric acid.
Those figures are examples only; this capability never looks up a material table and never guesses. If you only have density in grams per milliliter, that number is numerically equal to kilograms per liter, so you can pass it as density without a further scale change. If you only have density in kilograms per cubic metre, divide by one thousand to obtain kilograms per liter before calling.
Zero milliliters maps to zero kilograms at any valid density. The conversion is linear in both volume and density, so doubling either input doubles the kilograms, which is the check operators use when a batch mass looks off by a factor of two.
Where milliliters-to-kilograms conversion is used, and what this tool is not
Process plants convert a measured milliliter fill or draw-off into kilograms for inventory when the tank density is already known in kilograms per liter from a hydrometer or a certificate of analysis. Quality and compounding labs turn a pipetted milliliter sample into kilograms before a mass-balance spreadsheet that stores density in kilograms per liter rather than grams per milliliter. Food, beverage, and cosmetics lines convert milliliter batch tickets for oils, syrups, or actives into kilograms for yield checks when density is already known.
Shipping desks that quote small liquid lots in milliliters still need kilograms for a dangerous-goods declaration or a net-weight label. Students checking the identity mass equals volume times density use the same contract as a production pipeline, which is the point of a deterministic parse tool. Prefer this landing when the search is ml to kg, milliliters to kilograms, or convert milliliters to kilograms and you already have density in kilograms per liter.
It is not a general volume-unit hub that turns liters into milliliters without a mass, not a milligrams-to-milliliters dose converter, not a gallons-from-kilograms shipping tool, and not a density solver that rearranges rho equals m over V from two other fields. Stay inside the absolute range so the product cannot overflow. Pair the result with your own temperature correction if the data-sheet density was measured at a different temperature than the batch you measured, and never treat this arithmetic as medical advice.
What you can do with it
Lab samples and compounding mass from a pipette
Turn a pipetted milliliter volume into kilograms using the density from the certificate of analysis, then post the mass to a balance sheet labelled in kilograms.
Batch tickets for oils, syrups, and actives
Convert milliliter fill volumes on a formulation ticket into kilograms at a known kg/L density for yield checks without assuming water.
FAQ
What formula converts milliliters to kilograms?
Kilograms = milliliters × density ÷ 1000, when density is in kilograms per liter (kg/L). One liter is exactly 1000 milliliters. The tool returns that product rounded to twelve decimal places, plus substitution steps.
What density unit does the converter expect?
Kilograms per liter (kg/L). Grams per milliliter is numerically equal to kg/L, so you can pass g/ml as density without a scale change. If you only have kg/m³, divide by 1000 first.
What happens if volume or density is negative or not a number?
A negative milliliter volume, a negative density, or a value that is not a finite number is rejected, and failed tasks are not billed.
Is water assumed when converting ml to kg?
No. Callers must supply the density in kg/L. Water is only a sanity check: one kilogram per liter yields one kilogram for one thousand milliliters.
Is the ml to kg converter free?
The browser tool is free and runs locally.
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/conv/ml-to-kg \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"ml":1000,"density":1}'const res = await fetch("https://api.kit.forhosting.com/conv/ml-to-kg", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"ml": 1000,
"density": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/conv/ml-to-kg",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"ml": 1000,
"density": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/conv/ml-to-kg", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"ml":1000,"density":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"ml":1000,"density":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/conv/ml-to-kg", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"ml": 1000,
"density": 1
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "conv.ml_to_kg",
"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_abs | 1000000000000 |
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
Volume and density must be finite numbers that are not negative: a negative milliliter value, a negative density, or a value that is not a number fails with invalid_input, which is not billed.
Input contract, errors, and the response shape
Send a JSON body with two required finite numbers: ml, the non-negative volume of the substance in milliliters, and density, the non-negative density in kilograms per liter. Aliases milliliters, millilitres, milliliter, millilitre, volume, value, and ml_value are accepted for the volume field; rho, density_kg_l, kg_per_l, kg_l, kg_per_liter, and kg_per_litre are accepted for density, so SDK clients and form posts can use the name that fits the product. This endpoint does not assume water, does not convert milliliters of one liquid into kilograms of a different liquid, and does not look up a formulary. On success the response echoes rounded ml and density, sets density_unit to kg/L, sets liters to milliliters divided by one thousand, and sets kg, result, and converted to the same rounded kilogram magnitude. unit and to_unit are the token kg, from_unit is ml, ml_per_liter is one thousand, formula restates kg equals ml times density divided by one thousand, message is a short English summary, and steps is an ordered array of substitution lines. The stated product error is a volume or density that is negative or not a number: missing, empty, non-numeric, non-finite, or negative ml or density fails with invalid_input naming the field and is never charged. Pricing is a flat $0.002 per successful request with unit item.
Where milliliters-to-kilograms conversion is used, and what this tool is not
Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when a learner deliberately sends a negative density to see the error.
Integration use cases
Small-lot shipping labels and homework checks
Quote desks convert milliliter lots to kilograms for net-weight labels; students pin golden JSON so browser and API arithmetic never drift.