Cubic meter to ton converter
1 m³ of water at 1,000 kg/m³ weighs 1 metric ton: multiply a tank, silo or stockpile volume by the material density and divide by 1,000 to get tons, with the density always yours and never guessed. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Cubic meters
- 1
- Density
- 1,000
- Result
- 1 t
- Density unit
- kg/m³
- Mass kg
- 1,000
- Tons
- 1
A cubic-metre-to-ton converter turns a bulk, tank, or stockpile volume in cubic metres into mass in metric tons by multiplying by the material density and dividing by one thousand, because one metric ton is defined as exactly one thousand kilograms. Water at one thousand kilograms per cubic metre yields one ton per cubic metre, which is the usual sanity check before quoting concrete, sand, oil, or steel.
The mass-from-volume identity and why density is required
Mass is not a unit conversion of volume. One cubic metre of air, water, wet sand, and steel occupy the same space and weigh entirely different amounts, so a cubic-metre-to-ton landing that hid a single default density would silently lie on every material except the one it assumed. The SI identity is mass in kilograms equals volume in cubic metres times density in kilograms per cubic metre.
A metric ton is defined as exactly one thousand kilograms, so tons equals that product divided by one thousand. That is the whole algorithm: two finite numbers, one multiply, one divide, then stable rounding. Callers must supply density because density is a material property, not a unit factor.
Typical bulk figures people already have from a data sheet include about one thousand kilograms per cubic metre for fresh water, about two thousand four hundred for ordinary concrete, about one thousand six hundred for damp sand, and about seven thousand eight hundred fifty for carbon steel. Those figures are examples only; this capability never looks up a material table and never guesses. If you only have specific gravity relative to water, multiply that gravity by one thousand to obtain kilograms per cubic metre before calling.
If you only have tons per cubic metre, that number is already the tons result per cubic metre and you would be using a different unit of density than this contract, which is kilograms per cubic metre. Zero cubic metres maps to zero tons at any valid density. The conversion is linear in both volume and density, so doubling either input doubles the tons, which is the check estimators use when a quote looks off by a factor of two.
Where cubic-metre-to-ton conversion is used, and what this tool is not
Bulk commodity desks convert silo and hold volumes to metric tons before issuing a weight ticket or a draft survey estimate, using a density from the cargo certificate rather than a generic table. Ready-mix and civil teams turn poured cubic metres of concrete or compacted fill into tons for trucking and for comparing a supplier quote that bills by the tonne. Process engineers convert tank working volume of a known liquid into tons for inventory and for mass-balance spreadsheets that already store density in kilograms per cubic metre.
Students checking the identity m equals V rho use the same contract as a production pipeline, which is the point of a deterministic parse tool. Prefer this landing when the search is cubic meter to ton, m3 to tons, or cubic metres to metric tons and you already have density. It is not a US short-ton converter: a short ton is two thousand avoirdupois pounds, about nine hundred seven kilograms, and mixing that factor with this result would understate mass by roughly ten percent.
It is not an aggregate landscaping calculator with gravel or sand presets, not a bidirectional volume unit hub, 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.
What you can do with it
Bulk cargo and silo tickets
Turn a measured hold or silo volume in cubic metres into metric tons with the cargo density from the certificate, and keep the kilogram intermediate for the weight ticket.
Concrete, fill, and trucking quotes
Convert poured or compacted cubic metres to metric tons for haulage, comparing a supplier quote that bills by the tonne against the same density every row.
FAQ
How do I convert cubic meters to metric tons?
Multiply volume in cubic metres by density in kilograms per cubic metre, then divide by 1000.
What density unit does the converter expect?
Kilograms per cubic metre (kg/m³). If you only have specific gravity relative to water, multiply that gravity by 1000 to obtain kg/m³ before calling.
What happens if density is zero or negative?
Density must be a positive number; a zero or negative density is not a usable material property for mass from volume, and failed tasks are not billed.
Is the result a metric ton or a US short ton?
A metric ton (tonne) of 1000 kg. A US short ton is 2000 lb and is not applied here.
What does the cubic meter to ton converter cost?
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/cubic-meter-to-ton \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"cubic_meters":1,"density":1000}'const res = await fetch("https://api.kit.forhosting.com/conv/cubic-meter-to-ton", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"cubic_meters": 1,
"density": 1000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/conv/cubic-meter-to-ton",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"cubic_meters": 1,
"density": 1000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/conv/cubic-meter-to-ton", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"cubic_meters":1,"density":1000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"cubic_meters":1,"density":1000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/conv/cubic-meter-to-ton", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"cubic_meters": 1,
"density": 1000
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "conv.cubic_meter_to_ton",
"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
Density must be a positive finite number: zero, negative, missing, or non-numeric density fails with invalid_input and is not billed.
Input contract, units, errors, and the response shape
Send a JSON body with two required finite numbers: cubic_meters, the non-negative volume in cubic metres, and density, the strictly positive material density in kilograms per cubic metre. Aliases volume, m3, cubic_metres, value, and cu_m are accepted for the volume field; rho, density_kg_m3, bulk_density, and kg_m3 are accepted for density, so SDK clients and form posts can use the name that fits the product. On success the response echoes rounded cubic_meters and density, sets density_unit to kg/m³, mass_kg to the intermediate kilogram mass, and sets tons, metric_tons, and result to the same rounded metric-ton magnitude. unit and to_unit are the token t, from_unit is m³, kg_per_metric_ton is one thousand, formula restates tons equals cubic_meters 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 density that is not a positive number: zero, negative, missing, empty, non-numeric, or non-finite density fails with invalid_input naming density and is never charged. A missing or negative volume fails the same way, naming cubic_meters. Pricing is a flat $0.002 per successful request with unit item.
Where cubic-metre-to-ton 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 zero density to see the error.
Integration use cases
Tank inventory and homework checks
Process notebooks and algebra drills convert a known liquid or textbook volume to tons with m = V ρ / 1000 and pin golden JSON so browser and API arithmetic never drift.