Energy density converter
One watt-hour per litre equals 3.6 million joules per cubic metre. Convert energy per volume between eleven units, from J/m³ and Wh/L to kWh/m³ and BTU/ft³, for battery packs, fuel tables, building energy audits and physics homework. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Value
- 3,600,000
- From
- J/m³
- To
- Wh/L
- Result
- 1 Wh/L
- Converted
- 1
- From label
- joules per cubic metre
- To label
- watt-hours per litre
A volumetric energy density converter turns one energy-per-volume reading into another unit without spreadsheet formulas or fragile factor tables. Enter a finite magnitude plus a source unit and a target unit among joules, kilojoules, and megajoules per cubic metre, watt-hours and kilowatt-hours per litre or cubic metre, British thermal units per cubic foot, and joules through megajoules per litre; the tool returns the converted density, the SI intermediate in joules per cubic metre, the exact unit factor applied, and step-by-step substitution lines you can paste into a report. Battery and capacitor designers comparing Wh/L pack density, gas and fuel engineers aligning SI and customary volumetric energy tables, HVAC auditors converting kWh/m³ site figures, and physics students converting textbook J/m³ examples all need the same deterministic path.
Which volumetric energy density units are supported and how conversion works
This capability converts among eleven everyday volumetric energy density units that dominate energy-storage datasheets, fuel tables, building energy audits, and engineering homework. Joules per cubic metre are the SI coherent hub: every conversion multiplies the input by how many joules per cubic metre equal one source unit, then divides by how many joules per cubic metre equal one target unit. Kilojoules and megajoules per cubic metre use the exact thousand and million factors.
Watt-hours per litre use the exact three thousand six hundred joules per watt-hour scaled by one thousand litres per cubic metre, so one watt-hour per litre equals three point six million joules per cubic metre. Kilowatt-hours per litre scale by another thousand. Watt-hours and kilowatt-hours per cubic metre use three thousand six hundred and three point six million joules per cubic metre respectively.
British thermal units per cubic foot use the International Table BTU of one thousand fifty-five point zero five five eight five two six two joules and the international cubic foot of zero point zero two eight three one six eight four six five nine two cubic metres. Joules, kilojoules, and megajoules per litre scale by the exact litre-to-cubic-metre factor of one thousandth of a cubic metre. Same-unit requests succeed and return the input magnitude with a short message that no change of unit was required.
Practical tips, limits, and when to use this landing
Prefer sending bare numbers for value when you control the client; string numbers are accepted only when they match a strict finite numeric pattern without currency symbols or thousand separators. Round-trip checks are straightforward: convert A to B and B back to A and confirm you recover the original within the published twelve-decimal rounding.
When teaching unit analysis, pair classic examples such as three million six hundred thousand joules per cubic metre converting exactly into one watt-hour per litre, and fuel or storage tables that report megajoules per cubic metre alongside British thermal units per cubic foot. Stay inside the absolute range so intermediate SI values cannot overflow.
This landing targets people searching for an energy density converter, volumetric energy density unit conversion, J/m3 to Wh/L, or BTU/ft3 energy density online; it is not a mass-based specific-energy tool (J/kg), not a calorific-value-only fuel landing, and not a power density (W/m³) converter.
What you can do with it
Battery and energy-storage pack comparison
Designers convert cell and pack volumetric energy density between Wh/L and J/m³ or kWh/m³ for datasheets, competitive benchmarks, and system models.
Fuel and gas volumetric energy tables
Engineers convert pipeline or liquid-fuel energy density between MJ/m³, kJ/L, and BTU/ft³ for cross-border contracts and process calculations.
Building energy audit unit alignment
Auditors convert site volumetric energy figures into kWh/m³ or Wh/m³ for reporting, carbon accounting, and SI design reviews.
FAQ
What is volumetric energy density in this converter?
Energy stored or released per unit volume. Supported units include J/m³, Wh/L, BTU/ft³, kWh/m³, MJ/L, and related SI customary pairs.
What happens if I send an unknown unit name?
Unknown names are never silently mapped to a guessed factor.
Does this convert mass-based specific energy (J/kg)?
No. This tool converts volumetric energy density only. Mass-based specific energy needs the dedicated specific-energy converter.
Is the energy density converter free?
The browser tool is free and runs locally.
Which unit do battery datasheets use?
Battery and capacitor makers usually quote volumetric density in watt-hours per litre. Converting it to joules or megajoules per cubic metre lets you compare a pack with fuel tables or physics figures on one scale.
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/energy-density \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":3600000,"from":"J/m³","to":"Wh/L"}'const res = await fetch("https://api.kit.forhosting.com/conv/energy-density", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": 3600000,
"from": "J/m³",
"to": "Wh/L"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/conv/energy-density",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": 3600000,
"from": "J/m³",
"to": "Wh/L"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/conv/energy-density", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":3600000,"from":"J/m³","to":"Wh/L"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":3600000,"from":"J/m³","to":"Wh/L"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/conv/energy-density", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"value": 3600000,
"from": "J/m³",
"to": "Wh/L"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "conv.energy_density",
"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
Unknown unit names fail with a clear invalid_input error instead of silent wrong factors.
Which volumetric energy density units are supported and how conversion works
Common aliases are accepted case-insensitively: J/m3, joules per cubic meter, and j per m3 for J/m³; Wh/L, watt-hours per litre, and Wh per liter for Wh/L; BTU/ft3, btu per cubic foot, and BTU/ft^3 for BTU/ft³; plus parallel aliases for kJ/m³, MJ/m³, kWh/L, Wh/m³, kWh/m³, J/L, kJ/L, and MJ/L. If the name is not on that list the solver rejects the request with invalid_input naming the bad field and listing supported units, so clients never guess whether a typo produced a wrong number. Absolute magnitude must stay within the published one-trillion limit so intermediate products remain finite in IEEE double precision on the Worker and in the browser.
How to call the API and read the response
Value must be a finite number or a strict numeric string within absolute limits of one trillion. Wire this into dashboards, mobile clients, or batch jobs that already hold a volumetric energy density reading and only need a second unit for display, pack comparison, or regulatory reporting without shipping floating conversion tables in every app binary. Negative magnitudes are accepted when signed energy-density differences appear in models; zero converts cleanly to zero in every target unit. Send a JSON body with three required fields: value (aliases amount, quantity, n, rho_e, and density), from (aliases from_unit, unit_from, and source), and to (aliases to_unit, unit_to, and target). From and to must resolve to supported unit names after alias normalization. On success the response echoes the rounded input value, canonical from and to labels, human-readable from_label and to_label strings, result and converted set to the same rounded target magnitude, value_j_per_m3 as the SI intermediate, unit as the target label, factor as the from-to multiplier, formula as the short equation string, message as an English summary, steps as ordered substitution lines, and supported_units as the eleven canonical identifiers. Failed validation—missing fields, non-finite numbers, values outside absolute limits, or an unknown unit name—returns invalid_input and is never charged. Pricing is a flat $0.002 per successful request with unit item and zero marginal unit price.
Practical tips, limits, and when to use this landing
Normalize display labels on your side if you need locale-specific spellings—this API always returns the short canonical tokens J/m³, kJ/m³, MJ/m³, Wh/L, kWh/L, Wh/m³, kWh/m³, BTU/ft³, J/L, kJ/L, and MJ/L so automated tests stay stable. Prefer this capability when both endpoints are among the eleven supported volumetric energy units and you need deterministic factors and step strings; if you only need mass-based specific energy, use the dedicated specific-energy converter instead. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when clients deliberately probe unknown unit names.
Technical questions
Which units are supported?
J/m³, kJ/m³, MJ/m³, Wh/L, kWh/L, Wh/m³, kWh/m³, BTU/ft³, J/L, kJ/L, and MJ/L, plus common aliases such as joules per cubic meter and watt-hours per litre.