Specific energy converter
1 kJ/kg is 0.239005736138 cal/g. Convert energy per unit mass between J/kg, kJ/kg, thermochemical calories per gram and BTU per pound when a problem set, a fuel data sheet and a process balance mix units. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Value
- 1
- Source unit
- kJ/kg
- Target unit
- cal/g
- Result
- 0.2390057361
- From label
- kilojoules per kilogram
- To label
- calories per gram
- J per kg
- 1,000
A specific energy converter turns a quantity written as energy per unit mass into another unit pair without hunting thermodynamics handouts, fuel tables, or fragile spreadsheet factor rows.
Supported units and how the conversion is computed
The converter accepts four specific-energy families under stable canonical codes: J/kg for joules per kilogram, kJ/kg for kilojoules per kilogram, cal/g for thermochemical calories per gram, and BTU/lb for International Table British thermal units per avoirdupois pound.
Factors follow SI definitions and conventional energy standards: one kilojoule per kilogram is one thousand joules per kilogram, one thermochemical calorie per gram equals four thousand one hundred eighty-four joules per kilogram because one calorie is four point one eight four joules and one gram is one thousandth of a kilogram, and one International Table BTU per pound equals two thousand three hundred twenty-six joules per kilogram using the IT BTU of one thousand fifty-five point zero five five eight five two six two joules divided by the exact avoirdupois pound of zero point four five three five nine two three seven kilograms.
Because the intermediate is always J/kg, converting A to B and B to A is consistent up to the published rounding of twelve decimal places, and there is no pairwise matrix that can drift out of scope. Plain total energy, heating value workflows that need full fuel tables, and Q equals m c delta T heat calculations are intentionally out of scope so users who search specifically for specific energy unit conversion get predictable results under one clear convention.
Where this conversion helps day to day
Use the free in-browser specific energy converter when you need a quick kilojoules-per-kilogram to calories-per-gram or BTU-per-pound check while reading a thermodynamics problem set, a fuel data sheet, a materials handout, or a process energy balance. Open the page, enter the number and units, and copy the result without installing a unit library, a desktop engineering pack, or a spreadsheet with fragile factor cells. Source inputs follow the same retention rules as other KIT parse items, and results are safe to cache because the algorithm is fully deterministic.
Authors shipping mobile apps or chatbots can map the result and formula fields directly into cards that show both the number and the conversion path students and operators expect on paper.
What you can do with it
Fuel and materials data sheets
Engineers normalize vendor heating values and material specific energies listed in mixed units before entering values into balances or equipment selection tools.
FAQ
Which specific energy units does this converter support?
Joules per kilogram (J/kg), kilojoules per kilogram (kJ/kg), thermochemical calories per gram (cal/g), and International Table BTU per pound (BTU/lb).
How is one calorie per gram defined here?
cal/g uses the thermochemical calorie of exactly 4.184 J and the gram of exactly 0.001 kg, so 1 cal/g equals 4184 J/kg. Obsolete steam-table calorie variants are out of scope.
What happens if I send an unknown unit?
The message names the field and lists supported units. Validation failures are not charged.
Is the specific energy converter free?
The browser tool runs free on your device.
How many joules per kilogram is one BTU per pound?
One BTU per pound is 2326 joules per kilogram. The figure comes from the International Table BTU of 1055.05585262 joules divided by the exact avoirdupois pound of 0.45359237 kilograms.
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/specific-energy \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":1,"from":"kJ/kg","to":"cal/g"}'const res = await fetch("https://api.kit.forhosting.com/conv/specific-energy", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": 1,
"from": "kJ/kg",
"to": "cal/g"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/conv/specific-energy",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": 1,
"from": "kJ/kg",
"to": "cal/g"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/conv/specific-energy", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":1,"from":"kJ/kg","to":"cal/g"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":1,"from":"kJ/kg","to":"cal/g"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/conv/specific-energy", 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": 1,
"from": "kJ/kg",
"to": "cal/g"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "conv.specific_energy",
"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
The browser tool runs free on your device; the prepaid API charges $0.002 per successful item when pipelines need the same contract from servers and automation.
Supported units and how the conversion is computed
Friendly aliases such as joules per kilogram, kilojoules per kilogram, calories per gram, BTU per pound, btu/lb, and british thermal units per pound are normalized case-insensitively so forms and APIs can pass either short codes or full names. Every request multiplies the input value by the exact joules-per-kilogram factor for the source, then divides by the factor for the target.
Request shape, response fields, and unknown-unit errors
The error message names the bad field and lists the supported set so clients can correct forms without guessing. Negative values are allowed when you need signed specific-energy deltas in engineering pipelines; zero converts cleanly to zero in every target unit. Send a JSON body with three required fields: value as a finite number, from as the source unit string, and to as the target unit string. Aliases amount and quantity are accepted for value; unit_from and source for from; unit_to and target for to. On success the response echoes the canonical from and to codes, human-readable from_label and to_label strings, the converted result, the intermediate j_per_kg quantity, the dimensionless factor from source to target, a short formula line suitable for UI display, the method tag specific_energy_si_thermochemical_it, and the fixed list of units_supported. Missing value, non-finite numbers such as NaN or Infinity, missing unit fields, and any token that does not map to a supported unit fail with invalid_input and are not charged after the engine rejects the request. Identical inputs always yield identical JSON because the path is pure arithmetic with no randomness, no remote lookup, and no dependence on the wall clock, which makes the endpoint safe to pin in continuous-integration goldens and SDK contract tests. Large magnitude pairs such as many kilojoules per kilogram down to calories per gram share the same code path, so extreme values remain well-defined as long as IEEE double precision can represent the intermediate joules-per-kilogram product.
Browser use, API pricing, and everyday workflows
Switch to the prepaid API when a lab notebook app, process historian, educational platform, or simulation pre-processor must convert specific energy at scale under a stable KIT contract at $0.002 per successful item; validation failures that raise invalid_input do not consume balance after rejection. Pair this endpoint with the plain energy converter or heat-energy tools when a product pipeline needs several related measure families, or call it alone when search traffic is specifically for specific energy conversion—joules per kilogram, kilojoules per kilogram, calories per gram, and BTU per pound—rather than total energy or specific heat capacity.
Integration use cases
Thermodynamics homework and exams
Students convert specific energy between SI J/kg or kJ/kg and customary cal/g or BTU/lb when textbook tables mix unit systems, and get a clear invalid_input error on unknown tokens.
Simulation and historian pipelines
Automation scripts convert logged or configured specific-energy values to a single SI base with a prepaid, deterministic API contract.
Technical questions
How do I convert 1 kJ/kg to cal/g?
Send JSON with value: 1, from: "kJ/kg", to: "cal/g". The response result field is the converted number, plus a j_per_kg intermediate and a readable formula.