Calorific value converter
38 MJ/m³ of pipeline gas is just under one thousand twenty BTU per cubic foot. Switch any calorific value among seven volume-based units used in gas contracts, fuel datasheets and energy audits, with the joules-per-cubic-metre step shown. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Numeric calorific
- 38
- From
- MJ/m³
- To
- BTU/ft³
- Result
- 1,019.889295741 BTU/ft³
- Converted
- 1,019.889295741
- Value j per m3
- 38,000,000
- Factor
- 26.8391919932
A calorific value converter turns one fuel heating-value reading into another volumetric energy unit without spreadsheet formulas or fragile factor tables. Enter a finite magnitude plus a source unit and a target unit among megajoules per cubic metre, kilojoules per cubic metre, British thermal units per cubic foot, kilocalories per litre, kilocalories per cubic metre, megajoules per litre, and kilowatt-hours per cubic metre; the tool returns the converted calorific value, 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. Gas utilities comparing pipeline CV tables, biodiesel labs reporting liquid energy density, HVAC and process engineers aligning SI and customary datasheets, and students converting textbook natural-gas examples all need the same deterministic path.
Which calorific value units are supported and how conversion works
This capability converts among seven everyday volumetric calorific value units that dominate natural-gas contracts, liquid-fuel datasheets, 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. Megajoules per cubic metre use the exact factor one million joules per megajoule; kilojoules per cubic metre use one thousand.
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. Thermochemical kilocalories per litre use four thousand one hundred eighty-four joules per kilocalorie scaled by one thousand litres per cubic metre, and kilocalories per cubic metre use four thousand one hundred eighty-four joules directly.
Megajoules per litre scale by one billion joules per cubic metre per megajoule per litre. Kilowatt-hours per cubic metre use the exact three point six million joules per kilowatt-hour. 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 thirty-eight megajoules per cubic metre of pipeline gas converting into roughly one thousand twenty-one British thermal units per cubic foot, and liquid-fuel tables that report kilocalories per litre alongside megajoules per litre. Stay inside the absolute range so intermediate SI values cannot overflow.
This landing targets people searching for a calorific value converter, heating value unit conversion, MJ/m3 to BTU/ft3, or kcal/L fuel energy density online; it is not a mass-based MJ/kg heating-value tool, not a higher-versus-lower heating value chemistry calculator, and not a specific heat capacity converter.
What you can do with it
Natural gas contract unit alignment
Utilities and traders convert pipeline calorific values between MJ/m³ and BTU/ft³ for cross-border contracts, nomination systems, and settlement reports.
Liquid fuel lab and datasheet reporting
Labs convert biodiesel or heating-oil energy density between kcal/L and MJ/L for certificates of analysis and SI product sheets.
Energy audit and engineering checks
Engineers convert site fuel CV tables into kWh/m³ or kJ/m³ for boiler efficiency models, carbon accounting, and design reviews.
FAQ
What is calorific value in this converter?
Supported units include MJ/m³, BTU/ft³, kcal/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 MJ/kg mass-based heating value?
No. This tool converts volumetric calorific units only. Mass-based heating values need density or a dedicated mass CV converter.
Is the calorific value converter free?
The browser tool is free and runs locally.
How do I convert MJ/m³ to BTU per cubic foot?
Choose MJ/m³ as the starting unit and BTU/ft³ as the target, then enter the value. The tool goes through joules per cubic metre and shows the exact factor and every step, ready to paste into a report.
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/calorific-value \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":38,"from":"MJ/m³","to":"BTU/ft³"}'const res = await fetch("https://api.kit.forhosting.com/conv/calorific-value", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": 38,
"from": "MJ/m³",
"to": "BTU/ft³"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/conv/calorific-value",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": 38,
"from": "MJ/m³",
"to": "BTU/ft³"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/conv/calorific-value", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":38,"from":"MJ/m³","to":"BTU/ft³"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":38,"from":"MJ/m³","to":"BTU/ft³"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/conv/calorific-value", 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": 38,
"from": "MJ/m³",
"to": "BTU/ft³"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "conv.calorific_value",
"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
Unknown unit names fail with a clear invalid_input error instead of silent wrong factors.
Which calorific value units are supported and how conversion works
Common aliases are accepted case-insensitively: MJ/m3, megajoules per cubic meter, and MJ per m3 for MJ/m³; BTU/scf, btu per cubic foot, and BTU/ft^3 for BTU/ft³; kcal/L, kilocalories per litre, and cal/ml for kcal/L; plus parallel aliases for kJ/m³, kcal/m³, MJ/L, and kWh/m³. 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 calorific value reading and only need a second unit for display, contract comparison, or regulatory reporting without shipping floating conversion tables in every app binary. Send a JSON body with three required fields: value (aliases cv, hv, amount, n, and q), 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, 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 seven 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 MJ/m³, kJ/m³, BTU/ft³, kcal/L, kcal/m³, MJ/L, and kWh/m³ so automated tests stay stable. Prefer this capability when both endpoints are among the seven supported volumetric calorific units and you need deterministic factors and step strings; if you only need heat of combustion per gram from molar enthalpy, use the dedicated combustion-per-gram capability 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?
MJ/m³, kJ/m³, BTU/ft³, kcal/L, kcal/m³, MJ/L, and kWh/m³, plus common aliases such as BTU/scf and megajoules per cubic meter.