{"openapi":"3.1.0","info":{"title":"Latent Heat & Enthalpy API","version":"1.0.0","description":"Latent-heat and phase-change enthalpy as an API, computed locally and deterministically. The latent endpoint applies Q = m·L — the heat to melt, freeze, boil or condense a substance equals its mass times the latent heat — and solves for whichever of the heat, the mass or the latent heat you leave out, taking the latent heat of fusion or vaporization directly or from a built-in substance table (water, ethanol, mercury, lead, aluminium, iron, nitrogen, oxygen). The phase-change endpoint computes the full enthalpy of heating or cooling a substance from one temperature to another, automatically combining the sensible heat m·c·ΔT within each phase with the latent heat at every melting and boiling transition it crosses, and returns a step-by-step breakdown — so it can tell you, for example, the total energy to turn ice at −10 °C all the way into steam at 110 °C, using the right specific heat for the solid, the liquid and the gas. The substances endpoint lists the latent heats and per-phase specific heats. Heat is reported in joules, kilojoules, watt-hours and kilocalories. Everything is computed locally and deterministically, so it is instant and private. Ideal for thermodynamics and HVAC tools, refrigeration, heating and process-engineering apps, food and material science, and physics education. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is latent heat and phase change; for sensible heat alone (Q = m·c·ΔT with no phase change) use a specific-heat API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/enthalpy-api","description":"oanor gateway"}],"tags":[{"name":"Enthalpy"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/latent":{"get":{"operationId":"get_v1_latent","tags":["Enthalpy"],"summary":"Latent heat Q = m·L","description":"","parameters":[{"name":"substance","in":"query","required":false,"description":"water|ethanol|mercury|… (for latent_heat)","schema":{"type":"string"},"example":"water"},{"name":"transition","in":"query","required":false,"description":"fusion|vaporization (default fusion)","schema":{"type":"string"},"example":"fusion"},{"name":"mass","in":"query","required":false,"description":"Mass (kg)","schema":{"type":"string"},"example":"1"},{"name":"latent_heat","in":"query","required":false,"description":"Or latent heat (J/kg)","schema":{"type":"string"}},{"name":"energy","in":"query","required":false,"description":"Or energy (J) to solve mass/latent","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"formula":"Q = m·L (L = latent heat of fusion or vaporization).","mass_kg":1,"energy_kj":334,"energy_wh":92.77777778,"substance":"water","transition":"fusion","energy_kcal":79.82791587,"energy_joules":334000,"latent_heat_j_per_kg":334000},"meta":{"timestamp":"2026-06-04T10:18:53.362Z","request_id":"8eadb7ea-749d-42d1-824c-28cabb77efcb"},"status":"ok","message":"Latent heat Q = m·L","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/phase-change":{"get":{"operationId":"get_v1_phase_change","tags":["Enthalpy"],"summary":"Full heating/cooling enthalpy path","description":"","parameters":[{"name":"substance","in":"query","required":true,"description":"water|ethanol|mercury|lead|aluminium|iron|nitrogen|oxygen","schema":{"type":"string"},"example":"water"},{"name":"mass","in":"query","required":true,"description":"Mass (kg)","schema":{"type":"string"},"example":"1"},{"name":"initial_temperature","in":"query","required":true,"description":"Start temperature (°C)","schema":{"type":"string"},"example":"-10"},{"name":"final_temperature","in":"query","required":true,"description":"End temperature (°C)","schema":{"type":"string"},"example":"110"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Total enthalpy change combines sensible heat (m·c·ΔT) in each phase with the latent heat at every transition crossed.","steps":[{"to_c":0,"type":"sensible","phase":"solid","from_c":-10,"energy_joules":20900,"specific_heat_j_per_kg_k":2090},{"at_c":0,"type":"latent_fusion","energy_joules":334000,"latent_heat_j_per_kg":334000},{"to_c":100,"type":"sensible","phase":"liquid","from_c":0,"energy_joules":418600,"specific_heat_j_per_kg_k":4186},{"at_c":100,"type":"latent_vaporization","energy_joules":2256000,"latent_heat_j_per_kg":2256000},{"to_c":110,"type":"sensible","phase":"gas","from_c":100,"energy_joules":20100,"specific_heat_j_per_kg_k":2010}],"mass_kg":1,"process":"heating (energy absorbed)","energy_kj":3049.6,"energy_wh":847.11111111,"substance":"water","energy_kcal":728.87189293,"energy_joules":3049600,"boiling_point_c":100,"melting_point_c":0,"final_temperature_c":110,"initial_temperature_c":-10},"meta":{"timestamp":"2026-06-04T10:18:53.466Z","request_id":"b0e42208-8fe0-41d4-8c51-e9c273c3d7d5"},"status":"ok","message":"Full heating/cooling path","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/substances":{"get":{"operationId":"get_v1_substances","tags":["Enthalpy"],"summary":"Substance reference (latent heats & specific heats)","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Latent heats of fusion (lf) and vaporization (lv) and per-phase specific heats. null = not tabulated.","units":{"latent_heat":"J/kg","temperature":"°C","specific_heat":"J/(kg·K)"},"aliases":{"fe":"iron","hg":"mercury","n2":"nitrogen","o2":"oxygen","pb":"lead","h2o":"water","ice":"water","steam":"water","aluminum":"aluminium"},"substances":{"iron":{"lf":247000,"lv":6090000,"boil_c":2862,"melt_c":1538,"c_solid":449,"c_liquid":820},"lead":{"lf":23000,"lv":871000,"boil_c":1749,"melt_c":327.46,"c_solid":129,"c_liquid":130},"water":{"lf":334000,"lv":2256000,"c_gas":2010,"boil_c":100,"melt_c":0,"c_solid":2090,"c_liquid":4186},"oxygen":{"lf":13900,"lv":213000,"c_gas":918,"boil_c":-182.96,"melt_c":-218.79,"c_liquid":1699},"ethanol":{"lf":108000,"lv":855000,"c_gas":1430,"boil_c":78.37,"melt_c":-114.1,"c_liquid":2440},"mercury":{"lf":11400,"lv":294000,"c_gas":104,"boil_c":356.73,"melt_c":-38.83,"c_liquid":139.5},"nitrogen":{"lf":25700,"lv":199000,"c_gas":1040,"boil_c":-195.79,"melt_c":-210,"c_liquid":2042},"aluminium":{"lf":397000,"lv":10900000,"boil_c":2470,"melt_c":660.32,"c_solid":897,"c_liquid":1180}}},"meta":{"timestamp":"2026-06-04T10:18:53.560Z","request_id":"2d50a273-2ffa-4e7a-918d-4ba0742de7a7"},"status":"ok","message":"Substance reference","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"api":"enthalpy","note":"Latent-heat / phase-change enthalpy — computed locally and deterministically, no key, no third-party service.","endpoints":["/v1/latent","/v1/phase-change","/v1/substances","/v1/meta"],"substances":["water","ethanol","mercury","lead","aluminium","iron","nitrogen","oxygen"]},"meta":{"timestamp":"2026-06-04T10:18:53.654Z","request_id":"4b09ae49-9a55-4f7b-9dfb-e49492cac805"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":2000,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":500,"monthly_call_quota":25000,"rps_limit":5,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1500,"monthly_call_quota":150000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":4500,"monthly_call_quota":762000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/enthalpy-api"}