{"openapi":"3.1.0","info":{"title":"HVAC Air-Side Load API","version":"1.0.0","description":"HVAC air-side heat maths as an API, computed locally and deterministically with the classic standard-air factors — the sensible, latent and airflow numbers a mechanical engineer or HVAC technician sizes ducts and equipment with. The sensible endpoint gives the sensible heat an airflow carries to change temperature: Qs = 1.08 × CFM × ΔT (dry-bulb difference), where the 1.08 bundles standard-air density and specific heat — 2,000 CFM across a 20 °F difference is 43,200 BTU/hr, 3.6 tons — with the result in BTU/hr, tons and kW. The latent endpoint gives the latent (moisture) heat: Ql = 0.68 × CFM × ΔW, where ΔW is the humidity-ratio difference in grains of water per pound of dry air, the dehumidification part of a cooling load that runs high in humid climates and from people and cooking, and why air conditioners are sized on total, not just temperature. The airflow endpoint inverts the sensible relation: CFM = sensible load ÷ (1.08 × ΔT), the supply air needed at a chosen supply-to-room temperature difference (comfort cooling runs ~18–22 °F below room), the number that sets fan and duct size — sanity-checked against ~400 CFM per ton. Everything is computed locally and deterministically, so it is instant and private. Ideal for HVAC-design and load-calc tools, mechanical-estimating and commissioning utilities, and building-engineering apps. Pure local computation — no key, no third-party service, instant. Standard-air factors — adjust for altitude. 3 compute endpoints. For room rule-of-thumb sizing use an HVAC API; for moist-air properties a psychrometric API; for duct sizing a ductwork API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/hvacload-api","description":"oanor gateway"}],"tags":[{"name":"Load"},{"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/airflow":{"get":{"operationId":"get_v1_airflow","tags":["Load"],"summary":"Airflow required for a sensible load","description":"","parameters":[{"name":"sensible_btu_hr","in":"query","required":true,"description":"Sensible load (BTU/hr)","schema":{"type":"string"},"example":"43200"},{"name":"delta_t_f","in":"query","required":true,"description":"Supply temperature difference (°F)","schema":{"type":"string"},"example":"20"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"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/latent":{"get":{"operationId":"get_v1_latent","tags":["Load"],"summary":"Latent heat from CFM and humidity diff","description":"","parameters":[{"name":"cfm","in":"query","required":true,"description":"Airflow (CFM)","schema":{"type":"string"},"example":"2000"},{"name":"delta_grains","in":"query","required":true,"description":"Humidity-ratio difference (grains/lb)","schema":{"type":"string"},"example":"30"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"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/sensible":{"get":{"operationId":"get_v1_sensible","tags":["Load"],"summary":"Sensible heat from CFM and ΔT","description":"","parameters":[{"name":"cfm","in":"query","required":true,"description":"Airflow (CFM)","schema":{"type":"string"},"example":"2000"},{"name":"delta_t_f","in":"query","required":true,"description":"Dry-bulb temperature difference (°F)","schema":{"type":"string"},"example":"20"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"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"},"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":5700,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":1170,"monthly_call_quota":57500,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":3700,"monthly_call_quota":240000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":11380,"monthly_call_quota":1195000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/hvacload-api"}