{"openapi":"3.1.0","info":{"title":"Solar Thermal API","version":"1.0.0","description":"Solar-thermal (solar hot water) maths as an API, computed locally and deterministically — the collector, sizing and storage numbers a solar installer or homeowner designs a hot-water system with. The output endpoint gives the useful daily heat a collector makes: area × the daily solar energy on it × the collector efficiency (flat-plate ~40–60 %, evacuated tubes higher), so a 40 ft² collector under 1,800 BTU/ft²/day at 50 % delivers about 36,000 BTU (10.5 kWh) — a family's hot water on a good day. The area endpoint sizes the collector for a demand: area = (daily gallons × 8.34 × the temperature rise) ÷ (irradiance × efficiency), so 60 gallons raised 70 °F needs about 39 ft² — sized for an average day with a backup heater, since a 60–80 % solar fraction is the economic sweet spot. The tank endpoint sizes solar storage at about 1.5 gallons per square foot of collector, big enough to bank a sunny afternoon without stalling the collector. Everything is computed locally and deterministically, so it is instant and private. Ideal for solar-installer and renewable-energy apps, hot-water-system design tools, home-energy calculators, and sustainability sites. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints. For the local solar resource use a solar-irradiance API; for pool heating use a pool API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/solarthermal-api","description":"oanor gateway"}],"tags":[{"name":"Solar Thermal"},{"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/area":{"get":{"operationId":"get_v1_area","tags":["Solar Thermal"],"summary":"Collector area for a demand","description":"","parameters":[{"name":"daily_hot_water_gallons","in":"query","required":true,"description":"Daily hot water in gallons","schema":{"type":"string"},"example":"60"},{"name":"temp_rise_f","in":"query","required":true,"description":"Temperature rise in °F","schema":{"type":"string"},"example":"70"},{"name":"daily_irradiance_btu_sqft","in":"query","required":true,"description":"Daily irradiance (BTU/ft²/day)","schema":{"type":"string"},"example":"1800"},{"name":"efficiency_pct","in":"query","required":false,"description":"Collector efficiency % (default 50)","schema":{"type":"string"},"example":"50"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Collector area = the daily heat needed (gallons × 8.34 × temperature rise) ÷ (irradiance × efficiency). Size for an average day, not the sunniest — a solar fraction of 60–80 % with a backup heater is usually the economic sweet spot, since chasing 100 % needs a huge array for the worst weeks.","inputs":{"temp_rise_f":70,"efficiency_pct":50,"daily_hot_water_gallons":60,"daily_irradiance_btu_sqft":1800},"collector_area_sqft":38.9,"daily_heat_needed_btu":35028},"meta":{"timestamp":"2026-06-06T23:53:57.245Z","request_id":"e9a4c167-2310-4970-9987-67a9a0e31c9b"},"status":"ok","message":"Collector area","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/output":{"get":{"operationId":"get_v1_output","tags":["Solar Thermal"],"summary":"Collector daily heat output","description":"","parameters":[{"name":"collector_area_sqft","in":"query","required":true,"description":"Collector area in ft²","schema":{"type":"string"},"example":"40"},{"name":"daily_irradiance_btu_sqft","in":"query","required":true,"description":"Daily irradiance on the collector (BTU/ft²/day)","schema":{"type":"string"},"example":"1800"},{"name":"efficiency_pct","in":"query","required":false,"description":"Collector efficiency % (default 50)","schema":{"type":"string"},"example":"50"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Useful heat = collector area × the daily solar energy hitting it × the collector efficiency (flat-plate ~40–60 %, evacuated tubes higher). A 40 ft² collector under 1,800 BTU/ft²/day at 50 % gives ~36,000 BTU (10.5 kWh) — enough for a family's hot water on a good day. Output drops with cloud, low sun angle and a hotter tank.","inputs":{"efficiency_pct":50,"collector_area_sqft":40,"daily_irradiance_btu_sqft":1800},"daily_output_btu":36000,"daily_output_kwh":10.55},"meta":{"timestamp":"2026-06-06T23:53:57.344Z","request_id":"028cd9ad-d65b-41d1-b34d-13c139bd8328"},"status":"ok","message":"Collector output","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/tank":{"get":{"operationId":"get_v1_tank","tags":["Solar Thermal"],"summary":"Solar storage tank size","description":"","parameters":[{"name":"collector_area_sqft","in":"query","required":true,"description":"Collector area in ft²","schema":{"type":"string"},"example":"40"},{"name":"gallons_per_sqft","in":"query","required":false,"description":"Storage gallons per ft² (default 1.5)","schema":{"type":"string"},"example":"1.5"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Solar storage ≈ 1.5 gallons per square foot of collector (1.5–2 for more cloudy-day carry-over). Too small a tank overheats and stalls the collector on a sunny afternoon; too large never reaches a useful temperature. Size the tank to a day or two of hot-water use and insulate it well.","inputs":{"gallons_per_sqft":1.5,"collector_area_sqft":40},"storage_gallons":60},"meta":{"timestamp":"2026-06-06T23:53:57.436Z","request_id":"349df671-d111-4a72-a02f-e4724b3940c6"},"status":"ok","message":"Tank size","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":{"notes":"US units. Output = area × daily irradiance × efficiency; area = (gal × 8.34 × ΔT) ÷ (irradiance × efficiency); tank ≈ 1.5 gal/ft². Estimates — for the local solar resource use a solar-irradiance API; for pool heating use a pool API.","service":"solarthermal-api","endpoints":{"GET /v1/area":"Collector area to meet a daily hot-water demand.","GET /v1/meta":"This document.","GET /v1/tank":"Solar storage-tank size from collector area.","GET /v1/output":"Useful daily heat from a collector (area × irradiance × efficiency)."},"description":"Solar-thermal (solar hot water) maths: collector daily output, the collector area for a hot-water demand, and the storage-tank size."},"meta":{"timestamp":"2026-06-06T23:53:57.511Z","request_id":"016613c3-3a72-433e-b764-fd4a2d2ccb6f"},"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":510,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":495,"monthly_call_quota":13300,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1670,"monthly_call_quota":83500,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":5020,"monthly_call_quota":268000,"rps_limit":36,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/solarthermal-api"}