Heat of formation from reaction calculator
Solve for the missing heat of formation in a balanced equation: methane combustion at −890 kJ/mol, with −393.5 for carbon dioxide, −285.8 for water and 0 for oxygen, gives methane −75.1 kJ/mol. The known contribution is shown too. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Reaction enthalpy
- -890
- Unknown coefficient
- -1
- Known coefficients
- -2, 1, 2
- Known enthalpies
- 0, -393.5, -285.8
- Known contribution
- -965.1
- Unknown formation enthalpy
- -75.1
- Species count
- 4
- Precision
- 10
This heat of formation from reaction calculator finds the unknown standard enthalpy of formation of one compound when you already know the reaction enthalpy and the formation enthalpies of every other species in a balanced thermochemical equation. Hess's law writes the reaction enthalpy as the signed sum of stoichiometric coefficients times formation enthalpies, so isolating the missing term is a single division after subtracting the known contribution. You supply ΔH_rxn, the signed coefficient of the unknown (positive for a product, negative for a reactant), and two parallel arrays of known coefficients and known ΔH_f values in matching energy units such as kilojoules per mole. The engine returns the unknown formation enthalpy, the summed known contribution, and a short formula reminder with no network lookup, no random sampling, and no date-dependent shortcuts.
Where unknown formation enthalpy fits in study, lab work, and software
Students meet this rearrangement when a thermochemistry chapter gives a measured combustion enthalpy and a table of formation values with one compound left blank, when a lab asks for ΔH_f of a product from a bomb-calorimeter ΔH_rxn, or when an exam supplies signed coefficients and demands the missing heat of formation without a programmable CAS. Teachers can pre-generate answer keys for modest stoichiometry without trusting opaque apps that silently flip reactant signs or mix kilojoules with joules.
Process and materials engineers use the same contract as a quick sanity check before process-simulation tables, confirming that a reported reaction enthalpy is consistent with a candidate formation value for an intermediate. Developers call it from scripts to seed deterministic test vectors for thermochemistry dashboards, to normalize user-entered Hess-law inputs before plotting, or to satisfy programming-challenge statements that demand the isolated ΔH_f rather than a hand-waved estimate.
Contest and homework practice often needs a fast, offline source of formation enthalpies so solutions can be checked under time pressure without copying full data books. Product and education tools use the evaluation when a learner types ΔH_rxn, the unknown coefficient, and the known lists and the UI must show the unknown formation enthalpy plus the intermediate known contribution.
What you can do with it
Homework and exam checks
Isolate unknown ΔH_f from textbook ΔH_rxn and known formation tables with signed stoichiometric coefficients.
Teaching and lab software
Normalize learner-entered Hess-law inputs into a stable ΔH_f for plotters, step helpers, and interactive lessons.
FAQ
What does the heat of formation from reaction calculator cost?
It is free in your browser on this page.
How is the unknown formation enthalpy defined?
With signed coefficients (products +, reactants −), ΔH_rxn = Σ ν_i·ΔH_f,i, so ΔH_f,u = (ΔH_rxn − Σ_j ν_j·ΔH_f,j) / ν_u for the unknown species u.
What happens if the unknown coefficient is zero?
A zero stoichiometric coefficient means the compound is not in the reaction, so the formation enthalpy cannot be isolated (division by zero).
Which sign convention should I use for coefficients?
Products are positive and reactants are negative. For example, CH₄ + 2 O₂ → CO₂ + 2 H₂O uses ν_CH4 = −1, ν_O2 = −2, ν_CO2 = +1, ν_H2O = +2.
Does this tool look up formation enthalpies from a database?
No. You supply every known ΔH_f and the reaction enthalpy. The calculator only isolates the single unknown algebraically.
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/chem/enthalpy-of-formation-unknown \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"reaction_enthalpy":-890,"unknown_coefficient":-1,"known_coefficients":[-2,1,2],"known_enthalpies":[0,-393.5,-285.8]}'const res = await fetch("https://api.kit.forhosting.com/chem/enthalpy-of-formation-unknown", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"reaction_enthalpy": -890,
"unknown_coefficient": -1,
"known_coefficients": [
-2,
1,
2
],
"known_enthalpies": [
0,
-393.5,
-285.8
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/chem/enthalpy-of-formation-unknown",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"reaction_enthalpy": -890,
"unknown_coefficient": -1,
"known_coefficients": [
-2,
1,
2
],
"known_enthalpies": [
0,
-393.5,
-285.8
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/chem/enthalpy-of-formation-unknown", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"reaction_enthalpy":-890,"unknown_coefficient":-1,"known_coefficients":[-2,1,2],"known_enthalpies":[0,-393.5,-285.8]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"reaction_enthalpy":-890,"unknown_coefficient":-1,"known_coefficients":[-2,1,2],"known_enthalpies":[0,-393.5,-285.8]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/chem/enthalpy-of-formation-unknown", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"reaction_enthalpy": -890,
"unknown_coefficient": -1,
"known_coefficients": [
-2,
1,
2
],
"known_enthalpies": [
0,
-393.5,
-285.8
]
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "chem.enthalpy_of_formation_unknown",
"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_value | 1000000000000000 |
max_species | 50 |
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
What Hess's law isolates and what the response contains
Standard enthalpy of formation is the enthalpy change when one mole of a compound is formed from its elements in their standard states. Reaction enthalpies connect those tabulated values through Hess's law: the enthalpy change of a reaction equals the sum over all species of stoichiometric coefficient times formation enthalpy, with products counting positive and reactants counting negative. If every formation enthalpy is known, you compute ΔH_rxn directly; if one formation enthalpy is missing and ΔH_rxn is measured or given, you rearrange algebraically and solve for that missing term. This calculator performs that rearrangement. You pass reaction_enthalpy as the known ΔH_rxn, unknown_coefficient as the signed stoichiometric coefficient of the target compound, known_coefficients as the signed coefficients of all remaining species, and known_enthalpies as their formation enthalpies in the same energy unit. The response echoes those inputs after validation, reports known_contribution as the sum of each known coefficient times its enthalpy, returns unknown_formation_enthalpy as the isolated result, counts total species including the unknown, tags method as hess_unknown_formation, records precision, and restates the formula. There is no table lookup of NIST values, no automatic equation balancing, and no multi-reaction network solve: the engine either evaluates a finite floating-point ΔH_f for the unknown or rejects the input with invalid_input. Rejected cases include missing required fields, non-finite values, mismatched array lengths, magnitudes above the documented ceiling, too many known species, and any unknown coefficient that is zero or numerically zero, because a zero coefficient means the compound is not actually in the reaction and division by that coefficient is undefined.
How coefficients and enthalpies are read and how the result stays reproducible
Optional leading plus signs and scientific notation on numeric strings are allowed when they parse as finite decimals; embedded spaces, hex prefixes, and non-numeric tokens are rejected with a clear message so a bad cell does not become a wrong formation enthalpy. Empty known arrays are valid when every other species has a zero formation enthalpy contribution already folded into ΔH_rxn or when the reaction effectively involves only the unknown and elements at zero enthalpy; both arrays must still be present and of equal length. The preferred field names are reaction_enthalpy for ΔH_rxn, unknown_coefficient for the target stoichiometric number, known_coefficients for the parallel list of remaining signed coefficients, and known_enthalpies for the matching formation enthalpies, but aliases such as delta_h_rxn, dH_rxn, enthalpy_reaction, dhrxn, and deltaH for the reaction enthalpy, nu_unknown, coeff_unknown, unknown_nu, nu_u, and coefficient_unknown for the unknown coefficient, coefficients, nu, coeffs, and stoich for the known coefficient array, and enthalpies, hf, formation_enthalpies, delta_hf, and H_f for the known enthalpy array are accepted so spreadsheets, query strings, and typed forms can reuse the same contract. The unknown coefficient must be non-zero: if its absolute value is at or below a tiny epsilon, the request fails with invalid_input because the species is not participating and the division is undefined. An optional precision field, with aliases decimals and dp, chooses how many decimal places to expose for the numeric fields, defaulting to ten and capped at fifteen so JSON goldens stay stable. Pair the free browser run on this page with the priced API when you need the identical mathematical result inside an automated pipeline without re-implementing the isolation formula yourself.
Where unknown formation enthalpy fits in study, lab work, and software
On this page the work runs entirely in your browser; through the API each successful lookup costs $0.002, failed validation is not charged, and nothing is stored after the response returns. That split — free interactive exploration and a priced, identical API — matches the rest of the KIT tier-A catalog and lets you move from a classroom demo to an automated pipeline without changing the mathematical result. Pair it with stoichiometry or gas-law helpers when you need related chemistry steps, and with other chem endpoints when you are building a small lab of free, deterministic chemistry calculators.
Integration use cases
Deterministic thermochemistry fixtures
Generate reproducible unknown_formation_enthalpy and known_contribution values for unit tests and CI assertions.